diff --git a/404.html b/404.html index 5cac53a44..8cd9eec40 100644 --- a/404.html +++ b/404.html @@ -31,10 +31,10 @@ } - + -

404

Page not found

Looks like we've got some broken links.

- +

404

Page not found

How did we get here?

+ diff --git a/assets/404.html-55d1fae4.js b/assets/404.html-d1c4e391.js similarity index 71% rename from assets/404.html-55d1fae4.js rename to assets/404.html-d1c4e391.js index 252c68349..c96a9a4dd 100644 --- a/assets/404.html-55d1fae4.js +++ b/assets/404.html-d1c4e391.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c}from"./app-1a16ab73.js";const o={};function r(_,n){return t(),c("div")}const f=e(o,[["render",r],["__file","404.html.vue"]]);export{f as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c}from"./app-dddc4fb8.js";const o={};function r(_,n){return t(),c("div")}const f=e(o,[["render",r],["__file","404.html.vue"]]);export{f as default}; diff --git a/assets/FAQ.html-66aa7aa0.js b/assets/FAQ.html-20216826.js similarity index 99% rename from assets/FAQ.html-66aa7aa0.js rename to assets/FAQ.html-20216826.js index bbc26814a..64f52ea03 100644 --- a/assets/FAQ.html-66aa7aa0.js +++ b/assets/FAQ.html-20216826.js @@ -1,3 +1,3 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as d,c,a as e,b as l,d as o,w as s,e as i}from"./app-1a16ab73.js";const h={},u=e("h1",{id:"常见问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见问题","aria-hidden":"true"},"#"),l(" 常见问题")],-1),_=e("h2",{id:"如何创建胡桃的桌面快捷方式",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#如何创建胡桃的桌面快捷方式","aria-hidden":"true"},"#"),l(" 如何创建胡桃的桌面快捷方式")],-1),p={class:"hint-container tip"},g=e("p",{class:"hint-container-title"},"社区力量",-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},m=i('

如何添加一个默认以管理员方式运行的快捷方式

',2),b={class:"hint-container tip"},x=e("p",{class:"hint-container-title"},"社区力量",-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/17",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,"基本原理:使用下方的 PowerShell 脚本可以以管理员方式运行胡桃",-1),k=e("div",{class:"language-PowerShell","data-ext":"PowerShell"},[e("pre",{class:"language-PowerShell"},[e("code",null,`Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as d,c,a as e,b as l,d as o,w as s,e as i}from"./app-dddc4fb8.js";const h={},u=e("h1",{id:"常见问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见问题","aria-hidden":"true"},"#"),l(" 常见问题")],-1),_=e("h2",{id:"如何创建胡桃的桌面快捷方式",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#如何创建胡桃的桌面快捷方式","aria-hidden":"true"},"#"),l(" 如何创建胡桃的桌面快捷方式")],-1),p={class:"hint-container tip"},g=e("p",{class:"hint-container-title"},"社区力量",-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},m=i('

如何添加一个默认以管理员方式运行的快捷方式

',2),b={class:"hint-container tip"},x=e("p",{class:"hint-container-title"},"社区力量",-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/17",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,"基本原理:使用下方的 PowerShell 脚本可以以管理员方式运行胡桃",-1),k=e("div",{class:"language-PowerShell","data-ext":"PowerShell"},[e("pre",{class:"language-PowerShell"},[e("code",null,`Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas `)])],-1),P={href:"https://github.com/DGP-Studio/Snap.Hutao/raw/main/src/Snap.Hutao/Snap.Hutao/Assets/Logo.ico",target:"_blank",rel:"noopener noreferrer"},A=e("li",null,[l("在桌面点击右键,选择"),e("code",null,"新建"),l(" -> "),e("code",null,"快捷方式")],-1),H=e("li",null,[l("在"),e("code",null,"请键入对象的位置"),l("中直接输入:")],-1),C=i(`
  powershell -Command "Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
 

如何让胡桃工具箱开机自动启动

`,3),v={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},D=e("li",null,[l("设置一个"),e("strong",null,"计划任务程序"),l("令上述批处理文件开机自启,或将上述批处理文件加入"),e("strong",null,"启动项"),l("中")],-1),W=e("li",null,"或有其他令胡桃工具箱可开机自启的思路,可自行探索",-1),E=i('

如何通过胡桃工具箱快速地启动游戏

如何通过网络代理使用胡桃工具箱

',3),B=e("h2",{id:"为什么程序会出现乱码现象",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么程序会出现乱码现象","aria-hidden":"true"},"#"),l(" 为什么程序会出现乱码现象")],-1),F=e("li",null,[l("当用户在 Windows 10 下使用胡桃且发现有乱码情况时: "),e("ul",null,[e("li",null,[l("可以下载 "),e("code",null,"Segoe Fluent Icons"),l("字体")]),e("li",null,[l("安装时选择"),e("code",null,"为系统所有用户安装"),l(",即可解决问题")])])],-1),N={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},z=e("h2",{id:"为什么会弹出需要使用新应用以打开的对话框",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么会弹出需要使用新应用以打开的对话框","aria-hidden":"true"},"#"),l(" 为什么会弹出需要使用新应用以打开的对话框")],-1),G=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01b3j0eY1g6duBXLJXg_!!1797064093.jpg_.webp",alt:"uninstall-error",loading:"lazy"})],-1),I=e("p",null,[l("如在卸载胡桃工具箱后出现如上图所示的"),e("code",null,"需要使用新应用以打开此 hutao 链接"),l(",说明没有按文档要求在卸载前清除实时便笺定时任务。 请根据文档在设置中清除定时任务后再卸载胡桃工具箱。")],-1),L={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/18",target:"_blank",rel:"noopener noreferrer"},y=e("h2",{id:"为什么米游社帐号登录状态经常失效-添加的帐号消失",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么米游社帐号登录状态经常失效-添加的帐号消失","aria-hidden":"true"},"#"),l(" 为什么米游社帐号登录状态经常失效,添加的帐号消失")],-1),R=e("li",null,"我们通过储存帐号的米游社 Cookie 来维持登录状态。",-1),j=e("li",null,[l("但是当用户在浏览器或其它设备上"),e("strong",null,"注销帐号"),l("后, 维持登录状态的 Cookie 将"),e("strong",null,"失效"),l("。")],-1),q=e("li",null,"这会导致胡桃工具箱上的米游社帐号在启动后被自动移除。",-1),U=e("li",null,"此情况也可能因为网络连接问题导致无法检查 Cookie 有效性,故出现此情况后请优先重启胡桃工具箱。",-1),V=e("li",null,"自 1.4.15 版本起,你可以通过在帐号面板中刷新 Cookie 来刷新登录状态",-1),O=i('

为什么游戏登录状态会失效,导致切换帐号功能无效

为什么程序会提示注册计划任务失败

使用管理员模式使用一次实时便笺后,胡桃的任务计划会被以管理员权限创建。当再次以非管理员模式启动胡桃时,程序在修改计划任务时会缺少权限。 继续使用管理员模式即可解决该问题。

使用 MSIX 安装包安装时进度卡在正在安装所需框架

',5),Q=e("li",null,"请确保 Windows Update 已启用;胡桃工具箱升级同样依赖于 Windows Update 组件",-1),X={href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},J=e("h2",{id:"无法使用管理员模式启动胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#无法使用管理员模式启动胡桃工具箱","aria-hidden":"true"},"#"),l(" 无法使用管理员模式启动胡桃工具箱")],-1),M=e("blockquote",null,[e("p",null,"该问题仅存在于 Windows 10 低于 22H2 的版本中")],-1),T=e("ul",null,[e("li",null,[l("当用户系统版本低于 "),e("code",null,"Windows Build 19045"),l("(即 Windows 10 22H2 版本)时,可能无法通过管理员模式启动胡桃工具箱 "),e("ul",null,[e("li",null,"该问题属于 Windows 内核级别问题,难以判断具体来源,故建议用户升级至 Windows 10 最新版本")])])],-1);function Y(K,Z){const n=a("ExternalLinkIcon"),t=a("RouterLink");return d(),c("div",null,[u,_,e("div",p,[g,e("p",null,[l("感谢 "),e("a",f,[l("CzHUV 提供的解决方案"),o(n)])])]),m,e("div",b,[x,e("p",null,[l("感谢 "),e("a",S,[l("Parsifa1 提供的解决方案"),o(n)])])]),w,k,e("ul",null,[e("li",null,[l("保存胡桃工具箱的 Logo 资源 "),e("ul",null,[e("li",null,[l("你可以点击"),e("a",P,[l("这里"),o(n)]),l("下载")])])]),A,H]),C,e("ul",null,[e("li",null,[l("请参考如下思路 "),e("ul",null,[e("li",null,[l("可以自行创建一个批处理文件,内容参考"),e("a",v,[l("此 issue"),o(n)]),l("中,令胡桃以管理员模式直接运行的命令。")]),D])]),W]),E,e("p",null,[l("参考 "),o(t,{to:"/zh/advanced/exceptions.html#httprequestexception"},{default:s(()=>[l("HttpRequestException 错误")]),_:1}),l(" 文档")]),B,e("ul",null,[F,e("li",null,[l("您可以从 "),e("a",N,[l("微软官方"),o(n)]),l("下载到该字体文件")])]),z,G,I,e("ul",null,[e("li",null,[l("如果你在系统定时任务中找不到胡桃的定时任务,但问题仍然出现,请参考"),e("a",L,[l("这份文档"),o(n)]),l("来解决")])]),y,e("ul",null,[R,j,q,U,e("li",null,[l("自 2022 年 10 月起,米游社极大地提高了账号被判定为有风险的概率,"),o(t,{to:"/zh/advanced/exceptions.html#%E7%8A%B6%E6%80%811034-%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5"},{default:s(()=>[l("账号有风险")]),_:1}),l("时亦会令 Cookie 无法被识别为有效状态")]),V]),O,e("ul",null,[e("li",null,[l("当用户系统缺少必要依赖环境时,系统会自动安装所需依赖。若用户禁用了 Windows Update 组件或网络条件差时,系统无法完成该步骤。 "),e("ul",null,[Q,e("li",null,[l("你亦可以手动下载并安装"),e("a",X,[l("胡桃的相关依赖"),o(n)])])])])]),J,M,T])}const le=r(h,[["render",Y],["__file","FAQ.html.vue"]]);export{le as default}; diff --git a/assets/FAQ.html-5ad59832.js b/assets/FAQ.html-c926dafc.js similarity index 99% rename from assets/FAQ.html-5ad59832.js rename to assets/FAQ.html-c926dafc.js index 31ec77baf..18df5f500 100644 --- a/assets/FAQ.html-5ad59832.js +++ b/assets/FAQ.html-c926dafc.js @@ -1,3 +1,3 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as l,c as u,a as e,b as t,d as o,w as d,e as i}from"./app-1a16ab73.js";const c={},h=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),t(" FAQ")],-1),p=e("h2",{id:"how-to-create-desktop-shortcut",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-create-desktop-shortcut","aria-hidden":"true"},"#"),t(" How to create desktop shortcut")],-1),g={class:"hint-container tip"},w=e("p",{class:"hint-container-title"},"Community Power",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},f=i('

How to create desktop shortcut with Administrator privilege

',2),k={class:"hint-container tip"},_=e("p",{class:"hint-container-title"},"Community Power",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/17",target:"_blank",rel:"noopener noreferrer"},S=e("p",null,"Fundamental principle: Use the following PowerShell scrip can run Snap Hutao with Administrator privilege",-1),y=e("div",{class:"language-PowerShell","data-ext":"PowerShell"},[e("pre",{class:"language-PowerShell"},[e("code",null,`Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as l,c as u,a as e,b as t,d as o,w as d,e as i}from"./app-dddc4fb8.js";const c={},h=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),t(" FAQ")],-1),p=e("h2",{id:"how-to-create-desktop-shortcut",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-create-desktop-shortcut","aria-hidden":"true"},"#"),t(" How to create desktop shortcut")],-1),g={class:"hint-container tip"},w=e("p",{class:"hint-container-title"},"Community Power",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},f=i('

How to create desktop shortcut with Administrator privilege

',2),k={class:"hint-container tip"},_=e("p",{class:"hint-container-title"},"Community Power",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/17",target:"_blank",rel:"noopener noreferrer"},S=e("p",null,"Fundamental principle: Use the following PowerShell scrip can run Snap Hutao with Administrator privilege",-1),y=e("div",{class:"language-PowerShell","data-ext":"PowerShell"},[e("pre",{class:"language-PowerShell"},[e("code",null,`Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas `)])],-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao/raw/main/src/Snap.Hutao/Snap.Hutao/Assets/Logo.ico",target:"_blank",rel:"noopener noreferrer"},H=e("li",null,"It is expected to see a blank image in the browser",-1),x=e("li",null,[t("In your desktop, select "),e("code",null,"New"),t(" -> "),e("code",null,"Shortcut")],-1),P=e("li",null,[t("In the field of "),e("code",null,"Type the location of the item"),t(", input:")],-1),A=i(`
powershell -Command "Start-Process shell:AppsFolder\\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
 

How to run Snap Hutao when Windows starts

This is a workaround solution

`,4),C={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},I=e("li",null,"Create a Scheduled Task, run the bat when Windows startup, or drag it to Windows start folder",-1),q=i('

Use Snap Hutao to quick start the game

Use Snap Hutao with Network Proxy

',3),R=e("h2",{id:"mojibake-in-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mojibake-in-snap-hutao","aria-hidden":"true"},"#"),t(" Mojibake in Snap Hutao")],-1),W=e("li",null,[t("If you are using Windows 10 and see some button are not display properly "),e("ul",null,[e("li",null,[t("You can download "),e("code",null,"Segoe Fluent Icons"),t(" font")]),e("li",null,"You need to install it for all users")])],-1),T={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},F=i('

MiHoYo BBS Account often Lose Login Status

Snap Hutao use saved MiHoYo BBS cookies to maintain login status. If you log out your account in your browser or other device, cookie will become invalid, and Snap Hutao will also be forced to log out, account will be automatically removed.

This problem may also be caused by network error, you should check this first; If it's not caused by network issue, you can use Refresh Cookie in the account panel; You can also remove your account manually and add it back again.

Since October 2022, MiYouShe (Chinese BBS) rapidly increased bot detection and may set users' account as under-risk status, this may cause Snap Hutao failed to check validation of the cookie

Game Account Lose Login Status in the Launcher

Snap Hutao Throws Failed to add Scheduled Task Error

If you are using Administrator privilege to start real-time notes feature, Snap Hutao's scheduled task will be created as Administrator role. When next time edit real-time notes settings without Administrator privilege, the program will have a lack of privilege to edit the settings and throw out this error.

Run Snap Hutao as Administrator to edit your settings to solve this issue.

Stuck at Installing Required Framework when Using MSIX Package to Install

Unable to Run Snap Hutao as Administrator

This issue only occurs in Windows 10 older than 22H2 version

',14);function D(L,M){const a=n("ExternalLinkIcon"),s=n("RouterLink");return l(),u("div",null,[h,p,e("div",g,[w,e("p",null,[t("Thanks to "),e("a",m,[t("solution provided by CzHUV"),o(a)]),t("。")])]),f,e("div",k,[_,e("p",null,[t("Thanks to "),e("a",b,[t("solution provided by Parsifa1"),o(a)]),t("。")])]),S,y,e("ul",null,[e("li",null,[t("Save Snap Hutao logo to your device "),e("ul",null,[e("li",null,[t("You can find it "),e("a",v,[t("here"),o(a)])]),H])]),x,P]),A,e("ul",null,[e("li",null,[t("Create a bat file, content refers to "),e("a",C,[t("this Issue"),o(a)]),t(", it allows bat to run Snap Hutao with Administrator privilege")]),I]),q,e("p",null,[t("Refer to "),o(s,{to:"/en/advanced/exceptions.html#_502-bad-gateway"},{default:d(()=>[t("HttpRequestException Error (502)")]),_:1}),t(" document")]),R,e("ul",null,[W,e("li",null,[t("You can find this font from "),e("a",T,[t("Microsoft"),o(a)])])]),F])}const U=r(c,[["render",D],["__file","FAQ.html.vue"]]);export{U as default}; diff --git a/assets/Gacha-system-and-export-principal.html-e5e06d6b.js b/assets/Gacha-system-and-export-principal.html-ad2b3c2d.js similarity index 98% rename from assets/Gacha-system-and-export-principal.html-e5e06d6b.js rename to assets/Gacha-system-and-export-principal.html-ad2b3c2d.js index 959d60b58..c5e57d780 100644 --- a/assets/Gacha-system-and-export-principal.html-e5e06d6b.js +++ b/assets/Gacha-system-and-export-principal.html-ad2b3c2d.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-1a16ab73.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-dddc4fb8.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; diff --git a/assets/Gacha-system-and-export-principal.html-83eada9b.js b/assets/Gacha-system-and-export-principal.html-eff6c983.js similarity index 98% rename from assets/Gacha-system-and-export-principal.html-83eada9b.js rename to assets/Gacha-system-and-export-principal.html-eff6c983.js index 959d60b58..c5e57d780 100644 --- a/assets/Gacha-system-and-export-principal.html-83eada9b.js +++ b/assets/Gacha-system-and-export-principal.html-eff6c983.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-1a16ab73.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-dddc4fb8.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; diff --git a/assets/achievements.html-193e97c2.js b/assets/achievements.html-111df6f1.js similarity index 94% rename from assets/achievements.html-193e97c2.js rename to assets/achievements.html-111df6f1.js index da9485b00..19ff12f2a 100644 --- a/assets/achievements.html-193e97c2.js +++ b/assets/achievements.html-111df6f1.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as c,c as l,a as e,b as t,d as a,e as s}from"./app-1a16ab73.js";const h={},m=s('

Achievement Management

Snap Hutao offers local achievement management feature, users can view and manage status of achievement

Achievement Import

',5),d={href:"https://uigf.org/en/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},u=e("ul",null,[e("li",null,[t("This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as "),e("strong",null,"Achievement exporter")])],-1),p=e("li",null,[t("You can click on "),e("code",null,"Import"),t(" at top right menu on Achievement Management page, and select file import to load UIAF formatted data")],-1),_=e("h2",{id:"achievement-tools-we-recommend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#achievement-tools-we-recommend","aria-hidden":"true"},"#"),t(" Achievement Tools We Recommend")],-1),v={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},g={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function f(A,x){const n=r("ExternalLinkIcon"),o=r("Badge");return c(),l("div",null,[m,e("ul",null,[e("li",null,[t("Snap Hutao is using "),e("a",d,[t("Uniformed Interchangeable Achievement Format Standar"),a(n)]),t(" to store user's achievement data "),u]),p]),_,e("ul",null,[e("li",null,[e("p",null,[e("a",v,[t("YaeAchievement"),a(n)]),t(),a(o,{text:"Achievement Recognition",type:"tip"})])]),e("li",null,[e("p",null,[e("a",g,[t("椰羊 cocogoat"),a(n)]),t(),a(o,{text:"Achievement Guide",type:"tip"})])])])])}const w=i(h,[["render",f],["__file","achievements.html.vue"]]);export{w as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as c,c as l,a as e,b as t,d as a,e as s}from"./app-dddc4fb8.js";const h={},m=s('

Achievement Management

Snap Hutao offers local achievement management feature, users can view and manage status of achievement

Achievement Import

',5),d={href:"https://uigf.org/en/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},u=e("ul",null,[e("li",null,[t("This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as "),e("strong",null,"Achievement exporter")])],-1),p=e("li",null,[t("You can click on "),e("code",null,"Import"),t(" at top right menu on Achievement Management page, and select file import to load UIAF formatted data")],-1),_=e("h2",{id:"achievement-tools-we-recommend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#achievement-tools-we-recommend","aria-hidden":"true"},"#"),t(" Achievement Tools We Recommend")],-1),v={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},g={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function f(A,x){const n=r("ExternalLinkIcon"),o=r("Badge");return c(),l("div",null,[m,e("ul",null,[e("li",null,[t("Snap Hutao is using "),e("a",d,[t("Uniformed Interchangeable Achievement Format Standar"),a(n)]),t(" to store user's achievement data "),u]),p]),_,e("ul",null,[e("li",null,[e("p",null,[e("a",v,[t("YaeAchievement"),a(n)]),t(),a(o,{text:"Achievement Recognition",type:"tip"})])]),e("li",null,[e("p",null,[e("a",g,[t("椰羊 cocogoat"),a(n)]),t(),a(o,{text:"Achievement Guide",type:"tip"})])])])])}const w=i(h,[["render",f],["__file","achievements.html.vue"]]);export{w as default}; diff --git a/assets/achievements.html-0f803c5c.js b/assets/achievements.html-9522b5f8.js similarity index 95% rename from assets/achievements.html-0f803c5c.js rename to assets/achievements.html-9522b5f8.js index dc5489f1d..c8fdd3ed6 100644 --- a/assets/achievements.html-0f803c5c.js +++ b/assets/achievements.html-9522b5f8.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as s,a as e,d as n,b as t,e as d}from"./app-1a16ab73.js";const h={},_=d('

成就管理

胡桃工具箱提供成就管理功能,用户可以通过它浏览并管理所有的成就状态

视频指南

对于大多数人而言,遵循本页文档会有更高的效率。

但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

',7),p={class:"hint-container details"},u=e("summary",null,"胡桃工具箱视频指南 6 - 成就管理篇",-1),m=e("h2",{id:"成就导入",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#成就导入","aria-hidden":"true"},"#"),t(" 成就导入")],-1),f={href:"https://uigf.org/zh/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[t("该标准允许用户从其它"),e("strong",null,"成就导出工具"),t("中通过 Url 协议和剪贴板将数据导入到胡桃工具箱中")])],-1),x=e("li",null,[t("你可以点击成就页面右上角隐藏菜单中的"),e("code",null,"导入"),t("按钮,并选择"),e("code",null,"从 UIAF 文件导入"),t("以加载以 UIAF 数据格式储存的第三方成就数据")],-1),b=e("h2",{id:"推荐使用的成就识别工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#推荐使用的成就识别工具","aria-hidden":"true"},"#"),t(" 推荐使用的成就识别工具")],-1),B={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},k={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function v(V,y){const r=a("BiliBili"),o=a("ExternalLinkIcon"),l=a("Badge");return c(),s("div",null,[_,e("details",p,[u,n(r,{bvid:"BV1WL411y7q1"})]),m,e("ul",null,[e("li",null,[t("胡桃工具箱使用"),e("a",f,[t("统一可交换成就标准"),n(o)]),t("数据标准来储存用户的成就数据 "),g]),x]),b,e("ul",null,[e("li",null,[e("p",null,[e("a",B,[t("YaeAchievement"),n(o)]),t(),n(l,{text:"成就识别",type:"tip"})])]),e("li",null,[e("p",null,[e("a",k,[t("椰羊 cocogoat"),n(o)]),t(),n(l,{text:"成就攻略",type:"tip"})])])])])}const N=i(h,[["render",v],["__file","achievements.html.vue"]]);export{N as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as s,a as e,d as n,b as t,e as d}from"./app-dddc4fb8.js";const h={},_=d('

成就管理

胡桃工具箱提供成就管理功能,用户可以通过它浏览并管理所有的成就状态

视频指南

对于大多数人而言,遵循本页文档会有更高的效率。

但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

',7),p={class:"hint-container details"},u=e("summary",null,"胡桃工具箱视频指南 6 - 成就管理篇",-1),m=e("h2",{id:"成就导入",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#成就导入","aria-hidden":"true"},"#"),t(" 成就导入")],-1),f={href:"https://uigf.org/zh/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[t("该标准允许用户从其它"),e("strong",null,"成就导出工具"),t("中通过 Url 协议和剪贴板将数据导入到胡桃工具箱中")])],-1),x=e("li",null,[t("你可以点击成就页面右上角隐藏菜单中的"),e("code",null,"导入"),t("按钮,并选择"),e("code",null,"从 UIAF 文件导入"),t("以加载以 UIAF 数据格式储存的第三方成就数据")],-1),b=e("h2",{id:"推荐使用的成就识别工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#推荐使用的成就识别工具","aria-hidden":"true"},"#"),t(" 推荐使用的成就识别工具")],-1),B={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},k={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function v(V,y){const r=a("BiliBili"),o=a("ExternalLinkIcon"),l=a("Badge");return c(),s("div",null,[_,e("details",p,[u,n(r,{bvid:"BV1WL411y7q1"})]),m,e("ul",null,[e("li",null,[t("胡桃工具箱使用"),e("a",f,[t("统一可交换成就标准"),n(o)]),t("数据标准来储存用户的成就数据 "),g]),x]),b,e("ul",null,[e("li",null,[e("p",null,[e("a",B,[t("YaeAchievement"),n(o)]),t(),n(l,{text:"成就识别",type:"tip"})])]),e("li",null,[e("p",null,[e("a",k,[t("椰羊 cocogoat"),n(o)]),t(),n(l,{text:"成就攻略",type:"tip"})])])])])}const N=i(h,[["render",v],["__file","achievements.html.vue"]]);export{N as default}; diff --git a/assets/app-1a16ab73.js b/assets/app-dddc4fb8.js similarity index 96% rename from assets/app-1a16ab73.js rename to assets/app-dddc4fb8.js index 83cad46fb..a31c2468f 100644 --- a/assets/app-1a16ab73.js +++ b/assets/app-dddc4fb8.js @@ -1,4 +1,4 @@ -const pu="modulepreload",hu=function(e){return"/"+e},za={},w=function(t,n,r){if(!n||n.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(n.map(a=>{if(a=hu(a),a in za)return;za[a]=!0;const l=a.endsWith(".css"),s=l?'[rel="stylesheet"]':"";if(!!r)for(let u=o.length-1;u>=0;u--){const f=o[u];if(f.href===a&&(!l||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const c=document.createElement("link");if(c.rel=l?"stylesheet":pu,l||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),l)return new Promise((u,f)=>{c.addEventListener("load",u),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t())};function Wo(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}const ye={},mn=[],ot=()=>{},mu=()=>!1,vu=/^on[^a-z]/,sr=e=>vu.test(e),qo=e=>e.startsWith("onUpdate:"),Ae=Object.assign,Ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},gu=Object.prototype.hasOwnProperty,ie=(e,t)=>gu.call(e,t),q=Array.isArray,vn=e=>ir(e)==="[object Map]",xn=e=>ir(e)==="[object Set]",Na=e=>ir(e)==="[object Date]",te=e=>typeof e=="function",ae=e=>typeof e=="string",Jn=e=>typeof e=="symbol",me=e=>e!==null&&typeof e=="object",Es=e=>me(e)&&te(e.then)&&te(e.catch),Ts=Object.prototype.toString,ir=e=>Ts.call(e),_u=e=>ir(e).slice(8,-1),Os=e=>ir(e)==="[object Object]",Go=e=>ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Un=Wo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),jr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bu=/-(\w)/g,Ge=jr(e=>e.replace(bu,(t,n)=>n?n.toUpperCase():"")),yu=/\B([A-Z])/g,Cn=jr(e=>e.replace(yu,"-$1").toLowerCase()),cr=jr(e=>e.charAt(0).toUpperCase()+e.slice(1)),ao=jr(e=>e?`on${cr(e)}`:""),Xn=(e,t)=>!Object.is(e,t),xr=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Sr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},wu=e=>{const t=ae(e)?Number(e):NaN;return isNaN(t)?e:t};let Va;const Oo=()=>Va||(Va=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Yo(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(Tu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Qo(e){let t="";if(ae(e))t=e;else if(q(e))for(let n=0;nZt(n,t))}const N0=e=>ae(e)?e:e==null?"":q(e)||me(e)&&(e.toString===Ts||!te(e.toString))?JSON.stringify(e,Ps,2):String(e),Ps=(e,t)=>t&&t.__v_isRef?Ps(e,t.value):vn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:xn(t)?{[`Set(${t.size})`]:[...t.values()]}:me(t)&&!q(t)&&!Os(t)?String(t):t;let Be;class xu{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Be,!t&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Be;try{return Be=this,t()}finally{Be=n}}}on(){Be=this}off(){Be=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ls=e=>(e.w&Ft)>0,xs=e=>(e.n&Ft)>0,Su=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(u==="length"||u>=i)&&s.push(c)})}else switch(n!==void 0&&s.push(l.get(n)),t){case"add":q(e)?Go(n)&&s.push(l.get("length")):(s.push(l.get(Qt)),vn(e)&&s.push(l.get(Po)));break;case"delete":q(e)||(s.push(l.get(Qt)),vn(e)&&s.push(l.get(Po)));break;case"set":vn(e)&&s.push(l.get(Qt));break}if(s.length===1)s[0]&&ko(s[0]);else{const i=[];for(const c of s)c&&i.push(...c);ko(Xo(i))}}function ko(e,t){const n=q(e)?e:[...e];for(const r of n)r.computed&&Ba(r);for(const r of n)r.computed||Ba(r)}function Ba(e,t){(e!==tt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function $u(e,t){var n;return(n=Rr.get(e))==null?void 0:n.get(t)}const Du=Wo("__proto__,__v_isRef,__isVue"),Ss=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Jn)),Mu=ea(),zu=ea(!1,!0),Nu=ea(!0),Ha=Vu();function Vu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=le(this);for(let a=0,l=this.length;a{e[t]=function(...n){In();const r=le(this)[t].apply(this,n);return Sn(),r}}),e}function Fu(e){const t=le(this);return Ve(t,"has",e),t.hasOwnProperty(e)}function ea(e=!1,t=!1){return function(r,o,a){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&a===(e?t?nd:zs:t?Ms:Ds).get(r))return r;const l=q(r);if(!e){if(l&&ie(Ha,o))return Reflect.get(Ha,o,a);if(o==="hasOwnProperty")return Fu}const s=Reflect.get(r,o,a);return(Jn(o)?Ss.has(o):Du(o))||(e||Ve(r,"get",o),t)?s:Te(s)?l&&Go(o)?s:s.value:me(s)?e?jt(s):Rn(s):s}}const Bu=Rs(),Hu=Rs(!0);function Rs(e=!1){return function(n,r,o,a){let l=n[r];if(wn(l)&&Te(l)&&!Te(o))return!1;if(!e&&(!$r(o)&&!wn(o)&&(l=le(l),o=le(o)),!q(n)&&Te(l)&&!Te(o)))return l.value=o,!0;const s=q(n)&&Go(r)?Number(r)e,Ur=e=>Reflect.getPrototypeOf(e);function mr(e,t,n=!1,r=!1){e=e.__v_raw;const o=le(e),a=le(t);n||(t!==a&&Ve(o,"get",t),Ve(o,"get",a));const{has:l}=Ur(o),s=r?ta:n?oa:Zn;if(l.call(o,t))return s(e.get(t));if(l.call(o,a))return s(e.get(a));e!==o&&e.get(t)}function vr(e,t=!1){const n=this.__v_raw,r=le(n),o=le(e);return t||(e!==o&&Ve(r,"has",e),Ve(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function gr(e,t=!1){return e=e.__v_raw,!t&&Ve(le(e),"iterate",Qt),Reflect.get(e,"size",e)}function ja(e){e=le(e);const t=le(this);return Ur(t).has.call(t,e)||(t.add(e),At(t,"add",e,e)),this}function Ua(e,t){t=le(t);const n=le(this),{has:r,get:o}=Ur(n);let a=r.call(n,e);a||(e=le(e),a=r.call(n,e));const l=o.call(n,e);return n.set(e,t),a?Xn(t,l)&&At(n,"set",e,t):At(n,"add",e,t),this}function Wa(e){const t=le(this),{has:n,get:r}=Ur(t);let o=n.call(t,e);o||(e=le(e),o=n.call(t,e)),r&&r.call(t,e);const a=t.delete(e);return o&&At(t,"delete",e,void 0),a}function qa(){const e=le(this),t=e.size!==0,n=e.clear();return t&&At(e,"clear",void 0,void 0),n}function _r(e,t){return function(r,o){const a=this,l=a.__v_raw,s=le(l),i=t?ta:e?oa:Zn;return!e&&Ve(s,"iterate",Qt),l.forEach((c,u)=>r.call(o,i(c),i(u),a))}}function br(e,t,n){return function(...r){const o=this.__v_raw,a=le(o),l=vn(a),s=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,c=o[e](...r),u=n?ta:t?oa:Zn;return!t&&Ve(a,"iterate",i?Po:Qt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function It(e){return function(...t){return e==="delete"?!1:this}}function Gu(){const e={get(a){return mr(this,a)},get size(){return gr(this)},has:vr,add:ja,set:Ua,delete:Wa,clear:qa,forEach:_r(!1,!1)},t={get(a){return mr(this,a,!1,!0)},get size(){return gr(this)},has:vr,add:ja,set:Ua,delete:Wa,clear:qa,forEach:_r(!1,!0)},n={get(a){return mr(this,a,!0)},get size(){return gr(this,!0)},has(a){return vr.call(this,a,!0)},add:It("add"),set:It("set"),delete:It("delete"),clear:It("clear"),forEach:_r(!0,!1)},r={get(a){return mr(this,a,!0,!0)},get size(){return gr(this,!0)},has(a){return vr.call(this,a,!0)},add:It("add"),set:It("set"),delete:It("delete"),clear:It("clear"),forEach:_r(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=br(a,!1,!1),n[a]=br(a,!0,!1),t[a]=br(a,!1,!0),r[a]=br(a,!0,!0)}),[e,n,t,r]}const[Yu,Qu,Ju,Xu]=Gu();function na(e,t){const n=t?e?Xu:Ju:e?Qu:Yu;return(r,o,a)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(ie(n,o)&&o in r?n:r,o,a)}const Zu={get:na(!1,!1)},ed={get:na(!1,!0)},td={get:na(!0,!1)},Ds=new WeakMap,Ms=new WeakMap,zs=new WeakMap,nd=new WeakMap;function rd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function od(e){return e.__v_skip||!Object.isExtensible(e)?0:rd(_u(e))}function Rn(e){return wn(e)?e:ra(e,!1,$s,Zu,Ds)}function ad(e){return ra(e,!1,Ku,ed,Ms)}function jt(e){return ra(e,!0,qu,td,zs)}function ra(e,t,n,r,o){if(!me(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const l=od(e);if(l===0)return e;const s=new Proxy(e,l===2?r:n);return o.set(e,s),s}function gn(e){return wn(e)?gn(e.__v_raw):!!(e&&e.__v_isReactive)}function wn(e){return!!(e&&e.__v_isReadonly)}function $r(e){return!!(e&&e.__v_isShallow)}function Ns(e){return gn(e)||wn(e)}function le(e){const t=e&&e.__v_raw;return t?le(t):e}function Vs(e){return Ir(e,"__v_skip",!0),e}const Zn=e=>me(e)?Rn(e):e,oa=e=>me(e)?jt(e):e;function aa(e){Nt&&tt&&(e=le(e),Is(e.dep||(e.dep=Xo())))}function la(e,t){e=le(e);const n=e.dep;n&&ko(n)}function Te(e){return!!(e&&e.__v_isRef===!0)}function G(e){return Fs(e,!1)}function it(e){return Fs(e,!0)}function Fs(e,t){return Te(e)?e:new ld(e,t)}class ld{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:le(t),this._value=n?t:Zn(t)}get value(){return aa(this),this._value}set value(t){const n=this.__v_isShallow||$r(t)||wn(t);t=n?t:le(t),Xn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Zn(t),la(this))}}function nt(e){return Te(e)?e.value:e}const sd={get:(e,t,n)=>nt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Te(o)&&!Te(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Bs(e){return gn(e)?e:new Proxy(e,sd)}class id{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>aa(this),()=>la(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function cd(e){return new id(e)}class ud{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return $u(le(this._object),this._key)}}class dd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Wr(e,t,n){return Te(e)?e:te(e)?new dd(e):me(e)&&arguments.length>1?fd(e,t,n):G(e)}function fd(e,t,n){const r=e[t];return Te(r)?r:new ud(e,t,n)}class pd{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Zo(t,()=>{this._dirty||(this._dirty=!0,la(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=le(this);return aa(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function hd(e,t,n=!1){let r,o;const a=te(e);return a?(r=e,o=ot):(r=e.get,o=e.set),new pd(r,o,a||!o,n)}function Vt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(a){ur(a,t,n)}return o}function qe(e,t,n,r){if(te(e)){const a=Vt(e,t,n,r);return a&&Es(a)&&a.catch(l=>{ur(l,t,n)}),a}const o=[];for(let a=0;a>>1;tr(Se[r])ft&&Se.splice(t,1)}function _d(e){q(e)?_n.push(...e):(!yt||!yt.includes(e,e.allowRecurse?qt+1:qt))&&_n.push(e),js()}function Ka(e,t=er?ft+1:0){for(;ttr(n)-tr(r)),qt=0;qte.id==null?1/0:e.id,bd=(e,t)=>{const n=tr(e)-tr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Us(e){Lo=!1,er=!0,Se.sort(bd);const t=ot;try{for(ft=0;ftae(m)?m.trim():m)),f&&(o=n.map(Sr))}let s,i=r[s=ao(t)]||r[s=ao(Ge(t))];!i&&a&&(i=r[s=ao(Cn(t))]),i&&qe(i,e,6,o);const c=r[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,qe(c,e,6,o)}}function Ws(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const a=e.emits;let l={},s=!1;if(!te(e)){const i=c=>{const u=Ws(c,t,!0);u&&(s=!0,Ae(l,u))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!a&&!s?(me(e)&&r.set(e,null),null):(q(a)?a.forEach(i=>l[i]=null):Ae(l,a),me(e)&&r.set(e,l),l)}function Kr(e,t){return!e||!sr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,Cn(t))||ie(e,t))}let je=null,qs=null;function Mr(e){const t=je;return je=e,qs=e&&e.type.__scopeId||null,t}function wd(e,t=je,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&al(-1);const a=Mr(t);let l;try{l=e(...o)}finally{Mr(a),r._d&&al(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function lo(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:a,propsOptions:[l],slots:s,attrs:i,emit:c,render:u,renderCache:f,data:p,setupState:m,ctx:y,inheritAttrs:E}=e;let T,g;const _=Mr(e);try{if(n.shapeFlag&4){const I=o||r;T=et(u.call(I,I,f,a,m,p,y)),g=i}else{const I=t;T=et(I.length>1?I(a,{attrs:i,slots:s,emit:c}):I(a,null)),g=t.props?i:Ed(i)}}catch(I){Gn.length=0,ur(I,e,1),T=Oe(Ke)}let R=T;if(g&&E!==!1){const I=Object.keys(g),{shapeFlag:j}=R;I.length&&j&7&&(l&&I.some(qo)&&(g=Td(g,l)),R=Bt(R,g))}return n.dirs&&(R=Bt(R),R.dirs=R.dirs?R.dirs.concat(n.dirs):n.dirs),n.transition&&(R.transition=n.transition),T=R,Mr(_),T}const Ed=e=>{let t;for(const n in e)(n==="class"||n==="style"||sr(n))&&((t||(t={}))[n]=e[n]);return t},Td=(e,t)=>{const n={};for(const r in e)(!qo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Od(e,t,n){const{props:r,children:o,component:a}=e,{props:l,children:s,patchFlag:i}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Ga(r,l,c):!!l;if(i&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Ks(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):_d(e)}function kd(e,t){return ia(e,null,t)}const yr={};function re(e,t,n){return ia(e,t,n)}function ia(e,t,{immediate:n,deep:r,flush:o,onTrack:a,onTrigger:l}=ye){var s;const i=ks()===((s=Le)==null?void 0:s.scope)?Le:null;let c,u=!1,f=!1;if(Te(e)?(c=()=>e.value,u=$r(e)):gn(e)?(c=()=>e,r=!0):q(e)?(f=!0,u=e.some(I=>gn(I)||$r(I)),c=()=>e.map(I=>{if(Te(I))return I.value;if(gn(I))return Yt(I);if(te(I))return Vt(I,i,2)})):te(e)?t?c=()=>Vt(e,i,2):c=()=>{if(!(i&&i.isUnmounted))return p&&p(),qe(e,i,3,[m])}:c=ot,t&&r){const I=c;c=()=>Yt(I())}let p,m=I=>{p=_.onStop=()=>{Vt(I,i,4)}},y;if(On)if(m=ot,t?n&&qe(t,i,3,[c(),f?[]:void 0,m]):c(),o==="sync"){const I=Tf();y=I.__watcherHandles||(I.__watcherHandles=[])}else return ot;let E=f?new Array(e.length).fill(yr):yr;const T=()=>{if(_.active)if(t){const I=_.run();(r||u||(f?I.some((j,S)=>Xn(j,E[S])):Xn(I,E)))&&(p&&p(),qe(t,i,3,[I,E===yr?void 0:f&&E[0]===yr?[]:E,m]),E=I)}else _.run()};T.allowRecurse=!!t;let g;o==="sync"?g=T:o==="post"?g=()=>ze(T,i&&i.suspense):(T.pre=!0,i&&(T.id=i.uid),g=()=>qr(T));const _=new Zo(c,g);t?n?T():E=_.run():o==="post"?ze(_.run.bind(_),i&&i.suspense):_.run();const R=()=>{_.stop(),i&&i.scope&&Ko(i.scope.effects,_)};return y&&y.push(R),R}function Ld(e,t,n){const r=this.proxy,o=ae(e)?e.includes(".")?Gs(r,e):()=>r[e]:e.bind(r,r);let a;te(t)?a=t:(a=t.handler,n=t);const l=Le;Tn(this);const s=ia(o,a.bind(r),n);return l?Tn(l):Xt(),s}function Gs(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{Yt(n,t)});else if(Os(e))for(const n in e)Yt(e[n],t);return e}function V0(e,t){const n=je;if(n===null)return e;const r=Qr(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let a=0;a{e.isMounted=!0}),ua(()=>{e.isUnmounting=!0}),e}const Ue=[Function,Array],Qs={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ue,onEnter:Ue,onAfterEnter:Ue,onEnterCancelled:Ue,onBeforeLeave:Ue,onLeave:Ue,onAfterLeave:Ue,onLeaveCancelled:Ue,onBeforeAppear:Ue,onAppear:Ue,onAfterAppear:Ue,onAppearCancelled:Ue},xd={name:"BaseTransition",props:Qs,setup(e,{slots:t}){const n=on(),r=Ys();let o;return()=>{const a=t.default&&ca(t.default(),!0);if(!a||!a.length)return;let l=a[0];if(a.length>1){for(const E of a)if(E.type!==Ke){l=E;break}}const s=le(e),{mode:i}=s;if(r.isLeaving)return so(l);const c=Ya(l);if(!c)return so(l);const u=nr(c,s,r,n);rr(c,u);const f=n.subTree,p=f&&Ya(f);let m=!1;const{getTransitionKey:y}=c.type;if(y){const E=y();o===void 0?o=E:E!==o&&(o=E,m=!0)}if(p&&p.type!==Ke&&(!Kt(c,p)||m)){const E=nr(p,s,r,n);if(rr(p,E),i==="out-in")return r.isLeaving=!0,E.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},so(l);i==="in-out"&&c.type!==Ke&&(E.delayLeave=(T,g,_)=>{const R=Js(r,p);R[String(p.key)]=p,T._leaveCb=()=>{g(),T._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=_})}return l}}},Cd=xd;function Js(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nr(e,t,n,r){const{appear:o,mode:a,persisted:l=!1,onBeforeEnter:s,onEnter:i,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:y,onBeforeAppear:E,onAppear:T,onAfterAppear:g,onAppearCancelled:_}=t,R=String(e.key),I=Js(n,e),j=(P,U)=>{P&&qe(P,r,9,U)},S=(P,U)=>{const X=U[1];j(P,U),q(P)?P.every(oe=>oe.length<=1)&&X():P.length<=1&&X()},z={mode:a,persisted:l,beforeEnter(P){let U=s;if(!n.isMounted)if(o)U=E||s;else return;P._leaveCb&&P._leaveCb(!0);const X=I[R];X&&Kt(e,X)&&X.el._leaveCb&&X.el._leaveCb(),j(U,[P])},enter(P){let U=i,X=c,oe=u;if(!n.isMounted)if(o)U=T||i,X=g||c,oe=_||u;else return;let H=!1;const ee=P._enterCb=K=>{H||(H=!0,K?j(oe,[P]):j(X,[P]),z.delayedLeave&&z.delayedLeave(),P._enterCb=void 0)};U?S(U,[P,ee]):ee()},leave(P,U){const X=String(e.key);if(P._enterCb&&P._enterCb(!0),n.isUnmounting)return U();j(f,[P]);let oe=!1;const H=P._leaveCb=ee=>{oe||(oe=!0,U(),ee?j(y,[P]):j(m,[P]),P._leaveCb=void 0,I[X]===e&&delete I[X])};I[X]=e,p?S(p,[P,H]):H()},clone(P){return nr(P,t,n,r)}};return z}function so(e){if(dr(e))return e=Bt(e),e.children=null,e}function Ya(e){return dr(e)?e.children?e.children[0]:void 0:e}function rr(e,t){e.shapeFlag&6&&e.component?rr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ca(e,t=!1,n){let r=[],o=0;for(let a=0;a1)for(let a=0;aAe({name:e.name},t,{setup:e}))():e}const Wn=e=>!!e.type.__asyncLoader;function N(e){te(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:a,suspensible:l=!0,onError:s}=e;let i=null,c,u=0;const f=()=>(u++,i=null,p()),p=()=>{let m;return i||(m=i=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),s)return new Promise((E,T)=>{s(y,()=>E(f()),()=>T(y),u+1)});throw y}).then(y=>m!==i&&i?i:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return B({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const m=Le;if(c)return()=>io(c,m);const y=_=>{i=null,ur(_,m,13,!r)};if(l&&m.suspense||On)return p().then(_=>()=>io(_,m)).catch(_=>(y(_),()=>r?Oe(r,{error:_}):null));const E=G(!1),T=G(),g=G(!!o);return o&&setTimeout(()=>{g.value=!1},o),a!=null&&setTimeout(()=>{if(!E.value&&!T.value){const _=new Error(`Async component timed out after ${a}ms.`);y(_),T.value=_}},a),p().then(()=>{E.value=!0,m.parent&&dr(m.parent.vnode)&&qr(m.parent.update)}).catch(_=>{y(_),T.value=_}),()=>{if(E.value&&c)return io(c,m);if(T.value&&r)return Oe(r,{error:T.value});if(n&&!g.value)return Oe(n)}}})}function io(e,t){const{ref:n,props:r,children:o,ce:a}=t.vnode,l=Oe(e,r,o);return l.ref=n,l.ce=a,delete t.vnode.ce,l}const dr=e=>e.type.__isKeepAlive;function Id(e,t){Xs(e,"a",t)}function Sd(e,t){Xs(e,"da",t)}function Xs(e,t,n=Le){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Gr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)dr(o.parent.vnode)&&Rd(r,t,n,o),o=o.parent}}function Rd(e,t,n,r){const o=Gr(t,e,r,!0);$n(()=>{Ko(r[t],o)},n)}function Gr(e,t,n=Le,r=!1){if(n){const o=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;In(),Tn(n);const s=qe(t,n,e,l);return Xt(),Sn(),s});return r?o.unshift(a):o.push(a),a}}const kt=e=>(t,n=Le)=>(!On||e==="sp")&&Gr(e,(...r)=>t(...r),n),$d=kt("bm"),ve=kt("m"),Dd=kt("bu"),Zs=kt("u"),ua=kt("bum"),$n=kt("um"),Md=kt("sp"),zd=kt("rtg"),Nd=kt("rtc");function Vd(e,t=Le){Gr("ec",e,t)}const ei="components";function at(e,t){return Bd(ei,e,!0,t)||e}const Fd=Symbol.for("v-ndc");function Bd(e,t,n=!0,r=!1){const o=je||Le;if(o){const a=o.type;if(e===ei){const s=yf(a,!1);if(s&&(s===t||s===Ge(t)||s===cr(Ge(t))))return a}const l=Qa(o[e]||a[e],t)||Qa(o.appContext[e],t);return!l&&r?a:l}}function Qa(e,t){return e&&(e[t]||e[Ge(t)]||e[cr(Ge(t))])}function F0(e,t,n,r){let o;const a=n&&n[r];if(q(e)||ae(e)){o=new Array(e.length);for(let l=0,s=e.length;lt(l,s,void 0,a&&a[s]));else{const l=Object.keys(e);o=new Array(l.length);for(let s=0,i=l.length;se?pi(e)?Qr(e)||e.proxy:xo(e.parent):null,qn=Ae(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>xo(e.parent),$root:e=>xo(e.root),$emit:e=>e.emit,$options:e=>da(e),$forceUpdate:e=>e.f||(e.f=()=>qr(e.update)),$nextTick:e=>e.n||(e.n=rn.bind(e.proxy)),$watch:e=>Ld.bind(e)}),co=(e,t)=>e!==ye&&!e.__isScriptSetup&&ie(e,t),Hd={get({_:e},t){const{ctx:n,setupState:r,data:o,props:a,accessCache:l,type:s,appContext:i}=e;let c;if(t[0]!=="$"){const m=l[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return a[t]}else{if(co(r,t))return l[t]=1,r[t];if(o!==ye&&ie(o,t))return l[t]=2,o[t];if((c=e.propsOptions[0])&&ie(c,t))return l[t]=3,a[t];if(n!==ye&&ie(n,t))return l[t]=4,n[t];Co&&(l[t]=0)}}const u=qn[t];let f,p;if(u)return t==="$attrs"&&Ve(e,"get",t),u(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(n!==ye&&ie(n,t))return l[t]=4,n[t];if(p=i.config.globalProperties,ie(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:a}=e;return co(o,t)?(o[t]=n,!0):r!==ye&&ie(r,t)?(r[t]=n,!0):ie(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:a}},l){let s;return!!n[l]||e!==ye&&ie(e,l)||co(t,l)||(s=a[0])&&ie(s,l)||ie(r,l)||ie(qn,l)||ie(o.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ja(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Co=!0;function jd(e){const t=da(e),n=e.proxy,r=e.ctx;Co=!1,t.beforeCreate&&Xa(t.beforeCreate,e,"bc");const{data:o,computed:a,methods:l,watch:s,provide:i,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:m,updated:y,activated:E,deactivated:T,beforeDestroy:g,beforeUnmount:_,destroyed:R,unmounted:I,render:j,renderTracked:S,renderTriggered:z,errorCaptured:P,serverPrefetch:U,expose:X,inheritAttrs:oe,components:H,directives:ee,filters:K}=t;if(c&&Ud(c,r,null),l)for(const _e in l){const ue=l[_e];te(ue)&&(r[_e]=ue.bind(n))}if(o){const _e=o.call(n,n);me(_e)&&(e.data=Rn(_e))}if(Co=!0,a)for(const _e in a){const ue=a[_e],mt=te(ue)?ue.bind(n,n):te(ue.get)?ue.get.bind(n,n):ot,Ct=!te(ue)&&te(ue.set)?ue.set.bind(n):ot,ct=A({get:mt,set:Ct});Object.defineProperty(r,_e,{enumerable:!0,configurable:!0,get:()=>ct.value,set:Me=>ct.value=Me})}if(s)for(const _e in s)ti(s[_e],r,n,_e);if(i){const _e=te(i)?i.call(n):i;Reflect.ownKeys(_e).forEach(ue=>{Jt(ue,_e[ue])})}u&&Xa(u,e,"c");function ce(_e,ue){q(ue)?ue.forEach(mt=>_e(mt.bind(n))):ue&&_e(ue.bind(n))}if(ce($d,f),ce(ve,p),ce(Dd,m),ce(Zs,y),ce(Id,E),ce(Sd,T),ce(Vd,P),ce(Nd,S),ce(zd,z),ce(ua,_),ce($n,I),ce(Md,U),q(X))if(X.length){const _e=e.exposed||(e.exposed={});X.forEach(ue=>{Object.defineProperty(_e,ue,{get:()=>n[ue],set:mt=>n[ue]=mt})})}else e.exposed||(e.exposed={});j&&e.render===ot&&(e.render=j),oe!=null&&(e.inheritAttrs=oe),H&&(e.components=H),ee&&(e.directives=ee)}function Ud(e,t,n=ot){q(e)&&(e=Io(e));for(const r in e){const o=e[r];let a;me(o)?"default"in o?a=Ee(o.from||r,o.default,!0):a=Ee(o.from||r):a=Ee(o),Te(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):t[r]=a}}function Xa(e,t,n){qe(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function ti(e,t,n,r){const o=r.includes(".")?Gs(n,r):()=>n[r];if(ae(e)){const a=t[e];te(a)&&re(o,a)}else if(te(e))re(o,e.bind(n));else if(me(e))if(q(e))e.forEach(a=>ti(a,t,n,r));else{const a=te(e.handler)?e.handler.bind(n):t[e.handler];te(a)&&re(o,a,e)}}function da(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:l}}=e.appContext,s=a.get(t);let i;return s?i=s:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(c=>zr(i,c,l,!0)),zr(i,t,l)),me(t)&&a.set(t,i),i}function zr(e,t,n,r=!1){const{mixins:o,extends:a}=t;a&&zr(e,a,n,!0),o&&o.forEach(l=>zr(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const s=Wd[l]||n&&n[l];e[l]=s?s(e[l],t[l]):t[l]}return e}const Wd={data:Za,props:el,emits:el,methods:jn,computed:jn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:jn,directives:jn,watch:Kd,provide:Za,inject:qd};function Za(e,t){return t?e?function(){return Ae(te(e)?e.call(this,this):e,te(t)?t.call(this,this):t)}:t:e}function qd(e,t){return jn(Io(e),Io(t))}function Io(e){if(q(e)){const t={};for(let n=0;n1)return n&&te(t)?t.call(r&&r.proxy):t}}function Qd(e,t,n,r=!1){const o={},a={};Ir(a,Yr,1),e.propsDefaults=Object.create(null),ri(e,t,o,a);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=r?o:ad(o):e.type.props?e.props=o:e.props=a,e.attrs=a}function Jd(e,t,n,r){const{props:o,attrs:a,vnode:{patchFlag:l}}=e,s=le(o),[i]=e.propsOptions;let c=!1;if((r||l>0)&&!(l&16)){if(l&8){const u=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[p,m]=oi(f,t,!0);Ae(l,p),m&&s.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!i)return me(e)&&r.set(e,mn),mn;if(q(a))for(let u=0;u-1,m[1]=E<0||y-1||ie(m,"default"))&&s.push(f)}}}const c=[l,s];return me(e)&&r.set(e,c),c}function tl(e){return e[0]!=="$"}function nl(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function rl(e,t){return nl(e)===nl(t)}function ol(e,t){return q(t)?t.findIndex(n=>rl(n,e)):te(t)&&rl(t,e)?0:-1}const ai=e=>e[0]==="_"||e==="$stable",fa=e=>q(e)?e.map(et):[et(e)],Xd=(e,t,n)=>{if(t._n)return t;const r=wd((...o)=>fa(t(...o)),n);return r._c=!1,r},li=(e,t,n)=>{const r=e._ctx;for(const o in e){if(ai(o))continue;const a=e[o];if(te(a))t[o]=Xd(o,a,r);else if(a!=null){const l=fa(a);t[o]=()=>l}}},si=(e,t)=>{const n=fa(t);e.slots.default=()=>n},Zd=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=le(t),Ir(t,"_",n)):li(t,e.slots={})}else e.slots={},t&&si(e,t);Ir(e.slots,Yr,1)},ef=(e,t,n)=>{const{vnode:r,slots:o}=e;let a=!0,l=ye;if(r.shapeFlag&32){const s=t._;s?n&&s===1?a=!1:(Ae(o,t),!n&&s===1&&delete o._):(a=!t.$stable,li(t,o)),l=t}else t&&(si(e,t),l={default:1});if(a)for(const s in o)!ai(s)&&!(s in l)&&delete o[s]};function Vr(e,t,n,r,o=!1){if(q(e)){e.forEach((p,m)=>Vr(p,t&&(q(t)?t[m]:t),n,r,o));return}if(Wn(r)&&!o)return;const a=r.shapeFlag&4?Qr(r.component)||r.component.proxy:r.el,l=o?null:a,{i:s,r:i}=e,c=t&&t.r,u=s.refs===ye?s.refs={}:s.refs,f=s.setupState;if(c!=null&&c!==i&&(ae(c)?(u[c]=null,ie(f,c)&&(f[c]=null)):Te(c)&&(c.value=null)),te(i))Vt(i,s,12,[l,u]);else{const p=ae(i),m=Te(i);if(p||m){const y=()=>{if(e.f){const E=p?ie(f,i)?f[i]:u[i]:i.value;o?q(E)&&Ko(E,a):q(E)?E.includes(a)||E.push(a):p?(u[i]=[a],ie(f,i)&&(f[i]=u[i])):(i.value=[a],e.k&&(u[e.k]=i.value))}else p?(u[i]=l,ie(f,i)&&(f[i]=l)):m&&(i.value=l,e.k&&(u[e.k]=l))};l?(y.id=-1,ze(y,n)):y()}}}let St=!1;const wr=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Er=e=>e.nodeType===8;function tf(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:a,parentNode:l,remove:s,insert:i,createComment:c}}=e,u=(g,_)=>{if(!_.hasChildNodes()){n(null,g,_),Dr(),_._vnode=g;return}St=!1,f(_.firstChild,g,null,null,null),Dr(),_._vnode=g,St&&console.error("Hydration completed but contains mismatches.")},f=(g,_,R,I,j,S=!1)=>{const z=Er(g)&&g.data==="[",P=()=>E(g,_,R,I,j,z),{type:U,ref:X,shapeFlag:oe,patchFlag:H}=_;let ee=g.nodeType;_.el=g,H===-2&&(S=!1,_.dynamicChildren=null);let K=null;switch(U){case En:ee!==3?_.children===""?(i(_.el=o(""),l(g),g),K=g):K=P():(g.data!==_.children&&(St=!0,g.data=_.children),K=a(g));break;case Ke:ee!==8||z?K=P():K=a(g);break;case Kn:if(z&&(g=a(g),ee=g.nodeType),ee===1||ee===3){K=g;const Ce=!_.children.length;for(let ce=0;ce<_.staticCount;ce++)Ce&&(_.children+=K.nodeType===1?K.outerHTML:K.data),ce===_.staticCount-1&&(_.anchor=K),K=a(K);return z?a(K):K}else P();break;case He:z?K=y(g,_,R,I,j,S):K=P();break;default:if(oe&1)ee!==1||_.type.toLowerCase()!==g.tagName.toLowerCase()?K=P():K=p(g,_,R,I,j,S);else if(oe&6){_.slotScopeIds=j;const Ce=l(g);if(t(_,Ce,null,R,I,wr(Ce),S),K=z?T(g):a(g),K&&Er(K)&&K.data==="teleport end"&&(K=a(K)),Wn(_)){let ce;z?(ce=Oe(He),ce.anchor=K?K.previousSibling:Ce.lastChild):ce=g.nodeType===3?fi(""):Oe("div"),ce.el=g,_.component.subTree=ce}}else oe&64?ee!==8?K=P():K=_.type.hydrate(g,_,R,I,j,S,e,m):oe&128&&(K=_.type.hydrate(g,_,R,I,wr(l(g)),j,S,e,f))}return X!=null&&Vr(X,null,I,_),K},p=(g,_,R,I,j,S)=>{S=S||!!_.dynamicChildren;const{type:z,props:P,patchFlag:U,shapeFlag:X,dirs:oe}=_,H=z==="input"&&oe||z==="option";if(H||U!==-1){if(oe&&dt(_,null,R,"created"),P)if(H||!S||U&48)for(const K in P)(H&&K.endsWith("value")||sr(K)&&!Un(K))&&r(g,K,null,P[K],!1,void 0,R);else P.onClick&&r(g,"onClick",null,P.onClick,!1,void 0,R);let ee;if((ee=P&&P.onVnodeBeforeMount)&&We(ee,R,_),oe&&dt(_,null,R,"beforeMount"),((ee=P&&P.onVnodeMounted)||oe)&&Ks(()=>{ee&&We(ee,R,_),oe&&dt(_,null,R,"mounted")},I),X&16&&!(P&&(P.innerHTML||P.textContent))){let K=m(g.firstChild,_,g,R,I,j,S);for(;K;){St=!0;const Ce=K;K=K.nextSibling,s(Ce)}}else X&8&&g.textContent!==_.children&&(St=!0,g.textContent=_.children)}return g.nextSibling},m=(g,_,R,I,j,S,z)=>{z=z||!!_.dynamicChildren;const P=_.children,U=P.length;for(let X=0;X{const{slotScopeIds:z}=_;z&&(j=j?j.concat(z):z);const P=l(g),U=m(a(g),_,P,R,I,j,S);return U&&Er(U)&&U.data==="]"?a(_.anchor=U):(St=!0,i(_.anchor=c("]"),P,U),U)},E=(g,_,R,I,j,S)=>{if(St=!0,_.el=null,S){const U=T(g);for(;;){const X=a(g);if(X&&X!==U)s(X);else break}}const z=a(g),P=l(g);return s(g),n(null,_,P,z,R,I,wr(P),j),z},T=g=>{let _=0;for(;g;)if(g=a(g),g&&Er(g)&&(g.data==="["&&_++,g.data==="]")){if(_===0)return a(g);_--}return g};return[u,f]}const ze=Ks;function nf(e){return rf(e,tf)}function rf(e,t){const n=Oo();n.__VUE__=!0;const{insert:r,remove:o,patchProp:a,createElement:l,createText:s,createComment:i,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:y}=e,E=(h,v,b,O=null,L=null,x=null,V=!1,$=null,D=!!v.dynamicChildren)=>{if(h===v)return;h&&!Kt(h,v)&&(O=k(h),Me(h,L,x,!0),h=null),v.patchFlag===-2&&(D=!1,v.dynamicChildren=null);const{type:C,ref:Q,shapeFlag:W}=v;switch(C){case En:T(h,v,b,O);break;case Ke:g(h,v,b,O);break;case Kn:h==null&&_(v,b,O,V);break;case He:H(h,v,b,O,L,x,V,$,D);break;default:W&1?j(h,v,b,O,L,x,V,$,D):W&6?ee(h,v,b,O,L,x,V,$,D):(W&64||W&128)&&C.process(h,v,b,O,L,x,V,$,D,M)}Q!=null&&L&&Vr(Q,h&&h.ref,x,v||h,!v)},T=(h,v,b,O)=>{if(h==null)r(v.el=s(v.children),b,O);else{const L=v.el=h.el;v.children!==h.children&&c(L,v.children)}},g=(h,v,b,O)=>{h==null?r(v.el=i(v.children||""),b,O):v.el=h.el},_=(h,v,b,O)=>{[h.el,h.anchor]=y(h.children,v,b,O,h.el,h.anchor)},R=({el:h,anchor:v},b,O)=>{let L;for(;h&&h!==v;)L=p(h),r(h,b,O),h=L;r(v,b,O)},I=({el:h,anchor:v})=>{let b;for(;h&&h!==v;)b=p(h),o(h),h=b;o(v)},j=(h,v,b,O,L,x,V,$,D)=>{V=V||v.type==="svg",h==null?S(v,b,O,L,x,V,$,D):U(h,v,L,x,V,$,D)},S=(h,v,b,O,L,x,V,$)=>{let D,C;const{type:Q,props:W,shapeFlag:J,transition:Z,dirs:ne}=h;if(D=h.el=l(h.type,x,W&&W.is,W),J&8?u(D,h.children):J&16&&P(h.children,D,null,O,L,x&&Q!=="foreignObject",V,$),ne&&dt(h,null,O,"created"),z(D,h,h.scopeId,V,O),W){for(const he in W)he!=="value"&&!Un(he)&&a(D,he,null,W[he],x,h.children,O,L,Ie);"value"in W&&a(D,"value",null,W.value),(C=W.onVnodeBeforeMount)&&We(C,O,h)}ne&&dt(h,null,O,"beforeMount");const be=(!L||L&&!L.pendingBranch)&&Z&&!Z.persisted;be&&Z.beforeEnter(D),r(D,v,b),((C=W&&W.onVnodeMounted)||be||ne)&&ze(()=>{C&&We(C,O,h),be&&Z.enter(D),ne&&dt(h,null,O,"mounted")},L)},z=(h,v,b,O,L)=>{if(b&&m(h,b),O)for(let x=0;x{for(let C=D;C{const $=v.el=h.el;let{patchFlag:D,dynamicChildren:C,dirs:Q}=v;D|=h.patchFlag&16;const W=h.props||ye,J=v.props||ye;let Z;b&&Ut(b,!1),(Z=J.onVnodeBeforeUpdate)&&We(Z,b,v,h),Q&&dt(v,h,b,"beforeUpdate"),b&&Ut(b,!0);const ne=L&&v.type!=="foreignObject";if(C?X(h.dynamicChildren,C,$,b,O,ne,x):V||ue(h,v,$,null,b,O,ne,x,!1),D>0){if(D&16)oe($,v,W,J,b,O,L);else if(D&2&&W.class!==J.class&&a($,"class",null,J.class,L),D&4&&a($,"style",W.style,J.style,L),D&8){const be=v.dynamicProps;for(let he=0;he{Z&&We(Z,b,v,h),Q&&dt(v,h,b,"updated")},O)},X=(h,v,b,O,L,x,V)=>{for(let $=0;${if(b!==O){if(b!==ye)for(const $ in b)!Un($)&&!($ in O)&&a(h,$,b[$],null,V,v.children,L,x,Ie);for(const $ in O){if(Un($))continue;const D=O[$],C=b[$];D!==C&&$!=="value"&&a(h,$,C,D,V,v.children,L,x,Ie)}"value"in O&&a(h,"value",b.value,O.value)}},H=(h,v,b,O,L,x,V,$,D)=>{const C=v.el=h?h.el:s(""),Q=v.anchor=h?h.anchor:s("");let{patchFlag:W,dynamicChildren:J,slotScopeIds:Z}=v;Z&&($=$?$.concat(Z):Z),h==null?(r(C,b,O),r(Q,b,O),P(v.children,b,Q,L,x,V,$,D)):W>0&&W&64&&J&&h.dynamicChildren?(X(h.dynamicChildren,J,b,L,x,V,$),(v.key!=null||L&&v===L.subTree)&&ii(h,v,!0)):ue(h,v,b,Q,L,x,V,$,D)},ee=(h,v,b,O,L,x,V,$,D)=>{v.slotScopeIds=$,h==null?v.shapeFlag&512?L.ctx.activate(v,b,O,V,D):K(v,b,O,L,x,V,D):Ce(h,v,D)},K=(h,v,b,O,L,x,V)=>{const $=h.component=mf(h,O,L);if(dr(h)&&($.ctx.renderer=M),vf($),$.asyncDep){if(L&&L.registerDep($,ce),!h.el){const D=$.subTree=Oe(Ke);g(null,D,v,b)}return}ce($,h,v,b,L,x,V)},Ce=(h,v,b)=>{const O=v.component=h.component;if(Od(h,v,b))if(O.asyncDep&&!O.asyncResolved){_e(O,v,b);return}else O.next=v,gd(O.update),O.update();else v.el=h.el,O.vnode=v},ce=(h,v,b,O,L,x,V)=>{const $=()=>{if(h.isMounted){let{next:Q,bu:W,u:J,parent:Z,vnode:ne}=h,be=Q,he;Ut(h,!1),Q?(Q.el=ne.el,_e(h,Q,V)):Q=ne,W&&xr(W),(he=Q.props&&Q.props.onVnodeBeforeUpdate)&&We(he,Z,Q,ne),Ut(h,!0);const ke=lo(h),Ze=h.subTree;h.subTree=ke,E(Ze,ke,f(Ze.el),k(Ze),h,L,x),Q.el=ke.el,be===null&&Ad(h,ke.el),J&&ze(J,L),(he=Q.props&&Q.props.onVnodeUpdated)&&ze(()=>We(he,Z,Q,ne),L)}else{let Q;const{el:W,props:J}=v,{bm:Z,m:ne,parent:be}=h,he=Wn(v);if(Ut(h,!1),Z&&xr(Z),!he&&(Q=J&&J.onVnodeBeforeMount)&&We(Q,be,v),Ut(h,!0),W&&de){const ke=()=>{h.subTree=lo(h),de(W,h.subTree,h,L,null)};he?v.type.__asyncLoader().then(()=>!h.isUnmounted&&ke()):ke()}else{const ke=h.subTree=lo(h);E(null,ke,b,O,h,L,x),v.el=ke.el}if(ne&&ze(ne,L),!he&&(Q=J&&J.onVnodeMounted)){const ke=v;ze(()=>We(Q,be,ke),L)}(v.shapeFlag&256||be&&Wn(be.vnode)&&be.vnode.shapeFlag&256)&&h.a&&ze(h.a,L),h.isMounted=!0,v=b=O=null}},D=h.effect=new Zo($,()=>qr(C),h.scope),C=h.update=()=>D.run();C.id=h.uid,Ut(h,!0),C()},_e=(h,v,b)=>{v.component=h;const O=h.vnode.props;h.vnode=v,h.next=null,Jd(h,v.props,O,b),ef(h,v.children,b),In(),Ka(),Sn()},ue=(h,v,b,O,L,x,V,$,D=!1)=>{const C=h&&h.children,Q=h?h.shapeFlag:0,W=v.children,{patchFlag:J,shapeFlag:Z}=v;if(J>0){if(J&128){Ct(C,W,b,O,L,x,V,$,D);return}else if(J&256){mt(C,W,b,O,L,x,V,$,D);return}}Z&8?(Q&16&&Ie(C,L,x),W!==C&&u(b,W)):Q&16?Z&16?Ct(C,W,b,O,L,x,V,$,D):Ie(C,L,x,!0):(Q&8&&u(b,""),Z&16&&P(W,b,O,L,x,V,$,D))},mt=(h,v,b,O,L,x,V,$,D)=>{h=h||mn,v=v||mn;const C=h.length,Q=v.length,W=Math.min(C,Q);let J;for(J=0;JQ?Ie(h,L,x,!0,!1,W):P(v,b,O,L,x,V,$,D,W)},Ct=(h,v,b,O,L,x,V,$,D)=>{let C=0;const Q=v.length;let W=h.length-1,J=Q-1;for(;C<=W&&C<=J;){const Z=h[C],ne=v[C]=D?Dt(v[C]):et(v[C]);if(Kt(Z,ne))E(Z,ne,b,null,L,x,V,$,D);else break;C++}for(;C<=W&&C<=J;){const Z=h[W],ne=v[J]=D?Dt(v[J]):et(v[J]);if(Kt(Z,ne))E(Z,ne,b,null,L,x,V,$,D);else break;W--,J--}if(C>W){if(C<=J){const Z=J+1,ne=ZJ)for(;C<=W;)Me(h[C],L,x,!0),C++;else{const Z=C,ne=C,be=new Map;for(C=ne;C<=J;C++){const Fe=v[C]=D?Dt(v[C]):et(v[C]);Fe.key!=null&&be.set(Fe.key,C)}let he,ke=0;const Ze=J-ne+1;let cn=!1,$a=0;const Nn=new Array(Ze);for(C=0;C=Ze){Me(Fe,L,x,!0);continue}let ut;if(Fe.key!=null)ut=be.get(Fe.key);else for(he=ne;he<=J;he++)if(Nn[he-ne]===0&&Kt(Fe,v[he])){ut=he;break}ut===void 0?Me(Fe,L,x,!0):(Nn[ut-ne]=C+1,ut>=$a?$a=ut:cn=!0,E(Fe,v[ut],b,null,L,x,V,$,D),ke++)}const Da=cn?of(Nn):mn;for(he=Da.length-1,C=Ze-1;C>=0;C--){const Fe=ne+C,ut=v[Fe],Ma=Fe+1{const{el:x,type:V,transition:$,children:D,shapeFlag:C}=h;if(C&6){ct(h.component.subTree,v,b,O);return}if(C&128){h.suspense.move(v,b,O);return}if(C&64){V.move(h,v,b,M);return}if(V===He){r(x,v,b);for(let W=0;W$.enter(x),L);else{const{leave:W,delayLeave:J,afterLeave:Z}=$,ne=()=>r(x,v,b),be=()=>{W(x,()=>{ne(),Z&&Z()})};J?J(x,ne,be):be()}else r(x,v,b)},Me=(h,v,b,O=!1,L=!1)=>{const{type:x,props:V,ref:$,children:D,dynamicChildren:C,shapeFlag:Q,patchFlag:W,dirs:J}=h;if($!=null&&Vr($,null,b,h,!0),Q&256){v.ctx.deactivate(h);return}const Z=Q&1&&J,ne=!Wn(h);let be;if(ne&&(be=V&&V.onVnodeBeforeUnmount)&&We(be,v,h),Q&6)hr(h.component,b,O);else{if(Q&128){h.suspense.unmount(b,O);return}Z&&dt(h,null,v,"beforeUnmount"),Q&64?h.type.remove(h,v,b,L,M,O):C&&(x!==He||W>0&&W&64)?Ie(C,v,b,!1,!0):(x===He&&W&384||!L&&Q&16)&&Ie(D,v,b),O&&ln(h)}(ne&&(be=V&&V.onVnodeUnmounted)||Z)&&ze(()=>{be&&We(be,v,h),Z&&dt(h,null,v,"unmounted")},b)},ln=h=>{const{type:v,el:b,anchor:O,transition:L}=h;if(v===He){sn(b,O);return}if(v===Kn){I(h);return}const x=()=>{o(b),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(h.shapeFlag&1&&L&&!L.persisted){const{leave:V,delayLeave:$}=L,D=()=>V(b,x);$?$(h.el,x,D):D()}else x()},sn=(h,v)=>{let b;for(;h!==v;)b=p(h),o(h),h=b;o(v)},hr=(h,v,b)=>{const{bum:O,scope:L,update:x,subTree:V,um:$}=h;O&&xr(O),L.stop(),x&&(x.active=!1,Me(V,h,v,b)),$&&ze($,v),ze(()=>{h.isUnmounted=!0},v),v&&v.pendingBranch&&!v.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===v.pendingId&&(v.deps--,v.deps===0&&v.resolve())},Ie=(h,v,b,O=!1,L=!1,x=0)=>{for(let V=x;Vh.shapeFlag&6?k(h.component.subTree):h.shapeFlag&128?h.suspense.next():p(h.anchor||h.el),F=(h,v,b)=>{h==null?v._vnode&&Me(v._vnode,null,null,!0):E(v._vnode||null,h,v,null,null,null,b),Ka(),Dr(),v._vnode=h},M={p:E,um:Me,m:ct,r:ln,mt:K,mc:P,pc:ue,pbc:X,n:k,o:e};let Y,de;return t&&([Y,de]=t(M)),{render:F,hydrate:Y,createApp:Yd(F,Y)}}function Ut({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ii(e,t,n=!1){const r=e.children,o=t.children;if(q(r)&&q(o))for(let a=0;a>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,l=n[a-1];a-- >0;)n[a]=l,l=t[l];return n}const af=e=>e.__isTeleport,He=Symbol.for("v-fgt"),En=Symbol.for("v-txt"),Ke=Symbol.for("v-cmt"),Kn=Symbol.for("v-stc"),Gn=[];let rt=null;function lf(e=!1){Gn.push(rt=e?null:[])}function sf(){Gn.pop(),rt=Gn[Gn.length-1]||null}let or=1;function al(e){or+=e}function ci(e){return e.dynamicChildren=or>0?rt||mn:null,sf(),or>0&&rt&&rt.push(e),e}function B0(e,t,n,r,o,a){return ci(di(e,t,n,r,o,a,!0))}function cf(e,t,n,r,o){return ci(Oe(e,t,n,r,o,!0))}function Ro(e){return e?e.__v_isVNode===!0:!1}function Kt(e,t){return e.type===t.type&&e.key===t.key}const Yr="__vInternal",ui=({key:e})=>e??null,Cr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ae(e)||Te(e)||te(e)?{i:je,r:e,k:t,f:!!n}:e:null);function di(e,t=null,n=null,r=0,o=null,a=e===He?0:1,l=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ui(t),ref:t&&Cr(t),scopeId:qs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:je};return s?(pa(i,n),a&128&&e.normalize(i)):n&&(i.shapeFlag|=ae(n)?8:16),or>0&&!l&&rt&&(i.patchFlag>0||a&6)&&i.patchFlag!==32&&rt.push(i),i}const Oe=uf;function uf(e,t=null,n=null,r=0,o=null,a=!1){if((!e||e===Fd)&&(e=Ke),Ro(e)){const s=Bt(e,t,!0);return n&&pa(s,n),or>0&&!a&&rt&&(s.shapeFlag&6?rt[rt.indexOf(e)]=s:rt.push(s)),s.patchFlag|=-2,s}if(wf(e)&&(e=e.__vccOpts),t){t=df(t);let{class:s,style:i}=t;s&&!ae(s)&&(t.class=Qo(s)),me(i)&&(Ns(i)&&!q(i)&&(i=Ae({},i)),t.style=Yo(i))}const l=ae(e)?1:Pd(e)?128:af(e)?64:me(e)?4:te(e)?2:0;return di(e,t,n,r,o,l,a,!0)}function df(e){return e?Ns(e)||Yr in e?Ae({},e):e:null}function Bt(e,t,n=!1){const{props:r,ref:o,patchFlag:a,children:l}=e,s=t?ff(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ui(s),ref:t&&t.ref?n&&o?q(o)?o.concat(Cr(t)):[o,Cr(t)]:Cr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==He?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Bt(e.ssContent),ssFallback:e.ssFallback&&Bt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function fi(e=" ",t=0){return Oe(En,null,e,t)}function H0(e,t){const n=Oe(Kn,null,e);return n.staticCount=t,n}function j0(e="",t=!1){return t?(lf(),cf(Ke,null,e)):Oe(Ke,null,e)}function et(e){return e==null||typeof e=="boolean"?Oe(Ke):q(e)?Oe(He,null,e.slice()):typeof e=="object"?Dt(e):Oe(En,null,String(e))}function Dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Bt(e)}function pa(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),pa(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(Yr in t)?t._ctx=je:o===3&&je&&(je.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else te(t)?(t={default:t,_ctx:je},n=32):(t=String(t),r&64?(n=16,t=[fi(t)]):n=8);e.children=t,e.shapeFlag|=n}function ff(...e){const t={};for(let n=0;nLe||je;let ha,un,ll="__VUE_INSTANCE_SETTERS__";(un=Oo()[ll])||(un=Oo()[ll]=[]),un.push(e=>Le=e),ha=e=>{un.length>1?un.forEach(t=>t(e)):un[0](e)};const Tn=e=>{ha(e),e.scope.on()},Xt=()=>{Le&&Le.scope.off(),ha(null)};function pi(e){return e.vnode.shapeFlag&4}let On=!1;function vf(e,t=!1){On=t;const{props:n,children:r}=e.vnode,o=pi(e);Qd(e,n,o,t),Zd(e,r);const a=o?gf(e,t):void 0;return On=!1,a}function gf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Vs(new Proxy(e.ctx,Hd));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?bf(e):null;Tn(e),In();const a=Vt(r,e,0,[e.props,o]);if(Sn(),Xt(),Es(a)){if(a.then(Xt,Xt),t)return a.then(l=>{sl(e,l,t)}).catch(l=>{ur(l,e,0)});e.asyncDep=a}else sl(e,a,t)}else hi(e,t)}function sl(e,t,n){te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:me(t)&&(e.setupState=Bs(t)),hi(e,n)}let il;function hi(e,t,n){const r=e.type;if(!e.render){if(!t&&il&&!r.render){const o=r.template||da(e).template;if(o){const{isCustomElement:a,compilerOptions:l}=e.appContext.config,{delimiters:s,compilerOptions:i}=r,c=Ae(Ae({isCustomElement:a,delimiters:s},l),i);r.render=il(o,c)}}e.render=r.render||ot}Tn(e),In(),jd(e),Sn(),Xt()}function _f(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Ve(e,"get","$attrs"),t[n]}}))}function bf(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return _f(e)},slots:e.slots,emit:e.emit,expose:t}}function Qr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Bs(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)},has(t,n){return n in t||n in qn}}))}function yf(e,t=!0){return te(e)?e.displayName||e.name:e.name||t&&e.__name}function wf(e){return te(e)&&"__vccOpts"in e}const A=(e,t)=>hd(e,t,On);function d(e,t,n){const r=arguments.length;return r===2?me(t)&&!q(t)?Ro(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ro(n)&&(n=[n]),Oe(e,t,n))}const Ef=Symbol.for("v-scx"),Tf=()=>Ee(Ef),Of="3.3.4",Af="http://www.w3.org/2000/svg",Gt=typeof document<"u"?document:null,cl=Gt&&Gt.createElement("template"),Pf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?Gt.createElementNS(Af,e):Gt.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Gt.createTextNode(e),createComment:e=>Gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,a){const l=n?n.previousSibling:t.lastChild;if(o&&(o===a||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===a||!(o=o.nextSibling)););else{cl.innerHTML=r?`${e}`:e;const s=cl.content;if(r){const i=s.firstChild;for(;i.firstChild;)s.appendChild(i.firstChild);s.removeChild(i)}t.insertBefore(s,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function kf(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Lf(e,t,n){const r=e.style,o=ae(n);if(n&&!o){if(t&&!ae(t))for(const a in t)n[a]==null&&$o(r,a,"");for(const a in n)$o(r,a,n[a])}else{const a=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=a)}}const ul=/\s*!important$/;function $o(e,t,n){if(q(n))n.forEach(r=>$o(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=xf(e,t);ul.test(n)?e.setProperty(Cn(r),n.replace(ul,""),"important"):e[r]=n}}const dl=["Webkit","Moz","ms"],uo={};function xf(e,t){const n=uo[t];if(n)return n;let r=Ge(t);if(r!=="filter"&&r in e)return uo[t]=r;r=cr(r);for(let o=0;ofo||(Df.then(()=>fo=0),fo=Date.now());function zf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;qe(Nf(r,n.value),t,5,[r])};return n.value=e,n.attached=Mf(),n}function Nf(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const hl=/^on[a-z]/,Vf=(e,t,n,r,o=!1,a,l,s,i)=>{t==="class"?kf(e,r,o):t==="style"?Lf(e,n,r):sr(t)?qo(t)||Rf(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ff(e,t,r,o))?If(e,t,r,a,l,s,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Cf(e,t,r,o))};function Ff(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&hl.test(t)&&te(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||hl.test(t)&&ae(n)?!1:t in e}const Rt="transition",Vn="animation",Pt=(e,{slots:t})=>d(Cd,vi(e),t);Pt.displayName="Transition";const mi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Bf=Pt.props=Ae({},Qs,mi),Wt=(e,t=[])=>{q(e)?e.forEach(n=>n(...t)):e&&e(...t)},ml=e=>e?q(e)?e.some(t=>t.length>1):e.length>1:!1;function vi(e){const t={};for(const H in e)H in mi||(t[H]=e[H]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:a=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=a,appearActiveClass:c=l,appearToClass:u=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,y=Hf(o),E=y&&y[0],T=y&&y[1],{onBeforeEnter:g,onEnter:_,onEnterCancelled:R,onLeave:I,onLeaveCancelled:j,onBeforeAppear:S=g,onAppear:z=_,onAppearCancelled:P=R}=t,U=(H,ee,K)=>{$t(H,ee?u:s),$t(H,ee?c:l),K&&K()},X=(H,ee)=>{H._isLeaving=!1,$t(H,f),$t(H,m),$t(H,p),ee&&ee()},oe=H=>(ee,K)=>{const Ce=H?z:_,ce=()=>U(ee,H,K);Wt(Ce,[ee,ce]),vl(()=>{$t(ee,H?i:a),gt(ee,H?u:s),ml(Ce)||gl(ee,r,E,ce)})};return Ae(t,{onBeforeEnter(H){Wt(g,[H]),gt(H,a),gt(H,l)},onBeforeAppear(H){Wt(S,[H]),gt(H,i),gt(H,c)},onEnter:oe(!1),onAppear:oe(!0),onLeave(H,ee){H._isLeaving=!0;const K=()=>X(H,ee);gt(H,f),_i(),gt(H,p),vl(()=>{H._isLeaving&&($t(H,f),gt(H,m),ml(I)||gl(H,r,T,K))}),Wt(I,[H,K])},onEnterCancelled(H){U(H,!1),Wt(R,[H])},onAppearCancelled(H){U(H,!0),Wt(P,[H])},onLeaveCancelled(H){X(H),Wt(j,[H])}})}function Hf(e){if(e==null)return null;if(me(e))return[po(e.enter),po(e.leave)];{const t=po(e);return[t,t]}}function po(e){return wu(e)}function gt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function $t(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function vl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let jf=0;function gl(e,t,n,r){const o=e._endId=++jf,a=()=>{o===e._endId&&r()};if(n)return setTimeout(a,n);const{type:l,timeout:s,propCount:i}=gi(e,t);if(!l)return r();const c=l+"end";let u=0;const f=()=>{e.removeEventListener(c,p),a()},p=m=>{m.target===e&&++u>=i&&f()};setTimeout(()=>{u(n[y]||"").split(", "),o=r(`${Rt}Delay`),a=r(`${Rt}Duration`),l=_l(o,a),s=r(`${Vn}Delay`),i=r(`${Vn}Duration`),c=_l(s,i);let u=null,f=0,p=0;t===Rt?l>0&&(u=Rt,f=l,p=a.length):t===Vn?c>0&&(u=Vn,f=c,p=i.length):(f=Math.max(l,c),u=f>0?l>c?Rt:Vn:null,p=u?u===Rt?a.length:i.length:0);const m=u===Rt&&/\b(transform|all)(,|$)/.test(r(`${Rt}Property`).toString());return{type:u,timeout:f,propCount:p,hasTransform:m}}function _l(e,t){for(;e.lengthbl(n)+bl(e[r])))}function bl(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function _i(){return document.body.offsetHeight}const bi=new WeakMap,yi=new WeakMap,wi={name:"TransitionGroup",props:Ae({},Bf,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=on(),r=Ys();let o,a;return Zs(()=>{if(!o.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!Gf(o[0].el,n.vnode.el,l))return;o.forEach(Wf),o.forEach(qf);const s=o.filter(Kf);_i(),s.forEach(i=>{const c=i.el,u=c.style;gt(c,l),u.transform=u.webkitTransform=u.transitionDuration="";const f=c._moveCb=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",f),c._moveCb=null,$t(c,l))};c.addEventListener("transitionend",f)})}),()=>{const l=le(e),s=vi(l);let i=l.tag||He;o=a,a=t.default?ca(t.default()):[];for(let c=0;cdelete e.mode;wi.props;const Ei=wi;function Wf(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function qf(e){yi.set(e,e.el.getBoundingClientRect())}function Kf(e){const t=bi.get(e),n=yi.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${r}px,${o}px)`,a.transitionDuration="0s",e}}function Gf(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(l=>{l.split(/\s+/).forEach(s=>s&&r.classList.remove(s))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:a}=gi(r);return o.removeChild(r),a}const Ht=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>xr(t,n):t};function Yf(e){e.target.composing=!0}function yl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const wl={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e._assign=Ht(o);const a=r||o.props&&o.props.type==="number";wt(e,t?"change":"input",l=>{if(l.target.composing)return;let s=e.value;n&&(s=s.trim()),a&&(s=Sr(s)),e._assign(s)}),n&&wt(e,"change",()=>{e.value=e.value.trim()}),t||(wt(e,"compositionstart",Yf),wt(e,"compositionend",yl),wt(e,"change",yl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:o}},a){if(e._assign=Ht(a),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(o||e.type==="number")&&Sr(e.value)===t))return;const l=t??"";e.value!==l&&(e.value=l)}},Qf={deep:!0,created(e,t,n){e._assign=Ht(n),wt(e,"change",()=>{const r=e._modelValue,o=An(e),a=e.checked,l=e._assign;if(q(r)){const s=Jo(r,o),i=s!==-1;if(a&&!i)l(r.concat(o));else if(!a&&i){const c=[...r];c.splice(s,1),l(c)}}else if(xn(r)){const s=new Set(r);a?s.add(o):s.delete(o),l(s)}else l(Ti(e,a))})},mounted:El,beforeUpdate(e,t,n){e._assign=Ht(n),El(e,t,n)}};function El(e,{value:t,oldValue:n},r){e._modelValue=t,q(t)?e.checked=Jo(t,r.props.value)>-1:xn(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Zt(t,Ti(e,!0)))}const Jf={created(e,{value:t},n){e.checked=Zt(t,n.props.value),e._assign=Ht(n),wt(e,"change",()=>{e._assign(An(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=Ht(r),t!==n&&(e.checked=Zt(t,r.props.value))}},Xf={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=xn(t);wt(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Sr(An(l)):An(l));e._assign(e.multiple?o?new Set(a):a:a[0])}),e._assign=Ht(r)},mounted(e,{value:t}){Tl(e,t)},beforeUpdate(e,t,n){e._assign=Ht(n)},updated(e,{value:t}){Tl(e,t)}};function Tl(e,t){const n=e.multiple;if(!(n&&!q(t)&&!xn(t))){for(let r=0,o=e.options.length;r-1:a.selected=t.has(l);else if(Zt(An(a),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function An(e){return"_value"in e?e._value:e.value}function Ti(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const U0={created(e,t,n){Tr(e,t,n,null,"created")},mounted(e,t,n){Tr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){Tr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){Tr(e,t,n,r,"updated")}};function Zf(e,t){switch(e){case"SELECT":return Xf;case"TEXTAREA":return wl;default:switch(t){case"checkbox":return Qf;case"radio":return Jf;default:return wl}}}function Tr(e,t,n,r,o){const l=Zf(e.tagName,n.props&&n.props.type)[o];l&&l(e,t,n,r)}const W0={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Fn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Fn(e,!0),r.enter(e)):r.leave(e,()=>{Fn(e,!1)}):Fn(e,t))},beforeUnmount(e,{value:t}){Fn(e,t)}};function Fn(e,t){e.style.display=t?e._vod:"none"}const ep=Ae({patchProp:Vf},Pf);let ho,Ol=!1;function tp(){return ho=Ol?ho:nf(ep),Ol=!0,ho}const np=(...e)=>{const t=tp().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=rp(r);if(o)return n(o,!0,o instanceof SVGElement)},t};function rp(e){return ae(e)?document.querySelector(e):e}const op={"v-2d0a870d":()=>w(()=>import("./index.html-00dbcbea.js"),[]).then(({data:e})=>e),"v-082946dd":()=>w(()=>import("./community.html-8264ee0b.js"),[]).then(({data:e})=>e),"v-038e810e":()=>w(()=>import("./i18n.html-5fe8fe46.js"),[]).then(({data:e})=>e),"v-ba407326":()=>w(()=>import("./menu.html-26e19633.js"),[]).then(({data:e})=>e),"v-586858ed":()=>w(()=>import("./project.html-41f89b8c.js"),[]).then(({data:e})=>e),"v-0c01f6a4":()=>w(()=>import("./quick-start.html-6fea300a.js"),[]).then(({data:e})=>e),"v-23b9870a":()=>w(()=>import("./side-load.html-e04e7234.js"),[]).then(({data:e})=>e),"v-7d29d7d8":()=>w(()=>import("./star-request.html-4cb88d32.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>w(()=>import("./index.html-f78206be.js"),[]).then(({data:e})=>e),"v-5cad49b8":()=>w(()=>import("./community.html-77c874f1.js"),[]).then(({data:e})=>e),"v-27c4e153":()=>w(()=>import("./i18n.html-ce4441c1.js"),[]).then(({data:e})=>e),"v-71d3b29c":()=>w(()=>import("./menu.html-68335df6.js"),[]).then(({data:e})=>e),"v-6c355688":()=>w(()=>import("./project.html-e96a464c.js"),[]).then(({data:e})=>e),"v-4f90aebf":()=>w(()=>import("./quick-start.html-a1f49e05.js"),[]).then(({data:e})=>e),"v-783d89e5":()=>w(()=>import("./side-load.html-9cc44de3.js"),[]).then(({data:e})=>e),"v-a91bb9c6":()=>w(()=>import("./star-request.html-2ad37f25.js"),[]).then(({data:e})=>e),"v-1bd4ef83":()=>w(()=>import("./FAQ.html-d6fcc8da.js"),[]).then(({data:e})=>e),"v-5c3f740a":()=>w(()=>import("./Gacha-system-and-export-principal.html-cf17a2c3.js"),[]).then(({data:e})=>e),"v-5f449840":()=>w(()=>import("./index.html-b2cf2c28.js"),[]).then(({data:e})=>e),"v-1a028d16":()=>w(()=>import("./exceptions.html-8157d8c2.js"),[]).then(({data:e})=>e),"v-bd668802":()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-7c0dd482.js"),[]).then(({data:e})=>e),"v-51647c4a":()=>w(()=>import("./known-issue.html-511bf0e2.js"),[]).then(({data:e})=>e),"v-bbae7dd2":()=>w(()=>import("./uninstall.html-e98d2832.js"),[]).then(({data:e})=>e),"v-f88d343e":()=>w(()=>import("./index.html-7e4d27d7.js"),[]).then(({data:e})=>e),"v-32bb1805":()=>w(()=>import("./platform.html-1b433c3a.js"),[]).then(({data:e})=>e),"v-30f089b6":()=>w(()=>import("./index.html-d6e83c3d.js"),[]).then(({data:e})=>e),"v-699a13b0":()=>w(()=>import("./achievements.html-7e466c8a.js"),[]).then(({data:e})=>e),"v-f3692af4":()=>w(()=>import("./character-data.html-a8002393.js"),[]).then(({data:e})=>e),"v-10108380":()=>w(()=>import("./character-wiki.html-6f6ce2c3.js"),[]).then(({data:e})=>e),"v-36ceadac":()=>w(()=>import("./dashboard.html-2499d39c.js"),[]).then(({data:e})=>e),"v-83f6294a":()=>w(()=>import("./develop-plan.html-a870290b.js"),[]).then(({data:e})=>e),"v-7839fe83":()=>w(()=>import("./game-launcher.html-2f704534.js"),[]).then(({data:e})=>e),"v-0106e0dc":()=>w(()=>import("./hutao-API.html-f49eaf10.js"),[]).then(({data:e})=>e),"v-639b3ef9":()=>w(()=>import("./hutao-settings.html-912ef253.js"),[]).then(({data:e})=>e),"v-03aaffb1":()=>w(()=>import("./mhy-account-switch.html-e7ebd02a.js"),[]).then(({data:e})=>e),"v-124743a4":()=>w(()=>import("./real-time-notes.html-007137ef.js"),[]).then(({data:e})=>e),"v-e30b3c46":()=>w(()=>import("./weapon-wiki.html-5722a870.js"),[]).then(({data:e})=>e),"v-b8e3a2b8":()=>w(()=>import("./wish-export.html-e367596f.js"),[]).then(({data:e})=>e),"v-a4f9d2c4":()=>w(()=>import("./index.html-62b6158d.js"),[]).then(({data:e})=>e),"v-45ceb024":()=>w(()=>import("./bug-report.html-be008402.js"),[]).then(({data:e})=>e),"v-b4085a44":()=>w(()=>import("./privacy-notice.html-43cfb1bb.js"),[]).then(({data:e})=>e),"v-b1c7a1c2":()=>w(()=>import("./tos.html-2697c794.js"),[]).then(({data:e})=>e),"v-52f43e3b":()=>w(()=>import("./update-log.html-60a35ed5.js"),[]).then(({data:e})=>e),"v-4a1d3ac8":()=>w(()=>import("./FAQ.html-77b73d8a.js"),[]).then(({data:e})=>e),"v-b0dd6b00":()=>w(()=>import("./Gacha-system-and-export-principal.html-35e3a9ed.js"),[]).then(({data:e})=>e),"v-16d7d7b6":()=>w(()=>import("./index.html-20c8279c.js"),[]).then(({data:e})=>e),"v-c8e5b2e0":()=>w(()=>import("./exceptions.html-44fb45f0.js"),[]).then(({data:e})=>e),"v-6892c29a":()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-a4274fa1.js"),[]).then(({data:e})=>e),"v-8ab89ae2":()=>w(()=>import("./known-issue.html-dd2d4e95.js"),[]).then(({data:e})=>e),"v-a04a76c8":()=>w(()=>import("./uninstall.html-f3e75a7a.js"),[]).then(({data:e})=>e),"v-d0f33908":()=>w(()=>import("./index.html-3b8b0cf1.js"),[]).then(({data:e})=>e),"v-c80b636c":()=>w(()=>import("./platform.html-49d33fba.js"),[]).then(({data:e})=>e),"v-56d3ae80":()=>w(()=>import("./symposium1.html-fcc754a5.js"),[]).then(({data:e})=>e),"v-5369fd42":()=>w(()=>import("./symposium2.html-f0280800.js"),[]).then(({data:e})=>e),"v-0bbe1b6a":()=>w(()=>import("./index.html-c943e40a.js"),[]).then(({data:e})=>e),"v-2841a60b":()=>w(()=>import("./achievements.html-c513ff85.js"),[]).then(({data:e})=>e),"v-3957d221":()=>w(()=>import("./character-data.html-d19c231c.js"),[]).then(({data:e})=>e),"v-a9f7b44a":()=>w(()=>import("./character-wiki.html-47702f57.js"),[]).then(({data:e})=>e),"v-1b6aa6a2":()=>w(()=>import("./dashboard.html-22f8c199.js"),[]).then(({data:e})=>e),"v-7cac7db6":()=>w(()=>import("./develop-plan.html-6e34fa5d.js"),[]).then(({data:e})=>e),"v-e2f690f0":()=>w(()=>import("./game-launcher.html-d7fe4a18.js"),[]).then(({data:e})=>e),"v-0eb8e461":()=>w(()=>import("./hutao-API.html-238785b2.js"),[]).then(({data:e})=>e),"v-16a7a694":()=>w(()=>import("./hutao-settings.html-4c5f1089.js"),[]).then(({data:e})=>e),"v-04b421cc":()=>w(()=>import("./mhy-account-switch.html-60e9ae96.js"),[]).then(({data:e})=>e),"v-b5462c1a":()=>w(()=>import("./real-time-notes.html-4ffa95f3.js"),[]).then(({data:e})=>e),"v-108ccfbc":()=>w(()=>import("./weapon-wiki.html-38a68cbb.js"),[]).then(({data:e})=>e),"v-0ccd64e9":()=>w(()=>import("./wish-export.html-4db41232.js"),[]).then(({data:e})=>e),"v-c4bb0cba":()=>w(()=>import("./index.html-75933301.js"),[]).then(({data:e})=>e),"v-c87f8b6e":()=>w(()=>import("./bug-report.html-4e9d3984.js"),[]).then(({data:e})=>e),"v-70e6808e":()=>w(()=>import("./privacy-notice.html-09b28c46.js"),[]).then(({data:e})=>e),"v-647ebd24":()=>w(()=>import("./tos.html-09235935.js"),[]).then(({data:e})=>e),"v-119bd096":()=>w(()=>import("./update-log.html-2a70e7c3.js"),[]).then(({data:e})=>e),"v-3706649a":()=>w(()=>import("./404.html-392add74.js"),[]).then(({data:e})=>e),"v-8daa1a0e":()=>w(()=>import("./index.html-ead0711a.js"),[]).then(({data:e})=>e)},ap=JSON.parse('{"base":"/","lang":"en-US","title":"","description":"","head":[["script",{"src":"https://umami.irain.in/script.js","data-website-id":"f586534f-1741-450e-a0f4-3c0189f993c9","async":"","defer":""}],["script",{"type":"module","src":"https://get.microsoft.com/badge/ms-store-badge.bundled.js"}],["link",{"rel":"icon","href":"/favicon.ico"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-512.png","type":"image/png","sizes":"512x512"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-192.png","type":"image/png","sizes":"192x192"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-144.png","type":"image/png","sizes":"144x144"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-72.png","type":"image/png","sizes":"72x72"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-96.png","type":"image/png","sizes":"96x96"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-48.png","type":"image/png","sizes":"48x48"}],["link",{"rel":"manifest","href":"/manifest.webmanifest","crossorigin":"use-credentials"}],["meta",{"name":"theme-color","content":"#f26d6d"}],["link",{"rel":"apple-touch-icon","href":"/favicon.ico"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}],["meta",{"name":"msapplication-TileImage","content":"/favicon.ico"}],["meta",{"name":"msapplication-TileColor","content":"#ffffff"}],["meta",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"}]],"locales":{"/zh/":{"lang":"zh-CN","title":"胡桃工具箱","description":"多功能的原神工具箱"},"/en/":{"lang":"en-US","title":"Snap Hutao","description":"Super utilitarian Genshin Impact Tool"}}}');var lp=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),sp=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=lp(r);t.has(o)||(t.add(o),n.push(r))}),n},ip=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,cp=e=>e.startsWith("ftp://"),Dn=e=>/^(https?:)?\/\//.test(e),up=/.md((\?|#).*)?$/,Fr=(e,t="/")=>!!(Dn(e)||cp(e)||e.startsWith("/")&&!e.startsWith(t)&&!up.test(e)),Oi=e=>/^mailto:/.test(e),dp=e=>/^tel:/.test(e),ma=e=>Object.prototype.toString.call(e)==="[object Object]",va=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Ai=e=>e[0]==="/"?e.slice(1):e,fp=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const a=o.split("/").length-r.split("/").length;return a!==0?a:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Al=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n};const Pi={"v-2d0a870d":N(()=>w(()=>import("./index.html-cdb106dd.js"),["assets/index.html-cdb106dd.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-082946dd":N(()=>w(()=>import("./community.html-9c40a227.js"),["assets/community.html-9c40a227.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-038e810e":N(()=>w(()=>import("./i18n.html-97547831.js"),["assets/i18n.html-97547831.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-ba407326":N(()=>w(()=>import("./menu.html-965d73a2.js"),["assets/menu.html-965d73a2.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-586858ed":N(()=>w(()=>import("./project.html-0bc86b04.js"),["assets/project.html-0bc86b04.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0c01f6a4":N(()=>w(()=>import("./quick-start.html-d52f76e6.js"),["assets/quick-start.html-d52f76e6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-23b9870a":N(()=>w(()=>import("./side-load.html-a906d0ea.js"),["assets/side-load.html-a906d0ea.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7d29d7d8":N(()=>w(()=>import("./star-request.html-a806e1e3.js"),["assets/star-request.html-a806e1e3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2d0ad528":N(()=>w(()=>import("./index.html-3508ae45.js"),["assets/index.html-3508ae45.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5cad49b8":N(()=>w(()=>import("./community.html-5ef2320d.js"),["assets/community.html-5ef2320d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-27c4e153":N(()=>w(()=>import("./i18n.html-d18b79eb.js"),["assets/i18n.html-d18b79eb.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-71d3b29c":N(()=>w(()=>import("./menu.html-4da31906.js"),["assets/menu.html-4da31906.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6c355688":N(()=>w(()=>import("./project.html-bb79e8cb.js"),["assets/project.html-bb79e8cb.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4f90aebf":N(()=>w(()=>import("./quick-start.html-f98b97d0.js"),["assets/quick-start.html-f98b97d0.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-783d89e5":N(()=>w(()=>import("./side-load.html-70ce2289.js"),["assets/side-load.html-70ce2289.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a91bb9c6":N(()=>w(()=>import("./star-request.html-9743779e.js"),["assets/star-request.html-9743779e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1bd4ef83":N(()=>w(()=>import("./FAQ.html-5ad59832.js"),["assets/FAQ.html-5ad59832.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5c3f740a":N(()=>w(()=>import("./Gacha-system-and-export-principal.html-e5e06d6b.js"),["assets/Gacha-system-and-export-principal.html-e5e06d6b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5f449840":N(()=>w(()=>import("./index.html-a2f7c506.js"),["assets/index.html-a2f7c506.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1a028d16":N(()=>w(()=>import("./exceptions.html-28bfe411.js"),["assets/exceptions.html-28bfe411.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bd668802":N(()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-ec2799b4.js"),["assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-51647c4a":N(()=>w(()=>import("./known-issue.html-e05471ea.js"),["assets/known-issue.html-e05471ea.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bbae7dd2":N(()=>w(()=>import("./uninstall.html-5f140ecf.js"),["assets/uninstall.html-5f140ecf.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f88d343e":N(()=>w(()=>import("./index.html-86b28290.js"),["assets/index.html-86b28290.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-32bb1805":N(()=>w(()=>import("./platform.html-d1e289f7.js"),["assets/platform.html-d1e289f7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-30f089b6":N(()=>w(()=>import("./index.html-95fa6e78.js"),["assets/index.html-95fa6e78.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-699a13b0":N(()=>w(()=>import("./achievements.html-193e97c2.js"),["assets/achievements.html-193e97c2.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f3692af4":N(()=>w(()=>import("./character-data.html-e1b06baf.js"),["assets/character-data.html-e1b06baf.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-10108380":N(()=>w(()=>import("./character-wiki.html-a47450c4.js"),["assets/character-wiki.html-a47450c4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-36ceadac":N(()=>w(()=>import("./dashboard.html-edf5d612.js"),["assets/dashboard.html-edf5d612.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-83f6294a":N(()=>w(()=>import("./develop-plan.html-b8a06082.js"),["assets/develop-plan.html-b8a06082.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7839fe83":N(()=>w(()=>import("./game-launcher.html-73a05aec.js"),["assets/game-launcher.html-73a05aec.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0106e0dc":N(()=>w(()=>import("./hutao-API.html-cef8eefd.js"),["assets/hutao-API.html-cef8eefd.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-639b3ef9":N(()=>w(()=>import("./hutao-settings.html-2b8d08a8.js"),["assets/hutao-settings.html-2b8d08a8.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-03aaffb1":N(()=>w(()=>import("./mhy-account-switch.html-466b8430.js"),["assets/mhy-account-switch.html-466b8430.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-124743a4":N(()=>w(()=>import("./real-time-notes.html-485bd43b.js"),["assets/real-time-notes.html-485bd43b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e30b3c46":N(()=>w(()=>import("./weapon-wiki.html-8a2211f1.js"),["assets/weapon-wiki.html-8a2211f1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b8e3a2b8":N(()=>w(()=>import("./wish-export.html-8c8f98f3.js"),["assets/wish-export.html-8c8f98f3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a4f9d2c4":N(()=>w(()=>import("./index.html-a856e4a5.js"),["assets/index.html-a856e4a5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-45ceb024":N(()=>w(()=>import("./bug-report.html-7d6347dc.js"),["assets/bug-report.html-7d6347dc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b4085a44":N(()=>w(()=>import("./privacy-notice.html-a6ebdd0b.js"),["assets/privacy-notice.html-a6ebdd0b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b1c7a1c2":N(()=>w(()=>import("./tos.html-1d3cfa11.js"),["assets/tos.html-1d3cfa11.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-52f43e3b":N(()=>w(()=>import("./update-log.html-6c5c4cdc.js"),["assets/update-log.html-6c5c4cdc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4a1d3ac8":N(()=>w(()=>import("./FAQ.html-66aa7aa0.js"),["assets/FAQ.html-66aa7aa0.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b0dd6b00":N(()=>w(()=>import("./Gacha-system-and-export-principal.html-83eada9b.js"),["assets/Gacha-system-and-export-principal.html-83eada9b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16d7d7b6":N(()=>w(()=>import("./index.html-03a53c22.js"),["assets/index.html-03a53c22.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c8e5b2e0":N(()=>w(()=>import("./exceptions.html-0b83e1ba.js"),["assets/exceptions.html-0b83e1ba.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6892c29a":N(()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-ae6a95a9.js"),["assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8ab89ae2":N(()=>w(()=>import("./known-issue.html-83423385.js"),["assets/known-issue.html-83423385.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a04a76c8":N(()=>w(()=>import("./uninstall.html-08d679ee.js"),["assets/uninstall.html-08d679ee.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-d0f33908":N(()=>w(()=>import("./index.html-c6a3007c.js"),["assets/index.html-c6a3007c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c80b636c":N(()=>w(()=>import("./platform.html-edbc69ea.js"),["assets/platform.html-edbc69ea.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-56d3ae80":N(()=>w(()=>import("./symposium1.html-4e5cad0b.js"),["assets/symposium1.html-4e5cad0b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5369fd42":N(()=>w(()=>import("./symposium2.html-a3e8732e.js"),["assets/symposium2.html-a3e8732e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0bbe1b6a":N(()=>w(()=>import("./index.html-a28dd6fb.js"),["assets/index.html-a28dd6fb.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2841a60b":N(()=>w(()=>import("./achievements.html-0f803c5c.js"),["assets/achievements.html-0f803c5c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3957d221":N(()=>w(()=>import("./character-data.html-c6df149c.js"),["assets/character-data.html-c6df149c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a9f7b44a":N(()=>w(()=>import("./character-wiki.html-eaa1cab6.js"),["assets/character-wiki.html-eaa1cab6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1b6aa6a2":N(()=>w(()=>import("./dashboard.html-1af9e950.js"),["assets/dashboard.html-1af9e950.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7cac7db6":N(()=>w(()=>import("./develop-plan.html-ee596474.js"),["assets/develop-plan.html-ee596474.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e2f690f0":N(()=>w(()=>import("./game-launcher.html-69f961e4.js"),["assets/game-launcher.html-69f961e4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0eb8e461":N(()=>w(()=>import("./hutao-API.html-85c59718.js"),["assets/hutao-API.html-85c59718.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16a7a694":N(()=>w(()=>import("./hutao-settings.html-ef1abfbf.js"),["assets/hutao-settings.html-ef1abfbf.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-04b421cc":N(()=>w(()=>import("./mhy-account-switch.html-d18a8f83.js"),["assets/mhy-account-switch.html-d18a8f83.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b5462c1a":N(()=>w(()=>import("./real-time-notes.html-5c1061b7.js"),["assets/real-time-notes.html-5c1061b7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-108ccfbc":N(()=>w(()=>import("./weapon-wiki.html-facdc2a9.js"),["assets/weapon-wiki.html-facdc2a9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0ccd64e9":N(()=>w(()=>import("./wish-export.html-0e6f1983.js"),["assets/wish-export.html-0e6f1983.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c4bb0cba":N(()=>w(()=>import("./index.html-81ae5447.js"),["assets/index.html-81ae5447.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c87f8b6e":N(()=>w(()=>import("./bug-report.html-310e0a0e.js"),["assets/bug-report.html-310e0a0e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-70e6808e":N(()=>w(()=>import("./privacy-notice.html-dd02ae9b.js"),["assets/privacy-notice.html-dd02ae9b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-647ebd24":N(()=>w(()=>import("./tos.html-c988e41e.js"),["assets/tos.html-c988e41e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-119bd096":N(()=>w(()=>import("./update-log.html-c0111bae.js"),["assets/update-log.html-c0111bae.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3706649a":N(()=>w(()=>import("./404.html-55d1fae4.js"),["assets/404.html-55d1fae4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8daa1a0e":N(()=>w(()=>import("./index.html-f454d95a.js"),["assets/index.html-f454d95a.js","assets/plugin-vue_export-helper-c27b6911.js"]))};var pp=Symbol(""),hp=G(op),ki=jt({key:"",path:"",title:"",lang:"",frontmatter:{},headers:[]}),Mt=G(ki),pe=()=>Mt,Li=Symbol(""),Pe=()=>{const e=Ee(Li);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},xi=Symbol(""),mp=()=>{const e=Ee(xi);if(!e)throw new Error("usePageHead() is called without provider.");return e},vp=Symbol(""),Ci=Symbol(""),Jr=()=>{const e=Ee(Ci);if(!e)throw new Error("usePageLang() is called without provider.");return e},Ii=Symbol(""),gp=()=>{const e=Ee(Ii);if(!e)throw new Error("usePageLayout() is called without provider.");return e},ga=Symbol(""),Lt=()=>{const e=Ee(ga);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},pn=G(ap),Si=()=>pn,Ri=Symbol(""),Xr=()=>{const e=Ee(Ri);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},_p=Symbol(""),bp="Layout",yp="NotFound",_t=Rn({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageData:async e=>{const t=hp.value[e];return await(t==null?void 0:t())??ki},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const r=ae(t.description)?t.description:n.description,o=[...q(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return sp(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:e=>e.lang||"en",resolvePageLayout:(e,t)=>{let n;if(e.path){const r=e.frontmatter.layout;ae(r)?n=r:n=bp}else n=yp;return t[n]},resolveRouteLocale:(e,t)=>fp(e,t),resolveSiteLocaleData:(e,t)=>({...e,...e.locales[t]})}),Zr=B({name:"ClientOnly",setup(e,t){const n=G(!1);return ve(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),$i=B({name:"Content",props:{pageKey:{type:String,required:!1,default:""}},setup(e){const t=pe(),n=A(()=>Pi[e.pageKey||t.value.key]);return()=>n.value?d(n.value):d("div","404 Not Found")}}),De=(e={})=>e,ht=e=>Dn(e)?e:`/${Ai(e)}`;const wp={},we=({name:e="",color:t="currentColor"},{slots:n})=>{var r;return d("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(r=n.default)==null?void 0:r.call(n))};we.displayName="IconBase";const Di=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=d("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[d("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),d("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[d("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),d("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?d("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};Di.displayName="LoadingIcon";const Mi=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},zi=()=>d(we,{name:"github"},()=>d("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));zi.displayName="GitHubIcon";const Ni=()=>d(we,{name:"gitlab"},()=>d("path",{d:"M229.333 78.688C223.52 62 199.895 62 193.895 78.688L87.958 406.438h247.5c-.188 0-106.125-327.75-106.125-327.75zM33.77 571.438c-4.875 15 .563 31.687 13.313 41.25l464.812 345L87.77 406.438zm301.5-165 176.813 551.25 176.812-551.25zm655.125 165-54-165-424.312 551.25 464.812-345c12.938-9.563 18.188-26.25 13.5-41.25zM830.27 78.688c-5.812-16.688-29.437-16.688-35.437 0l-106.125 327.75h247.5z"}));Ni.displayName="GitLabIcon";const Vi=()=>d(we,{name:"gitee"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));Vi.displayName="GiteeIcon";const Fi=()=>d(we,{name:"bitbucket"},()=>d("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));Fi.displayName="BitbucketIcon";const Bi=()=>d(we,{name:"source"},()=>d("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));Bi.displayName="SourceIcon";const Hi=Array.isArray,Ep=e=>typeof e=="function",Tp=e=>typeof e=="string";var ji=e=>/^(https?:)?\/\//.test(e),Ui=e=>Object.prototype.toString.call(e)==="[object Object]";const pt=(e,t)=>{const n=t?t._instance:on();return Ui(n==null?void 0:n.appContext.components)&&(e in n.appContext.components||Ge(e)in n.appContext.components||cr(Ge(e))in n.appContext.components)};function Op(){const e=G(!1);return on()&&ve(()=>{e.value=!0}),e}function Ap(e){return Op(),A(()=>!!e())}const Pp=()=>Ap(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),kp=()=>{const e=Pp();return A(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},an=e=>{const t=Lt();return A(()=>e[t.value])},Lp=(e="")=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},Wi=(e,t)=>{let n=1;for(let r=0;r>6;return n+=n<<3,n^=n>>11,n%t},en=e=>typeof e=="string",ar=(e,t)=>en(e)&&e.startsWith(t),dn=(e,t)=>en(e)&&e.endsWith(t),eo=Object.entries,xp=Object.fromEntries,Mn=Object.keys,Pl=e=>Ui(e)&&en(e.name),kl=(e,t=!1)=>e?Hi(e)?e.map(n=>en(n)?{name:n}:Pl(n)?n:null).filter(n=>n!==null):en(e)?[{name:e}]:Pl(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],qi=(e,t)=>{if(e){if(Hi(e)&&e.every(en))return e;if(en(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},Cp=e=>qi(e,"category"),Ip=e=>qi(e,"tag"),_a=e=>ar(e,"/"),Ki=/#.*$/u,Sp=e=>{const t=Ki.exec(e);return t?t[0]:""},Ll=e=>decodeURI(e).replace(Ki,"").replace(/(index)?\.(md|html)$/,""),ba=(e,t)=>{if(t===void 0)return!1;const n=Ll(e.path),r=Ll(t),o=Sp(t);return o?o===e.hash&&(!r||n===r):n===r},Rp=e=>ji(e)?e:`https://github.com/${e}`,Gi=e=>!ji(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,ya=(e,...t)=>{const n=e.resolve(...t),r=n.matched[n.matched.length-1];if(!(r!=null&&r.redirect))return n;const{redirect:o}=r,a=Ep(o)?o(n):o,l=Tp(a)?{path:a}:a;return ya(e,{hash:n.hash,query:n.query,params:n.params,...l})};function lt(e){return ks()?(Iu(e),!0):!1}function Re(e){return typeof e=="function"?e():nt(e)}const tn=typeof window<"u",nn=()=>{},xl=$p();function $p(){var e;return tn&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function wa(e,t){function n(...r){return new Promise((o,a)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(a)})}return n}const Yi=e=>e();function Dp(e,t={}){let n,r,o=nn;const a=s=>{clearTimeout(s),o(),o=nn};return s=>{const i=Re(e),c=Re(t.maxWait);return n&&a(n),i<=0||c!==void 0&&c<=0?(r&&(a(r),r=null),Promise.resolve(s())):new Promise((u,f)=>{o=t.rejectOnCancel?f:u,c&&!r&&(r=setTimeout(()=>{n&&a(n),r=null,u(s())},c)),n=setTimeout(()=>{r&&a(r),r=null,u(s())},i)})}}function Mp(e,t=!0,n=!0,r=!1){let o=0,a,l=!0,s=nn,i;const c=()=>{a&&(clearTimeout(a),a=void 0,s(),s=nn)};return f=>{const p=Re(e),m=Date.now()-o,y=()=>i=f();return c(),p<=0?(o=Date.now(),y()):(m>p&&(n||!l)?(o=Date.now(),y()):t&&(i=new Promise((E,T)=>{s=r?T:E,a=setTimeout(()=>{o=Date.now(),l=!0,E(y()),c()},Math.max(0,p-m))})),!n&&!a&&(a=setTimeout(()=>l=!0,p)),l=!1,i)}}function zp(e=Yi){const t=G(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...a)=>{t.value&&e(...a)};return{isActive:jt(t),pause:n,resume:r,eventFilter:o}}function Qi(...e){if(e.length!==1)return Wr(...e);const t=e[0];return typeof t=="function"?jt(cd(()=>({get:t,set:nn}))):G(t)}function q0(e,t=200,n={}){return wa(Dp(t,n),e)}function Np(e,t=200,n=!1,r=!0,o=!1){return wa(Mp(t,n,r,o),e)}function Ea(e,t=!0){on()?ve(e):t?e():rn(e)}function Vp(e){on()&&$n(e)}function Fp(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:o=!1}=n;let a=null;const l=G(!1);function s(){a&&(clearInterval(a),a=null)}function i(){l.value=!1,s()}function c(){const u=Re(t);u<=0||(l.value=!0,o&&e(),s(),a=setInterval(e,u))}if(r&&tn&&c(),Te(t)||typeof t=="function"){const u=re(t,()=>{l.value&&tn&&c()});lt(u)}return lt(i),{isActive:l,pause:i,resume:c}}function Bp(e,t,n={}){const{immediate:r=!0}=n,o=G(!1);let a=null;function l(){a&&(clearTimeout(a),a=null)}function s(){o.value=!1,l()}function i(...c){l(),o.value=!0,a=setTimeout(()=>{o.value=!1,a=null,e(...c)},Re(t))}return r&&(o.value=!0,tn&&i()),lt(s),{isPending:jt(o),start:i,stop:s}}function Cl(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Te(e),a=G(e);function l(s){if(arguments.length)return a.value=s,a.value;{const i=Re(n);return a.value=a.value===i?Re(r):i,a.value}}return o?l:[a,l]}var Il=Object.getOwnPropertySymbols,Hp=Object.prototype.hasOwnProperty,jp=Object.prototype.propertyIsEnumerable,Up=(e,t)=>{var n={};for(var r in e)Hp.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Il)for(var r of Il(e))t.indexOf(r)<0&&jp.call(e,r)&&(n[r]=e[r]);return n};function Wp(e,t,n={}){const r=n,{eventFilter:o=Yi}=r,a=Up(r,["eventFilter"]);return re(e,wa(o,t),a)}var qp=Object.defineProperty,Kp=Object.defineProperties,Gp=Object.getOwnPropertyDescriptors,Br=Object.getOwnPropertySymbols,Ji=Object.prototype.hasOwnProperty,Xi=Object.prototype.propertyIsEnumerable,Sl=(e,t,n)=>t in e?qp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yp=(e,t)=>{for(var n in t||(t={}))Ji.call(t,n)&&Sl(e,n,t[n]);if(Br)for(var n of Br(t))Xi.call(t,n)&&Sl(e,n,t[n]);return e},Qp=(e,t)=>Kp(e,Gp(t)),Jp=(e,t)=>{var n={};for(var r in e)Ji.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Br)for(var r of Br(e))t.indexOf(r)<0&&Xi.call(e,r)&&(n[r]=e[r]);return n};function Xp(e,t,n={}){const r=n,{eventFilter:o}=r,a=Jp(r,["eventFilter"]),{eventFilter:l,pause:s,resume:i,isActive:c}=zp(o);return{stop:Wp(e,t,Qp(Yp({},a),{eventFilter:l})),pause:s,resume:i,isActive:c}}function Tt(e){var t;const n=Re(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ye=tn?window:void 0,Ta=tn?window.document:void 0,Zp=tn?window.navigator:void 0;function xe(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Ye):[t,n,r,o]=e,!t)return nn;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const a=[],l=()=>{a.forEach(u=>u()),a.length=0},s=(u,f,p,m)=>(u.addEventListener(f,p,m),()=>u.removeEventListener(f,p,m)),i=re(()=>[Tt(t),Re(o)],([u,f])=>{l(),u&&a.push(...n.flatMap(p=>r.map(m=>s(u,p,m,f))))},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return lt(c),c}function eh(){const e=G(!1);return on()&&ve(()=>{e.value=!0}),e}function fr(e){const t=eh();return A(()=>(t.value,!!e()))}function th(e,t={}){const{immediate:n=!0,window:r=Ye}=t,o=G(!1);let a=0,l=null;function s(u){if(!o.value||!r)return;const f=u-a;e({delta:f,timestamp:u}),a=u,l=r.requestAnimationFrame(s)}function i(){!o.value&&r&&(o.value=!0,l=r.requestAnimationFrame(s))}function c(){o.value=!1,l!=null&&r&&(r.cancelAnimationFrame(l),l=null)}return n&&i(),lt(c),{isActive:jt(o),pause:c,resume:i}}function Zi(e,t={}){const{window:n=Ye}=t,r=fr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=G(!1),l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",s):o.removeListener(s))},s=()=>{r.value&&(l(),o=n.matchMedia(Qi(e).value),a.value=!!(o!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",s):o.addListener(s)))};return kd(s),lt(()=>l()),a}function nh(e={}){const{navigator:t=Zp,read:n=!1,source:r,copiedDuring:o=1500,legacy:a=!1}=e,l=["copy","cut"],s=fr(()=>t&&"clipboard"in t),i=A(()=>s.value||a),c=G(""),u=G(!1),f=Bp(()=>u.value=!1,o);function p(){s.value?t.clipboard.readText().then(T=>{c.value=T}):c.value=E()}if(i.value&&n)for(const T of l)xe(T,p);async function m(T=Re(r)){i.value&&T!=null&&(s.value?await t.clipboard.writeText(T):y(T),c.value=T,u.value=!0,f.start())}function y(T){const g=document.createElement("textarea");g.value=T??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function E(){var T,g,_;return(_=(g=(T=document==null?void 0:document.getSelection)==null?void 0:T.call(document))==null?void 0:g.toString())!=null?_:""}return{isSupported:i,text:c,copied:u,copy:m}}const Or=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ar="__vueuse_ssr_handlers__",rh=oh();function oh(){return Ar in Or||(Or[Ar]=Or[Ar]||{}),Or[Ar]}function ah(e,t){return rh[e]||t}function lh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var sh=Object.defineProperty,Rl=Object.getOwnPropertySymbols,ih=Object.prototype.hasOwnProperty,ch=Object.prototype.propertyIsEnumerable,$l=(e,t,n)=>t in e?sh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dl=(e,t)=>{for(var n in t||(t={}))ih.call(t,n)&&$l(e,n,t[n]);if(Rl)for(var n of Rl(t))ch.call(t,n)&&$l(e,n,t[n]);return e};const uh={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ml="vueuse-storage";function Oa(e,t,n,r={}){var o;const{flush:a="pre",deep:l=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:c=!1,shallow:u,window:f=Ye,eventFilter:p,onError:m=P=>{console.error(P)}}=r,y=(u?it:G)(t);if(!n)try{n=ah("getDefaultStorage",()=>{var P;return(P=Ye)==null?void 0:P.localStorage})()}catch(P){m(P)}if(!n)return y;const E=Re(t),T=lh(E),g=(o=r.serializer)!=null?o:uh[T],{pause:_,resume:R}=Xp(y,()=>I(y.value),{flush:a,deep:l,eventFilter:p});return f&&s&&(xe(f,"storage",z),xe(f,Ml,S)),z(),y;function I(P){try{if(P==null)n.removeItem(e);else{const U=g.write(P),X=n.getItem(e);X!==U&&(n.setItem(e,U),f&&f.dispatchEvent(new CustomEvent(Ml,{detail:{key:e,oldValue:X,newValue:U,storageArea:n}})))}}catch(U){m(U)}}function j(P){const U=P?P.newValue:n.getItem(e);if(U==null)return i&&E!==null&&n.setItem(e,g.write(E)),E;if(!P&&c){const X=g.read(U);return typeof c=="function"?c(X,E):T==="object"&&!Array.isArray(X)?Dl(Dl({},E),X):X}else return typeof U!="string"?U:g.read(U)}function S(P){z(P.detail)}function z(P){if(!(P&&P.storageArea!==n)){if(P&&P.key==null){y.value=E;return}if(!(P&&P.key!==e)){_();try{y.value=j(P)}catch(U){m(U)}finally{P?rn(R):R()}}}}}function dh(e){return Zi("(prefers-color-scheme: dark)",e)}var zl=Object.getOwnPropertySymbols,fh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable,hh=(e,t)=>{var n={};for(var r in e)fh.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&zl)for(var r of zl(e))t.indexOf(r)<0&&ph.call(e,r)&&(n[r]=e[r]);return n};function mh(e,t,n={}){const r=n,{window:o=Ye}=r,a=hh(r,["window"]);let l;const s=fr(()=>o&&"MutationObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},c=re(()=>Tt(e),f=>{i(),s.value&&o&&f&&(l=new MutationObserver(t),l.observe(f,a))},{immediate:!0}),u=()=>{i(),c()};return lt(u),{isSupported:s,stop:u}}var Nl=Object.getOwnPropertySymbols,vh=Object.prototype.hasOwnProperty,gh=Object.prototype.propertyIsEnumerable,_h=(e,t)=>{var n={};for(var r in e)vh.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Nl)for(var r of Nl(e))t.indexOf(r)<0&&gh.call(e,r)&&(n[r]=e[r]);return n};function bh(e,t,n={}){const r=n,{window:o=Ye}=r,a=_h(r,["window"]);let l;const s=fr(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},c=A(()=>Array.isArray(e)?e.map(p=>Tt(p)):[Tt(e)]),u=re(c,p=>{if(i(),s.value&&o){l=new ResizeObserver(t);for(const m of p)m&&l.observe(m,a)}},{immediate:!0,flush:"post",deep:!0}),f=()=>{i(),u()};return lt(f),{isSupported:s,stop:f}}function yh(e,t={width:0,height:0},n={}){const{window:r=Ye,box:o="content-box"}=n,a=A(()=>{var i,c;return(c=(i=Tt(e))==null?void 0:i.namespaceURI)==null?void 0:c.includes("svg")}),l=G(t.width),s=G(t.height);return bh(e,([i])=>{const c=o==="border-box"?i.borderBoxSize:o==="content-box"?i.contentBoxSize:i.devicePixelContentBoxSize;if(r&&a.value){const u=Tt(e);if(u){const f=r.getComputedStyle(u);l.value=parseFloat(f.width),s.value=parseFloat(f.height)}}else if(c){const u=Array.isArray(c)?c:[c];l.value=u.reduce((f,{inlineSize:p})=>f+p,0),s.value=u.reduce((f,{blockSize:p})=>f+p,0)}else l.value=i.contentRect.width,s.value=i.contentRect.height},n),re(()=>Tt(e),i=>{l.value=i?t.width:0,s.value=i?t.height:0}),{width:l,height:s}}const Vl=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function Aa(e,t={}){const{document:n=Ta,autoExit:r=!1}=t,o=A(()=>{var g;return(g=Tt(e))!=null?g:n==null?void 0:n.querySelector("html")}),a=G(!1),l=A(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),s=A(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),i=A(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(g=>n&&g in n||o.value&&g in o.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(g=>n&&g in n),u=fr(()=>o.value&&n&&l.value!==void 0&&s.value!==void 0&&i.value!==void 0),f=()=>c?(n==null?void 0:n[c])===o.value:!1,p=()=>{if(i.value){if(n&&n[i.value]!=null)return n[i.value];{const g=o.value;if((g==null?void 0:g[i.value])!=null)return!!g[i.value]}}return!1};async function m(){if(u.value){if(s.value)if((n==null?void 0:n[s.value])!=null)await n[s.value]();else{const g=o.value;(g==null?void 0:g[s.value])!=null&&await g[s.value]()}a.value=!1}}async function y(){if(!u.value)return;p()&&await m();const g=o.value;l.value&&(g==null?void 0:g[l.value])!=null&&(await g[l.value](),a.value=!0)}async function E(){await(a.value?m():y())}const T=()=>{const g=p();(!g||g&&f())&&(a.value=g)};return xe(n,Vl,T,!1),xe(()=>Tt(o),Vl,T,!1),r&<(m),{isSupported:u,isFullscreen:a,enter:y,exit:m,toggle:E}}var wh=Object.defineProperty,Fl=Object.getOwnPropertySymbols,Eh=Object.prototype.hasOwnProperty,Th=Object.prototype.propertyIsEnumerable,Bl=(e,t,n)=>t in e?wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Oh=(e,t)=>{for(var n in t||(t={}))Eh.call(t,n)&&Bl(e,n,t[n]);if(Fl)for(var n of Fl(t))Th.call(t,n)&&Bl(e,n,t[n]);return e};function K0(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=G(new Date),o=()=>r.value=new Date,a=n==="requestAnimationFrame"?th(o,{immediate:!0}):Fp(o,n,{immediate:!0});return t?Oh({now:r},a):r}function Ah(e={}){const{window:t=Ye}=e;if(!t)return G(["en"]);const n=t.navigator,r=G(n.languages);return xe(t,"languagechange",()=>{r.value=n.languages}),r}function G0(e,t=nn,n={}){const{immediate:r=!0,manual:o=!1,type:a="text/javascript",async:l=!0,crossOrigin:s,referrerPolicy:i,noModule:c,defer:u,document:f=Ta,attrs:p={}}=n,m=G(null);let y=null;const E=_=>new Promise((R,I)=>{const j=P=>(m.value=P,R(P),P);if(!f){R(!1);return}let S=!1,z=f.querySelector(`script[src="${Re(e)}"]`);z?z.hasAttribute("data-loaded")&&j(z):(z=f.createElement("script"),z.type=a,z.async=l,z.src=Re(e),u&&(z.defer=u),s&&(z.crossOrigin=s),c&&(z.noModule=c),i&&(z.referrerPolicy=i),Object.entries(p).forEach(([P,U])=>z==null?void 0:z.setAttribute(P,U)),S=!0),z.addEventListener("error",P=>I(P)),z.addEventListener("abort",P=>I(P)),z.addEventListener("load",()=>{z.setAttribute("data-loaded","true"),t(z),j(z)}),S&&(z=f.head.appendChild(z)),_||j(z)}),T=(_=!0)=>(y||(y=E(_)),y),g=()=>{if(!f)return;y=null,m.value&&(m.value=null);const _=f.querySelector(`script[src="${Re(e)}"]`);_&&f.head.removeChild(_)};return r&&!o&&Ea(T),o||Vp(g),{scriptTag:m,load:T,unload:g}}function ec(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientHeight1?!0:(t.preventDefault&&t.preventDefault(),!1)}function Pa(e,t=!1){const n=G(t);let r=null,o;re(Qi(e),s=>{if(s){const i=s;o=i.style.overflow,n.value&&(i.style.overflow="hidden")}},{immediate:!0});const a=()=>{const s=Re(e);!s||n.value||(xl&&(r=xe(s,"touchmove",i=>{Ph(i)},{passive:!1})),s.style.overflow="hidden",n.value=!0)},l=()=>{const s=Re(e);!s||!n.value||(xl&&(r==null||r()),s.style.overflow=o,n.value=!1)};return lt(l),A({get(){return n.value},set(s){s?a():l()}})}function kh(e,t,n={}){const{window:r=Ye}=n;return Oa(e,t,r==null?void 0:r.sessionStorage,n)}let Lh=0;function xh(e,t={}){const n=G(!1),{document:r=Ta,immediate:o=!0,manual:a=!1,id:l=`vueuse_styletag_${++Lh}`}=t,s=G(e);let i=()=>{};const c=()=>{if(!r)return;const f=r.getElementById(l)||r.createElement("style");f.isConnected||(f.type="text/css",f.id=l,t.media&&(f.media=t.media),r.head.appendChild(f)),!n.value&&(i=re(s,p=>{f.textContent=p},{immediate:!0}),n.value=!0)},u=()=>{!r||!n.value||(i(),r.head.removeChild(r.getElementById(l)),n.value=!1)};return o&&!a&&Ea(c),a||lt(u),{id:l,css:s,unload:u,load:c,isLoaded:jt(n)}}function Ch({window:e=Ye}={}){if(!e)return{x:G(0),y:G(0)};const t=G(e.scrollX),n=G(e.scrollY);return xe(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function Ih(e={}){const{window:t=Ye,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:o=!0,includeScrollbar:a=!0}=e,l=G(n),s=G(r),i=()=>{t&&(a?(l.value=t.innerWidth,s.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,s.value=t.document.documentElement.clientHeight))};if(i(),Ea(i),xe("resize",i,{passive:!0}),o){const c=Zi("(orientation: portrait)");re(c,()=>i())}return{width:l,height:s}}var Sh=B({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=A(()=>{const r=["font-icon icon"],o=`iconfont icon-${e.icon}`;return r.push(o),r}),n=A(()=>{const r={};return e.color&&(r.color=e.color),e.size&&(r["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),Mn(r).length?r:null});return()=>e.icon?d("span",{key:e.icon,class:t.value,style:n.value}):null}});const tc=({type:e="info",text:t="",vertical:n="top",color:r},{slots:o})=>{var a;return d("span",{class:["badge",e,{diy:r}],style:{verticalAlign:n,...r?{backgroundColor:r}:{}}},((a=o.default)==null?void 0:a.call(o))||t)};tc.displayName="Badge";const Rh="accelerometer; autoplay; clipboard-write; encrypted-media; fullscreen; gyroscope; picture-in-picture",Hl=e=>ae(e)?e:`${e}px`,$h=(e,t=0)=>{const n=it(),r=A(()=>Hl(nt(e.width)||"100%")),o=G("auto"),a=i=>{if(ae(i)){const[c,u]=i.split(":"),f=Number(c)/Number(u);if(!Number.isNaN(f))return f}return typeof i=="number"?i:16/9},l=i=>{const c=nt(e.height),u=a(nt(e.ratio));return c?Hl(c):`${Number(i)/u+nt(t)}px`},s=()=>{n.value&&(o.value=l(n.value.clientWidth))};return ve(()=>{s(),Te(t)&&re(t,()=>s()),xe("orientationchange",()=>s()),xe("resize",()=>s())}),{el:n,width:r,height:o}},jl="https://player.bilibili.com/player.html";var Dh=B({name:"BiliBili",props:{bvid:{type:String,default:""},aid:{type:String,default:""},cid:{type:String,default:""},title:{type:String,default:"A BiliBili video"},page:{type:[String,Number],default:1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:void 0},ratio:{type:[String,Number],default:16/9},time:{type:[String,Number],default:0},autoplay:Boolean},setup(e){const{el:t,width:n,height:r}=$h(e),o=A(()=>{const{aid:a,bvid:l,cid:s,autoplay:i,time:c,page:u}=e;return a&&s?`${jl}?aid=${a}&cid=${s}&t=${c}&autoplay=${i?1:0}&page=${u}`:l?`${jl}?bvid=${l}&t=${c}&autoplay=${i?1:0}`:null});return()=>o.value?[d("div",{class:"bili-desc"},d("a",{class:"sr-only",href:o.value},e.title)),d("iframe",{ref:t,src:o.value,title:e.title,class:"bili-iframe",allow:Rh,style:{width:n.value,height:r.value}})]:null}});const nc=()=>d(we,{name:"back-to-top"},()=>[d("path",{d:"M512 843.2c-36.2 0-66.4-13.6-85.8-21.8-10.8-4.6-22.6 3.6-21.8 15.2l7 102c.4 6.2 7.6 9.4 12.6 5.6l29-22c3.6-2.8 9-1.8 11.4 2l41 64.2c3 4.8 10.2 4.8 13.2 0l41-64.2c2.4-3.8 7.8-4.8 11.4-2l29 22c5 3.8 12.2.6 12.6-5.6l7-102c.8-11.6-11-20-21.8-15.2-19.6 8.2-49.6 21.8-85.8 21.8z"}),d("path",{d:"m795.4 586.2-96-98.2C699.4 172 513 32 513 32S324.8 172 324.8 488l-96 98.2c-3.6 3.6-5.2 9-4.4 14.2L261.2 824c1.8 11.4 14.2 17 23.6 10.8L419 744s41.4 40 94.2 40c52.8 0 92.2-40 92.2-40l134.2 90.8c9.2 6.2 21.6.6 23.6-10.8l37-223.8c.4-5.2-1.2-10.4-4.8-14zM513 384c-34 0-61.4-28.6-61.4-64s27.6-64 61.4-64c34 0 61.4 28.6 61.4 64S547 384 513 384z"})]);nc.displayName="BackToTopIcon";var Mh=B({name:"BackToTop",props:{threshold:{type:Number,default:100},noProgress:Boolean},setup(e){const t=Pe(),n=an({"/zh/":{backToTop:"返回顶部"},"/en/":{backToTop:"Back to top"},"/":{backToTop:"Back to top"}}),r=it(),{height:o}=yh(r),{height:a}=Ih(),{y:l}=Ch(),s=A(()=>t.value.backToTop!==!1&&l.value>e.threshold),i=A(()=>l.value/(o.value-a.value));return ve(()=>{r.value=document.body}),()=>d(Pt,{name:"fade"},()=>s.value?d("button",{type:"button",class:"back-to-top","aria-label":n.value.backToTop,"data-balloon-pos":"left",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[e.noProgress?null:d("svg",{class:"scroll-progress"},d("circle",{cx:"50%",cy:"50%",style:{"stroke-dasharray":`calc(${Math.PI*i.value*100}% - ${4*Math.PI}px) calc(${Math.PI*100}% - ${4*Math.PI}px)`}})),d(nc)]):null)}});const zh=De({enhance:({app:e})=>{pt("FontIcon")||e.component("FontIcon",Sh),pt("Badge")||e.component("Badge",tc),pt("BiliBili")||e.component("BiliBili",Dh)},setup:()=>{xh(` @import url("https://at.alicdn.com/t/c/font_2410206_5vb9zlyghj.css"); +const pu="modulepreload",hu=function(e){return"/"+e},za={},w=function(t,n,r){if(!n||n.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(n.map(a=>{if(a=hu(a),a in za)return;za[a]=!0;const l=a.endsWith(".css"),s=l?'[rel="stylesheet"]':"";if(!!r)for(let u=o.length-1;u>=0;u--){const f=o[u];if(f.href===a&&(!l||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const c=document.createElement("link");if(c.rel=l?"stylesheet":pu,l||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),l)return new Promise((u,f)=>{c.addEventListener("load",u),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t())};function Wo(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}const ye={},mn=[],ot=()=>{},mu=()=>!1,vu=/^on[^a-z]/,sr=e=>vu.test(e),qo=e=>e.startsWith("onUpdate:"),Ae=Object.assign,Ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},gu=Object.prototype.hasOwnProperty,ie=(e,t)=>gu.call(e,t),q=Array.isArray,vn=e=>ir(e)==="[object Map]",xn=e=>ir(e)==="[object Set]",Na=e=>ir(e)==="[object Date]",te=e=>typeof e=="function",ae=e=>typeof e=="string",Jn=e=>typeof e=="symbol",me=e=>e!==null&&typeof e=="object",Es=e=>me(e)&&te(e.then)&&te(e.catch),Ts=Object.prototype.toString,ir=e=>Ts.call(e),_u=e=>ir(e).slice(8,-1),Os=e=>ir(e)==="[object Object]",Go=e=>ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Un=Wo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),jr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bu=/-(\w)/g,Ge=jr(e=>e.replace(bu,(t,n)=>n?n.toUpperCase():"")),yu=/\B([A-Z])/g,Cn=jr(e=>e.replace(yu,"-$1").toLowerCase()),cr=jr(e=>e.charAt(0).toUpperCase()+e.slice(1)),ao=jr(e=>e?`on${cr(e)}`:""),Xn=(e,t)=>!Object.is(e,t),xr=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Sr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},wu=e=>{const t=ae(e)?Number(e):NaN;return isNaN(t)?e:t};let Va;const Oo=()=>Va||(Va=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Yo(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(Tu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Qo(e){let t="";if(ae(e))t=e;else if(q(e))for(let n=0;nZt(n,t))}const N0=e=>ae(e)?e:e==null?"":q(e)||me(e)&&(e.toString===Ts||!te(e.toString))?JSON.stringify(e,Ps,2):String(e),Ps=(e,t)=>t&&t.__v_isRef?Ps(e,t.value):vn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:xn(t)?{[`Set(${t.size})`]:[...t.values()]}:me(t)&&!q(t)&&!Os(t)?String(t):t;let Be;class xu{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Be,!t&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Be;try{return Be=this,t()}finally{Be=n}}}on(){Be=this}off(){Be=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ls=e=>(e.w&Ft)>0,xs=e=>(e.n&Ft)>0,Su=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(u==="length"||u>=i)&&s.push(c)})}else switch(n!==void 0&&s.push(l.get(n)),t){case"add":q(e)?Go(n)&&s.push(l.get("length")):(s.push(l.get(Qt)),vn(e)&&s.push(l.get(Po)));break;case"delete":q(e)||(s.push(l.get(Qt)),vn(e)&&s.push(l.get(Po)));break;case"set":vn(e)&&s.push(l.get(Qt));break}if(s.length===1)s[0]&&ko(s[0]);else{const i=[];for(const c of s)c&&i.push(...c);ko(Xo(i))}}function ko(e,t){const n=q(e)?e:[...e];for(const r of n)r.computed&&Ba(r);for(const r of n)r.computed||Ba(r)}function Ba(e,t){(e!==tt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function $u(e,t){var n;return(n=Rr.get(e))==null?void 0:n.get(t)}const Du=Wo("__proto__,__v_isRef,__isVue"),Ss=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Jn)),Mu=ea(),zu=ea(!1,!0),Nu=ea(!0),Ha=Vu();function Vu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=le(this);for(let a=0,l=this.length;a{e[t]=function(...n){In();const r=le(this)[t].apply(this,n);return Sn(),r}}),e}function Fu(e){const t=le(this);return Ve(t,"has",e),t.hasOwnProperty(e)}function ea(e=!1,t=!1){return function(r,o,a){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&a===(e?t?nd:zs:t?Ms:Ds).get(r))return r;const l=q(r);if(!e){if(l&&ie(Ha,o))return Reflect.get(Ha,o,a);if(o==="hasOwnProperty")return Fu}const s=Reflect.get(r,o,a);return(Jn(o)?Ss.has(o):Du(o))||(e||Ve(r,"get",o),t)?s:Te(s)?l&&Go(o)?s:s.value:me(s)?e?jt(s):Rn(s):s}}const Bu=Rs(),Hu=Rs(!0);function Rs(e=!1){return function(n,r,o,a){let l=n[r];if(wn(l)&&Te(l)&&!Te(o))return!1;if(!e&&(!$r(o)&&!wn(o)&&(l=le(l),o=le(o)),!q(n)&&Te(l)&&!Te(o)))return l.value=o,!0;const s=q(n)&&Go(r)?Number(r)e,Ur=e=>Reflect.getPrototypeOf(e);function mr(e,t,n=!1,r=!1){e=e.__v_raw;const o=le(e),a=le(t);n||(t!==a&&Ve(o,"get",t),Ve(o,"get",a));const{has:l}=Ur(o),s=r?ta:n?oa:Zn;if(l.call(o,t))return s(e.get(t));if(l.call(o,a))return s(e.get(a));e!==o&&e.get(t)}function vr(e,t=!1){const n=this.__v_raw,r=le(n),o=le(e);return t||(e!==o&&Ve(r,"has",e),Ve(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function gr(e,t=!1){return e=e.__v_raw,!t&&Ve(le(e),"iterate",Qt),Reflect.get(e,"size",e)}function ja(e){e=le(e);const t=le(this);return Ur(t).has.call(t,e)||(t.add(e),At(t,"add",e,e)),this}function Ua(e,t){t=le(t);const n=le(this),{has:r,get:o}=Ur(n);let a=r.call(n,e);a||(e=le(e),a=r.call(n,e));const l=o.call(n,e);return n.set(e,t),a?Xn(t,l)&&At(n,"set",e,t):At(n,"add",e,t),this}function Wa(e){const t=le(this),{has:n,get:r}=Ur(t);let o=n.call(t,e);o||(e=le(e),o=n.call(t,e)),r&&r.call(t,e);const a=t.delete(e);return o&&At(t,"delete",e,void 0),a}function qa(){const e=le(this),t=e.size!==0,n=e.clear();return t&&At(e,"clear",void 0,void 0),n}function _r(e,t){return function(r,o){const a=this,l=a.__v_raw,s=le(l),i=t?ta:e?oa:Zn;return!e&&Ve(s,"iterate",Qt),l.forEach((c,u)=>r.call(o,i(c),i(u),a))}}function br(e,t,n){return function(...r){const o=this.__v_raw,a=le(o),l=vn(a),s=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,c=o[e](...r),u=n?ta:t?oa:Zn;return!t&&Ve(a,"iterate",i?Po:Qt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function It(e){return function(...t){return e==="delete"?!1:this}}function Gu(){const e={get(a){return mr(this,a)},get size(){return gr(this)},has:vr,add:ja,set:Ua,delete:Wa,clear:qa,forEach:_r(!1,!1)},t={get(a){return mr(this,a,!1,!0)},get size(){return gr(this)},has:vr,add:ja,set:Ua,delete:Wa,clear:qa,forEach:_r(!1,!0)},n={get(a){return mr(this,a,!0)},get size(){return gr(this,!0)},has(a){return vr.call(this,a,!0)},add:It("add"),set:It("set"),delete:It("delete"),clear:It("clear"),forEach:_r(!0,!1)},r={get(a){return mr(this,a,!0,!0)},get size(){return gr(this,!0)},has(a){return vr.call(this,a,!0)},add:It("add"),set:It("set"),delete:It("delete"),clear:It("clear"),forEach:_r(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=br(a,!1,!1),n[a]=br(a,!0,!1),t[a]=br(a,!1,!0),r[a]=br(a,!0,!0)}),[e,n,t,r]}const[Yu,Qu,Ju,Xu]=Gu();function na(e,t){const n=t?e?Xu:Ju:e?Qu:Yu;return(r,o,a)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(ie(n,o)&&o in r?n:r,o,a)}const Zu={get:na(!1,!1)},ed={get:na(!1,!0)},td={get:na(!0,!1)},Ds=new WeakMap,Ms=new WeakMap,zs=new WeakMap,nd=new WeakMap;function rd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function od(e){return e.__v_skip||!Object.isExtensible(e)?0:rd(_u(e))}function Rn(e){return wn(e)?e:ra(e,!1,$s,Zu,Ds)}function ad(e){return ra(e,!1,Ku,ed,Ms)}function jt(e){return ra(e,!0,qu,td,zs)}function ra(e,t,n,r,o){if(!me(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const l=od(e);if(l===0)return e;const s=new Proxy(e,l===2?r:n);return o.set(e,s),s}function gn(e){return wn(e)?gn(e.__v_raw):!!(e&&e.__v_isReactive)}function wn(e){return!!(e&&e.__v_isReadonly)}function $r(e){return!!(e&&e.__v_isShallow)}function Ns(e){return gn(e)||wn(e)}function le(e){const t=e&&e.__v_raw;return t?le(t):e}function Vs(e){return Ir(e,"__v_skip",!0),e}const Zn=e=>me(e)?Rn(e):e,oa=e=>me(e)?jt(e):e;function aa(e){Nt&&tt&&(e=le(e),Is(e.dep||(e.dep=Xo())))}function la(e,t){e=le(e);const n=e.dep;n&&ko(n)}function Te(e){return!!(e&&e.__v_isRef===!0)}function G(e){return Fs(e,!1)}function it(e){return Fs(e,!0)}function Fs(e,t){return Te(e)?e:new ld(e,t)}class ld{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:le(t),this._value=n?t:Zn(t)}get value(){return aa(this),this._value}set value(t){const n=this.__v_isShallow||$r(t)||wn(t);t=n?t:le(t),Xn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Zn(t),la(this))}}function nt(e){return Te(e)?e.value:e}const sd={get:(e,t,n)=>nt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Te(o)&&!Te(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Bs(e){return gn(e)?e:new Proxy(e,sd)}class id{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>aa(this),()=>la(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function cd(e){return new id(e)}class ud{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return $u(le(this._object),this._key)}}class dd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Wr(e,t,n){return Te(e)?e:te(e)?new dd(e):me(e)&&arguments.length>1?fd(e,t,n):G(e)}function fd(e,t,n){const r=e[t];return Te(r)?r:new ud(e,t,n)}class pd{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Zo(t,()=>{this._dirty||(this._dirty=!0,la(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=le(this);return aa(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function hd(e,t,n=!1){let r,o;const a=te(e);return a?(r=e,o=ot):(r=e.get,o=e.set),new pd(r,o,a||!o,n)}function Vt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(a){ur(a,t,n)}return o}function qe(e,t,n,r){if(te(e)){const a=Vt(e,t,n,r);return a&&Es(a)&&a.catch(l=>{ur(l,t,n)}),a}const o=[];for(let a=0;a>>1;tr(Se[r])ft&&Se.splice(t,1)}function _d(e){q(e)?_n.push(...e):(!yt||!yt.includes(e,e.allowRecurse?qt+1:qt))&&_n.push(e),js()}function Ka(e,t=er?ft+1:0){for(;ttr(n)-tr(r)),qt=0;qte.id==null?1/0:e.id,bd=(e,t)=>{const n=tr(e)-tr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Us(e){Lo=!1,er=!0,Se.sort(bd);const t=ot;try{for(ft=0;ftae(m)?m.trim():m)),f&&(o=n.map(Sr))}let s,i=r[s=ao(t)]||r[s=ao(Ge(t))];!i&&a&&(i=r[s=ao(Cn(t))]),i&&qe(i,e,6,o);const c=r[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,qe(c,e,6,o)}}function Ws(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const a=e.emits;let l={},s=!1;if(!te(e)){const i=c=>{const u=Ws(c,t,!0);u&&(s=!0,Ae(l,u))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!a&&!s?(me(e)&&r.set(e,null),null):(q(a)?a.forEach(i=>l[i]=null):Ae(l,a),me(e)&&r.set(e,l),l)}function Kr(e,t){return!e||!sr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,Cn(t))||ie(e,t))}let je=null,qs=null;function Mr(e){const t=je;return je=e,qs=e&&e.type.__scopeId||null,t}function wd(e,t=je,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&al(-1);const a=Mr(t);let l;try{l=e(...o)}finally{Mr(a),r._d&&al(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function lo(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:a,propsOptions:[l],slots:s,attrs:i,emit:c,render:u,renderCache:f,data:p,setupState:m,ctx:y,inheritAttrs:E}=e;let T,g;const _=Mr(e);try{if(n.shapeFlag&4){const I=o||r;T=et(u.call(I,I,f,a,m,p,y)),g=i}else{const I=t;T=et(I.length>1?I(a,{attrs:i,slots:s,emit:c}):I(a,null)),g=t.props?i:Ed(i)}}catch(I){Gn.length=0,ur(I,e,1),T=Oe(Ke)}let R=T;if(g&&E!==!1){const I=Object.keys(g),{shapeFlag:j}=R;I.length&&j&7&&(l&&I.some(qo)&&(g=Td(g,l)),R=Bt(R,g))}return n.dirs&&(R=Bt(R),R.dirs=R.dirs?R.dirs.concat(n.dirs):n.dirs),n.transition&&(R.transition=n.transition),T=R,Mr(_),T}const Ed=e=>{let t;for(const n in e)(n==="class"||n==="style"||sr(n))&&((t||(t={}))[n]=e[n]);return t},Td=(e,t)=>{const n={};for(const r in e)(!qo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Od(e,t,n){const{props:r,children:o,component:a}=e,{props:l,children:s,patchFlag:i}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Ga(r,l,c):!!l;if(i&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Ks(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):_d(e)}function kd(e,t){return ia(e,null,t)}const yr={};function re(e,t,n){return ia(e,t,n)}function ia(e,t,{immediate:n,deep:r,flush:o,onTrack:a,onTrigger:l}=ye){var s;const i=ks()===((s=Le)==null?void 0:s.scope)?Le:null;let c,u=!1,f=!1;if(Te(e)?(c=()=>e.value,u=$r(e)):gn(e)?(c=()=>e,r=!0):q(e)?(f=!0,u=e.some(I=>gn(I)||$r(I)),c=()=>e.map(I=>{if(Te(I))return I.value;if(gn(I))return Yt(I);if(te(I))return Vt(I,i,2)})):te(e)?t?c=()=>Vt(e,i,2):c=()=>{if(!(i&&i.isUnmounted))return p&&p(),qe(e,i,3,[m])}:c=ot,t&&r){const I=c;c=()=>Yt(I())}let p,m=I=>{p=_.onStop=()=>{Vt(I,i,4)}},y;if(On)if(m=ot,t?n&&qe(t,i,3,[c(),f?[]:void 0,m]):c(),o==="sync"){const I=Tf();y=I.__watcherHandles||(I.__watcherHandles=[])}else return ot;let E=f?new Array(e.length).fill(yr):yr;const T=()=>{if(_.active)if(t){const I=_.run();(r||u||(f?I.some((j,S)=>Xn(j,E[S])):Xn(I,E)))&&(p&&p(),qe(t,i,3,[I,E===yr?void 0:f&&E[0]===yr?[]:E,m]),E=I)}else _.run()};T.allowRecurse=!!t;let g;o==="sync"?g=T:o==="post"?g=()=>ze(T,i&&i.suspense):(T.pre=!0,i&&(T.id=i.uid),g=()=>qr(T));const _=new Zo(c,g);t?n?T():E=_.run():o==="post"?ze(_.run.bind(_),i&&i.suspense):_.run();const R=()=>{_.stop(),i&&i.scope&&Ko(i.scope.effects,_)};return y&&y.push(R),R}function Ld(e,t,n){const r=this.proxy,o=ae(e)?e.includes(".")?Gs(r,e):()=>r[e]:e.bind(r,r);let a;te(t)?a=t:(a=t.handler,n=t);const l=Le;Tn(this);const s=ia(o,a.bind(r),n);return l?Tn(l):Xt(),s}function Gs(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{Yt(n,t)});else if(Os(e))for(const n in e)Yt(e[n],t);return e}function V0(e,t){const n=je;if(n===null)return e;const r=Qr(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let a=0;a{e.isMounted=!0}),ua(()=>{e.isUnmounting=!0}),e}const Ue=[Function,Array],Qs={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ue,onEnter:Ue,onAfterEnter:Ue,onEnterCancelled:Ue,onBeforeLeave:Ue,onLeave:Ue,onAfterLeave:Ue,onLeaveCancelled:Ue,onBeforeAppear:Ue,onAppear:Ue,onAfterAppear:Ue,onAppearCancelled:Ue},xd={name:"BaseTransition",props:Qs,setup(e,{slots:t}){const n=on(),r=Ys();let o;return()=>{const a=t.default&&ca(t.default(),!0);if(!a||!a.length)return;let l=a[0];if(a.length>1){for(const E of a)if(E.type!==Ke){l=E;break}}const s=le(e),{mode:i}=s;if(r.isLeaving)return so(l);const c=Ya(l);if(!c)return so(l);const u=nr(c,s,r,n);rr(c,u);const f=n.subTree,p=f&&Ya(f);let m=!1;const{getTransitionKey:y}=c.type;if(y){const E=y();o===void 0?o=E:E!==o&&(o=E,m=!0)}if(p&&p.type!==Ke&&(!Kt(c,p)||m)){const E=nr(p,s,r,n);if(rr(p,E),i==="out-in")return r.isLeaving=!0,E.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},so(l);i==="in-out"&&c.type!==Ke&&(E.delayLeave=(T,g,_)=>{const R=Js(r,p);R[String(p.key)]=p,T._leaveCb=()=>{g(),T._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=_})}return l}}},Cd=xd;function Js(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nr(e,t,n,r){const{appear:o,mode:a,persisted:l=!1,onBeforeEnter:s,onEnter:i,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:y,onBeforeAppear:E,onAppear:T,onAfterAppear:g,onAppearCancelled:_}=t,R=String(e.key),I=Js(n,e),j=(P,U)=>{P&&qe(P,r,9,U)},S=(P,U)=>{const X=U[1];j(P,U),q(P)?P.every(oe=>oe.length<=1)&&X():P.length<=1&&X()},z={mode:a,persisted:l,beforeEnter(P){let U=s;if(!n.isMounted)if(o)U=E||s;else return;P._leaveCb&&P._leaveCb(!0);const X=I[R];X&&Kt(e,X)&&X.el._leaveCb&&X.el._leaveCb(),j(U,[P])},enter(P){let U=i,X=c,oe=u;if(!n.isMounted)if(o)U=T||i,X=g||c,oe=_||u;else return;let H=!1;const ee=P._enterCb=K=>{H||(H=!0,K?j(oe,[P]):j(X,[P]),z.delayedLeave&&z.delayedLeave(),P._enterCb=void 0)};U?S(U,[P,ee]):ee()},leave(P,U){const X=String(e.key);if(P._enterCb&&P._enterCb(!0),n.isUnmounting)return U();j(f,[P]);let oe=!1;const H=P._leaveCb=ee=>{oe||(oe=!0,U(),ee?j(y,[P]):j(m,[P]),P._leaveCb=void 0,I[X]===e&&delete I[X])};I[X]=e,p?S(p,[P,H]):H()},clone(P){return nr(P,t,n,r)}};return z}function so(e){if(dr(e))return e=Bt(e),e.children=null,e}function Ya(e){return dr(e)?e.children?e.children[0]:void 0:e}function rr(e,t){e.shapeFlag&6&&e.component?rr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ca(e,t=!1,n){let r=[],o=0;for(let a=0;a1)for(let a=0;aAe({name:e.name},t,{setup:e}))():e}const Wn=e=>!!e.type.__asyncLoader;function N(e){te(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:a,suspensible:l=!0,onError:s}=e;let i=null,c,u=0;const f=()=>(u++,i=null,p()),p=()=>{let m;return i||(m=i=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),s)return new Promise((E,T)=>{s(y,()=>E(f()),()=>T(y),u+1)});throw y}).then(y=>m!==i&&i?i:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return B({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const m=Le;if(c)return()=>io(c,m);const y=_=>{i=null,ur(_,m,13,!r)};if(l&&m.suspense||On)return p().then(_=>()=>io(_,m)).catch(_=>(y(_),()=>r?Oe(r,{error:_}):null));const E=G(!1),T=G(),g=G(!!o);return o&&setTimeout(()=>{g.value=!1},o),a!=null&&setTimeout(()=>{if(!E.value&&!T.value){const _=new Error(`Async component timed out after ${a}ms.`);y(_),T.value=_}},a),p().then(()=>{E.value=!0,m.parent&&dr(m.parent.vnode)&&qr(m.parent.update)}).catch(_=>{y(_),T.value=_}),()=>{if(E.value&&c)return io(c,m);if(T.value&&r)return Oe(r,{error:T.value});if(n&&!g.value)return Oe(n)}}})}function io(e,t){const{ref:n,props:r,children:o,ce:a}=t.vnode,l=Oe(e,r,o);return l.ref=n,l.ce=a,delete t.vnode.ce,l}const dr=e=>e.type.__isKeepAlive;function Id(e,t){Xs(e,"a",t)}function Sd(e,t){Xs(e,"da",t)}function Xs(e,t,n=Le){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Gr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)dr(o.parent.vnode)&&Rd(r,t,n,o),o=o.parent}}function Rd(e,t,n,r){const o=Gr(t,e,r,!0);$n(()=>{Ko(r[t],o)},n)}function Gr(e,t,n=Le,r=!1){if(n){const o=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;In(),Tn(n);const s=qe(t,n,e,l);return Xt(),Sn(),s});return r?o.unshift(a):o.push(a),a}}const kt=e=>(t,n=Le)=>(!On||e==="sp")&&Gr(e,(...r)=>t(...r),n),$d=kt("bm"),ve=kt("m"),Dd=kt("bu"),Zs=kt("u"),ua=kt("bum"),$n=kt("um"),Md=kt("sp"),zd=kt("rtg"),Nd=kt("rtc");function Vd(e,t=Le){Gr("ec",e,t)}const ei="components";function at(e,t){return Bd(ei,e,!0,t)||e}const Fd=Symbol.for("v-ndc");function Bd(e,t,n=!0,r=!1){const o=je||Le;if(o){const a=o.type;if(e===ei){const s=yf(a,!1);if(s&&(s===t||s===Ge(t)||s===cr(Ge(t))))return a}const l=Qa(o[e]||a[e],t)||Qa(o.appContext[e],t);return!l&&r?a:l}}function Qa(e,t){return e&&(e[t]||e[Ge(t)]||e[cr(Ge(t))])}function F0(e,t,n,r){let o;const a=n&&n[r];if(q(e)||ae(e)){o=new Array(e.length);for(let l=0,s=e.length;lt(l,s,void 0,a&&a[s]));else{const l=Object.keys(e);o=new Array(l.length);for(let s=0,i=l.length;se?pi(e)?Qr(e)||e.proxy:xo(e.parent):null,qn=Ae(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>xo(e.parent),$root:e=>xo(e.root),$emit:e=>e.emit,$options:e=>da(e),$forceUpdate:e=>e.f||(e.f=()=>qr(e.update)),$nextTick:e=>e.n||(e.n=rn.bind(e.proxy)),$watch:e=>Ld.bind(e)}),co=(e,t)=>e!==ye&&!e.__isScriptSetup&&ie(e,t),Hd={get({_:e},t){const{ctx:n,setupState:r,data:o,props:a,accessCache:l,type:s,appContext:i}=e;let c;if(t[0]!=="$"){const m=l[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return a[t]}else{if(co(r,t))return l[t]=1,r[t];if(o!==ye&&ie(o,t))return l[t]=2,o[t];if((c=e.propsOptions[0])&&ie(c,t))return l[t]=3,a[t];if(n!==ye&&ie(n,t))return l[t]=4,n[t];Co&&(l[t]=0)}}const u=qn[t];let f,p;if(u)return t==="$attrs"&&Ve(e,"get",t),u(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(n!==ye&&ie(n,t))return l[t]=4,n[t];if(p=i.config.globalProperties,ie(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:a}=e;return co(o,t)?(o[t]=n,!0):r!==ye&&ie(r,t)?(r[t]=n,!0):ie(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:a}},l){let s;return!!n[l]||e!==ye&&ie(e,l)||co(t,l)||(s=a[0])&&ie(s,l)||ie(r,l)||ie(qn,l)||ie(o.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ja(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Co=!0;function jd(e){const t=da(e),n=e.proxy,r=e.ctx;Co=!1,t.beforeCreate&&Xa(t.beforeCreate,e,"bc");const{data:o,computed:a,methods:l,watch:s,provide:i,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:m,updated:y,activated:E,deactivated:T,beforeDestroy:g,beforeUnmount:_,destroyed:R,unmounted:I,render:j,renderTracked:S,renderTriggered:z,errorCaptured:P,serverPrefetch:U,expose:X,inheritAttrs:oe,components:H,directives:ee,filters:K}=t;if(c&&Ud(c,r,null),l)for(const _e in l){const ue=l[_e];te(ue)&&(r[_e]=ue.bind(n))}if(o){const _e=o.call(n,n);me(_e)&&(e.data=Rn(_e))}if(Co=!0,a)for(const _e in a){const ue=a[_e],mt=te(ue)?ue.bind(n,n):te(ue.get)?ue.get.bind(n,n):ot,Ct=!te(ue)&&te(ue.set)?ue.set.bind(n):ot,ct=A({get:mt,set:Ct});Object.defineProperty(r,_e,{enumerable:!0,configurable:!0,get:()=>ct.value,set:Me=>ct.value=Me})}if(s)for(const _e in s)ti(s[_e],r,n,_e);if(i){const _e=te(i)?i.call(n):i;Reflect.ownKeys(_e).forEach(ue=>{Jt(ue,_e[ue])})}u&&Xa(u,e,"c");function ce(_e,ue){q(ue)?ue.forEach(mt=>_e(mt.bind(n))):ue&&_e(ue.bind(n))}if(ce($d,f),ce(ve,p),ce(Dd,m),ce(Zs,y),ce(Id,E),ce(Sd,T),ce(Vd,P),ce(Nd,S),ce(zd,z),ce(ua,_),ce($n,I),ce(Md,U),q(X))if(X.length){const _e=e.exposed||(e.exposed={});X.forEach(ue=>{Object.defineProperty(_e,ue,{get:()=>n[ue],set:mt=>n[ue]=mt})})}else e.exposed||(e.exposed={});j&&e.render===ot&&(e.render=j),oe!=null&&(e.inheritAttrs=oe),H&&(e.components=H),ee&&(e.directives=ee)}function Ud(e,t,n=ot){q(e)&&(e=Io(e));for(const r in e){const o=e[r];let a;me(o)?"default"in o?a=Ee(o.from||r,o.default,!0):a=Ee(o.from||r):a=Ee(o),Te(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):t[r]=a}}function Xa(e,t,n){qe(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function ti(e,t,n,r){const o=r.includes(".")?Gs(n,r):()=>n[r];if(ae(e)){const a=t[e];te(a)&&re(o,a)}else if(te(e))re(o,e.bind(n));else if(me(e))if(q(e))e.forEach(a=>ti(a,t,n,r));else{const a=te(e.handler)?e.handler.bind(n):t[e.handler];te(a)&&re(o,a,e)}}function da(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:l}}=e.appContext,s=a.get(t);let i;return s?i=s:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(c=>zr(i,c,l,!0)),zr(i,t,l)),me(t)&&a.set(t,i),i}function zr(e,t,n,r=!1){const{mixins:o,extends:a}=t;a&&zr(e,a,n,!0),o&&o.forEach(l=>zr(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const s=Wd[l]||n&&n[l];e[l]=s?s(e[l],t[l]):t[l]}return e}const Wd={data:Za,props:el,emits:el,methods:jn,computed:jn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:jn,directives:jn,watch:Kd,provide:Za,inject:qd};function Za(e,t){return t?e?function(){return Ae(te(e)?e.call(this,this):e,te(t)?t.call(this,this):t)}:t:e}function qd(e,t){return jn(Io(e),Io(t))}function Io(e){if(q(e)){const t={};for(let n=0;n1)return n&&te(t)?t.call(r&&r.proxy):t}}function Qd(e,t,n,r=!1){const o={},a={};Ir(a,Yr,1),e.propsDefaults=Object.create(null),ri(e,t,o,a);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=r?o:ad(o):e.type.props?e.props=o:e.props=a,e.attrs=a}function Jd(e,t,n,r){const{props:o,attrs:a,vnode:{patchFlag:l}}=e,s=le(o),[i]=e.propsOptions;let c=!1;if((r||l>0)&&!(l&16)){if(l&8){const u=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[p,m]=oi(f,t,!0);Ae(l,p),m&&s.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!i)return me(e)&&r.set(e,mn),mn;if(q(a))for(let u=0;u-1,m[1]=E<0||y-1||ie(m,"default"))&&s.push(f)}}}const c=[l,s];return me(e)&&r.set(e,c),c}function tl(e){return e[0]!=="$"}function nl(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function rl(e,t){return nl(e)===nl(t)}function ol(e,t){return q(t)?t.findIndex(n=>rl(n,e)):te(t)&&rl(t,e)?0:-1}const ai=e=>e[0]==="_"||e==="$stable",fa=e=>q(e)?e.map(et):[et(e)],Xd=(e,t,n)=>{if(t._n)return t;const r=wd((...o)=>fa(t(...o)),n);return r._c=!1,r},li=(e,t,n)=>{const r=e._ctx;for(const o in e){if(ai(o))continue;const a=e[o];if(te(a))t[o]=Xd(o,a,r);else if(a!=null){const l=fa(a);t[o]=()=>l}}},si=(e,t)=>{const n=fa(t);e.slots.default=()=>n},Zd=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=le(t),Ir(t,"_",n)):li(t,e.slots={})}else e.slots={},t&&si(e,t);Ir(e.slots,Yr,1)},ef=(e,t,n)=>{const{vnode:r,slots:o}=e;let a=!0,l=ye;if(r.shapeFlag&32){const s=t._;s?n&&s===1?a=!1:(Ae(o,t),!n&&s===1&&delete o._):(a=!t.$stable,li(t,o)),l=t}else t&&(si(e,t),l={default:1});if(a)for(const s in o)!ai(s)&&!(s in l)&&delete o[s]};function Vr(e,t,n,r,o=!1){if(q(e)){e.forEach((p,m)=>Vr(p,t&&(q(t)?t[m]:t),n,r,o));return}if(Wn(r)&&!o)return;const a=r.shapeFlag&4?Qr(r.component)||r.component.proxy:r.el,l=o?null:a,{i:s,r:i}=e,c=t&&t.r,u=s.refs===ye?s.refs={}:s.refs,f=s.setupState;if(c!=null&&c!==i&&(ae(c)?(u[c]=null,ie(f,c)&&(f[c]=null)):Te(c)&&(c.value=null)),te(i))Vt(i,s,12,[l,u]);else{const p=ae(i),m=Te(i);if(p||m){const y=()=>{if(e.f){const E=p?ie(f,i)?f[i]:u[i]:i.value;o?q(E)&&Ko(E,a):q(E)?E.includes(a)||E.push(a):p?(u[i]=[a],ie(f,i)&&(f[i]=u[i])):(i.value=[a],e.k&&(u[e.k]=i.value))}else p?(u[i]=l,ie(f,i)&&(f[i]=l)):m&&(i.value=l,e.k&&(u[e.k]=l))};l?(y.id=-1,ze(y,n)):y()}}}let St=!1;const wr=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Er=e=>e.nodeType===8;function tf(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:a,parentNode:l,remove:s,insert:i,createComment:c}}=e,u=(g,_)=>{if(!_.hasChildNodes()){n(null,g,_),Dr(),_._vnode=g;return}St=!1,f(_.firstChild,g,null,null,null),Dr(),_._vnode=g,St&&console.error("Hydration completed but contains mismatches.")},f=(g,_,R,I,j,S=!1)=>{const z=Er(g)&&g.data==="[",P=()=>E(g,_,R,I,j,z),{type:U,ref:X,shapeFlag:oe,patchFlag:H}=_;let ee=g.nodeType;_.el=g,H===-2&&(S=!1,_.dynamicChildren=null);let K=null;switch(U){case En:ee!==3?_.children===""?(i(_.el=o(""),l(g),g),K=g):K=P():(g.data!==_.children&&(St=!0,g.data=_.children),K=a(g));break;case Ke:ee!==8||z?K=P():K=a(g);break;case Kn:if(z&&(g=a(g),ee=g.nodeType),ee===1||ee===3){K=g;const Ce=!_.children.length;for(let ce=0;ce<_.staticCount;ce++)Ce&&(_.children+=K.nodeType===1?K.outerHTML:K.data),ce===_.staticCount-1&&(_.anchor=K),K=a(K);return z?a(K):K}else P();break;case He:z?K=y(g,_,R,I,j,S):K=P();break;default:if(oe&1)ee!==1||_.type.toLowerCase()!==g.tagName.toLowerCase()?K=P():K=p(g,_,R,I,j,S);else if(oe&6){_.slotScopeIds=j;const Ce=l(g);if(t(_,Ce,null,R,I,wr(Ce),S),K=z?T(g):a(g),K&&Er(K)&&K.data==="teleport end"&&(K=a(K)),Wn(_)){let ce;z?(ce=Oe(He),ce.anchor=K?K.previousSibling:Ce.lastChild):ce=g.nodeType===3?fi(""):Oe("div"),ce.el=g,_.component.subTree=ce}}else oe&64?ee!==8?K=P():K=_.type.hydrate(g,_,R,I,j,S,e,m):oe&128&&(K=_.type.hydrate(g,_,R,I,wr(l(g)),j,S,e,f))}return X!=null&&Vr(X,null,I,_),K},p=(g,_,R,I,j,S)=>{S=S||!!_.dynamicChildren;const{type:z,props:P,patchFlag:U,shapeFlag:X,dirs:oe}=_,H=z==="input"&&oe||z==="option";if(H||U!==-1){if(oe&&dt(_,null,R,"created"),P)if(H||!S||U&48)for(const K in P)(H&&K.endsWith("value")||sr(K)&&!Un(K))&&r(g,K,null,P[K],!1,void 0,R);else P.onClick&&r(g,"onClick",null,P.onClick,!1,void 0,R);let ee;if((ee=P&&P.onVnodeBeforeMount)&&We(ee,R,_),oe&&dt(_,null,R,"beforeMount"),((ee=P&&P.onVnodeMounted)||oe)&&Ks(()=>{ee&&We(ee,R,_),oe&&dt(_,null,R,"mounted")},I),X&16&&!(P&&(P.innerHTML||P.textContent))){let K=m(g.firstChild,_,g,R,I,j,S);for(;K;){St=!0;const Ce=K;K=K.nextSibling,s(Ce)}}else X&8&&g.textContent!==_.children&&(St=!0,g.textContent=_.children)}return g.nextSibling},m=(g,_,R,I,j,S,z)=>{z=z||!!_.dynamicChildren;const P=_.children,U=P.length;for(let X=0;X{const{slotScopeIds:z}=_;z&&(j=j?j.concat(z):z);const P=l(g),U=m(a(g),_,P,R,I,j,S);return U&&Er(U)&&U.data==="]"?a(_.anchor=U):(St=!0,i(_.anchor=c("]"),P,U),U)},E=(g,_,R,I,j,S)=>{if(St=!0,_.el=null,S){const U=T(g);for(;;){const X=a(g);if(X&&X!==U)s(X);else break}}const z=a(g),P=l(g);return s(g),n(null,_,P,z,R,I,wr(P),j),z},T=g=>{let _=0;for(;g;)if(g=a(g),g&&Er(g)&&(g.data==="["&&_++,g.data==="]")){if(_===0)return a(g);_--}return g};return[u,f]}const ze=Ks;function nf(e){return rf(e,tf)}function rf(e,t){const n=Oo();n.__VUE__=!0;const{insert:r,remove:o,patchProp:a,createElement:l,createText:s,createComment:i,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:y}=e,E=(h,v,b,O=null,L=null,x=null,V=!1,$=null,D=!!v.dynamicChildren)=>{if(h===v)return;h&&!Kt(h,v)&&(O=k(h),Me(h,L,x,!0),h=null),v.patchFlag===-2&&(D=!1,v.dynamicChildren=null);const{type:C,ref:Q,shapeFlag:W}=v;switch(C){case En:T(h,v,b,O);break;case Ke:g(h,v,b,O);break;case Kn:h==null&&_(v,b,O,V);break;case He:H(h,v,b,O,L,x,V,$,D);break;default:W&1?j(h,v,b,O,L,x,V,$,D):W&6?ee(h,v,b,O,L,x,V,$,D):(W&64||W&128)&&C.process(h,v,b,O,L,x,V,$,D,M)}Q!=null&&L&&Vr(Q,h&&h.ref,x,v||h,!v)},T=(h,v,b,O)=>{if(h==null)r(v.el=s(v.children),b,O);else{const L=v.el=h.el;v.children!==h.children&&c(L,v.children)}},g=(h,v,b,O)=>{h==null?r(v.el=i(v.children||""),b,O):v.el=h.el},_=(h,v,b,O)=>{[h.el,h.anchor]=y(h.children,v,b,O,h.el,h.anchor)},R=({el:h,anchor:v},b,O)=>{let L;for(;h&&h!==v;)L=p(h),r(h,b,O),h=L;r(v,b,O)},I=({el:h,anchor:v})=>{let b;for(;h&&h!==v;)b=p(h),o(h),h=b;o(v)},j=(h,v,b,O,L,x,V,$,D)=>{V=V||v.type==="svg",h==null?S(v,b,O,L,x,V,$,D):U(h,v,L,x,V,$,D)},S=(h,v,b,O,L,x,V,$)=>{let D,C;const{type:Q,props:W,shapeFlag:J,transition:Z,dirs:ne}=h;if(D=h.el=l(h.type,x,W&&W.is,W),J&8?u(D,h.children):J&16&&P(h.children,D,null,O,L,x&&Q!=="foreignObject",V,$),ne&&dt(h,null,O,"created"),z(D,h,h.scopeId,V,O),W){for(const he in W)he!=="value"&&!Un(he)&&a(D,he,null,W[he],x,h.children,O,L,Ie);"value"in W&&a(D,"value",null,W.value),(C=W.onVnodeBeforeMount)&&We(C,O,h)}ne&&dt(h,null,O,"beforeMount");const be=(!L||L&&!L.pendingBranch)&&Z&&!Z.persisted;be&&Z.beforeEnter(D),r(D,v,b),((C=W&&W.onVnodeMounted)||be||ne)&&ze(()=>{C&&We(C,O,h),be&&Z.enter(D),ne&&dt(h,null,O,"mounted")},L)},z=(h,v,b,O,L)=>{if(b&&m(h,b),O)for(let x=0;x{for(let C=D;C{const $=v.el=h.el;let{patchFlag:D,dynamicChildren:C,dirs:Q}=v;D|=h.patchFlag&16;const W=h.props||ye,J=v.props||ye;let Z;b&&Ut(b,!1),(Z=J.onVnodeBeforeUpdate)&&We(Z,b,v,h),Q&&dt(v,h,b,"beforeUpdate"),b&&Ut(b,!0);const ne=L&&v.type!=="foreignObject";if(C?X(h.dynamicChildren,C,$,b,O,ne,x):V||ue(h,v,$,null,b,O,ne,x,!1),D>0){if(D&16)oe($,v,W,J,b,O,L);else if(D&2&&W.class!==J.class&&a($,"class",null,J.class,L),D&4&&a($,"style",W.style,J.style,L),D&8){const be=v.dynamicProps;for(let he=0;he{Z&&We(Z,b,v,h),Q&&dt(v,h,b,"updated")},O)},X=(h,v,b,O,L,x,V)=>{for(let $=0;${if(b!==O){if(b!==ye)for(const $ in b)!Un($)&&!($ in O)&&a(h,$,b[$],null,V,v.children,L,x,Ie);for(const $ in O){if(Un($))continue;const D=O[$],C=b[$];D!==C&&$!=="value"&&a(h,$,C,D,V,v.children,L,x,Ie)}"value"in O&&a(h,"value",b.value,O.value)}},H=(h,v,b,O,L,x,V,$,D)=>{const C=v.el=h?h.el:s(""),Q=v.anchor=h?h.anchor:s("");let{patchFlag:W,dynamicChildren:J,slotScopeIds:Z}=v;Z&&($=$?$.concat(Z):Z),h==null?(r(C,b,O),r(Q,b,O),P(v.children,b,Q,L,x,V,$,D)):W>0&&W&64&&J&&h.dynamicChildren?(X(h.dynamicChildren,J,b,L,x,V,$),(v.key!=null||L&&v===L.subTree)&&ii(h,v,!0)):ue(h,v,b,Q,L,x,V,$,D)},ee=(h,v,b,O,L,x,V,$,D)=>{v.slotScopeIds=$,h==null?v.shapeFlag&512?L.ctx.activate(v,b,O,V,D):K(v,b,O,L,x,V,D):Ce(h,v,D)},K=(h,v,b,O,L,x,V)=>{const $=h.component=mf(h,O,L);if(dr(h)&&($.ctx.renderer=M),vf($),$.asyncDep){if(L&&L.registerDep($,ce),!h.el){const D=$.subTree=Oe(Ke);g(null,D,v,b)}return}ce($,h,v,b,L,x,V)},Ce=(h,v,b)=>{const O=v.component=h.component;if(Od(h,v,b))if(O.asyncDep&&!O.asyncResolved){_e(O,v,b);return}else O.next=v,gd(O.update),O.update();else v.el=h.el,O.vnode=v},ce=(h,v,b,O,L,x,V)=>{const $=()=>{if(h.isMounted){let{next:Q,bu:W,u:J,parent:Z,vnode:ne}=h,be=Q,he;Ut(h,!1),Q?(Q.el=ne.el,_e(h,Q,V)):Q=ne,W&&xr(W),(he=Q.props&&Q.props.onVnodeBeforeUpdate)&&We(he,Z,Q,ne),Ut(h,!0);const ke=lo(h),Ze=h.subTree;h.subTree=ke,E(Ze,ke,f(Ze.el),k(Ze),h,L,x),Q.el=ke.el,be===null&&Ad(h,ke.el),J&&ze(J,L),(he=Q.props&&Q.props.onVnodeUpdated)&&ze(()=>We(he,Z,Q,ne),L)}else{let Q;const{el:W,props:J}=v,{bm:Z,m:ne,parent:be}=h,he=Wn(v);if(Ut(h,!1),Z&&xr(Z),!he&&(Q=J&&J.onVnodeBeforeMount)&&We(Q,be,v),Ut(h,!0),W&&de){const ke=()=>{h.subTree=lo(h),de(W,h.subTree,h,L,null)};he?v.type.__asyncLoader().then(()=>!h.isUnmounted&&ke()):ke()}else{const ke=h.subTree=lo(h);E(null,ke,b,O,h,L,x),v.el=ke.el}if(ne&&ze(ne,L),!he&&(Q=J&&J.onVnodeMounted)){const ke=v;ze(()=>We(Q,be,ke),L)}(v.shapeFlag&256||be&&Wn(be.vnode)&&be.vnode.shapeFlag&256)&&h.a&&ze(h.a,L),h.isMounted=!0,v=b=O=null}},D=h.effect=new Zo($,()=>qr(C),h.scope),C=h.update=()=>D.run();C.id=h.uid,Ut(h,!0),C()},_e=(h,v,b)=>{v.component=h;const O=h.vnode.props;h.vnode=v,h.next=null,Jd(h,v.props,O,b),ef(h,v.children,b),In(),Ka(),Sn()},ue=(h,v,b,O,L,x,V,$,D=!1)=>{const C=h&&h.children,Q=h?h.shapeFlag:0,W=v.children,{patchFlag:J,shapeFlag:Z}=v;if(J>0){if(J&128){Ct(C,W,b,O,L,x,V,$,D);return}else if(J&256){mt(C,W,b,O,L,x,V,$,D);return}}Z&8?(Q&16&&Ie(C,L,x),W!==C&&u(b,W)):Q&16?Z&16?Ct(C,W,b,O,L,x,V,$,D):Ie(C,L,x,!0):(Q&8&&u(b,""),Z&16&&P(W,b,O,L,x,V,$,D))},mt=(h,v,b,O,L,x,V,$,D)=>{h=h||mn,v=v||mn;const C=h.length,Q=v.length,W=Math.min(C,Q);let J;for(J=0;JQ?Ie(h,L,x,!0,!1,W):P(v,b,O,L,x,V,$,D,W)},Ct=(h,v,b,O,L,x,V,$,D)=>{let C=0;const Q=v.length;let W=h.length-1,J=Q-1;for(;C<=W&&C<=J;){const Z=h[C],ne=v[C]=D?Dt(v[C]):et(v[C]);if(Kt(Z,ne))E(Z,ne,b,null,L,x,V,$,D);else break;C++}for(;C<=W&&C<=J;){const Z=h[W],ne=v[J]=D?Dt(v[J]):et(v[J]);if(Kt(Z,ne))E(Z,ne,b,null,L,x,V,$,D);else break;W--,J--}if(C>W){if(C<=J){const Z=J+1,ne=ZJ)for(;C<=W;)Me(h[C],L,x,!0),C++;else{const Z=C,ne=C,be=new Map;for(C=ne;C<=J;C++){const Fe=v[C]=D?Dt(v[C]):et(v[C]);Fe.key!=null&&be.set(Fe.key,C)}let he,ke=0;const Ze=J-ne+1;let cn=!1,$a=0;const Nn=new Array(Ze);for(C=0;C=Ze){Me(Fe,L,x,!0);continue}let ut;if(Fe.key!=null)ut=be.get(Fe.key);else for(he=ne;he<=J;he++)if(Nn[he-ne]===0&&Kt(Fe,v[he])){ut=he;break}ut===void 0?Me(Fe,L,x,!0):(Nn[ut-ne]=C+1,ut>=$a?$a=ut:cn=!0,E(Fe,v[ut],b,null,L,x,V,$,D),ke++)}const Da=cn?of(Nn):mn;for(he=Da.length-1,C=Ze-1;C>=0;C--){const Fe=ne+C,ut=v[Fe],Ma=Fe+1{const{el:x,type:V,transition:$,children:D,shapeFlag:C}=h;if(C&6){ct(h.component.subTree,v,b,O);return}if(C&128){h.suspense.move(v,b,O);return}if(C&64){V.move(h,v,b,M);return}if(V===He){r(x,v,b);for(let W=0;W$.enter(x),L);else{const{leave:W,delayLeave:J,afterLeave:Z}=$,ne=()=>r(x,v,b),be=()=>{W(x,()=>{ne(),Z&&Z()})};J?J(x,ne,be):be()}else r(x,v,b)},Me=(h,v,b,O=!1,L=!1)=>{const{type:x,props:V,ref:$,children:D,dynamicChildren:C,shapeFlag:Q,patchFlag:W,dirs:J}=h;if($!=null&&Vr($,null,b,h,!0),Q&256){v.ctx.deactivate(h);return}const Z=Q&1&&J,ne=!Wn(h);let be;if(ne&&(be=V&&V.onVnodeBeforeUnmount)&&We(be,v,h),Q&6)hr(h.component,b,O);else{if(Q&128){h.suspense.unmount(b,O);return}Z&&dt(h,null,v,"beforeUnmount"),Q&64?h.type.remove(h,v,b,L,M,O):C&&(x!==He||W>0&&W&64)?Ie(C,v,b,!1,!0):(x===He&&W&384||!L&&Q&16)&&Ie(D,v,b),O&&ln(h)}(ne&&(be=V&&V.onVnodeUnmounted)||Z)&&ze(()=>{be&&We(be,v,h),Z&&dt(h,null,v,"unmounted")},b)},ln=h=>{const{type:v,el:b,anchor:O,transition:L}=h;if(v===He){sn(b,O);return}if(v===Kn){I(h);return}const x=()=>{o(b),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(h.shapeFlag&1&&L&&!L.persisted){const{leave:V,delayLeave:$}=L,D=()=>V(b,x);$?$(h.el,x,D):D()}else x()},sn=(h,v)=>{let b;for(;h!==v;)b=p(h),o(h),h=b;o(v)},hr=(h,v,b)=>{const{bum:O,scope:L,update:x,subTree:V,um:$}=h;O&&xr(O),L.stop(),x&&(x.active=!1,Me(V,h,v,b)),$&&ze($,v),ze(()=>{h.isUnmounted=!0},v),v&&v.pendingBranch&&!v.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===v.pendingId&&(v.deps--,v.deps===0&&v.resolve())},Ie=(h,v,b,O=!1,L=!1,x=0)=>{for(let V=x;Vh.shapeFlag&6?k(h.component.subTree):h.shapeFlag&128?h.suspense.next():p(h.anchor||h.el),F=(h,v,b)=>{h==null?v._vnode&&Me(v._vnode,null,null,!0):E(v._vnode||null,h,v,null,null,null,b),Ka(),Dr(),v._vnode=h},M={p:E,um:Me,m:ct,r:ln,mt:K,mc:P,pc:ue,pbc:X,n:k,o:e};let Y,de;return t&&([Y,de]=t(M)),{render:F,hydrate:Y,createApp:Yd(F,Y)}}function Ut({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ii(e,t,n=!1){const r=e.children,o=t.children;if(q(r)&&q(o))for(let a=0;a>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,l=n[a-1];a-- >0;)n[a]=l,l=t[l];return n}const af=e=>e.__isTeleport,He=Symbol.for("v-fgt"),En=Symbol.for("v-txt"),Ke=Symbol.for("v-cmt"),Kn=Symbol.for("v-stc"),Gn=[];let rt=null;function lf(e=!1){Gn.push(rt=e?null:[])}function sf(){Gn.pop(),rt=Gn[Gn.length-1]||null}let or=1;function al(e){or+=e}function ci(e){return e.dynamicChildren=or>0?rt||mn:null,sf(),or>0&&rt&&rt.push(e),e}function B0(e,t,n,r,o,a){return ci(di(e,t,n,r,o,a,!0))}function cf(e,t,n,r,o){return ci(Oe(e,t,n,r,o,!0))}function Ro(e){return e?e.__v_isVNode===!0:!1}function Kt(e,t){return e.type===t.type&&e.key===t.key}const Yr="__vInternal",ui=({key:e})=>e??null,Cr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ae(e)||Te(e)||te(e)?{i:je,r:e,k:t,f:!!n}:e:null);function di(e,t=null,n=null,r=0,o=null,a=e===He?0:1,l=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ui(t),ref:t&&Cr(t),scopeId:qs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:je};return s?(pa(i,n),a&128&&e.normalize(i)):n&&(i.shapeFlag|=ae(n)?8:16),or>0&&!l&&rt&&(i.patchFlag>0||a&6)&&i.patchFlag!==32&&rt.push(i),i}const Oe=uf;function uf(e,t=null,n=null,r=0,o=null,a=!1){if((!e||e===Fd)&&(e=Ke),Ro(e)){const s=Bt(e,t,!0);return n&&pa(s,n),or>0&&!a&&rt&&(s.shapeFlag&6?rt[rt.indexOf(e)]=s:rt.push(s)),s.patchFlag|=-2,s}if(wf(e)&&(e=e.__vccOpts),t){t=df(t);let{class:s,style:i}=t;s&&!ae(s)&&(t.class=Qo(s)),me(i)&&(Ns(i)&&!q(i)&&(i=Ae({},i)),t.style=Yo(i))}const l=ae(e)?1:Pd(e)?128:af(e)?64:me(e)?4:te(e)?2:0;return di(e,t,n,r,o,l,a,!0)}function df(e){return e?Ns(e)||Yr in e?Ae({},e):e:null}function Bt(e,t,n=!1){const{props:r,ref:o,patchFlag:a,children:l}=e,s=t?ff(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ui(s),ref:t&&t.ref?n&&o?q(o)?o.concat(Cr(t)):[o,Cr(t)]:Cr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==He?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Bt(e.ssContent),ssFallback:e.ssFallback&&Bt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function fi(e=" ",t=0){return Oe(En,null,e,t)}function H0(e,t){const n=Oe(Kn,null,e);return n.staticCount=t,n}function j0(e="",t=!1){return t?(lf(),cf(Ke,null,e)):Oe(Ke,null,e)}function et(e){return e==null||typeof e=="boolean"?Oe(Ke):q(e)?Oe(He,null,e.slice()):typeof e=="object"?Dt(e):Oe(En,null,String(e))}function Dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Bt(e)}function pa(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),pa(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(Yr in t)?t._ctx=je:o===3&&je&&(je.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else te(t)?(t={default:t,_ctx:je},n=32):(t=String(t),r&64?(n=16,t=[fi(t)]):n=8);e.children=t,e.shapeFlag|=n}function ff(...e){const t={};for(let n=0;nLe||je;let ha,un,ll="__VUE_INSTANCE_SETTERS__";(un=Oo()[ll])||(un=Oo()[ll]=[]),un.push(e=>Le=e),ha=e=>{un.length>1?un.forEach(t=>t(e)):un[0](e)};const Tn=e=>{ha(e),e.scope.on()},Xt=()=>{Le&&Le.scope.off(),ha(null)};function pi(e){return e.vnode.shapeFlag&4}let On=!1;function vf(e,t=!1){On=t;const{props:n,children:r}=e.vnode,o=pi(e);Qd(e,n,o,t),Zd(e,r);const a=o?gf(e,t):void 0;return On=!1,a}function gf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Vs(new Proxy(e.ctx,Hd));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?bf(e):null;Tn(e),In();const a=Vt(r,e,0,[e.props,o]);if(Sn(),Xt(),Es(a)){if(a.then(Xt,Xt),t)return a.then(l=>{sl(e,l,t)}).catch(l=>{ur(l,e,0)});e.asyncDep=a}else sl(e,a,t)}else hi(e,t)}function sl(e,t,n){te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:me(t)&&(e.setupState=Bs(t)),hi(e,n)}let il;function hi(e,t,n){const r=e.type;if(!e.render){if(!t&&il&&!r.render){const o=r.template||da(e).template;if(o){const{isCustomElement:a,compilerOptions:l}=e.appContext.config,{delimiters:s,compilerOptions:i}=r,c=Ae(Ae({isCustomElement:a,delimiters:s},l),i);r.render=il(o,c)}}e.render=r.render||ot}Tn(e),In(),jd(e),Sn(),Xt()}function _f(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Ve(e,"get","$attrs"),t[n]}}))}function bf(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return _f(e)},slots:e.slots,emit:e.emit,expose:t}}function Qr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Bs(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)},has(t,n){return n in t||n in qn}}))}function yf(e,t=!0){return te(e)?e.displayName||e.name:e.name||t&&e.__name}function wf(e){return te(e)&&"__vccOpts"in e}const A=(e,t)=>hd(e,t,On);function d(e,t,n){const r=arguments.length;return r===2?me(t)&&!q(t)?Ro(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ro(n)&&(n=[n]),Oe(e,t,n))}const Ef=Symbol.for("v-scx"),Tf=()=>Ee(Ef),Of="3.3.4",Af="http://www.w3.org/2000/svg",Gt=typeof document<"u"?document:null,cl=Gt&&Gt.createElement("template"),Pf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?Gt.createElementNS(Af,e):Gt.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Gt.createTextNode(e),createComment:e=>Gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,a){const l=n?n.previousSibling:t.lastChild;if(o&&(o===a||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===a||!(o=o.nextSibling)););else{cl.innerHTML=r?`${e}`:e;const s=cl.content;if(r){const i=s.firstChild;for(;i.firstChild;)s.appendChild(i.firstChild);s.removeChild(i)}t.insertBefore(s,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function kf(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Lf(e,t,n){const r=e.style,o=ae(n);if(n&&!o){if(t&&!ae(t))for(const a in t)n[a]==null&&$o(r,a,"");for(const a in n)$o(r,a,n[a])}else{const a=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=a)}}const ul=/\s*!important$/;function $o(e,t,n){if(q(n))n.forEach(r=>$o(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=xf(e,t);ul.test(n)?e.setProperty(Cn(r),n.replace(ul,""),"important"):e[r]=n}}const dl=["Webkit","Moz","ms"],uo={};function xf(e,t){const n=uo[t];if(n)return n;let r=Ge(t);if(r!=="filter"&&r in e)return uo[t]=r;r=cr(r);for(let o=0;ofo||(Df.then(()=>fo=0),fo=Date.now());function zf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;qe(Nf(r,n.value),t,5,[r])};return n.value=e,n.attached=Mf(),n}function Nf(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const hl=/^on[a-z]/,Vf=(e,t,n,r,o=!1,a,l,s,i)=>{t==="class"?kf(e,r,o):t==="style"?Lf(e,n,r):sr(t)?qo(t)||Rf(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ff(e,t,r,o))?If(e,t,r,a,l,s,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Cf(e,t,r,o))};function Ff(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&hl.test(t)&&te(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||hl.test(t)&&ae(n)?!1:t in e}const Rt="transition",Vn="animation",Pt=(e,{slots:t})=>d(Cd,vi(e),t);Pt.displayName="Transition";const mi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Bf=Pt.props=Ae({},Qs,mi),Wt=(e,t=[])=>{q(e)?e.forEach(n=>n(...t)):e&&e(...t)},ml=e=>e?q(e)?e.some(t=>t.length>1):e.length>1:!1;function vi(e){const t={};for(const H in e)H in mi||(t[H]=e[H]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:a=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=a,appearActiveClass:c=l,appearToClass:u=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,y=Hf(o),E=y&&y[0],T=y&&y[1],{onBeforeEnter:g,onEnter:_,onEnterCancelled:R,onLeave:I,onLeaveCancelled:j,onBeforeAppear:S=g,onAppear:z=_,onAppearCancelled:P=R}=t,U=(H,ee,K)=>{$t(H,ee?u:s),$t(H,ee?c:l),K&&K()},X=(H,ee)=>{H._isLeaving=!1,$t(H,f),$t(H,m),$t(H,p),ee&&ee()},oe=H=>(ee,K)=>{const Ce=H?z:_,ce=()=>U(ee,H,K);Wt(Ce,[ee,ce]),vl(()=>{$t(ee,H?i:a),gt(ee,H?u:s),ml(Ce)||gl(ee,r,E,ce)})};return Ae(t,{onBeforeEnter(H){Wt(g,[H]),gt(H,a),gt(H,l)},onBeforeAppear(H){Wt(S,[H]),gt(H,i),gt(H,c)},onEnter:oe(!1),onAppear:oe(!0),onLeave(H,ee){H._isLeaving=!0;const K=()=>X(H,ee);gt(H,f),_i(),gt(H,p),vl(()=>{H._isLeaving&&($t(H,f),gt(H,m),ml(I)||gl(H,r,T,K))}),Wt(I,[H,K])},onEnterCancelled(H){U(H,!1),Wt(R,[H])},onAppearCancelled(H){U(H,!0),Wt(P,[H])},onLeaveCancelled(H){X(H),Wt(j,[H])}})}function Hf(e){if(e==null)return null;if(me(e))return[po(e.enter),po(e.leave)];{const t=po(e);return[t,t]}}function po(e){return wu(e)}function gt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function $t(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function vl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let jf=0;function gl(e,t,n,r){const o=e._endId=++jf,a=()=>{o===e._endId&&r()};if(n)return setTimeout(a,n);const{type:l,timeout:s,propCount:i}=gi(e,t);if(!l)return r();const c=l+"end";let u=0;const f=()=>{e.removeEventListener(c,p),a()},p=m=>{m.target===e&&++u>=i&&f()};setTimeout(()=>{u(n[y]||"").split(", "),o=r(`${Rt}Delay`),a=r(`${Rt}Duration`),l=_l(o,a),s=r(`${Vn}Delay`),i=r(`${Vn}Duration`),c=_l(s,i);let u=null,f=0,p=0;t===Rt?l>0&&(u=Rt,f=l,p=a.length):t===Vn?c>0&&(u=Vn,f=c,p=i.length):(f=Math.max(l,c),u=f>0?l>c?Rt:Vn:null,p=u?u===Rt?a.length:i.length:0);const m=u===Rt&&/\b(transform|all)(,|$)/.test(r(`${Rt}Property`).toString());return{type:u,timeout:f,propCount:p,hasTransform:m}}function _l(e,t){for(;e.lengthbl(n)+bl(e[r])))}function bl(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function _i(){return document.body.offsetHeight}const bi=new WeakMap,yi=new WeakMap,wi={name:"TransitionGroup",props:Ae({},Bf,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=on(),r=Ys();let o,a;return Zs(()=>{if(!o.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!Gf(o[0].el,n.vnode.el,l))return;o.forEach(Wf),o.forEach(qf);const s=o.filter(Kf);_i(),s.forEach(i=>{const c=i.el,u=c.style;gt(c,l),u.transform=u.webkitTransform=u.transitionDuration="";const f=c._moveCb=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",f),c._moveCb=null,$t(c,l))};c.addEventListener("transitionend",f)})}),()=>{const l=le(e),s=vi(l);let i=l.tag||He;o=a,a=t.default?ca(t.default()):[];for(let c=0;cdelete e.mode;wi.props;const Ei=wi;function Wf(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function qf(e){yi.set(e,e.el.getBoundingClientRect())}function Kf(e){const t=bi.get(e),n=yi.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${r}px,${o}px)`,a.transitionDuration="0s",e}}function Gf(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(l=>{l.split(/\s+/).forEach(s=>s&&r.classList.remove(s))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:a}=gi(r);return o.removeChild(r),a}const Ht=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>xr(t,n):t};function Yf(e){e.target.composing=!0}function yl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const wl={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e._assign=Ht(o);const a=r||o.props&&o.props.type==="number";wt(e,t?"change":"input",l=>{if(l.target.composing)return;let s=e.value;n&&(s=s.trim()),a&&(s=Sr(s)),e._assign(s)}),n&&wt(e,"change",()=>{e.value=e.value.trim()}),t||(wt(e,"compositionstart",Yf),wt(e,"compositionend",yl),wt(e,"change",yl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:o}},a){if(e._assign=Ht(a),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(o||e.type==="number")&&Sr(e.value)===t))return;const l=t??"";e.value!==l&&(e.value=l)}},Qf={deep:!0,created(e,t,n){e._assign=Ht(n),wt(e,"change",()=>{const r=e._modelValue,o=An(e),a=e.checked,l=e._assign;if(q(r)){const s=Jo(r,o),i=s!==-1;if(a&&!i)l(r.concat(o));else if(!a&&i){const c=[...r];c.splice(s,1),l(c)}}else if(xn(r)){const s=new Set(r);a?s.add(o):s.delete(o),l(s)}else l(Ti(e,a))})},mounted:El,beforeUpdate(e,t,n){e._assign=Ht(n),El(e,t,n)}};function El(e,{value:t,oldValue:n},r){e._modelValue=t,q(t)?e.checked=Jo(t,r.props.value)>-1:xn(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Zt(t,Ti(e,!0)))}const Jf={created(e,{value:t},n){e.checked=Zt(t,n.props.value),e._assign=Ht(n),wt(e,"change",()=>{e._assign(An(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=Ht(r),t!==n&&(e.checked=Zt(t,r.props.value))}},Xf={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=xn(t);wt(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Sr(An(l)):An(l));e._assign(e.multiple?o?new Set(a):a:a[0])}),e._assign=Ht(r)},mounted(e,{value:t}){Tl(e,t)},beforeUpdate(e,t,n){e._assign=Ht(n)},updated(e,{value:t}){Tl(e,t)}};function Tl(e,t){const n=e.multiple;if(!(n&&!q(t)&&!xn(t))){for(let r=0,o=e.options.length;r-1:a.selected=t.has(l);else if(Zt(An(a),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function An(e){return"_value"in e?e._value:e.value}function Ti(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const U0={created(e,t,n){Tr(e,t,n,null,"created")},mounted(e,t,n){Tr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){Tr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){Tr(e,t,n,r,"updated")}};function Zf(e,t){switch(e){case"SELECT":return Xf;case"TEXTAREA":return wl;default:switch(t){case"checkbox":return Qf;case"radio":return Jf;default:return wl}}}function Tr(e,t,n,r,o){const l=Zf(e.tagName,n.props&&n.props.type)[o];l&&l(e,t,n,r)}const W0={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Fn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Fn(e,!0),r.enter(e)):r.leave(e,()=>{Fn(e,!1)}):Fn(e,t))},beforeUnmount(e,{value:t}){Fn(e,t)}};function Fn(e,t){e.style.display=t?e._vod:"none"}const ep=Ae({patchProp:Vf},Pf);let ho,Ol=!1;function tp(){return ho=Ol?ho:nf(ep),Ol=!0,ho}const np=(...e)=>{const t=tp().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=rp(r);if(o)return n(o,!0,o instanceof SVGElement)},t};function rp(e){return ae(e)?document.querySelector(e):e}const op={"v-2d0a870d":()=>w(()=>import("./index.html-00dbcbea.js"),[]).then(({data:e})=>e),"v-082946dd":()=>w(()=>import("./community.html-8264ee0b.js"),[]).then(({data:e})=>e),"v-038e810e":()=>w(()=>import("./i18n.html-5fe8fe46.js"),[]).then(({data:e})=>e),"v-ba407326":()=>w(()=>import("./menu.html-26e19633.js"),[]).then(({data:e})=>e),"v-586858ed":()=>w(()=>import("./project.html-41f89b8c.js"),[]).then(({data:e})=>e),"v-0c01f6a4":()=>w(()=>import("./quick-start.html-6fea300a.js"),[]).then(({data:e})=>e),"v-23b9870a":()=>w(()=>import("./side-load.html-e04e7234.js"),[]).then(({data:e})=>e),"v-7d29d7d8":()=>w(()=>import("./star-request.html-4cb88d32.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>w(()=>import("./index.html-f78206be.js"),[]).then(({data:e})=>e),"v-5cad49b8":()=>w(()=>import("./community.html-77c874f1.js"),[]).then(({data:e})=>e),"v-27c4e153":()=>w(()=>import("./i18n.html-ce4441c1.js"),[]).then(({data:e})=>e),"v-71d3b29c":()=>w(()=>import("./menu.html-68335df6.js"),[]).then(({data:e})=>e),"v-6c355688":()=>w(()=>import("./project.html-e96a464c.js"),[]).then(({data:e})=>e),"v-4f90aebf":()=>w(()=>import("./quick-start.html-a1f49e05.js"),[]).then(({data:e})=>e),"v-783d89e5":()=>w(()=>import("./side-load.html-9cc44de3.js"),[]).then(({data:e})=>e),"v-a91bb9c6":()=>w(()=>import("./star-request.html-2ad37f25.js"),[]).then(({data:e})=>e),"v-1bd4ef83":()=>w(()=>import("./FAQ.html-d6fcc8da.js"),[]).then(({data:e})=>e),"v-5c3f740a":()=>w(()=>import("./Gacha-system-and-export-principal.html-cf17a2c3.js"),[]).then(({data:e})=>e),"v-5f449840":()=>w(()=>import("./index.html-b2cf2c28.js"),[]).then(({data:e})=>e),"v-1a028d16":()=>w(()=>import("./exceptions.html-8157d8c2.js"),[]).then(({data:e})=>e),"v-bd668802":()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-7c0dd482.js"),[]).then(({data:e})=>e),"v-51647c4a":()=>w(()=>import("./known-issue.html-511bf0e2.js"),[]).then(({data:e})=>e),"v-bbae7dd2":()=>w(()=>import("./uninstall.html-e98d2832.js"),[]).then(({data:e})=>e),"v-f88d343e":()=>w(()=>import("./index.html-7e4d27d7.js"),[]).then(({data:e})=>e),"v-32bb1805":()=>w(()=>import("./platform.html-1b433c3a.js"),[]).then(({data:e})=>e),"v-30f089b6":()=>w(()=>import("./index.html-d6e83c3d.js"),[]).then(({data:e})=>e),"v-699a13b0":()=>w(()=>import("./achievements.html-7e466c8a.js"),[]).then(({data:e})=>e),"v-f3692af4":()=>w(()=>import("./character-data.html-a8002393.js"),[]).then(({data:e})=>e),"v-10108380":()=>w(()=>import("./character-wiki.html-6f6ce2c3.js"),[]).then(({data:e})=>e),"v-36ceadac":()=>w(()=>import("./dashboard.html-2499d39c.js"),[]).then(({data:e})=>e),"v-83f6294a":()=>w(()=>import("./develop-plan.html-a870290b.js"),[]).then(({data:e})=>e),"v-7839fe83":()=>w(()=>import("./game-launcher.html-2f704534.js"),[]).then(({data:e})=>e),"v-0106e0dc":()=>w(()=>import("./hutao-API.html-f49eaf10.js"),[]).then(({data:e})=>e),"v-639b3ef9":()=>w(()=>import("./hutao-settings.html-912ef253.js"),[]).then(({data:e})=>e),"v-03aaffb1":()=>w(()=>import("./mhy-account-switch.html-e7ebd02a.js"),[]).then(({data:e})=>e),"v-124743a4":()=>w(()=>import("./real-time-notes.html-007137ef.js"),[]).then(({data:e})=>e),"v-e30b3c46":()=>w(()=>import("./weapon-wiki.html-5722a870.js"),[]).then(({data:e})=>e),"v-b8e3a2b8":()=>w(()=>import("./wish-export.html-e367596f.js"),[]).then(({data:e})=>e),"v-a4f9d2c4":()=>w(()=>import("./index.html-62b6158d.js"),[]).then(({data:e})=>e),"v-45ceb024":()=>w(()=>import("./bug-report.html-be008402.js"),[]).then(({data:e})=>e),"v-b4085a44":()=>w(()=>import("./privacy-notice.html-43cfb1bb.js"),[]).then(({data:e})=>e),"v-b1c7a1c2":()=>w(()=>import("./tos.html-2697c794.js"),[]).then(({data:e})=>e),"v-52f43e3b":()=>w(()=>import("./update-log.html-60a35ed5.js"),[]).then(({data:e})=>e),"v-4a1d3ac8":()=>w(()=>import("./FAQ.html-77b73d8a.js"),[]).then(({data:e})=>e),"v-b0dd6b00":()=>w(()=>import("./Gacha-system-and-export-principal.html-35e3a9ed.js"),[]).then(({data:e})=>e),"v-16d7d7b6":()=>w(()=>import("./index.html-20c8279c.js"),[]).then(({data:e})=>e),"v-c8e5b2e0":()=>w(()=>import("./exceptions.html-44fb45f0.js"),[]).then(({data:e})=>e),"v-6892c29a":()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-a4274fa1.js"),[]).then(({data:e})=>e),"v-8ab89ae2":()=>w(()=>import("./known-issue.html-eb48207a.js"),[]).then(({data:e})=>e),"v-a04a76c8":()=>w(()=>import("./uninstall.html-f3e75a7a.js"),[]).then(({data:e})=>e),"v-d0f33908":()=>w(()=>import("./index.html-3b8b0cf1.js"),[]).then(({data:e})=>e),"v-c80b636c":()=>w(()=>import("./platform.html-49d33fba.js"),[]).then(({data:e})=>e),"v-56d3ae80":()=>w(()=>import("./symposium1.html-fcc754a5.js"),[]).then(({data:e})=>e),"v-5369fd42":()=>w(()=>import("./symposium2.html-f0280800.js"),[]).then(({data:e})=>e),"v-0bbe1b6a":()=>w(()=>import("./index.html-c943e40a.js"),[]).then(({data:e})=>e),"v-2841a60b":()=>w(()=>import("./achievements.html-c513ff85.js"),[]).then(({data:e})=>e),"v-3957d221":()=>w(()=>import("./character-data.html-d19c231c.js"),[]).then(({data:e})=>e),"v-a9f7b44a":()=>w(()=>import("./character-wiki.html-47702f57.js"),[]).then(({data:e})=>e),"v-1b6aa6a2":()=>w(()=>import("./dashboard.html-22f8c199.js"),[]).then(({data:e})=>e),"v-7cac7db6":()=>w(()=>import("./develop-plan.html-6e34fa5d.js"),[]).then(({data:e})=>e),"v-e2f690f0":()=>w(()=>import("./game-launcher.html-d7fe4a18.js"),[]).then(({data:e})=>e),"v-0eb8e461":()=>w(()=>import("./hutao-API.html-238785b2.js"),[]).then(({data:e})=>e),"v-16a7a694":()=>w(()=>import("./hutao-settings.html-4c5f1089.js"),[]).then(({data:e})=>e),"v-04b421cc":()=>w(()=>import("./mhy-account-switch.html-60e9ae96.js"),[]).then(({data:e})=>e),"v-b5462c1a":()=>w(()=>import("./real-time-notes.html-4ffa95f3.js"),[]).then(({data:e})=>e),"v-108ccfbc":()=>w(()=>import("./weapon-wiki.html-38a68cbb.js"),[]).then(({data:e})=>e),"v-0ccd64e9":()=>w(()=>import("./wish-export.html-4db41232.js"),[]).then(({data:e})=>e),"v-c4bb0cba":()=>w(()=>import("./index.html-75933301.js"),[]).then(({data:e})=>e),"v-c87f8b6e":()=>w(()=>import("./bug-report.html-4e9d3984.js"),[]).then(({data:e})=>e),"v-70e6808e":()=>w(()=>import("./privacy-notice.html-09b28c46.js"),[]).then(({data:e})=>e),"v-647ebd24":()=>w(()=>import("./tos.html-09235935.js"),[]).then(({data:e})=>e),"v-119bd096":()=>w(()=>import("./update-log.html-2a70e7c3.js"),[]).then(({data:e})=>e),"v-3706649a":()=>w(()=>import("./404.html-392add74.js"),[]).then(({data:e})=>e),"v-8daa1a0e":()=>w(()=>import("./index.html-ead0711a.js"),[]).then(({data:e})=>e)},ap=JSON.parse('{"base":"/","lang":"en-US","title":"","description":"","head":[["script",{"src":"https://umami.irain.in/script.js","data-website-id":"f586534f-1741-450e-a0f4-3c0189f993c9","async":"","defer":""}],["script",{"type":"module","src":"https://get.microsoft.com/badge/ms-store-badge.bundled.js"}],["link",{"rel":"icon","href":"/favicon.ico"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-512.png","type":"image/png","sizes":"512x512"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-192.png","type":"image/png","sizes":"192x192"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-144.png","type":"image/png","sizes":"144x144"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-72.png","type":"image/png","sizes":"72x72"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-96.png","type":"image/png","sizes":"96x96"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-48.png","type":"image/png","sizes":"48x48"}],["link",{"rel":"manifest","href":"/manifest.webmanifest","crossorigin":"use-credentials"}],["meta",{"name":"theme-color","content":"#f26d6d"}],["link",{"rel":"apple-touch-icon","href":"/favicon.ico"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}],["meta",{"name":"msapplication-TileImage","content":"/favicon.ico"}],["meta",{"name":"msapplication-TileColor","content":"#ffffff"}],["meta",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"}]],"locales":{"/zh/":{"lang":"zh-CN","title":"胡桃工具箱","description":"多功能的原神工具箱"},"/en/":{"lang":"en-US","title":"Snap Hutao","description":"Super utilitarian Genshin Impact Tool"}}}');var lp=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),sp=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=lp(r);t.has(o)||(t.add(o),n.push(r))}),n},ip=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,cp=e=>e.startsWith("ftp://"),Dn=e=>/^(https?:)?\/\//.test(e),up=/.md((\?|#).*)?$/,Fr=(e,t="/")=>!!(Dn(e)||cp(e)||e.startsWith("/")&&!e.startsWith(t)&&!up.test(e)),Oi=e=>/^mailto:/.test(e),dp=e=>/^tel:/.test(e),ma=e=>Object.prototype.toString.call(e)==="[object Object]",va=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Ai=e=>e[0]==="/"?e.slice(1):e,fp=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const a=o.split("/").length-r.split("/").length;return a!==0?a:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Al=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n};const Pi={"v-2d0a870d":N(()=>w(()=>import("./index.html-3ff3e6c5.js"),["assets/index.html-3ff3e6c5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-082946dd":N(()=>w(()=>import("./community.html-38c7becc.js"),["assets/community.html-38c7becc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-038e810e":N(()=>w(()=>import("./i18n.html-5a20b497.js"),["assets/i18n.html-5a20b497.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-ba407326":N(()=>w(()=>import("./menu.html-f061a795.js"),["assets/menu.html-f061a795.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-586858ed":N(()=>w(()=>import("./project.html-d2f367cd.js"),["assets/project.html-d2f367cd.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0c01f6a4":N(()=>w(()=>import("./quick-start.html-144d2db4.js"),["assets/quick-start.html-144d2db4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-23b9870a":N(()=>w(()=>import("./side-load.html-9b18c97a.js"),["assets/side-load.html-9b18c97a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7d29d7d8":N(()=>w(()=>import("./star-request.html-e3f26991.js"),["assets/star-request.html-e3f26991.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2d0ad528":N(()=>w(()=>import("./index.html-a5685402.js"),["assets/index.html-a5685402.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5cad49b8":N(()=>w(()=>import("./community.html-5d989c81.js"),["assets/community.html-5d989c81.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-27c4e153":N(()=>w(()=>import("./i18n.html-2617d448.js"),["assets/i18n.html-2617d448.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-71d3b29c":N(()=>w(()=>import("./menu.html-663862c5.js"),["assets/menu.html-663862c5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6c355688":N(()=>w(()=>import("./project.html-001b8361.js"),["assets/project.html-001b8361.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4f90aebf":N(()=>w(()=>import("./quick-start.html-d7922d91.js"),["assets/quick-start.html-d7922d91.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-783d89e5":N(()=>w(()=>import("./side-load.html-14a04174.js"),["assets/side-load.html-14a04174.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a91bb9c6":N(()=>w(()=>import("./star-request.html-219d2341.js"),["assets/star-request.html-219d2341.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1bd4ef83":N(()=>w(()=>import("./FAQ.html-c926dafc.js"),["assets/FAQ.html-c926dafc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5c3f740a":N(()=>w(()=>import("./Gacha-system-and-export-principal.html-ad2b3c2d.js"),["assets/Gacha-system-and-export-principal.html-ad2b3c2d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5f449840":N(()=>w(()=>import("./index.html-30bc5ccf.js"),["assets/index.html-30bc5ccf.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1a028d16":N(()=>w(()=>import("./exceptions.html-ef765121.js"),["assets/exceptions.html-ef765121.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bd668802":N(()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-dcfed3ca.js"),["assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-51647c4a":N(()=>w(()=>import("./known-issue.html-dfcd3928.js"),["assets/known-issue.html-dfcd3928.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bbae7dd2":N(()=>w(()=>import("./uninstall.html-f2a93a65.js"),["assets/uninstall.html-f2a93a65.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f88d343e":N(()=>w(()=>import("./index.html-af8a954b.js"),["assets/index.html-af8a954b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-32bb1805":N(()=>w(()=>import("./platform.html-311d9f9f.js"),["assets/platform.html-311d9f9f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-30f089b6":N(()=>w(()=>import("./index.html-fcaf2f1e.js"),["assets/index.html-fcaf2f1e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-699a13b0":N(()=>w(()=>import("./achievements.html-111df6f1.js"),["assets/achievements.html-111df6f1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f3692af4":N(()=>w(()=>import("./character-data.html-bcb1d08c.js"),["assets/character-data.html-bcb1d08c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-10108380":N(()=>w(()=>import("./character-wiki.html-05003755.js"),["assets/character-wiki.html-05003755.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-36ceadac":N(()=>w(()=>import("./dashboard.html-98b51e54.js"),["assets/dashboard.html-98b51e54.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-83f6294a":N(()=>w(()=>import("./develop-plan.html-e7652959.js"),["assets/develop-plan.html-e7652959.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7839fe83":N(()=>w(()=>import("./game-launcher.html-0c7b2319.js"),["assets/game-launcher.html-0c7b2319.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0106e0dc":N(()=>w(()=>import("./hutao-API.html-861299fa.js"),["assets/hutao-API.html-861299fa.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-639b3ef9":N(()=>w(()=>import("./hutao-settings.html-67e3962d.js"),["assets/hutao-settings.html-67e3962d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-03aaffb1":N(()=>w(()=>import("./mhy-account-switch.html-2d99275b.js"),["assets/mhy-account-switch.html-2d99275b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-124743a4":N(()=>w(()=>import("./real-time-notes.html-76828791.js"),["assets/real-time-notes.html-76828791.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e30b3c46":N(()=>w(()=>import("./weapon-wiki.html-e83d3d04.js"),["assets/weapon-wiki.html-e83d3d04.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b8e3a2b8":N(()=>w(()=>import("./wish-export.html-b9d2bc5b.js"),["assets/wish-export.html-b9d2bc5b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a4f9d2c4":N(()=>w(()=>import("./index.html-6d28017a.js"),["assets/index.html-6d28017a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-45ceb024":N(()=>w(()=>import("./bug-report.html-a5769e9d.js"),["assets/bug-report.html-a5769e9d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b4085a44":N(()=>w(()=>import("./privacy-notice.html-516ff78b.js"),["assets/privacy-notice.html-516ff78b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b1c7a1c2":N(()=>w(()=>import("./tos.html-6bddfc88.js"),["assets/tos.html-6bddfc88.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-52f43e3b":N(()=>w(()=>import("./update-log.html-191f389f.js"),["assets/update-log.html-191f389f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4a1d3ac8":N(()=>w(()=>import("./FAQ.html-20216826.js"),["assets/FAQ.html-20216826.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b0dd6b00":N(()=>w(()=>import("./Gacha-system-and-export-principal.html-eff6c983.js"),["assets/Gacha-system-and-export-principal.html-eff6c983.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16d7d7b6":N(()=>w(()=>import("./index.html-62cd4613.js"),["assets/index.html-62cd4613.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c8e5b2e0":N(()=>w(()=>import("./exceptions.html-44b0164a.js"),["assets/exceptions.html-44b0164a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6892c29a":N(()=>w(()=>import("./get-stoken-cookie-from-the-third-party.html-8094a1b4.js"),["assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8ab89ae2":N(()=>w(()=>import("./known-issue.html-f9e5e987.js"),["assets/known-issue.html-f9e5e987.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a04a76c8":N(()=>w(()=>import("./uninstall.html-a7db0295.js"),["assets/uninstall.html-a7db0295.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-d0f33908":N(()=>w(()=>import("./index.html-3f0b9626.js"),["assets/index.html-3f0b9626.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c80b636c":N(()=>w(()=>import("./platform.html-9c25e1ff.js"),["assets/platform.html-9c25e1ff.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-56d3ae80":N(()=>w(()=>import("./symposium1.html-be2a8ae0.js"),["assets/symposium1.html-be2a8ae0.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5369fd42":N(()=>w(()=>import("./symposium2.html-998a2702.js"),["assets/symposium2.html-998a2702.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0bbe1b6a":N(()=>w(()=>import("./index.html-8057fd2e.js"),["assets/index.html-8057fd2e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2841a60b":N(()=>w(()=>import("./achievements.html-9522b5f8.js"),["assets/achievements.html-9522b5f8.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3957d221":N(()=>w(()=>import("./character-data.html-37eb819e.js"),["assets/character-data.html-37eb819e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a9f7b44a":N(()=>w(()=>import("./character-wiki.html-bff675d5.js"),["assets/character-wiki.html-bff675d5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1b6aa6a2":N(()=>w(()=>import("./dashboard.html-a23f348c.js"),["assets/dashboard.html-a23f348c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7cac7db6":N(()=>w(()=>import("./develop-plan.html-e7866253.js"),["assets/develop-plan.html-e7866253.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e2f690f0":N(()=>w(()=>import("./game-launcher.html-56b7cc24.js"),["assets/game-launcher.html-56b7cc24.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0eb8e461":N(()=>w(()=>import("./hutao-API.html-6a0f3bd7.js"),["assets/hutao-API.html-6a0f3bd7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16a7a694":N(()=>w(()=>import("./hutao-settings.html-ec4d694d.js"),["assets/hutao-settings.html-ec4d694d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-04b421cc":N(()=>w(()=>import("./mhy-account-switch.html-4fecf81c.js"),["assets/mhy-account-switch.html-4fecf81c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b5462c1a":N(()=>w(()=>import("./real-time-notes.html-bcb443a3.js"),["assets/real-time-notes.html-bcb443a3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-108ccfbc":N(()=>w(()=>import("./weapon-wiki.html-9ee4af63.js"),["assets/weapon-wiki.html-9ee4af63.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0ccd64e9":N(()=>w(()=>import("./wish-export.html-9ad57251.js"),["assets/wish-export.html-9ad57251.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c4bb0cba":N(()=>w(()=>import("./index.html-686501f4.js"),["assets/index.html-686501f4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c87f8b6e":N(()=>w(()=>import("./bug-report.html-c921e978.js"),["assets/bug-report.html-c921e978.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-70e6808e":N(()=>w(()=>import("./privacy-notice.html-91f130c3.js"),["assets/privacy-notice.html-91f130c3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-647ebd24":N(()=>w(()=>import("./tos.html-afbf6e1f.js"),["assets/tos.html-afbf6e1f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-119bd096":N(()=>w(()=>import("./update-log.html-ac46e1e5.js"),["assets/update-log.html-ac46e1e5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3706649a":N(()=>w(()=>import("./404.html-d1c4e391.js"),["assets/404.html-d1c4e391.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8daa1a0e":N(()=>w(()=>import("./index.html-df914bf0.js"),["assets/index.html-df914bf0.js","assets/plugin-vue_export-helper-c27b6911.js"]))};var pp=Symbol(""),hp=G(op),ki=jt({key:"",path:"",title:"",lang:"",frontmatter:{},headers:[]}),Mt=G(ki),pe=()=>Mt,Li=Symbol(""),Pe=()=>{const e=Ee(Li);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},xi=Symbol(""),mp=()=>{const e=Ee(xi);if(!e)throw new Error("usePageHead() is called without provider.");return e},vp=Symbol(""),Ci=Symbol(""),Jr=()=>{const e=Ee(Ci);if(!e)throw new Error("usePageLang() is called without provider.");return e},Ii=Symbol(""),gp=()=>{const e=Ee(Ii);if(!e)throw new Error("usePageLayout() is called without provider.");return e},ga=Symbol(""),Lt=()=>{const e=Ee(ga);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},pn=G(ap),Si=()=>pn,Ri=Symbol(""),Xr=()=>{const e=Ee(Ri);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},_p=Symbol(""),bp="Layout",yp="NotFound",_t=Rn({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageData:async e=>{const t=hp.value[e];return await(t==null?void 0:t())??ki},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const r=ae(t.description)?t.description:n.description,o=[...q(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return sp(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:e=>e.lang||"en",resolvePageLayout:(e,t)=>{let n;if(e.path){const r=e.frontmatter.layout;ae(r)?n=r:n=bp}else n=yp;return t[n]},resolveRouteLocale:(e,t)=>fp(e,t),resolveSiteLocaleData:(e,t)=>({...e,...e.locales[t]})}),Zr=B({name:"ClientOnly",setup(e,t){const n=G(!1);return ve(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),$i=B({name:"Content",props:{pageKey:{type:String,required:!1,default:""}},setup(e){const t=pe(),n=A(()=>Pi[e.pageKey||t.value.key]);return()=>n.value?d(n.value):d("div","404 Not Found")}}),De=(e={})=>e,ht=e=>Dn(e)?e:`/${Ai(e)}`;const wp={},we=({name:e="",color:t="currentColor"},{slots:n})=>{var r;return d("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(r=n.default)==null?void 0:r.call(n))};we.displayName="IconBase";const Di=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=d("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[d("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),d("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[d("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),d("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?d("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};Di.displayName="LoadingIcon";const Mi=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},zi=()=>d(we,{name:"github"},()=>d("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));zi.displayName="GitHubIcon";const Ni=()=>d(we,{name:"gitlab"},()=>d("path",{d:"M229.333 78.688C223.52 62 199.895 62 193.895 78.688L87.958 406.438h247.5c-.188 0-106.125-327.75-106.125-327.75zM33.77 571.438c-4.875 15 .563 31.687 13.313 41.25l464.812 345L87.77 406.438zm301.5-165 176.813 551.25 176.812-551.25zm655.125 165-54-165-424.312 551.25 464.812-345c12.938-9.563 18.188-26.25 13.5-41.25zM830.27 78.688c-5.812-16.688-29.437-16.688-35.437 0l-106.125 327.75h247.5z"}));Ni.displayName="GitLabIcon";const Vi=()=>d(we,{name:"gitee"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));Vi.displayName="GiteeIcon";const Fi=()=>d(we,{name:"bitbucket"},()=>d("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));Fi.displayName="BitbucketIcon";const Bi=()=>d(we,{name:"source"},()=>d("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));Bi.displayName="SourceIcon";const Hi=Array.isArray,Ep=e=>typeof e=="function",Tp=e=>typeof e=="string";var ji=e=>/^(https?:)?\/\//.test(e),Ui=e=>Object.prototype.toString.call(e)==="[object Object]";const pt=(e,t)=>{const n=t?t._instance:on();return Ui(n==null?void 0:n.appContext.components)&&(e in n.appContext.components||Ge(e)in n.appContext.components||cr(Ge(e))in n.appContext.components)};function Op(){const e=G(!1);return on()&&ve(()=>{e.value=!0}),e}function Ap(e){return Op(),A(()=>!!e())}const Pp=()=>Ap(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),kp=()=>{const e=Pp();return A(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},an=e=>{const t=Lt();return A(()=>e[t.value])},Lp=(e="")=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},Wi=(e,t)=>{let n=1;for(let r=0;r>6;return n+=n<<3,n^=n>>11,n%t},en=e=>typeof e=="string",ar=(e,t)=>en(e)&&e.startsWith(t),dn=(e,t)=>en(e)&&e.endsWith(t),eo=Object.entries,xp=Object.fromEntries,Mn=Object.keys,Pl=e=>Ui(e)&&en(e.name),kl=(e,t=!1)=>e?Hi(e)?e.map(n=>en(n)?{name:n}:Pl(n)?n:null).filter(n=>n!==null):en(e)?[{name:e}]:Pl(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],qi=(e,t)=>{if(e){if(Hi(e)&&e.every(en))return e;if(en(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},Cp=e=>qi(e,"category"),Ip=e=>qi(e,"tag"),_a=e=>ar(e,"/"),Ki=/#.*$/u,Sp=e=>{const t=Ki.exec(e);return t?t[0]:""},Ll=e=>decodeURI(e).replace(Ki,"").replace(/(index)?\.(md|html)$/,""),ba=(e,t)=>{if(t===void 0)return!1;const n=Ll(e.path),r=Ll(t),o=Sp(t);return o?o===e.hash&&(!r||n===r):n===r},Rp=e=>ji(e)?e:`https://github.com/${e}`,Gi=e=>!ji(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,ya=(e,...t)=>{const n=e.resolve(...t),r=n.matched[n.matched.length-1];if(!(r!=null&&r.redirect))return n;const{redirect:o}=r,a=Ep(o)?o(n):o,l=Tp(a)?{path:a}:a;return ya(e,{hash:n.hash,query:n.query,params:n.params,...l})};function lt(e){return ks()?(Iu(e),!0):!1}function Re(e){return typeof e=="function"?e():nt(e)}const tn=typeof window<"u",nn=()=>{},xl=$p();function $p(){var e;return tn&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function wa(e,t){function n(...r){return new Promise((o,a)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(a)})}return n}const Yi=e=>e();function Dp(e,t={}){let n,r,o=nn;const a=s=>{clearTimeout(s),o(),o=nn};return s=>{const i=Re(e),c=Re(t.maxWait);return n&&a(n),i<=0||c!==void 0&&c<=0?(r&&(a(r),r=null),Promise.resolve(s())):new Promise((u,f)=>{o=t.rejectOnCancel?f:u,c&&!r&&(r=setTimeout(()=>{n&&a(n),r=null,u(s())},c)),n=setTimeout(()=>{r&&a(r),r=null,u(s())},i)})}}function Mp(e,t=!0,n=!0,r=!1){let o=0,a,l=!0,s=nn,i;const c=()=>{a&&(clearTimeout(a),a=void 0,s(),s=nn)};return f=>{const p=Re(e),m=Date.now()-o,y=()=>i=f();return c(),p<=0?(o=Date.now(),y()):(m>p&&(n||!l)?(o=Date.now(),y()):t&&(i=new Promise((E,T)=>{s=r?T:E,a=setTimeout(()=>{o=Date.now(),l=!0,E(y()),c()},Math.max(0,p-m))})),!n&&!a&&(a=setTimeout(()=>l=!0,p)),l=!1,i)}}function zp(e=Yi){const t=G(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...a)=>{t.value&&e(...a)};return{isActive:jt(t),pause:n,resume:r,eventFilter:o}}function Qi(...e){if(e.length!==1)return Wr(...e);const t=e[0];return typeof t=="function"?jt(cd(()=>({get:t,set:nn}))):G(t)}function q0(e,t=200,n={}){return wa(Dp(t,n),e)}function Np(e,t=200,n=!1,r=!0,o=!1){return wa(Mp(t,n,r,o),e)}function Ea(e,t=!0){on()?ve(e):t?e():rn(e)}function Vp(e){on()&&$n(e)}function Fp(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:o=!1}=n;let a=null;const l=G(!1);function s(){a&&(clearInterval(a),a=null)}function i(){l.value=!1,s()}function c(){const u=Re(t);u<=0||(l.value=!0,o&&e(),s(),a=setInterval(e,u))}if(r&&tn&&c(),Te(t)||typeof t=="function"){const u=re(t,()=>{l.value&&tn&&c()});lt(u)}return lt(i),{isActive:l,pause:i,resume:c}}function Bp(e,t,n={}){const{immediate:r=!0}=n,o=G(!1);let a=null;function l(){a&&(clearTimeout(a),a=null)}function s(){o.value=!1,l()}function i(...c){l(),o.value=!0,a=setTimeout(()=>{o.value=!1,a=null,e(...c)},Re(t))}return r&&(o.value=!0,tn&&i()),lt(s),{isPending:jt(o),start:i,stop:s}}function Cl(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Te(e),a=G(e);function l(s){if(arguments.length)return a.value=s,a.value;{const i=Re(n);return a.value=a.value===i?Re(r):i,a.value}}return o?l:[a,l]}var Il=Object.getOwnPropertySymbols,Hp=Object.prototype.hasOwnProperty,jp=Object.prototype.propertyIsEnumerable,Up=(e,t)=>{var n={};for(var r in e)Hp.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Il)for(var r of Il(e))t.indexOf(r)<0&&jp.call(e,r)&&(n[r]=e[r]);return n};function Wp(e,t,n={}){const r=n,{eventFilter:o=Yi}=r,a=Up(r,["eventFilter"]);return re(e,wa(o,t),a)}var qp=Object.defineProperty,Kp=Object.defineProperties,Gp=Object.getOwnPropertyDescriptors,Br=Object.getOwnPropertySymbols,Ji=Object.prototype.hasOwnProperty,Xi=Object.prototype.propertyIsEnumerable,Sl=(e,t,n)=>t in e?qp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yp=(e,t)=>{for(var n in t||(t={}))Ji.call(t,n)&&Sl(e,n,t[n]);if(Br)for(var n of Br(t))Xi.call(t,n)&&Sl(e,n,t[n]);return e},Qp=(e,t)=>Kp(e,Gp(t)),Jp=(e,t)=>{var n={};for(var r in e)Ji.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Br)for(var r of Br(e))t.indexOf(r)<0&&Xi.call(e,r)&&(n[r]=e[r]);return n};function Xp(e,t,n={}){const r=n,{eventFilter:o}=r,a=Jp(r,["eventFilter"]),{eventFilter:l,pause:s,resume:i,isActive:c}=zp(o);return{stop:Wp(e,t,Qp(Yp({},a),{eventFilter:l})),pause:s,resume:i,isActive:c}}function Tt(e){var t;const n=Re(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ye=tn?window:void 0,Ta=tn?window.document:void 0,Zp=tn?window.navigator:void 0;function xe(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Ye):[t,n,r,o]=e,!t)return nn;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const a=[],l=()=>{a.forEach(u=>u()),a.length=0},s=(u,f,p,m)=>(u.addEventListener(f,p,m),()=>u.removeEventListener(f,p,m)),i=re(()=>[Tt(t),Re(o)],([u,f])=>{l(),u&&a.push(...n.flatMap(p=>r.map(m=>s(u,p,m,f))))},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return lt(c),c}function eh(){const e=G(!1);return on()&&ve(()=>{e.value=!0}),e}function fr(e){const t=eh();return A(()=>(t.value,!!e()))}function th(e,t={}){const{immediate:n=!0,window:r=Ye}=t,o=G(!1);let a=0,l=null;function s(u){if(!o.value||!r)return;const f=u-a;e({delta:f,timestamp:u}),a=u,l=r.requestAnimationFrame(s)}function i(){!o.value&&r&&(o.value=!0,l=r.requestAnimationFrame(s))}function c(){o.value=!1,l!=null&&r&&(r.cancelAnimationFrame(l),l=null)}return n&&i(),lt(c),{isActive:jt(o),pause:c,resume:i}}function Zi(e,t={}){const{window:n=Ye}=t,r=fr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=G(!1),l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",s):o.removeListener(s))},s=()=>{r.value&&(l(),o=n.matchMedia(Qi(e).value),a.value=!!(o!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",s):o.addListener(s)))};return kd(s),lt(()=>l()),a}function nh(e={}){const{navigator:t=Zp,read:n=!1,source:r,copiedDuring:o=1500,legacy:a=!1}=e,l=["copy","cut"],s=fr(()=>t&&"clipboard"in t),i=A(()=>s.value||a),c=G(""),u=G(!1),f=Bp(()=>u.value=!1,o);function p(){s.value?t.clipboard.readText().then(T=>{c.value=T}):c.value=E()}if(i.value&&n)for(const T of l)xe(T,p);async function m(T=Re(r)){i.value&&T!=null&&(s.value?await t.clipboard.writeText(T):y(T),c.value=T,u.value=!0,f.start())}function y(T){const g=document.createElement("textarea");g.value=T??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function E(){var T,g,_;return(_=(g=(T=document==null?void 0:document.getSelection)==null?void 0:T.call(document))==null?void 0:g.toString())!=null?_:""}return{isSupported:i,text:c,copied:u,copy:m}}const Or=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ar="__vueuse_ssr_handlers__",rh=oh();function oh(){return Ar in Or||(Or[Ar]=Or[Ar]||{}),Or[Ar]}function ah(e,t){return rh[e]||t}function lh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var sh=Object.defineProperty,Rl=Object.getOwnPropertySymbols,ih=Object.prototype.hasOwnProperty,ch=Object.prototype.propertyIsEnumerable,$l=(e,t,n)=>t in e?sh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dl=(e,t)=>{for(var n in t||(t={}))ih.call(t,n)&&$l(e,n,t[n]);if(Rl)for(var n of Rl(t))ch.call(t,n)&&$l(e,n,t[n]);return e};const uh={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ml="vueuse-storage";function Oa(e,t,n,r={}){var o;const{flush:a="pre",deep:l=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:c=!1,shallow:u,window:f=Ye,eventFilter:p,onError:m=P=>{console.error(P)}}=r,y=(u?it:G)(t);if(!n)try{n=ah("getDefaultStorage",()=>{var P;return(P=Ye)==null?void 0:P.localStorage})()}catch(P){m(P)}if(!n)return y;const E=Re(t),T=lh(E),g=(o=r.serializer)!=null?o:uh[T],{pause:_,resume:R}=Xp(y,()=>I(y.value),{flush:a,deep:l,eventFilter:p});return f&&s&&(xe(f,"storage",z),xe(f,Ml,S)),z(),y;function I(P){try{if(P==null)n.removeItem(e);else{const U=g.write(P),X=n.getItem(e);X!==U&&(n.setItem(e,U),f&&f.dispatchEvent(new CustomEvent(Ml,{detail:{key:e,oldValue:X,newValue:U,storageArea:n}})))}}catch(U){m(U)}}function j(P){const U=P?P.newValue:n.getItem(e);if(U==null)return i&&E!==null&&n.setItem(e,g.write(E)),E;if(!P&&c){const X=g.read(U);return typeof c=="function"?c(X,E):T==="object"&&!Array.isArray(X)?Dl(Dl({},E),X):X}else return typeof U!="string"?U:g.read(U)}function S(P){z(P.detail)}function z(P){if(!(P&&P.storageArea!==n)){if(P&&P.key==null){y.value=E;return}if(!(P&&P.key!==e)){_();try{y.value=j(P)}catch(U){m(U)}finally{P?rn(R):R()}}}}}function dh(e){return Zi("(prefers-color-scheme: dark)",e)}var zl=Object.getOwnPropertySymbols,fh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable,hh=(e,t)=>{var n={};for(var r in e)fh.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&zl)for(var r of zl(e))t.indexOf(r)<0&&ph.call(e,r)&&(n[r]=e[r]);return n};function mh(e,t,n={}){const r=n,{window:o=Ye}=r,a=hh(r,["window"]);let l;const s=fr(()=>o&&"MutationObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},c=re(()=>Tt(e),f=>{i(),s.value&&o&&f&&(l=new MutationObserver(t),l.observe(f,a))},{immediate:!0}),u=()=>{i(),c()};return lt(u),{isSupported:s,stop:u}}var Nl=Object.getOwnPropertySymbols,vh=Object.prototype.hasOwnProperty,gh=Object.prototype.propertyIsEnumerable,_h=(e,t)=>{var n={};for(var r in e)vh.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Nl)for(var r of Nl(e))t.indexOf(r)<0&&gh.call(e,r)&&(n[r]=e[r]);return n};function bh(e,t,n={}){const r=n,{window:o=Ye}=r,a=_h(r,["window"]);let l;const s=fr(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},c=A(()=>Array.isArray(e)?e.map(p=>Tt(p)):[Tt(e)]),u=re(c,p=>{if(i(),s.value&&o){l=new ResizeObserver(t);for(const m of p)m&&l.observe(m,a)}},{immediate:!0,flush:"post",deep:!0}),f=()=>{i(),u()};return lt(f),{isSupported:s,stop:f}}function yh(e,t={width:0,height:0},n={}){const{window:r=Ye,box:o="content-box"}=n,a=A(()=>{var i,c;return(c=(i=Tt(e))==null?void 0:i.namespaceURI)==null?void 0:c.includes("svg")}),l=G(t.width),s=G(t.height);return bh(e,([i])=>{const c=o==="border-box"?i.borderBoxSize:o==="content-box"?i.contentBoxSize:i.devicePixelContentBoxSize;if(r&&a.value){const u=Tt(e);if(u){const f=r.getComputedStyle(u);l.value=parseFloat(f.width),s.value=parseFloat(f.height)}}else if(c){const u=Array.isArray(c)?c:[c];l.value=u.reduce((f,{inlineSize:p})=>f+p,0),s.value=u.reduce((f,{blockSize:p})=>f+p,0)}else l.value=i.contentRect.width,s.value=i.contentRect.height},n),re(()=>Tt(e),i=>{l.value=i?t.width:0,s.value=i?t.height:0}),{width:l,height:s}}const Vl=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function Aa(e,t={}){const{document:n=Ta,autoExit:r=!1}=t,o=A(()=>{var g;return(g=Tt(e))!=null?g:n==null?void 0:n.querySelector("html")}),a=G(!1),l=A(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),s=A(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),i=A(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(g=>n&&g in n||o.value&&g in o.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(g=>n&&g in n),u=fr(()=>o.value&&n&&l.value!==void 0&&s.value!==void 0&&i.value!==void 0),f=()=>c?(n==null?void 0:n[c])===o.value:!1,p=()=>{if(i.value){if(n&&n[i.value]!=null)return n[i.value];{const g=o.value;if((g==null?void 0:g[i.value])!=null)return!!g[i.value]}}return!1};async function m(){if(u.value){if(s.value)if((n==null?void 0:n[s.value])!=null)await n[s.value]();else{const g=o.value;(g==null?void 0:g[s.value])!=null&&await g[s.value]()}a.value=!1}}async function y(){if(!u.value)return;p()&&await m();const g=o.value;l.value&&(g==null?void 0:g[l.value])!=null&&(await g[l.value](),a.value=!0)}async function E(){await(a.value?m():y())}const T=()=>{const g=p();(!g||g&&f())&&(a.value=g)};return xe(n,Vl,T,!1),xe(()=>Tt(o),Vl,T,!1),r&<(m),{isSupported:u,isFullscreen:a,enter:y,exit:m,toggle:E}}var wh=Object.defineProperty,Fl=Object.getOwnPropertySymbols,Eh=Object.prototype.hasOwnProperty,Th=Object.prototype.propertyIsEnumerable,Bl=(e,t,n)=>t in e?wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Oh=(e,t)=>{for(var n in t||(t={}))Eh.call(t,n)&&Bl(e,n,t[n]);if(Fl)for(var n of Fl(t))Th.call(t,n)&&Bl(e,n,t[n]);return e};function K0(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=G(new Date),o=()=>r.value=new Date,a=n==="requestAnimationFrame"?th(o,{immediate:!0}):Fp(o,n,{immediate:!0});return t?Oh({now:r},a):r}function Ah(e={}){const{window:t=Ye}=e;if(!t)return G(["en"]);const n=t.navigator,r=G(n.languages);return xe(t,"languagechange",()=>{r.value=n.languages}),r}function G0(e,t=nn,n={}){const{immediate:r=!0,manual:o=!1,type:a="text/javascript",async:l=!0,crossOrigin:s,referrerPolicy:i,noModule:c,defer:u,document:f=Ta,attrs:p={}}=n,m=G(null);let y=null;const E=_=>new Promise((R,I)=>{const j=P=>(m.value=P,R(P),P);if(!f){R(!1);return}let S=!1,z=f.querySelector(`script[src="${Re(e)}"]`);z?z.hasAttribute("data-loaded")&&j(z):(z=f.createElement("script"),z.type=a,z.async=l,z.src=Re(e),u&&(z.defer=u),s&&(z.crossOrigin=s),c&&(z.noModule=c),i&&(z.referrerPolicy=i),Object.entries(p).forEach(([P,U])=>z==null?void 0:z.setAttribute(P,U)),S=!0),z.addEventListener("error",P=>I(P)),z.addEventListener("abort",P=>I(P)),z.addEventListener("load",()=>{z.setAttribute("data-loaded","true"),t(z),j(z)}),S&&(z=f.head.appendChild(z)),_||j(z)}),T=(_=!0)=>(y||(y=E(_)),y),g=()=>{if(!f)return;y=null,m.value&&(m.value=null);const _=f.querySelector(`script[src="${Re(e)}"]`);_&&f.head.removeChild(_)};return r&&!o&&Ea(T),o||Vp(g),{scriptTag:m,load:T,unload:g}}function ec(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientHeight1?!0:(t.preventDefault&&t.preventDefault(),!1)}function Pa(e,t=!1){const n=G(t);let r=null,o;re(Qi(e),s=>{if(s){const i=s;o=i.style.overflow,n.value&&(i.style.overflow="hidden")}},{immediate:!0});const a=()=>{const s=Re(e);!s||n.value||(xl&&(r=xe(s,"touchmove",i=>{Ph(i)},{passive:!1})),s.style.overflow="hidden",n.value=!0)},l=()=>{const s=Re(e);!s||!n.value||(xl&&(r==null||r()),s.style.overflow=o,n.value=!1)};return lt(l),A({get(){return n.value},set(s){s?a():l()}})}function kh(e,t,n={}){const{window:r=Ye}=n;return Oa(e,t,r==null?void 0:r.sessionStorage,n)}let Lh=0;function xh(e,t={}){const n=G(!1),{document:r=Ta,immediate:o=!0,manual:a=!1,id:l=`vueuse_styletag_${++Lh}`}=t,s=G(e);let i=()=>{};const c=()=>{if(!r)return;const f=r.getElementById(l)||r.createElement("style");f.isConnected||(f.type="text/css",f.id=l,t.media&&(f.media=t.media),r.head.appendChild(f)),!n.value&&(i=re(s,p=>{f.textContent=p},{immediate:!0}),n.value=!0)},u=()=>{!r||!n.value||(i(),r.head.removeChild(r.getElementById(l)),n.value=!1)};return o&&!a&&Ea(c),a||lt(u),{id:l,css:s,unload:u,load:c,isLoaded:jt(n)}}function Ch({window:e=Ye}={}){if(!e)return{x:G(0),y:G(0)};const t=G(e.scrollX),n=G(e.scrollY);return xe(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function Ih(e={}){const{window:t=Ye,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:o=!0,includeScrollbar:a=!0}=e,l=G(n),s=G(r),i=()=>{t&&(a?(l.value=t.innerWidth,s.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,s.value=t.document.documentElement.clientHeight))};if(i(),Ea(i),xe("resize",i,{passive:!0}),o){const c=Zi("(orientation: portrait)");re(c,()=>i())}return{width:l,height:s}}var Sh=B({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=A(()=>{const r=["font-icon icon"],o=`iconfont icon-${e.icon}`;return r.push(o),r}),n=A(()=>{const r={};return e.color&&(r.color=e.color),e.size&&(r["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),Mn(r).length?r:null});return()=>e.icon?d("span",{key:e.icon,class:t.value,style:n.value}):null}});const tc=({type:e="info",text:t="",vertical:n="top",color:r},{slots:o})=>{var a;return d("span",{class:["badge",e,{diy:r}],style:{verticalAlign:n,...r?{backgroundColor:r}:{}}},((a=o.default)==null?void 0:a.call(o))||t)};tc.displayName="Badge";const Rh="accelerometer; autoplay; clipboard-write; encrypted-media; fullscreen; gyroscope; picture-in-picture",Hl=e=>ae(e)?e:`${e}px`,$h=(e,t=0)=>{const n=it(),r=A(()=>Hl(nt(e.width)||"100%")),o=G("auto"),a=i=>{if(ae(i)){const[c,u]=i.split(":"),f=Number(c)/Number(u);if(!Number.isNaN(f))return f}return typeof i=="number"?i:16/9},l=i=>{const c=nt(e.height),u=a(nt(e.ratio));return c?Hl(c):`${Number(i)/u+nt(t)}px`},s=()=>{n.value&&(o.value=l(n.value.clientWidth))};return ve(()=>{s(),Te(t)&&re(t,()=>s()),xe("orientationchange",()=>s()),xe("resize",()=>s())}),{el:n,width:r,height:o}},jl="https://player.bilibili.com/player.html";var Dh=B({name:"BiliBili",props:{bvid:{type:String,default:""},aid:{type:String,default:""},cid:{type:String,default:""},title:{type:String,default:"A BiliBili video"},page:{type:[String,Number],default:1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:void 0},ratio:{type:[String,Number],default:16/9},time:{type:[String,Number],default:0},autoplay:Boolean},setup(e){const{el:t,width:n,height:r}=$h(e),o=A(()=>{const{aid:a,bvid:l,cid:s,autoplay:i,time:c,page:u}=e;return a&&s?`${jl}?aid=${a}&cid=${s}&t=${c}&autoplay=${i?1:0}&page=${u}`:l?`${jl}?bvid=${l}&t=${c}&autoplay=${i?1:0}`:null});return()=>o.value?[d("div",{class:"bili-desc"},d("a",{class:"sr-only",href:o.value},e.title)),d("iframe",{ref:t,src:o.value,title:e.title,class:"bili-iframe",allow:Rh,style:{width:n.value,height:r.value}})]:null}});const nc=()=>d(we,{name:"back-to-top"},()=>[d("path",{d:"M512 843.2c-36.2 0-66.4-13.6-85.8-21.8-10.8-4.6-22.6 3.6-21.8 15.2l7 102c.4 6.2 7.6 9.4 12.6 5.6l29-22c3.6-2.8 9-1.8 11.4 2l41 64.2c3 4.8 10.2 4.8 13.2 0l41-64.2c2.4-3.8 7.8-4.8 11.4-2l29 22c5 3.8 12.2.6 12.6-5.6l7-102c.8-11.6-11-20-21.8-15.2-19.6 8.2-49.6 21.8-85.8 21.8z"}),d("path",{d:"m795.4 586.2-96-98.2C699.4 172 513 32 513 32S324.8 172 324.8 488l-96 98.2c-3.6 3.6-5.2 9-4.4 14.2L261.2 824c1.8 11.4 14.2 17 23.6 10.8L419 744s41.4 40 94.2 40c52.8 0 92.2-40 92.2-40l134.2 90.8c9.2 6.2 21.6.6 23.6-10.8l37-223.8c.4-5.2-1.2-10.4-4.8-14zM513 384c-34 0-61.4-28.6-61.4-64s27.6-64 61.4-64c34 0 61.4 28.6 61.4 64S547 384 513 384z"})]);nc.displayName="BackToTopIcon";var Mh=B({name:"BackToTop",props:{threshold:{type:Number,default:100},noProgress:Boolean},setup(e){const t=Pe(),n=an({"/zh/":{backToTop:"返回顶部"},"/en/":{backToTop:"Back to top"},"/":{backToTop:"Back to top"}}),r=it(),{height:o}=yh(r),{height:a}=Ih(),{y:l}=Ch(),s=A(()=>t.value.backToTop!==!1&&l.value>e.threshold),i=A(()=>l.value/(o.value-a.value));return ve(()=>{r.value=document.body}),()=>d(Pt,{name:"fade"},()=>s.value?d("button",{type:"button",class:"back-to-top","aria-label":n.value.backToTop,"data-balloon-pos":"left",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[e.noProgress?null:d("svg",{class:"scroll-progress"},d("circle",{cx:"50%",cy:"50%",style:{"stroke-dasharray":`calc(${Math.PI*i.value*100}% - ${4*Math.PI}px) calc(${Math.PI*100}% - ${4*Math.PI}px)`}})),d(nc)]):null)}});const zh=De({enhance:({app:e})=>{pt("FontIcon")||e.component("FontIcon",Sh),pt("Badge")||e.component("Badge",tc),pt("BiliBili")||e.component("BiliBili",Dh)},setup:()=>{xh(` @import url("https://at.alicdn.com/t/c/font_2410206_5vb9zlyghj.css"); `)},rootComponents:[()=>d(Mh,{})]});function rc(e,t,n){var r,o,a;t===void 0&&(t=50),n===void 0&&(n={});var l=(r=n.isImmediate)!=null&&r,s=(o=n.callback)!=null&&o,i=n.maxWait,c=Date.now(),u=[];function f(){if(i!==void 0){var m=Date.now()-c;if(m+t>=i)return i-m}return t}var p=function(){var m=[].slice.call(arguments),y=this;return new Promise(function(E,T){var g=l&&a===void 0;if(a!==void 0&&clearTimeout(a),a=setTimeout(function(){if(a=void 0,c=Date.now(),!l){var R=e.apply(y,m);s&&s(R),u.forEach(function(I){return(0,I.resolve)(R)}),u=[]}},f()),g){var _=e.apply(y,m);return s&&s(_),E(_)}u.push({resolve:E,reject:T})})};return p.cancel=function(m){a!==void 0&&clearTimeout(a),u.forEach(function(y){return(0,y.reject)(m)}),u=[]},p}/*! * vue-router v4.2.1 * (c) 2023 Eduardo San Martin Morote @@ -6,4 +6,4 @@ const pu="modulepreload",hu=function(e){return"/"+e},za={},w=function(t,n,r){if( */const fn=typeof window<"u";function Nh(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const fe=Object.assign;function mo(e,t){const n={};for(const r in t){const o=t[r];n[r]=st(o)?o.map(e):e(o)}return n}const Yn=()=>{},st=Array.isArray,Vh=/\/$/,Fh=e=>e.replace(Vh,"");function vo(e,t,n="/"){let r,o={},a="",l="";const s=t.indexOf("#");let i=t.indexOf("?");return s=0&&(i=-1),i>-1&&(r=t.slice(0,i),a=t.slice(i+1,s>-1?s:t.length),o=e(a)),s>-1&&(r=r||t.slice(0,s),l=t.slice(s,t.length)),r=Uh(r??t,n),{fullPath:r+(a&&"?")+a+l,path:r,query:o,hash:l}}function Bh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ul(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Hh(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Pn(t.matched[r],n.matched[o])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!jh(e[n],t[n]))return!1;return!0}function jh(e,t){return st(e)?Wl(e,t):st(t)?Wl(t,e):e===t}function Wl(e,t){return st(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let a=n.length-1,l,s;for(l=0;l1&&a--;else break;return n.slice(0,a).join("/")+"/"+r.slice(l-(l===r.length?1:0)).join("/")}var lr;(function(e){e.pop="pop",e.push="push"})(lr||(lr={}));var Qn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Qn||(Qn={}));function Wh(e){if(!e)if(fn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Fh(e)}const qh=/^[^#]+#/;function Kh(e,t){return e.replace(qh,"#")+t}function Gh(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const to=()=>({left:window.pageXOffset,top:window.pageYOffset});function Yh(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Gh(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function ql(e,t){return(history.state?history.state.position-t:-1)+e}const Do=new Map;function Qh(e,t){Do.set(e,t)}function Jh(e){const t=Do.get(e);return Do.delete(e),t}let Xh=()=>location.protocol+"//"+location.host;function ac(e,t){const{pathname:n,search:r,hash:o}=t,a=e.indexOf("#");if(a>-1){let s=o.includes(e.slice(a))?e.slice(a).length:1,i=o.slice(s);return i[0]!=="/"&&(i="/"+i),Ul(i,"")}return Ul(n,e)+r+o}function Zh(e,t,n,r){let o=[],a=[],l=null;const s=({state:p})=>{const m=ac(e,location),y=n.value,E=t.value;let T=0;if(p){if(n.value=m,t.value=p,l&&l===y){l=null;return}T=E?p.position-E.position:0}else r(m);o.forEach(g=>{g(n.value,y,{delta:T,type:lr.pop,direction:T?T>0?Qn.forward:Qn.back:Qn.unknown})})};function i(){l=n.value}function c(p){o.push(p);const m=()=>{const y=o.indexOf(p);y>-1&&o.splice(y,1)};return a.push(m),m}function u(){const{history:p}=window;p.state&&p.replaceState(fe({},p.state,{scroll:to()}),"")}function f(){for(const p of a)p();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:i,listen:c,destroy:f}}function Kl(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?to():null}}function em(e){const{history:t,location:n}=window,r={value:ac(e,n)},o={value:t.state};o.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(i,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:Xh()+e+i;try{t[u?"replaceState":"pushState"](c,"",p),o.value=c}catch(m){console.error(m),n[u?"replace":"assign"](p)}}function l(i,c){const u=fe({},t.state,Kl(o.value.back,i,o.value.forward,!0),c,{position:o.value.position});a(i,u,!0),r.value=i}function s(i,c){const u=fe({},o.value,t.state,{forward:i,scroll:to()});a(u.current,u,!0);const f=fe({},Kl(r.value,i,null),{position:u.position+1},c);a(i,f,!1),r.value=i}return{location:r,state:o,push:s,replace:l}}function tm(e){e=Wh(e);const t=em(e),n=Zh(e,t.state,t.location,t.replace);function r(a,l=!0){l||n.pauseListeners(),history.go(a)}const o=fe({location:"",base:e,go:r,createHref:Kh.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function nm(e){return typeof e=="string"||e&&typeof e=="object"}function lc(e){return typeof e=="string"||typeof e=="symbol"}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},sc=Symbol("");var Gl;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Gl||(Gl={}));function kn(e,t){return fe(new Error,{type:e,[sc]:!0},t)}function vt(e,t){return e instanceof Error&&sc in e&&(t==null||!!(e.type&t))}const Yl="[^/]+?",rm={sensitive:!1,strict:!1,start:!0,end:!0},om=/[.+*?^${}()[\]/\\]/g;function am(e,t){const n=fe({},rm,t),r=[];let o=n.start?"^":"";const a=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function sm(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const im={type:0,value:""},cm=/[a-zA-Z0-9_]/;function um(e){if(!e)return[[]];if(e==="/")return[[im]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const o=[];let a;function l(){a&&o.push(a),a=[]}let s=0,i,c="",u="";function f(){c&&(n===0?a.push({type:0,value:c}):n===1||n===2||n===3?(a.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:c,regexp:u,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=i}for(;s{l(_)}:Yn}function l(u){if(lc(u)){const f=r.get(u);f&&(r.delete(u),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(u);f>-1&&(n.splice(f,1),u.record.name&&r.delete(u.record.name),u.children.forEach(l),u.alias.forEach(l))}}function s(){return n}function i(u){let f=0;for(;f=0&&(u.record.path!==n[f].record.path||!ic(u,n[f]));)f++;n.splice(f,0,u),u.record.name&&!Xl(u)&&r.set(u.record.name,u)}function c(u,f){let p,m={},y,E;if("name"in u&&u.name){if(p=r.get(u.name),!p)throw kn(1,{location:u});E=p.record.name,m=fe(Jl(f.params,p.keys.filter(_=>!_.optional).map(_=>_.name)),u.params&&Jl(u.params,p.keys.map(_=>_.name))),y=p.stringify(m)}else if("path"in u)y=u.path,p=n.find(_=>_.re.test(y)),p&&(m=p.parse(y),E=p.record.name);else{if(p=f.name?r.get(f.name):n.find(_=>_.re.test(f.path)),!p)throw kn(1,{location:u,currentLocation:f});E=p.record.name,m=fe({},f.params,u.params),y=p.stringify(m)}const T=[];let g=p;for(;g;)T.unshift(g.record),g=g.parent;return{name:E,path:y,params:m,matched:T,meta:mm(T)}}return e.forEach(u=>a(u)),{addRoute:a,resolve:c,removeRoute:l,getRoutes:s,getRecordMatcher:o}}function Jl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function pm(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:hm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function hm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function Xl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function mm(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function Zl(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function ic(e,t){return t.children.some(n=>n===e||ic(e,n))}const cc=/#/g,vm=/&/g,gm=/\//g,_m=/=/g,bm=/\?/g,uc=/\+/g,ym=/%5B/g,wm=/%5D/g,dc=/%5E/g,Em=/%60/g,fc=/%7B/g,Tm=/%7C/g,pc=/%7D/g,Om=/%20/g;function ka(e){return encodeURI(""+e).replace(Tm,"|").replace(ym,"[").replace(wm,"]")}function Am(e){return ka(e).replace(fc,"{").replace(pc,"}").replace(dc,"^")}function Mo(e){return ka(e).replace(uc,"%2B").replace(Om,"+").replace(cc,"%23").replace(vm,"%26").replace(Em,"`").replace(fc,"{").replace(pc,"}").replace(dc,"^")}function Pm(e){return Mo(e).replace(_m,"%3D")}function km(e){return ka(e).replace(cc,"%23").replace(bm,"%3F")}function Lm(e){return e==null?"":km(e).replace(gm,"%2F")}function Hr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function xm(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;oa&&Mo(a)):[r&&Mo(r)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function Cm(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=st(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const Im=Symbol(""),ts=Symbol(""),no=Symbol(""),La=Symbol(""),zo=Symbol("");function Bn(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function zt(e,t,n,r,o){const a=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,s)=>{const i=f=>{f===!1?s(kn(4,{from:n,to:t})):f instanceof Error?s(f):nm(f)?s(kn(2,{from:t,to:f})):(a&&r.enterCallbacks[o]===a&&typeof f=="function"&&a.push(f),l())},c=e.call(r&&r.instances[o],t,n,i);let u=Promise.resolve(c);e.length<3&&(u=u.then(i)),u.catch(f=>s(f))})}function go(e,t,n,r){const o=[];for(const a of e)for(const l in a.components){let s=a.components[l];if(!(t!=="beforeRouteEnter"&&!a.instances[l]))if(Sm(s)){const c=(s.__vccOpts||s)[t];c&&o.push(zt(c,n,r,a,l))}else{let i=s();o.push(()=>i.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${a.path}"`));const u=Nh(c)?c.default:c;a.components[l]=u;const p=(u.__vccOpts||u)[t];return p&&zt(p,n,r,a,l)()}))}}return o}function Sm(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function No(e){const t=Ee(no),n=Ee(La),r=A(()=>t.resolve(nt(e.to))),o=A(()=>{const{matched:i}=r.value,{length:c}=i,u=i[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex(Pn.bind(null,u));if(p>-1)return p;const m=ns(i[c-2]);return c>1&&ns(u)===m&&f[f.length-1].path!==m?f.findIndex(Pn.bind(null,i[c-2])):p}),a=A(()=>o.value>-1&&Dm(n.params,r.value.params)),l=A(()=>o.value>-1&&o.value===n.matched.length-1&&oc(n.params,r.value.params));function s(i={}){return $m(i)?t[nt(e.replace)?"replace":"push"](nt(e.to)).catch(Yn):Promise.resolve()}return{route:r,href:A(()=>r.value.href),isActive:a,isExactActive:l,navigate:s}}const Rm=B({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:No,setup(e,{slots:t}){const n=Rn(No(e)),{options:r}=Ee(no),o=A(()=>({[rs(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[rs(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&t.default(n);return e.custom?a:d("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},a)}}}),Ot=Rm;function $m(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Dm(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!st(o)||o.length!==r.length||r.some((a,l)=>a!==o[l]))return!1}return!0}function ns(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const rs=(e,t,n)=>e??t??n,Mm=B({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ee(zo),o=A(()=>e.route||r.value),a=Ee(ts,0),l=A(()=>{let c=nt(a);const{matched:u}=o.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),s=A(()=>o.value.matched[l.value]);Jt(ts,A(()=>l.value+1)),Jt(Im,s),Jt(zo,o);const i=G();return re(()=>[i.value,s.value,e.name],([c,u,f],[p,m,y])=>{u&&(u.instances[f]=c,m&&m!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!Pn(u,m)||!p)&&(u.enterCallbacks[f]||[]).forEach(E=>E(c))},{flush:"post"}),()=>{const c=o.value,u=e.name,f=s.value,p=f&&f.components[u];if(!p)return os(n.default,{Component:p,route:c});const m=f.props[u],y=m?m===!0?c.params:typeof m=="function"?m(c):m:null,T=d(p,fe({},y,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[u]=null)},ref:i}));return os(n.default,{Component:T,route:c})||T}}});function os(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hc=Mm;function zm(e){const t=fm(e.routes,e),n=e.parseQuery||xm,r=e.stringifyQuery||es,o=e.history,a=Bn(),l=Bn(),s=Bn(),i=it(bt);let c=bt;fn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=mo.bind(null,k=>""+k),f=mo.bind(null,Lm),p=mo.bind(null,Hr);function m(k,F){let M,Y;return lc(k)?(M=t.getRecordMatcher(k),Y=F):Y=k,t.addRoute(Y,M)}function y(k){const F=t.getRecordMatcher(k);F&&t.removeRoute(F)}function E(){return t.getRoutes().map(k=>k.record)}function T(k){return!!t.getRecordMatcher(k)}function g(k,F){if(F=fe({},F||i.value),typeof k=="string"){const b=vo(n,k,F.path),O=t.resolve({path:b.path},F),L=o.createHref(b.fullPath);return fe(b,O,{params:p(O.params),hash:Hr(b.hash),redirectedFrom:void 0,href:L})}let M;if("path"in k)M=fe({},k,{path:vo(n,k.path,F.path).path});else{const b=fe({},k.params);for(const O in b)b[O]==null&&delete b[O];M=fe({},k,{params:f(b)}),F.params=f(F.params)}const Y=t.resolve(M,F),de=k.hash||"";Y.params=u(p(Y.params));const h=Bh(r,fe({},k,{hash:Am(de),path:Y.path})),v=o.createHref(h);return fe({fullPath:h,hash:de,query:r===es?Cm(k.query):k.query||{}},Y,{redirectedFrom:void 0,href:v})}function _(k){return typeof k=="string"?vo(n,k,i.value.path):fe({},k)}function R(k,F){if(c!==k)return kn(8,{from:F,to:k})}function I(k){return z(k)}function j(k){return I(fe(_(k),{replace:!0}))}function S(k){const F=k.matched[k.matched.length-1];if(F&&F.redirect){const{redirect:M}=F;let Y=typeof M=="function"?M(k):M;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=_(Y):{path:Y},Y.params={}),fe({query:k.query,hash:k.hash,params:"path"in Y?{}:k.params},Y)}}function z(k,F){const M=c=g(k),Y=i.value,de=k.state,h=k.force,v=k.replace===!0,b=S(M);if(b)return z(fe(_(b),{state:typeof b=="object"?fe({},de,b.state):de,force:h,replace:v}),F||M);const O=M;O.redirectedFrom=F;let L;return!h&&Hh(r,Y,M)&&(L=kn(16,{to:O,from:Y}),ct(Y,Y,!0,!1)),(L?Promise.resolve(L):X(O,Y)).catch(x=>vt(x)?vt(x,2)?x:Ct(x):ue(x,O,Y)).then(x=>{if(x){if(vt(x,2))return z(fe({replace:v},_(x.to),{state:typeof x.to=="object"?fe({},de,x.to.state):de,force:h}),F||O)}else x=H(O,Y,!0,v,de);return oe(O,Y,x),x})}function P(k,F){const M=R(k,F);return M?Promise.reject(M):Promise.resolve()}function U(k){const F=sn.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(k):k()}function X(k,F){let M;const[Y,de,h]=Nm(k,F);M=go(Y.reverse(),"beforeRouteLeave",k,F);for(const b of Y)b.leaveGuards.forEach(O=>{M.push(zt(O,k,F))});const v=P.bind(null,k,F);return M.push(v),Ie(M).then(()=>{M=[];for(const b of a.list())M.push(zt(b,k,F));return M.push(v),Ie(M)}).then(()=>{M=go(de,"beforeRouteUpdate",k,F);for(const b of de)b.updateGuards.forEach(O=>{M.push(zt(O,k,F))});return M.push(v),Ie(M)}).then(()=>{M=[];for(const b of k.matched)if(b.beforeEnter&&!F.matched.includes(b))if(st(b.beforeEnter))for(const O of b.beforeEnter)M.push(zt(O,k,F));else M.push(zt(b.beforeEnter,k,F));return M.push(v),Ie(M)}).then(()=>(k.matched.forEach(b=>b.enterCallbacks={}),M=go(h,"beforeRouteEnter",k,F),M.push(v),Ie(M))).then(()=>{M=[];for(const b of l.list())M.push(zt(b,k,F));return M.push(v),Ie(M)}).catch(b=>vt(b,8)?b:Promise.reject(b))}function oe(k,F,M){for(const Y of s.list())U(()=>Y(k,F,M))}function H(k,F,M,Y,de){const h=R(k,F);if(h)return h;const v=F===bt,b=fn?history.state:{};M&&(Y||v?o.replace(k.fullPath,fe({scroll:v&&b&&b.scroll},de)):o.push(k.fullPath,de)),i.value=k,ct(k,F,M,v),Ct()}let ee;function K(){ee||(ee=o.listen((k,F,M)=>{if(!hr.listening)return;const Y=g(k),de=S(Y);if(de){z(fe(de,{replace:!0}),Y).catch(Yn);return}c=Y;const h=i.value;fn&&Qh(ql(h.fullPath,M.delta),to()),X(Y,h).catch(v=>vt(v,12)?v:vt(v,2)?(z(v.to,Y).then(b=>{vt(b,20)&&!M.delta&&M.type===lr.pop&&o.go(-1,!1)}).catch(Yn),Promise.reject()):(M.delta&&o.go(-M.delta,!1),ue(v,Y,h))).then(v=>{v=v||H(Y,h,!1),v&&(M.delta&&!vt(v,8)?o.go(-M.delta,!1):M.type===lr.pop&&vt(v,20)&&o.go(-1,!1)),oe(Y,h,v)}).catch(Yn)}))}let Ce=Bn(),ce=Bn(),_e;function ue(k,F,M){Ct(k);const Y=ce.list();return Y.length?Y.forEach(de=>de(k,F,M)):console.error(k),Promise.reject(k)}function mt(){return _e&&i.value!==bt?Promise.resolve():new Promise((k,F)=>{Ce.add([k,F])})}function Ct(k){return _e||(_e=!k,K(),Ce.list().forEach(([F,M])=>k?M(k):F()),Ce.reset()),k}function ct(k,F,M,Y){const{scrollBehavior:de}=e;if(!fn||!de)return Promise.resolve();const h=!M&&Jh(ql(k.fullPath,0))||(Y||!M)&&history.state&&history.state.scroll||null;return rn().then(()=>de(k,F,h)).then(v=>v&&Yh(v)).catch(v=>ue(v,k,F))}const Me=k=>o.go(k);let ln;const sn=new Set,hr={currentRoute:i,listening:!0,addRoute:m,removeRoute:y,hasRoute:T,getRoutes:E,resolve:g,options:e,push:I,replace:j,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:a.add,beforeResolve:l.add,afterEach:s.add,onError:ce.add,isReady:mt,install(k){const F=this;k.component("RouterLink",Ot),k.component("RouterView",hc),k.config.globalProperties.$router=F,Object.defineProperty(k.config.globalProperties,"$route",{enumerable:!0,get:()=>nt(i)}),fn&&!ln&&i.value===bt&&(ln=!0,I(o.location).catch(de=>{}));const M={};for(const de in bt)M[de]=A(()=>i.value[de]);k.provide(no,F),k.provide(La,Rn(M)),k.provide(zo,i);const Y=k.unmount;sn.add(k),k.unmount=function(){sn.delete(k),sn.size<1&&(c=bt,ee&&ee(),ee=null,i.value=bt,ln=!1,_e=!1),Y()}}};function Ie(k){return k.reduce((F,M)=>F.then(()=>U(M)),Promise.resolve())}return hr}function Nm(e,t){const n=[],r=[],o=[],a=Math.max(t.matched.length,e.matched.length);for(let l=0;lPn(c,s))?r.push(s):n.push(s));const i=e.matched[l];i&&(t.matched.find(c=>Pn(c,i))||o.push(i))}return[n,r,o]}function Je(){return Ee(no)}function Xe(){return Ee(La)}const Vm=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=Je(),l=rc(()=>{var E,T;const s=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(s-0)p.some(_=>_.hash===g.hash));for(let g=0;g=(((E=_.parentElement)==null?void 0:E.offsetTop)??0)-r,j=!R||s<(((T=R.parentElement)==null?void 0:T.offsetTop)??0)-r;if(!(I&&j))continue;const z=decodeURIComponent(o.currentRoute.value.hash),P=decodeURIComponent(_.hash);if(z===P)return;if(f){for(let U=g+1;U{window.addEventListener("scroll",l)}),ua(()=>{window.removeEventListener("scroll",l)})},as=async(e,t)=>{const{scrollBehavior:n}=e.options;e.options.scrollBehavior=void 0,await e.replace({query:e.currentRoute.value.query,hash:t,force:!0}).finally(()=>e.options.scrollBehavior=n)},Fm=".sidebar-link, .toc-link",Bm=".header-anchor",Hm=200,jm=5,Um=De({setup(){Vm({headerLinkSelector:Fm,headerAnchorSelector:Bm,delay:Hm,offset:jm})}});let mc=()=>null;const vc=Symbol(""),Wm=e=>{mc=e},qm=()=>Ee(vc),Km=e=>{e.provide(vc,mc)};var Gm=B({name:"AutoCatalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean},setup(e){const t=qm(),n=an({"/zh/":{title:"目录"},"/en/":{title:"Catalog"},"/":{title:"Catalog"}}),r=pe(),o=Je(),a=Si(),l=c=>{const u=c.I;return typeof u>"u"||u},s=()=>{const c=e.base||r.value.path.replace(/\/[^/]+$/,"/"),u=o.getRoutes(),f=[];return u.filter(({meta:p,path:m})=>{if(!ar(m,c)||m===c)return!1;if(c==="/"){const y=Mn(a.value.locales).filter(E=>E!=="/");if(m==="/404.html"||y.some(E=>ar(m,E)))return!1}return(dn(m,".html")&&!dn(m,"/index.html")||dn(m,"/"))&&l(p)}).map(({path:p,meta:m})=>{const y=p.substring(c.length).split("/").length;return{title:m.t||"",icon:m.i,base:p.replace(/\/[^/]+\/?$/,"/"),order:m.O||null,level:dn(p,"/")?y-1:y,path:p}}).filter(({title:p,level:m})=>typeof p=="string"&&p&&m<=e.level).sort(({title:p,level:m,path:y,order:E},{title:T,level:g,path:_,order:R})=>m-g||(dn(y,"/index.html")?-1:dn(_,"/index.html")?1:E===null?R===null?p.localeCompare(T):R:R===null?E:E>0?R>0?E-R:-1:R<0?E-R:1)).forEach(p=>{var m;const{base:y,level:E}=p;switch(E){case 1:f.push(p);break;case 2:{const T=f.find(g=>g.path===y);T&&(T.children??(T.children=[])).push(p);break}default:{const T=f.find(g=>g.path===y.replace(/\/[^/]+\/$/,"/"));if(T){const g=(m=T.children)==null?void 0:m.find(_=>_.path===y);g&&(g.children??(g.children=[])).push(p)}}}}),f},i=A(()=>s());return()=>d("div",{class:"auto-catalog-wrapper"},[d("h2",{class:"main-title"},n.value.title),i.value.map(({children:c=[],icon:u,path:f,title:p},m)=>[d("h3",{id:p,class:["child-title",{"has-children":c.length}]},[d("a",{href:`#${p}`,class:"header-anchor"},"#"),d(Ot,{class:"catalog-title",to:f},()=>[e.index?`${m+1}.`:null,u&&t?d(t,{icon:u}):null,p||"Unknown"])]),c.length?d("ul",{class:"child-catalog-wrapper"},c.map(({children:y=[],icon:E,path:T,title:g},_)=>d("li",{class:"child-catalog-item"},[d("div",{class:["sub-title",{"has-children":y.length}]},[d("a",{href:`#${g}`,class:"header-anchor"},"#"),d(Ot,{class:"catalog-title",to:T},()=>[e.index?`${m+1}.${_+1}`:null,E&&t?d(t,{icon:E}):null,g||"Unknown"])]),y.length?d("div",{class:"sub-catalog-wrapper"},y.map(({icon:R,path:I,title:j},S)=>d(Ot,{class:"sub-catalog-item",to:I},()=>[e.index?`${m+1}.${_+1}.${S+1}`:null,R&&t?d(t,{icon:R}):null,j||"Unknown"]))):null]))):null])])}}),Ym=De({enhance:({app:e})=>{Km(e),pt("AutoCatalog",e)||e.component("AutoCatalog",Gm)}});const Qm=d("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[d("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),d("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),gc=B({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=Lt(),n=A(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>d("span",[Qm,d("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}}),Jm={},Xm=De({enhance({app:e}){e.component("ExternalLinkIcon",d(gc,{locales:Jm}))}});/** * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT - */const se={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=se.isStarted();e=_o(e,se.settings.minimum,1),se.status=e===1?null:e;const n=se.render(!t),r=n.querySelector(se.settings.barSelector),o=se.settings.speed,a=se.settings.easing;return n.offsetWidth,Zm(l=>{Pr(r,{transform:"translate3d("+ls(e)+"%,0,0)",transition:"all "+o+"ms "+a}),e===1?(Pr(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Pr(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(function(){se.remove(),l()},o)},o)):setTimeout(()=>l(),o)}),se},isStarted:()=>typeof se.status=="number",start:()=>{se.status||se.set(0);const e=()=>{setTimeout(()=>{se.status&&(se.trickle(),e())},se.settings.trickleSpeed)};return se.settings.trickle&&e(),se},done:e=>!e&&!se.status?se:se.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=se.status;return t?(typeof e!="number"&&(e=(1-t)*_o(Math.random()*t,.1,.95)),t=_o(t+e,0,.994),se.set(t)):se.start()},trickle:()=>se.inc(Math.random()*se.settings.trickleRate),render:e=>{if(se.isRendered())return document.getElementById("nprogress");ss(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=se.settings.template;const n=t.querySelector(se.settings.barSelector),r=e?"-100":ls(se.status||0),o=document.querySelector(se.settings.parent);return Pr(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&ss(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{is(document.documentElement,"nprogress-busy"),is(document.querySelector(se.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&ev(e)},isRendered:()=>!!document.getElementById("nprogress")},_o=(e,t,n)=>en?n:e,ls=e=>(-1+e)*100,Zm=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Pr=function(){const e=["Webkit","O","Moz","ms"],t={};function n(l){return l.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(s,i){return i.toUpperCase()})}function r(l){const s=document.body.style;if(l in s)return l;let i=e.length;const c=l.charAt(0).toUpperCase()+l.slice(1);let u;for(;i--;)if(u=e[i]+c,u in s)return u;return l}function o(l){return l=n(l),t[l]??(t[l]=r(l))}function a(l,s,i){s=o(s),l.style[s]=i}return function(l,s){for(const i in s){const c=s[i];c!==void 0&&Object.prototype.hasOwnProperty.call(s,i)&&a(l,i,c)}}}(),_c=(e,t)=>(typeof e=="string"?e:xa(e)).indexOf(" "+t+" ")>=0,ss=(e,t)=>{const n=xa(e),r=n+t;_c(n,t)||(e.className=r.substring(1))},is=(e,t)=>{const n=xa(e);if(!_c(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},xa=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),ev=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)};const tv=()=>{ve(()=>{const e=Je(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||se.start()}),e.afterEach(n=>{t.add(n.path),se.done()})})},nv=De({setup(){tv()}}),rv=JSON.parse(`{"encrypt":{},"author":{"name":"DGP-Studio","url":"https://github.com/DGP-Studio"},"logo":"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01vK3m2w1g6duwt8quS_!!1797064093.png","repo":"DGP-Studio/Snap.Hutao","pageInfo":["Author","Original","Date","Category","Tag","ReadingTime"],"docsRepo":"DGP-Studio/Snap.Hutao.Docs","docsDir":"docs","locales":{"/zh/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"在 GitHub 上编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"navbar":["/zh/",{"text":"文档","icon":"article","link":"/zh/menu.html"},{"text":"下载","icon":"install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"加入社区讨论","icon":"community","link":"/zh/community"}],"sidebar":{"/zh/":["",{"icon":"workingDirectory","text":"项目介绍","link":"project"},{"icon":"network","text":"国际化支持","link":"i18n"},{"icon":"play","text":"快速开始","link":"quick-start"},{"icon":"read","text":"功能指南","prefix":"features/","children":"structure"},{"icon":"advance","text":"高级","prefix":"advanced/","children":"structure"},{"icon":"article","text":"声明和公告","prefix":"statements/","children":"structure"}]},"footer":"用开源社区力量为原神 PC 端玩家带来最好的游戏体验","displayFooter":true},"/en/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page on GitHub","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"navbar":["/en/",{"text":"Document","icon":"article","link":"/en/menu.html"},{"text":"Download","icon":"install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"Community","icon":"community","link":"/en/community"}],"sidebar":{"/en/":["",{"icon":"workingDirectory","text":"Project","link":"project"},{"icon":"network","text":"Localization","link":"i18n"},{"icon":"play","text":"Quick Start","link":"quick-start"},{"icon":"read","text":"Features","prefix":"features/","children":"structure"},{"icon":"advance","text":"Advanced","prefix":"advanced/","children":"structure"},{"icon":"article","text":"Statements","prefix":"statements/","children":"structure"}]},"footer":"Be the best Genshin Impact tool","displayFooter":true},"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"}}}}`),ov=G(rv),bc=()=>ov,yc=Symbol(""),av=()=>{const e=Ee(yc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},lv=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},sv=De({enhance({app:e}){const t=bc(),n=e._context.provides[ga],r=A(()=>lv(t.value,n.value));e.provide(yc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),iv={"Content-Type":"application/json"},cv=({serverURL:e,lang:t,paths:n,signal:r})=>(({serverURL:o,lang:a,paths:l,type:s,signal:i})=>fetch(`${o}/article?path=${encodeURIComponent(l.join(","))}&type=${encodeURIComponent(s.join(","))}&lang=${a}`,{signal:i}).then(c=>c.json()))({serverURL:e,lang:t,paths:n,type:["time"],signal:r}).then(o=>Array.isArray(o)?o:[o]),uv=e=>(({serverURL:t,lang:n,path:r,type:o,action:a})=>fetch(`${t}/article?lang=${n}`,{method:"POST",headers:iv,body:JSON.stringify({path:r,type:o,action:a})}).then(l=>l.json()))({...e,type:"time",action:"inc"}),cs=e=>{const t=((n="")=>n.replace(/\/$/u,""))(e);return/^(https?:)?\/\//.test(t)?t:`https://${t}`},dv=e=>{e.name!=="AbortError"&&console.error(e.message)},us=e=>e.dataset.path||e.getAttribute("id"),ds=(e,t)=>{t.forEach((n,r)=>{n.innerText=e[r].toString()})},fv=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:r=!0,lang:o=navigator.language})=>{const a=new AbortController,l=Array.from(document.querySelectorAll(n)),s=c=>{const u=us(c);return u!==null&&t!==u},i=c=>cv({serverURL:cs(e),paths:c.map(u=>us(u)||t),lang:o,signal:a.signal}).then(u=>ds(u,c)).catch(dv);if(r){const c=l.filter(f=>!s(f)),u=l.filter(s);uv({serverURL:cs(e),path:t,lang:o}).then(f=>ds(new Array(c.length).fill(f),c)),u.length&&i(u)}else i(l);return a.abort.bind(a)};const pv={provider:"Waline",dark:'html[data-theme="dark"]',serverURL:"https://comments.snapgenshin.com",emoji:["//unpkg.com/@waline/emojis@1.1.0/weibo","//unpkg.com/@waline/emojis@1.1.0/bilibili","//unpkg.com/@waline/emojis@1.1.0/bmoji","//unpkg.com/@waline/emojis@1.1.0/qq","//unpkg.com/@waline/emojis@1.1.0/tieba"],requiredMeta:["mail"],reaction:!1};let hv=pv;const wc=Symbol(""),Ec=()=>Ee(wc),mv=Ec,vv=e=>{e.provide(wc,hv)},gv={"/zh/":{placeholder:"请留言。(填写邮箱可在被回复时收到邮件提醒)"},"/en/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"},"/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"}};w(()=>import("./waline-meta-a31b78ed.js"),[]);var _v=B({name:"WalineComment",setup(){const e=mv(),t=pe(),n=Pe(),r=Jr(),o=an(gv);let a;const l=!!e.serverURL,s=A(()=>{if(!l)return!1;const u=e.pageview!==!1,f=n.value.pageview;return!!f||u!==!1&&f!==!1}),i=A(()=>ht(t.value.path)),c=A(()=>({lang:r.value==="zh-CN"?"zh-CN":"en",locale:o.value,dark:"html.dark",...e,path:i.value}));return ve(()=>{re(i,()=>{a==null||a(),s.value&&rn().then(()=>{setTimeout(()=>{a=fv({serverURL:e.serverURL,path:i.value})},e.delay||800)})},{immediate:!0})}),()=>l?d("div",{class:"waline-wrapper",id:"comment"},l?d(N({loader:async()=>(await w(()=>import("./component-f5334886.js"),[])).Waline,loadingComponent:Di}),c.value):[]):null}}),bv=B({name:"CommentService",props:{darkmode:Boolean},setup(e){const t=Ec(),n=Pe(),r=t.comment!==!1,o=A(()=>n.value.comment||r&&n.value.comment!==!1);return()=>d(_v,{darkmode:e.darkmode,style:{display:o.value?"block":"none"}})}}),yv=De({enhance:({app:e})=>{vv(e),e.component("CommentService",bv)}});const wv=800,Ev=2e3,Tv={"/zh/":{copy:"复制代码",copied:"已复制",hint:"复制成功"},"/en/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"},"/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"}},Ov=!1,Av=['.theme-hope-content div[class*="language-"] pre'],fs=!1,bo=new Map,Pv=()=>{const{copy:e}=nh({legacy:!0}),t=an(Tv),n=pe(),r=kp(),o=s=>{if(!s.hasAttribute("copy-code-registered")){const i=document.createElement("button");i.type="button",i.classList.add("copy-code-button"),i.innerHTML='
',i.setAttribute("aria-label",t.value.copy),i.setAttribute("data-copied",t.value.copied),s.parentElement&&s.parentElement.insertBefore(i,s),s.setAttribute("copy-code-registered","")}},a=()=>rn().then(()=>new Promise(s=>{setTimeout(()=>{Av.forEach(i=>{document.querySelectorAll(i).forEach(o)}),s()},wv)})),l=(s,i,c)=>{let{innerText:u=""}=i;/language-(shellscript|shell|bash|sh|zsh)/.test(s.classList.toString())&&(u=u.replace(/^ *(\$|>) /gm,"")),e(u).then(()=>{c.classList.add("copied"),clearTimeout(bo.get(c));const f=setTimeout(()=>{c.classList.remove("copied"),c.blur(),bo.delete(c)},Ev);bo.set(c,f)})};ve(()=>{(!r.value||fs)&&a(),xe("click",s=>{const i=s.target;if(i.matches('div[class*="language-"] > button.copy')){const c=i.parentElement,u=i.nextElementSibling;u&&l(c,u,i)}else if(i.matches('div[class*="language-"] div.copy-icon')){const c=i.parentElement,u=c.parentElement,f=c.nextElementSibling;f&&l(u,f,c)}}),re(()=>n.value.path,()=>{(!r.value||fs)&&a()})})};var kv=De({setup:()=>{Pv()}});const yo=Oa("VUEPRESS_TAB_STORE",{});var Lv=B({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=G(e.active),r=it([]),o=()=>{if(e.tabId){const{title:c,id:u=c}=e.data[n.value];yo.value[e.tabId]=u}},a=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},s=(c,u)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=u):c.key==="ArrowRight"?(c.preventDefault(),a()):c.key==="ArrowLeft"&&(c.preventDefault(),l()),o()},i=()=>{if(e.tabId){const c=e.data.findIndex(({title:u,id:f=u})=>yo.value[e.tabId]===f);if(c!==-1)return c}return e.active};return ve(()=>{n.value=i(),re(()=>yo.value[e.tabId],(c,u)=>{if(e.tabId&&c!==u){const f=e.data.findIndex(({title:p,id:m=p})=>m===c);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"tab-list"},[d("div",{class:"tab-list-nav",role:"tablist"},e.data.map(({title:c},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(r.value[u]=p)},class:["tab-list-nav-item",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,o()},onKeydown:p=>s(p,u)},c)})),e.data.map(({title:c,id:u=c},f)=>{const p=f===n.value;return d("div",{class:["tab-item",{active:p}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":p},t[`tab${f}`]({title:c,value:u,isActive:p}))})]):null}});const xv=De({enhance:({app:e})=>{e.component("Tabs",Lv)}});let Cv={};const Tc=Symbol(""),Iv=()=>Ee(Tc),Sv=e=>{e.provide(Tc,Cv)};const Rv=".theme-hope-content :not(a) > img:not([no-view])",$v={"/zh/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"},"/en/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"},"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}},Dv=800,Mv='
',zv=e=>ae(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),Oc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(Oc(e)),e.onerror=r=>n(r))}),Nv=()=>{const{isSupported:e,toggle:t}=Aa(),n=Iv(),r=an($v),o=pe();let a;const l=i=>{i.on("uiRegister",()=>{e&&i.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{t()}}),i.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(c,u)=>{c.setAttribute("download",""),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),u.on("change",()=>{c.setAttribute("href",u.currSlide.data.src)})}}),i.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(c,u)=>{const f=[];let p=-1;for(let m=0;m{u.goTo(f.indexOf(E.target))},f.push(y),c.appendChild(y)}u.on("change",()=>{p>=0&&f[p].classList.remove("active"),f[u.currIndex].classList.add("active"),p=u.currIndex})}})})},s=()=>Promise.all([w(()=>import("./photoswipe.esm-2450701e.js"),[]),rn().then(()=>new Promise(i=>setTimeout(i,Dv)).then(()=>zv(Rv)))]).then(([{default:i},c])=>{const u=c.map(f=>({html:Mv,element:f,msrc:f.src}));c.forEach((f,p)=>{const m=()=>{a=new i({preloaderDelay:0,showHideAnimationType:"zoom",...r.value,...n,dataSource:u,index:p,closeOnVerticalDrag:!0,wheelToZoom:!1}),l(a),a.addFilter("thumbEl",()=>f),a.addFilter("placeholderSrc",()=>f.src),a.init()};f.style.cursor="zoom-in",f.addEventListener("click",()=>{m()}),f.addEventListener("keypress",({key:y})=>{y==="Enter"&&m()})}),c.forEach((f,p)=>{Oc(f).then(m=>{u.splice(p,1,m),a==null||a.refreshSlideContent(p)})})});ve(()=>{xe("wheel",()=>{a==null||a.close()}),s(),re(()=>o.value.path,()=>s())})};var Vv=De({enhance:({app:e})=>{Sv(e)},setup:()=>{Nv()}});function Fv(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(o){o(n)}),(r=e.get("*"))&&r.slice().map(function(o){o(t,n)})}}}const Ac=Symbol(""),Bv=()=>{const e=Ee(Ac);if(!e)throw new Error("usePWAEvent() is called without provider.");return e},Hv=async e=>{const{register:t}=await w(()=>import("./index-e32a7948.js"),[]);t(ht("service-worker.js"),{ready(n){console.log("[PWA]: Service worker is active"),e.emit("ready",n)},registered(n){console.log("[PWA]: Service worker has been registered."),e.emit("registered",n)},cached(n){console.log("[PWA]: Content has been cached for offline usage"),e.emit("cached",n)},async updatefound(n){await navigator.serviceWorker.getRegistration()&&(console.log("[PWA]: New content is downloading."),e.emit("updatefound",n))},updated(n){console.log("[PWA]: New content is available, please refresh.");const r="service-worker-version",o=Number(localStorage.getItem(r)||0);localStorage.setItem(r,(o+1).toString()),localStorage.removeItem("manifest"),e.emit("updated",n)},offline(){console.log("[PWA]: No internet connection found. App is running in offline mode."),e.emit("offline")},error(n){console.log("[PWA]: Error during service worker registration:",n),e.emit("error",n)}})},jv=()=>{const e=Fv();Jt(Ac,e),ve(async()=>{var t;let n=!1;(t=navigator.serviceWorker)!=null&&t.controller&&navigator.serviceWorker.addEventListener("controllerchange",()=>{n||(n=!0,window.location.reload())}),await Hv(e)})},Pc=()=>d(we,{name:"update"},()=>d("path",{d:"M949.949 146.25v255.826c0 21.981-13.989 35.97-35.97 35.97H658.154c-13.988 0-25.983-7.992-33.973-21.981-5.997-13.989-4-27.977 7.991-39.97l79.942-77.946c-55.954-51.973-121.918-77.955-199.863-77.955-37.975 0-75.95 8.002-113.924 21.99-37.975 15.985-67.948 37.976-91.934 63.957-25.982 23.987-47.973 53.96-63.957 91.934-29.983 73.955-29.983 153.895 0 227.85 15.984 37.976 37.975 67.947 63.957 91.934 23.986 25.982 53.959 47.973 91.934 63.956 37.974 13.989 75.95 21.991 113.924 21.991 45.967 0 87.942-9.998 127.913-29.982 41.976-17.99 75.951-45.967 101.931-83.943 7.993-4 11.994-5.995 13.989-5.995 5.997 0 9.998 1.994 13.988 5.995l77.958 77.946c3.989 4 5.986 7.993 5.986 11.994 0 1.994-1.996 5.995-3.99 11.994-43.973 51.962-93.941 91.934-151.9 117.914-53.958 25.983-115.92 39.972-185.874 39.972-61.961 0-119.921-11.984-169.89-33.973-57.96-25.985-105.923-57.963-139.896-93.943-35.98-33.972-67.958-81.936-93.94-139.897-45.967-101.93-45.967-237.846 0-339.777 25.982-57.96 57.96-105.923 93.94-139.896 33.973-35.98 81.936-67.958 139.896-93.94 49.968-21.99 107.928-33.974 169.89-33.974 55.963 0 109.923 9.988 161.885 29.973 53.97 21.99 101.933 51.963 139.908 89.938l73.954-73.944c9.987-9.998 23.987-13.988 39.971-8.002 13.988 8.002 21.98 19.995 21.98 33.984z"}));Pc.displayName="UpdateIcon";const Uv={"/zh/":{install:"安装",iOSInstall:"点击分享按钮然后点击“添加到主屏幕”",cancel:"取消",close:"关闭",prevImage:"上一张图片",nextImage:"下一张图片",desc:"详情",feature:"主要特色",explain:"该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。",hint:"发现新内容可用",update:"新内容已就绪"},"/en/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."},"/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."}};var Wv=B({name:"SWHintPopup",slots:Object,setup(e,{slots:t}){const n=an(Uv),r=G(!1),o=()=>{r.value&&(window.location.reload(!0),r.value=!1)};return ve(()=>{const a=Bv();a.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(l=>{l&&l.active&&(r.value=!0)})}),a.on("updated",()=>{r.value=!1})}),()=>d(Pt,{name:"popup"},()=>{var a;return((a=t.default)==null?void 0:a.call(t,{enabled:r.value,uninstall:o}))||(r.value?d("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>o()},[n.value.hint,d("span",{class:"icon-wrapper"},d(Pc))]):null)})}});const qv=De({setup:()=>{jv()},rootComponents:[Wv]}),kc=()=>{const e=pe();return A(()=>e.value.readingTime??null)},Vo=typeof{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}}>"u"?null:{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}},Kv=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:a,time:l}=t;return{time:n<1?o:l.replace("$time",Math.round(n).toString()),words:a.replace("$word",r.toString())}},ps={words:"",time:""},Gv=()=>Vo?an(Vo):A(()=>null),Yv=()=>{if(typeof Vo>"u")return A(()=>ps);const e=kc(),t=Gv();return A(()=>e.value&&t.value?Kv(e.value,t.value):ps)},zn=()=>bc(),ge=()=>av(),ro=()=>A(()=>!!zn().value.pure);var hs=B({name:"EmptyComponent",setup:()=>()=>null});const Qv="719px",Jv="1440px",Xv="false",Ca={mobileBreakPoint:Qv,pcBreakPoint:Jv,enableThemeColor:Xv},Ia={"/zh/features/":["dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","mhy-account-switch","hutao-settings"],"/zh/advanced/":["FAQ","exceptions","known-issue","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/zh/statements/":["update-log","bug-report","privacy-notice","tos"],"/en/features/":["dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","mhy-account-switch","hutao-settings"],"/en/advanced/":["FAQ","exceptions","known-issue","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/en/statements/":["update-log","bug-report","privacy-notice","tos"],"/":[]},Lc=e=>{const{icon:t="",color:n,size:r}=e,o={};return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),Dn(t)?d("img",{class:"icon",src:t,"no-view":"",style:o}):_a(t)?d("img",{class:"icon",src:ht(t),"no-view":"",style:o}):d(at("FontIcon"),e)};Lc.displayName="HopeIcon";var Qe=Lc,Et=(e=>(e.type="y",e.title="t",e.shortTitle="s",e.icon="i",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e.index="I",e.order="O",e))(Et||{}),Zv=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(Zv||{});const bn=(e,t=!1)=>{const n=Je(),{fullPath:r,meta:o,name:a}=ya(n,encodeURI(e));return{text:!t&&o[Et.shortTitle]?o[Et.shortTitle]:o[Et.title]||e,link:a==="404"?e:r,...o[Et.icon]?{icon:o[Et.icon]}:{}}},e1=()=>{const e=Je(),t=Xe();return n=>{if(n)if(_a(n))t.path!==n&&e.push(n);else if(Dn(n)||Oi(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(`${r}/${encodeURI(n)}`)}}},xc=()=>{const e=ge(),t=Pe();return A(()=>{const{author:n}=t.value;return n?kl(n):n===!1?[]:kl(e.value.author,!1)})},t1=()=>{const e=Pe();return A(()=>Cp(e.value.category).map(t=>({name:t,path:""})))},n1=()=>{const e=Pe();return A(()=>Ip(e.value.tag).map(t=>({name:t,path:""})))},r1=()=>{const e=Pe(),t=pe();return A(()=>{const n=Lp(e.value.date);if(n)return n;const{createdTime:r}=t.value.git||{};return r?new Date(r):null})},o1=()=>{const e=ge(),t=pe(),n=Pe(),r=xc(),o=t1(),a=n1(),l=r1(),s=kc(),i=Yv(),c=A(()=>({author:r.value,category:o.value,date:l.value,localizedDate:t.value.localizedDate,tag:a.value,isOriginal:n.value.isOriginal||!1,readingTime:s.value,readingTimeLocale:i.value,pageview:"pageview"in n.value?n.value.pageview:!0})),u=A(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:u}},{mobileBreakPoint:a1,pcBreakPoint:l1}=Ca,ms=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,oo=()=>{const e=G(!1),t=G(!1),n=()=>{e.value=window.innerWidth<=(ms(a1)??719),t.value=window.innerWidth>=(ms(l1)??1440)};return ve(()=>{n(),xe("resize",n,!1),xe("orientationchange",n,!1)}),{isMobile:e,isPC:t}},Cc=Symbol(""),pr=()=>{const e=Ee(Cc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},s1=e=>{const t=zn(),n=dh(),r=Oa("vuepress-theme-hope-scheme","auto"),o=A(()=>t.value.darkmode||"switch"),a=A(()=>{const s=o.value;return s==="disable"?!1:s==="enable"?!0:s==="auto"?n.value:s==="toggle"?r.value==="dark":r.value==="dark"||r.value==="auto"&&n.value}),l=A(()=>{const s=o.value;return s==="switch"||s==="toggle"});e.provide(Cc,{canToggle:l,config:o,isDarkmode:a,status:r}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>a.value}})},i1=()=>{const{isDarkmode:e}=pr(),t=(n=e.value)=>document.documentElement.setAttribute("data-theme",n?"dark":"light");ve(()=>{re(e,t,{immediate:!0})})};var Ne=B({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:r}){const o=Xe(),a=Si(),l=Wr(e,"config"),s=A(()=>Dn(l.value.link)),i=A(()=>Oi(l.value.link)||dp(l.value.link)),c=A(()=>i.value?void 0:l.value.target||(s.value?"_blank":void 0)),u=A(()=>c.value==="_blank"),f=A(()=>!s.value&&!i.value&&!u.value),p=A(()=>i.value?void 0:l.value.rel||(u.value?"noopener noreferrer":void 0)),m=A(()=>l.value.ariaLabel||l.value.text),y=A(()=>{if(e.exact)return!1;const T=Mn(a.value.locales);return T.length?T.every(g=>g!==l.value.link):l.value.link!=="/"}),E=A(()=>f.value?l.value.activeMatch?new RegExp(l.value.activeMatch).test(o.path):y.value?ar(o.path,l.value.link):o.path===l.value.link:!1);return()=>{const{before:T,after:g,default:_}=r,{text:R,icon:I,link:j}=l.value;return f.value?d(Ot,{to:j,"aria-label":m.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>_?_():[T?T():d(Qe,{icon:I}),R,g==null?void 0:g()]):d("a",{href:j,rel:p.value,target:c.value,"aria-label":m.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},_?_():[T?T():d(Qe,{icon:I}),R,e.noExternalLinkIcon?null:d(gc),g==null?void 0:g()])}}});const Ln=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch).test(e.path):ba(e,t.link)?!0:t.children&&!n?t.children.some(r=>Ln(e,r)):!1,Ic=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?Ic(e,n):n.type==="page"&&Ln(e,n,!0))||"prefix"in t&&ba(e,t.prefix):!1,Sc=(e,t)=>ae(e.link)?d(Ne,{...t,config:e}):d("p",t,[d(Qe,{icon:e.icon}),e.text]),Rc=e=>{const t=Xe();return e?d("ul",{class:"sidebar-sub-headers"},e.map(n=>{const r=Ln(t,n,!0);return d("li",{class:"sidebar-sub-header"},[Sc(n,{class:["sidebar-link","heading",{active:r}]}),Rc(n.children)])})):null},wo=(e="",t="")=>_a(t)?t:`${ip(e)}${t}`,c1=(e,t)=>{const n=pe();return{type:"heading",text:e.title,link:`${n.value.path}#${e.slug}`,children:Sa(e.children,t)}},Sa=(e,t)=>t>0?e.map(n=>c1(n,t-1)):[],$c=e=>{const t=pe();return Sa(t.value.headers,e)},Fo=(e,t,n="")=>{const r=pe(),o=(a,l=n)=>{var s;const i=ae(a)?bn(wo(l,a)):a.link?{...a,...Fr(a.link)?{}:{link:bn(wo(l,a.link)).link}}:a;if("children"in i){const c=wo(l,i.prefix),u=i.children==="structure"?Ia[c]:i.children;return{type:"group",...i,prefix:c,children:u.map(f=>o(f,c))}}return{type:"page",...i,children:i.link===r.value.path?Sa(((s=r.value.headers[0])==null?void 0:s.level)===1?r.value.headers[0].children:r.value.headers,t):[]}};return e.map(a=>o(a))},u1=(e,t)=>{const n=pe(),r=Mn(e).sort((o,a)=>a.length-o.length);for(const o of r)if(ar(decodeURI(n.value.path),o)){const a=e[o];return a?Fo(a==="structure"?Ia[o]:a==="heading"?$c(t):a,t,o):[]}return console.warn(`${n.value.path} is missing sidebar config.`),[]},d1=()=>{const e=Lt(),t=Pe(),n=ge(),r=t.value.home?!1:t.value.sidebar??n.value.sidebar??"structure",o=t.value.headerDepth??n.value.headerDepth??2;return r===!1?[]:r==="heading"?$c(o):r==="structure"?Fo(Ia[e.value],o,e.value):q(r)?Fo(r,o):ma(r)?u1(r,o):[]},Dc=Symbol(""),f1=()=>{const e=A(()=>d1());Jt(Dc,e)},Ra=()=>{const e=Ee(Dc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var p1=B({name:"PageFooter",setup(){const e=Pe(),t=ge(),n=xc(),r=A(()=>{const{copyright:l,footer:s}=e.value;return s!==!1&&!!(l||s||t.value.displayFooter)}),o=A(()=>{const{footer:l}=e.value;return l===!1?!1:ae(l)?l:t.value.footer||""}),a=A(()=>"copyright"in e.value?e.value.copyright:"copyright"in t.value?t.value.copyright:n.value.length?`Copyright © ${new Date().getFullYear()} ${n.value[0].name}`:!1);return()=>r.value?d("footer",{class:"footer-wrapper"},[o.value?d("div",{class:"footer",innerHTML:o.value}):null,a.value?d("div",{class:"copyright",innerHTML:a.value}):null]):null}}),Mc=B({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=pe(),r=Wr(e,"config"),o=A(()=>r.value.ariaLabel||r.value.text),a=G(!1);re(()=>n.value.path,()=>{a.value=!1});const l=s=>{s.detail===0&&(a.value=!a.value)};return()=>{var s;return d("div",{class:["dropdown-wrapper",{open:a.value}]},[d("button",{type:"button",class:"dropdown-title","aria-label":o.value,onClick:l},[((s=t.title)==null?void 0:s.call(t))||d("span",{class:"title"},[d(Qe,{icon:r.value.icon}),e.config.text]),d("span",{class:"arrow"}),d("ul",{class:"nav-dropdown"},r.value.children.map((i,c)=>{const u=c===r.value.children.length-1;return d("li",{class:"dropdown-item"},"children"in i?[d("h4",{class:"dropdown-subtitle"},i.link?d(Ne,{config:i,onFocusout:()=>{i.children.length===0&&u&&(a.value=!1)}}):d("span",i.text)),d("ul",{class:"dropdown-subitem-wrapper"},i.children.map((f,p)=>d("li",{class:"dropdown-subitem"},d(Ne,{config:f,onFocusout:()=>{p===i.children.length-1&&u&&(a.value=!1)}}))))]:d(Ne,{config:i,onFocusout:()=>{u&&(a.value=!1)}}))}))])])}}});const zc=()=>d(we,{name:"i18n"},()=>[d("path",{d:"M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"})]);zc.displayName="I18nIcon";const Nc=(e,t="")=>ae(e)?bn(`${t}${e}`):"children"in e?{...e,...e.link&&!Fr(e.link)?bn(`${t}${e.link}`):{},children:e.children.map(n=>Nc(n,`${t}${e.prefix||""}`))}:{...e,link:Fr(e.link)?e.link:bn(`${t}${e.link}`).link},Vc=()=>A(()=>(ge().value.navbar||[]).map(e=>Nc(e))),h1=()=>{const e=Je(),t=Xe(),n=Lt(),r=Xr(),o=zn(),a=ge();return A(()=>{const l=Mn(r.value.locales);if(l.length<2)return null;const{path:s,fullPath:i}=e.currentRoute.value,{navbarLocales:c}=a.value;return{text:"",ariaLabel:c==null?void 0:c.selectLangAriaLabel,children:[...l.map(u=>{var f,p,m;const y=((f=r.value.locales)==null?void 0:f[u])??{},E=((p=o.value.locales)==null?void 0:p[u])??{},T=y.lang||"",g=((m=E.navbarLocales)==null?void 0:m.langName)??T;let _;if(T===r.value.lang)_=s;else{const R=s.replace(n.value,u);_=e.getRoutes().some(I=>I.path===R)?i.replace(s,R):E.home??u}return{text:g,link:_}}),...eo(o.value.extraLocales||{}).map(([u,f])=>({text:u,link:f.replace(":route",t.path.replace(n.value,""))}))]}})},m1=()=>{const e=ge(),t=A(()=>e.value.repo||null),n=A(()=>t.value?Rp(t.value):null),r=A(()=>t.value?Gi(t.value):null),o=A(()=>n.value?e.value.repoLabel??(r.value===null?"Source":r.value):null);return A(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value||"Source",label:o.value,link:n.value})};var v1=B({name:"LanguageDropdown",setup(){const e=h1();return()=>e.value?d("div",{class:"nav-item"},d(Mc,{class:"i18n-dropdown",config:e.value},{title:()=>{var t;return d(zc,{"aria-label":(t=e.value)==null?void 0:t.ariaLabel,style:{width:"1rem",height:"1rem",verticalAlign:"middle"}})}})):null}}),g1=B({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=pe(),n=Wr(e,"config"),r=A(()=>n.value.ariaLabel||n.value.text),o=G(!1);re(()=>t.value.path,()=>{o.value=!1});const a=(l,s)=>s[s.length-1]===l;return()=>[d("button",{type:"button",class:["nav-screen-dropdown-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[d("span",{class:"title"},[d(Qe,{icon:n.value.icon}),e.config.text]),d("span",{class:["arrow",o.value?"down":"end"]})]),d("ul",{class:["nav-screen-dropdown",{hide:!o.value}]},n.value.children.map(l=>d("li",{class:"dropdown-item"},"children"in l?[d("h4",{class:"dropdown-subtitle"},l.link?d(Ne,{config:l,onFocusout:()=>{a(l,n.value.children)&&l.children.length===0&&(o.value=!1)}}):d("span",l.text)),d("ul",{class:"dropdown-subitem-wrapper"},l.children.map(s=>d("li",{class:"dropdown-subitem"},d(Ne,{config:s,onFocusout:()=>{a(s,l.children)&&a(l,n.value.children)&&(o.value=!1)}}))))]:d(Ne,{config:l,onFocusout:()=>{a(l,n.value.children)&&(o.value=!1)}}))))]}}),_1=B({name:"NavScreenLinks",setup(){const e=Vc();return()=>e.value.length?d("nav",{class:"nav-screen-links"},e.value.map(t=>d("div",{class:"navbar-links-item"},"children"in t?d(g1,{config:t}):d(Ne,{config:t})))):null}});const Fc=()=>d(we,{name:"dark"},()=>d("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Fc.displayName="DarkIcon";const Bc=()=>d(we,{name:"light"},()=>d("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Bc.displayName="LightIcon";const Hc=()=>d(we,{name:"auto"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));Hc.displayName="AutoIcon";const jc=()=>d(we,{name:"enter-fullscreen"},()=>d("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));jc.displayName="EnterFullScreenIcon";const Uc=()=>d(we,{name:"cancel-fullscreen"},()=>d("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Uc.displayName="CancelFullScreenIcon";const Wc=()=>d(we,{name:"outlook"},()=>[d("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Wc.displayName="OutlookIcon";var qc=B({name:"AppearanceSwitch",setup(){const{config:e,status:t}=pr(),n=()=>{e.value==="switch"?t.value={light:"dark",dark:"auto",auto:"light"}[t.value]:t.value=t.value==="light"?"dark":"light"};return()=>d("button",{type:"button",id:"appearance-switch",onClick:()=>n()},[d(Hc,{style:{display:t.value==="auto"?"block":"none"}}),d(Fc,{style:{display:t.value==="dark"?"block":"none"}}),d(Bc,{style:{display:t.value==="light"?"block":"none"}})])}}),b1=B({name:"AppearanceMode",setup(){const e=ge(),{canToggle:t}=pr(),n=A(()=>e.value.outlookLocales.darkmode);return()=>t.value?d("div",{class:"appearance-wrapper"},[d("label",{class:"appearance-title",for:"appearance-switch"},n.value),d(qc)]):null}});const Eo="VUEPRESS_THEME_COLOR";var y1=B({name:"ThemeColorPicker",props:{themeColor:{type:Object,required:!0}},setup(e){const t=(n="")=>{const r=document.documentElement.classList,o=Mn(e.themeColor);if(!n){localStorage.removeItem(Eo),r.remove(...o);return}r.remove(...o.filter(a=>a!==n)),r.add(n),localStorage.setItem(Eo,n)};return ve(()=>{const n=localStorage.getItem(Eo);n&&t(n)}),()=>d("ul",{id:"theme-color-picker"},[d("li",d("span",{class:"theme-color",onClick:()=>t()})),eo(e.themeColor).map(([n,r])=>d("li",d("span",{style:{background:r},onClick:()=>t(n)})))])}});const yn=Ca.enableThemeColor==="true",w1=yn?xp(eo(Ca).filter(([e])=>e.startsWith("theme-"))):{};var E1=B({name:"ThemeColor",setup(){const e=ge(),t=A(()=>e.value.outlookLocales.themeColor);return()=>yn?d("div",{class:"theme-color-wrapper"},[d("label",{class:"theme-color-title",for:"theme-color-picker"},t.value),d(y1,{themeColor:w1})]):null}}),Kc=B({name:"ToggleFullScreenButton",setup(){const e=ge(),{isSupported:t,isFullscreen:n,toggle:r}=Aa(),o=A(()=>e.value.outlookLocales.fullscreen);return()=>t?d("div",{class:"full-screen-wrapper"},[d("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),d("button",{type:"button",class:"full-screen",id:"full-screen-switch",ariaPressed:n.value,onClick:()=>r()},n.value?d(Uc):d(jc))]):null}}),Gc=B({name:"OutlookSettings",setup(){const e=zn(),t=ro(),n=A(()=>!t.value&&e.value.fullscreen);return()=>d(Zr,()=>[yn?d(E1):null,d(b1),n.value?d(Kc):null])}}),T1=B({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=pe(),{isMobile:o}=oo(),a=it(),l=Pa(a);return ve(()=>{a.value=document.body,re(o,s=>{!s&&e.show&&(l.value=!1,t("close"))}),re(()=>r.value.path,()=>{l.value=!1,t("close")})}),$n(()=>{l.value=!1}),()=>d(Pt,{name:"fade",onEnter:()=>{l.value=!0},onAfterLeave:()=>{l.value=!1}},()=>{var s,i;return e.show?d("div",{id:"nav-screen"},d("div",{class:"container"},[(s=n.before)==null?void 0:s.call(n),d(_1),d("div",{class:"outlook-wrapper"},d(Gc)),(i=n.after)==null?void 0:i.call(n)])):null})}}),O1=B({name:"NavbarBrand",setup(){const e=Lt(),t=Xr(),n=ge(),r=A(()=>n.value.home||e.value),o=A(()=>t.value.title),a=A(()=>n.value.logo?ht(n.value.logo):null),l=A(()=>n.value.logoDark?ht(n.value.logoDark):null);return()=>d(Ot,{to:r.value,class:"brand"},()=>[a.value?d("img",{class:["logo",{light:!!l.value}],src:a.value,alt:o.value}):null,l.value?d("img",{class:["logo dark"],src:l.value,alt:o.value}):null,o.value?d("span",{class:["site-name",{"hide-in-pad":a.value&&n.value.hideSiteNameOnMobile!==!1}]},o.value):null])}}),A1=B({name:"NavbarLinks",setup(){const e=Vc();return()=>e.value.length?d("nav",{class:"nav-links"},e.value.map(t=>d("div",{class:"nav-item hide-in-mobile"},"children"in t?d(Mc,{config:t}):d(Ne,{config:t})))):null}}),P1=B({name:"RepoLink",components:{BitbucketIcon:Fi,GiteeIcon:Vi,GitHubIcon:zi,GitLabIcon:Ni,SourceIcon:Bi},setup(){const e=m1();return()=>e.value?d("div",{class:"nav-item"},d("a",{class:"repo-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},d(at(`${e.value.type}Icon`),{style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const Yc=({active:e=!1},{emit:t})=>d("button",{type:"button",class:["toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},d("span",{class:"button-container"},[d("span",{class:"button-top"}),d("span",{class:"button-middle"}),d("span",{class:"button-bottom"})]));Yc.displayName="ToggleNavbarButton";var k1=Yc;const Bo=(e,{emit:t})=>d("button",{type:"button",class:"toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},d("span",{class:"icon"}));Bo.displayName="ToggleSidebarButton",Bo.emits=["toggle"];var L1=Bo,x1=B({name:"OutlookButton",setup(){const{isSupported:e}=Aa(),t=zn(),n=ro(),r=pe(),{canToggle:o}=pr(),a=G(!1),l=A(()=>!n.value&&t.value.fullscreen&&e);return re(()=>r.value.path,()=>{a.value=!1}),()=>o.value||l.value||yn?d("div",{class:"nav-item hide-in-mobile"},o.value&&!l.value&&!yn?d(qc):l.value&&!o.value&&!yn?d(Kc):d("button",{type:"button",class:["outlook-button",{open:a.value}],tabindex:"-1","aria-hidden":!0},[d(Wc),d("div",{class:"outlook-dropdown"},d(Gc))])):null}}),C1=B({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=ge(),{isMobile:o}=oo(),a=G(!1),l=A(()=>{const{navbarAutoHide:u="mobile"}=r.value;return u!=="none"&&(u==="always"||o.value)}),s=A(()=>r.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),i={Brand:O1,Language:v1,Links:A1,Repo:P1,Outlook:x1,Search:pt("Docsearch")?at("Docsearch"):pt("SearchBox")?at("SearchBox"):hs},c=u=>i[u]??(pt(u)?at(u):hs);return()=>{var u,f,p,m,y,E;return[d("header",{class:["navbar",{"auto-hide":l.value,"hide-icon":r.value.navbarIcon===!1}],id:"navbar"},[d("div",{class:"navbar-start"},[d(L1,{onToggle:()=>{a.value&&(a.value=!1),t("toggleSidebar")}}),(u=n.startBefore)==null?void 0:u.call(n),(s.value.start||[]).map(T=>d(c(T))),(f=n.startAfter)==null?void 0:f.call(n)]),d("div",{class:"navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(s.value.center||[]).map(T=>d(c(T))),(m=n.centerAfter)==null?void 0:m.call(n)]),d("div",{class:"navbar-end"},[(y=n.endBefore)==null?void 0:y.call(n),(s.value.end||[]).map(T=>d(c(T))),(E=n.endAfter)==null?void 0:E.call(n),d(k1,{active:a.value,onToggle:()=>{a.value=!a.value}})])]),d(T1,{show:a.value,onClose:()=>{a.value=!1}},{before:()=>{var T;return(T=n.screenTop)==null?void 0:T.call(n)},after:()=>{var T;return(T=n.screenBottom)==null?void 0:T.call(n)}})]}}}),I1=B({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=Xe();return()=>[Sc(e.config,{class:["sidebar-link",`sidebar-${e.config.type}`,{active:Ln(t,e.config,!0)}],exact:!0}),Rc(e.config.children)]}}),S1=B({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=Xe(),r=A(()=>Ln(n,e.config)),o=A(()=>Ln(n,e.config,!0));return()=>{const{collapsible:a,children:l=[],icon:s,prefix:i,link:c,text:u}=e.config;return d("section",{class:"sidebar-group"},[d(a?"button":"p",{class:["sidebar-heading",{clickable:a||c,exact:o.value,active:r.value}],...a?{type:"button",onClick:()=>t("toggle"),onKeydown:f=>{f.key==="Enter"&&t("toggle")}}:{}},[d(Qe,{icon:s}),c?d(Ne,{class:"title",config:{text:u,link:c},noExternalLinkIcon:!0}):d("span",{class:"title"},u),a?d("span",{class:["arrow",e.open?"down":"end"]}):null]),e.open||!a?d(Qc,{key:i,config:l}):null])}}}),Qc=B({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=Xe(),n=G(-1),r=o=>{n.value=o===n.value?-1:o};return re(()=>t.path,()=>{const o=e.config.findIndex(a=>Ic(t,a));n.value=o},{immediate:!0,flush:"post"}),()=>d("ul",{class:"sidebar-links"},e.config.map((o,a)=>d("li",o.type==="group"?d(S1,{config:o,open:a===n.value,onToggle:()=>r(a)}):d(I1,{config:o}))))}}),R1=B({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=Xe(),r=ge(),o=Ra(),a=it();return ve(()=>{re(()=>n.hash,l=>{const s=document.querySelector(`.sidebar a.sidebar-link[href="${n.path}${l}"]`);if(!s)return;const{top:i,height:c}=a.value.getBoundingClientRect(),{top:u,height:f}=s.getBoundingClientRect();ui+c&&s.scrollIntoView(!1)})}),()=>{var l,s,i;return d("aside",{class:["sidebar",{"hide-icon":r.value.sidebarIcon===!1}],id:"sidebar",ref:a},[(l=t.top)==null?void 0:l.call(t),((s=t.default)==null?void 0:s.call(t))||d(Qc,{config:o.value}),(i=t.bottom)==null?void 0:i.call(t)])}}}),Jc=B({name:"CommonWrapper",props:{noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=Je(),r=pe(),o=Pe(),a=ge(),{isMobile:l,isPC:s}=oo(),[i,c]=Cl(!1),[u,f]=Cl(!1),p=Ra(),m=G(!1),y=A(()=>e.noNavbar||o.value.navbar===!1||a.value.navbar===!1?!1:!!(r.value.title||a.value.logo||a.value.repo||a.value.navbar)),E=A(()=>e.noSidebar?!1:o.value.sidebar!==!1&&p.value.length!==0&&!o.value.home),T=A(()=>e.noToc||o.value.home?!1:o.value.toc||a.value.toc!==!1&&o.value.toc!==!1),g={x:0,y:0},_=S=>{g.x=S.changedTouches[0].clientX,g.y=S.changedTouches[0].clientY},R=S=>{const z=S.changedTouches[0].clientX-g.x,P=S.changedTouches[0].clientY-g.y;Math.abs(z)>Math.abs(P)*1.5&&Math.abs(z)>40&&(z>0&&g.x<=80?c(!0):c(!1))},I=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let j=0;return xe("scroll",Np(()=>{const S=I();S<=58||S{S||c(!1)}),ve(()=>{const S=Pa(document.body);re(i,P=>{S.value=P});const z=n.afterEach(()=>{c(!1)});$n(()=>{S.value=!1,z()})}),()=>d(pt("GlobalEncrypt")?at("GlobalEncrypt"):Mi,()=>d("div",{class:["theme-container",{"no-navbar":!y.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":T.value,"hide-navbar":m.value,"sidebar-collapsed":!l.value&&!s.value&&u.value,"sidebar-open":l.value&&i.value},o.value.containerClass||""],onTouchStart:_,onTouchEnd:R},[y.value?d(C1,{onToggleSidebar:()=>c()},{startBefore:()=>{var S;return(S=t.navbarStartBefore)==null?void 0:S.call(t)},startAfter:()=>{var S;return(S=t.navbarStartAfter)==null?void 0:S.call(t)},centerBefore:()=>{var S;return(S=t.navbarCenterBefore)==null?void 0:S.call(t)},centerAfter:()=>{var S;return(S=t.navbarCenterAfter)==null?void 0:S.call(t)},endBefore:()=>{var S;return(S=t.navbarEndBefore)==null?void 0:S.call(t)},endAfter:()=>{var S;return(S=t.navbarEndAfter)==null?void 0:S.call(t)},screenTop:()=>{var S;return(S=t.navScreenTop)==null?void 0:S.call(t)},screenBottom:()=>{var S;return(S=t.navScreenBottom)==null?void 0:S.call(t)}}):null,d(Pt,{name:"fade"},()=>i.value?d("div",{class:"sidebar-mask",onClick:()=>c(!1)}):null),d(Pt,{name:"fade"},()=>l.value?null:d("div",{class:"toggle-sidebar-wrapper",onClick:()=>f()},d("span",{class:["arrow",u.value?"end":"start"]}))),d(R1,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var S;return(S=t.sidebarTop)==null?void 0:S.call(t)},bottom:()=>{var S;return(S=t.sidebarBottom)==null?void 0:S.call(t)}}),t.default(),d(p1)]))}}),hn=B({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>d(e.type==="single"?Pt:Ei,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},()=>t.default())}});const Ho=({custom:e})=>d($i,{class:["theme-hope-content",{custom:e}]});Ho.displayName="MarkdownContent",Ho.props={custom:Boolean};var Xc=Ho;const Zc=()=>d(we,{name:"author"},()=>d("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));Zc.displayName="AuthorIcon";const eu=()=>d(we,{name:"calendar"},()=>d("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));eu.displayName="CalendarIcon";const tu=()=>d(we,{name:"category"},()=>d("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));tu.displayName="CategoryIcon";const nu=()=>d(we,{name:"eye"},()=>d("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));nu.displayName="EyeIcon";const ru=()=>d(we,{name:"fire"},()=>d("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));ru.displayName="FireIcon";const ou=()=>d(we,{name:"print"},()=>d("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));ou.displayName="PrintIcon";const au=()=>d(we,{name:"tag"},()=>d("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));au.displayName="TagIcon";const lu=()=>d(we,{name:"timer"},()=>d("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));lu.displayName="TimerIcon";const su=()=>d(we,{name:"word"},()=>[d("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),d("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);su.displayName="WordIcon";const xt=()=>{const e=ge();return A(()=>e.value.metaLocales)};var $1=B({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=xt();return()=>e.author.length?d("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(Zc),d("span",e.author.map(n=>n.url?d("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):d("span",{class:"page-author-item"},n.name))),d("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),D1=B({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=Je(),n=pe(),r=xt(),o=(a,l="")=>{l&&n.value.path!==l&&(a.preventDefault(),t.push(l))};return()=>e.category.length?d("span",{class:"page-category-info","aria-label":`${r.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(tu),e.category.map(({name:a,path:l})=>d("span",{class:["page-category-item",{[`category${Wi(a,9)}`]:!e.pure,clickable:l}],role:l?"navigation":"",onClick:s=>o(s,l)},a)),d("meta",{property:"articleSection",content:e.category.map(({name:a})=>a).join(",")})]):null}}),M1=B({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=Jr(),n=xt();return()=>e.date?d("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(eu),d("span",d(Zr,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),d("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),z1=B({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=xt();return()=>e.isOriginal?d("span",{class:"page-original-info"},t.value.origin):null}}),N1=B({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=Xe(),n=xt(),r=it(),o=G(0);return mh(r,()=>{const a=r.value.textContent;a&&!isNaN(Number(a))&&(o.value=Number(a))},{childList:!0}),()=>e.pageview?d("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(o.value<1e3?nu:ru),d("span",{ref:r,class:"waline-pageview-count",id:"ArtalkPV","data-path":ae(e.pageview)?e.pageview:ht(t.path)},"...")]):null}}),V1=B({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=xt(),n=A(()=>{if(!e.readingTime)return null;const{minutes:r}=e.readingTime;return r<1?"PT1M":`PT${Math.round(r)}M`});return()=>{var r,o;return(r=e.readingTimeLocale)!=null&&r.time?d("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${e.pure?"":"⌛"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(lu),d("span",(o=e.readingTimeLocale)==null?void 0:o.time),d("meta",{property:"timeRequired",content:n.value})]):null}}}),F1=B({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=Je(),n=pe(),r=xt(),o=(a,l="")=>{l&&n.value.path!==l&&(a.preventDefault(),t.push(l))};return()=>e.tag.length?d("span",{class:"page-tag-info","aria-label":`${r.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(au),e.tag.map(({name:a,path:l})=>d("span",{class:["page-tag-item",{[`tag${Wi(a,9)}`]:!e.pure,clickable:l}],role:l?"navigation":"",onClick:s=>o(s,l)},a)),d("meta",{property:"keywords",content:e.tag.map(({name:a})=>a).join(",")})]):null}}),B1=B({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=xt();return()=>{var n,r,o;return(n=e.readingTimeLocale)!=null&&n.words?d("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(su),d("span",(r=e.readingTimeLocale)==null?void 0:r.words),d("meta",{property:"wordCount",content:(o=e.readingTime)==null?void 0:o.words})]):null}}}),H1=B({name:"PageInfo",components:{AuthorInfo:$1,CategoryInfo:D1,DateInfo:M1,OriginalInfo:z1,PageViewInfo:N1,ReadingTimeInfo:V1,TagInfo:F1,WordInfo:B1},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=ro();return()=>e.items?d("div",{class:"page-info"},e.items.map(n=>d(at(`${n}Info`),{...e.info,pure:t.value}))):null}}),j1=B({name:"PrintButton",setup(){const e=zn(),t=ge();return()=>e.value.print===!1?null:d("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},d(ou))}});const U1=({title:e,level:t,slug:n})=>d(Ot,{to:`#${n}`,class:["toc-link",`level${t}`]},()=>e),jo=(e,t)=>{const n=Xe();return e.length&&t>0?d("ul",{class:"toc-list"},e.map(r=>{const o=jo(r.children,t-1);return[d("li",{class:["toc-item",{active:ba(n,`#${r.slug}`)}]},U1(r)),o?d("li",o):null]})):null};var W1=B({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=Xe(),r=pe(),o=xt(),a=it(),l=G("-1.7rem"),s=c=>{var u;(u=a.value)==null||u.scrollTo({top:c,behavior:"smooth"})},i=()=>{if(a.value){const c=document.querySelector(".toc-item.active");c?l.value=`${c.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:l.value="-1.7rem"}else l.value="-1.7rem"};return ve(()=>{re(()=>n.hash,c=>{if(a.value){const u=document.querySelector(`#toc a.toc-link[href$="${c}"]`);if(!u)return;const{top:f,height:p}=a.value.getBoundingClientRect(),{top:m,height:y}=u.getBoundingClientRect();mf+p&&s(a.value.scrollTop+m+y-f-p)}}),re(()=>n.fullPath,()=>i(),{flush:"post",immediate:!0})}),()=>{var c,u;const f=e.items.length?jo(e.items,e.headerDepth):r.value.headers?jo(r.value.headers,e.headerDepth):null;return f?d("div",{class:"toc-place-holder"},[d("aside",{id:"toc"},[(c=t.before)==null?void 0:c.call(t),d("div",{class:"toc-header"},[o.value.toc,d(j1)]),d("div",{class:"toc-wrapper",ref:a},[f,d("div",{class:"toc-marker",style:{top:l.value}})]),(u=t.after)==null?void 0:u.call(t)])]):null}}}),iu=B({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=pe(),n=ge(),r=it(),o=({target:a})=>{const l=document.querySelector(a.hash);if(l){const s=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",s)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",s),l.focus(),window.scrollTo(0,0)}};return ve(()=>{re(()=>t.value.path,()=>r.value.focus())}),()=>[d("span",{ref:r,tabindex:"-1"}),d("a",{href:`#${e.content}`,class:"skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}});let To=null,kr=null;const q1={wait:()=>To,pending:()=>{To=new Promise(e=>kr=e)},resolve:()=>{kr==null||kr(),To=null,kr=null}},cu=()=>q1;var K1=B({name:"FadeSlideY",slots:Object,setup(e,{slots:t}){const{resolve:n,pending:r}=cu();return()=>d(Pt,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:n,onBeforeLeave:r},()=>{var o;return(o=t.default)==null?void 0:o.call(t)})}}),G1=B({name:"FeaturePanel",props:{items:{type:Object,default:()=>[]},header:{type:String,default:""}},setup(e){return()=>d("div",{class:"feature-panel"},[e.header?d("h2",{class:"feature-header"},e.header):null,e.items.length?d("div",{class:"feature-wrapper"},e.items.map(t=>{const n=[d("h3",[d(Qe,{icon:t.icon}),d("span",{innerHTML:t.title})]),d("p",{innerHTML:t.details})];return t.link?Fr(t.link)?d("a",{class:"feature-item link",href:t.link,role:"navigation","aria-label":t.title,target:"_blank"},n):d(Ot,{class:"feature-item link",to:t.link,role:"navigation","aria-label":t.title},()=>n):d("div",{class:"feature-item"},n)})):null])}}),Y1=B({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Pe(),r=Xr(),o=A(()=>n.value.heroText===!1?!1:n.value.heroText||r.value.title||"Hello"),a=A(()=>n.value.tagline===!1?!1:n.value.tagline||r.value.description||"Welcome to your VuePress site"),l=A(()=>n.value.heroImage?ht(n.value.heroImage):null),s=A(()=>n.value.heroImageDark?ht(n.value.heroImageDark):null),i=A(()=>n.value.heroAlt||o.value||"hero"),c=A(()=>n.value.actions??[]);return()=>{var u,f;return d("header",{class:"hero-info-wrapper"},[((u=t.heroImage)==null?void 0:u.call(t))||d(hn,{appear:!0,type:"group"},()=>[l.value?d("img",{key:"light",class:{light:s.value},src:l.value,alt:i.value}):null,s.value?d("img",{key:"dark",class:"dark",src:s.value,alt:i.value}):null]),((f=t.heroInfo)==null?void 0:f.call(t))??d("div",{class:"hero-info"},[o.value?d(hn,{appear:!0,delay:.04},()=>d("h1",{id:"main-title"},o.value)):null,a.value?d(hn,{appear:!0,delay:.08},()=>d("p",{class:"description"},a.value)):null,c.value.length?d(hn,{appear:!0,delay:.12},()=>d("p",{class:"actions"},c.value.map(p=>d(Ne,{class:["action-button",p.type||"default"],config:p,noExternalLinkIcon:!0})))):null])])}}}),Q1=B({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=ro(),r=Pe(),o=A(()=>{const{features:a}=r.value;return q(a)?a.some(l=>!("items"in l))?[{items:a}]:a:[]});return()=>{var a,l,s;return d("main",{class:["home project",{pure:n.value}],id:"main-content","aria-labelledby":r.value.heroText===null?void 0:"main-title"},[(a=t.top)==null?void 0:a.call(t),d(Y1),o.value.map(({header:i="",items:c},u)=>d(hn,{appear:!0,delay:.16+u*.08},()=>d(G1,{header:i,items:c}))),(l=t.center)==null?void 0:l.call(t),d(hn,{appear:!0,delay:.16+o.value.length*.08},()=>d(Xc)),(s=t.bottom)==null?void 0:s.call(t)])}}});const J1=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=va(t);return n.forEach((a,l)=>{l!==n.length-1?(o+=`${a}/`,r.push(o)):a!==""&&(o+=a,r.push(o))}),r};var X1=B({name:"BreadCrumb",setup(){const e=Je(),t=pe(),n=Lt(),r=Pe(),o=ge(),a=it([]),l=A(()=>(r.value.breadcrumb||r.value.breadcrumb!==!1&&o.value.breadcrumb!==!1)&&a.value.length>1),s=A(()=>r.value.breadcrumbIcon||r.value.breadcrumbIcon!==!1&&o.value.breadcrumbIcon!==!1),i=()=>{const c=e.getRoutes(),u=J1(t.value.path,n.value).map(f=>{const p=c.find(m=>m.path===f);if(p){const{meta:m,path:y}=ya(e,p.path),E=m[Et.shortTitle]||m[Et.title];if(E)return{title:E,icon:m[Et.icon],path:y}}return null}).filter(f=>f!==null);u.length>1&&(a.value=u)};return ve(()=>{i(),re(()=>t.value.path,i)}),()=>d("nav",{class:["breadcrumb",{disable:!l.value}]},l.value?d("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((c,u)=>d("li",{class:{"is-active":a.value.length-1===u},property:"itemListElement",typeof:"ListItem"},[d(Ot,{to:c.path,property:"item",typeof:"WebPage"},()=>[s.value?d(Qe,{icon:c.icon}):null,d("span",{property:"name"},c.title||"Unknown")]),d("meta",{property:"position",content:u+1})]))):[])}});const vs=e=>e===!1?!1:ae(e)?bn(e,!0):ma(e)?e:null,Uo=(e,t,n)=>{const r=e.findIndex(o=>o.link===t);if(r!==-1){const o=e[r+n];return o!=null&&o.link?o:null}for(const o of e)if(o.children){const a=Uo(o.children,t,n);if(a)return a}return null};var Z1=B({name:"PageNav",setup(){const e=ge(),t=Pe(),n=Ra(),r=pe(),o=e1(),a=A(()=>{const s=vs(t.value.prev);return s===!1?null:s||(e.value.prevLink===!1?null:Uo(n.value,r.value.path,-1))}),l=A(()=>{const s=vs(t.value.next);return s===!1?null:s||(e.value.nextLink===!1?null:Uo(n.value,r.value.path,1))});return xe("keydown",s=>{s.altKey&&(s.key==="ArrowRight"?l.value&&(o(l.value.link),s.preventDefault()):s.key==="ArrowLeft"&&a.value&&(o(a.value.link),s.preventDefault()))}),()=>a.value||l.value?d("nav",{class:"page-nav"},[a.value?d(Ne,{class:"prev",config:a.value},()=>{var s,i;return[d("div",{class:"hint"},[d("span",{class:"arrow start"}),e.value.metaLocales.prev]),d("div",{class:"link"},[d(Qe,{icon:(s=a.value)==null?void 0:s.icon}),(i=a.value)==null?void 0:i.text])]}):null,l.value?d(Ne,{class:"next",config:l.value},()=>{var s,i;return[d("div",{class:"hint"},[e.value.metaLocales.next,d("span",{class:"arrow end"})]),d("div",{class:"link"},[(s=l.value)==null?void 0:s.text,d(Qe,{icon:(i=l.value)==null?void 0:i.icon})])]}):null]):null}});const e0={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},t0=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const a=Gi(e);let l;return o?l=o:a!==null&&(l=e0[a]),l?l.replace(/:repo/,Dn(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Ai(`${va(n)}/${r}`)):null},n0=()=>{const e=ge(),t=pe(),n=Pe();return A(()=>{const{repo:r,docsRepo:o=r,docsBranch:a="main",docsDir:l="",editLink:s,editLinkPattern:i=""}=e.value;if(!(n.value.editLink??s??!0)||!o)return null;const c=t0({docsRepo:o,docsBranch:a,docsDir:l,editLinkPattern:i,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},r0=()=>{const e=Xr(),t=ge(),n=pe(),r=Pe();return A(()=>{var o,a;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((o=n.value.git)!=null&&o.updatedTime)?null:new Date((a=n.value.git)==null?void 0:a.updatedTime).toLocaleString(e.value.lang)})},o0=()=>{const e=ge(),t=pe(),n=Pe();return A(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})};var a0=B({name:"PageTitle",setup(){const e=pe(),t=Pe(),n=ge(),{info:r,items:o}=o1();return()=>d("div",{class:"page-title"},[d("h1",[n.value.titleIcon===!1?null:d(Qe,{icon:t.value.icon}),e.value.title]),d(H1,{info:r.value,...o.value===null?{}:{items:o.value}}),d("hr")])}});const uu=()=>d(we,{name:"edit"},()=>[d("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),d("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);uu.displayName="EditIcon";var l0=B({name:"PageMeta",setup(){const e=ge(),t=n0(),n=r0(),r=o0();return()=>{const{metaLocales:o}=e.value;return d("footer",{class:"page-meta"},[t.value?d("div",{class:"meta-item edit-link"},d(Ne,{class:"label",config:t.value},{before:()=>d(uu)})):null,d("div",{class:"meta-item git-info"},[n.value?d("div",{class:"update-time"},[d("span",{class:"label"},`${o.lastUpdated}: `),d(Zr,()=>d("span",{class:"info"},n.value))]):null,r.value&&r.value.length?d("div",{class:"contributors"},[d("span",{class:"label"},`${o.contributors}: `),r.value.map(({email:a,name:l},s)=>[d("span",{class:"contributor",title:`email: ${a}`},l),s!==r.value.length-1?",":""])]):null])])}}}),s0=B({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Pe(),r=pe(),{isDarkmode:o}=pr(),a=ge(),l=A(()=>n.value.toc||n.value.toc!==!1&&a.value.toc!==!1);return()=>d("main",{class:"page",id:"main-content"},d(pt("LocalEncrypt")?at("LocalEncrypt"):Mi,()=>{var s,i,c,u;return[(s=t.top)==null?void 0:s.call(t),n.value.cover?d("img",{class:"page-cover",src:ht(n.value.cover),alt:r.value.title,"no-view":""}):null,d(X1),d(a0),l.value?d(W1,{headerDepth:n.value.headerDepth??a.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(i=t.contentBefore)==null?void 0:i.call(t),d(Xc),(c=t.contentAfter)==null?void 0:c.call(t),d(l0),d(Z1),pt("CommentService")?d(at("CommentService"),{darkmode:o.value}):null,(u=t.bottom)==null?void 0:u.call(t)]}))}}),i0=B({name:"Layout",setup(){ge();const e=pe(),t=Pe(),{isMobile:n}=oo(),r=A(()=>"none");return()=>[d(iu),d(Jc,{},{default:()=>t.value.home?d(Q1):d(K1,()=>d(s0,{key:e.value.path})),...r.value!=="none"?{navScreenBottom:()=>d(at("BloggerInfo"))}:{},...!n.value&&r.value==="always"?{sidebar:()=>d(at("BloggerInfo"))}:{}})]}}),c0=B({name:"NotFoundHint",setup(){const e=ge(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>d("div",{class:"not-found-hint"},[d("p",{class:"error-code"},"404"),d("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),d("p",{class:"error-hint"},t())])}}),u0=B({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=Lt(),r=ge(),{navigate:o}=No({to:r.value.home??n.value});return()=>[d(iu),d(Jc,{noSidebar:!0},()=>{var a;return d("main",{class:"page not-found",id:"main-content"},((a=t.default)==null?void 0:a.call(t))||[d(c0),d("div",{class:"actions"},[d("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},r.value.routeLocales.back),d("button",{type:"button",class:"action-button",onClick:()=>o()},r.value.routeLocales.home)])])})]}});Wm(Qe);const d0=De({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await cu().wait(),n(...r)),s1(e)},setup:()=>{i1(),f1()},layouts:{Layout:i0,NotFound:u0}}),f0=e=>{const t=xe("keydown",n=>{const r=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!r||(n.preventDefault(),e(),t())})},p0=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,h0=()=>{const e=Je();return{hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:r=>{p0(r)||(r.preventDefault(),e.push(Al(t.url,"/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push(Al(t,"/"))}},transformSearchClient:t=>{const n=rc(t.search,500);return{...t,search:async(...r)=>n(...r)}}}},m0=(e=[],t)=>[`lang:${t}`,...q(e)?e:[e]],v0=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,g0=16,du=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(du,g0)},_0=e=>{const t="algolia-preconnect";(window.requestIdleCallback||setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const r=document.createElement("link");r.id=t,r.rel="preconnect",r.href=`https://${e}-dsn.algolia.net`,r.crossOrigin="",document.head.appendChild(r)})},b0={appId:"28CTGDOOQD",apiKey:"72d7a9a0f9f0466218ea19988886dce8",indexName:"hutao",locales:{"/zh/":{placeholder:"搜索文档",translations:{button:{buttonText:"搜索文档",buttonAriaLabel:"搜索文档"},modal:{searchBox:{resetButtonTitle:"清除查询条件",resetButtonAriaLabel:"清除查询条件",cancelButtonText:"取消",cancelButtonAriaLabel:"取消"},startScreen:{recentSearchesTitle:"搜索历史",noRecentSearchesText:"没有搜索历史",saveRecentSearchButtonTitle:"保存至搜索历史",removeRecentSearchButtonTitle:"从搜索历史中移除",favoriteSearchesTitle:"收藏",removeFavoriteSearchButtonTitle:"从收藏中移除"},errorScreen:{titleText:"无法获取结果",helpText:"你可能需要检查你的网络连接"},footer:{selectText:"选择",navigateText:"切换",closeText:"关闭",searchByText:"搜索提供者"},noResultsScreen:{noResultsText:"无法找到相关结果",suggestedQueryText:"你可以尝试查询",reportMissingResultsText:"你认为该查询应该有结果?",reportMissingResultsLinkText:"点击反馈"}}}},"/en/":{placeholder:"Search documents",translations:{button:{buttonText:"Search documents"}}}}};w(()=>import("./style-e9220a04.js"),[]),w(()=>import("./docsearch-1d421ddb.js"),[]);const y0=B({name:"Docsearch",props:{containerId:{type:String,required:!1,default:"docsearch-container"},options:{type:Object,required:!1,default:()=>b0}},setup(e){const t=h0(),n=Jr(),r=Lt(),o=G(!1),a=G(!1),l=A(()=>{var c;return{...e.options,...(c=e.options.locales)==null?void 0:c[r.value]}}),s=async()=>{var u;const{default:c}=await w(()=>import("./index-d20b7d60.js"),[]);c({...t,...l.value,container:`#${e.containerId}`,searchParameters:{...l.value.searchParameters,facetFilters:m0((u=l.value.searchParameters)==null?void 0:u.facetFilters,n.value)}}),o.value=!0},i=()=>{a.value||o.value||(a.value=!0,s(),du(),re(r,s))};return f0(i),ve(()=>_0(l.value.appId)),()=>{var c;return[d("div",{id:e.containerId,style:{display:o.value?"block":"none"}}),o.value?null:d("div",{onClick:i,innerHTML:v0((c=l.value.translations)==null?void 0:c.button)})]}}}),w0=De({enhance({app:e}){e.component("Docsearch",y0)}}),E0=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e.id}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),e.debug?gtag("config",e.id,{debug_mode:!0}):gtag("config",e.id)},T0={id:"G-F3LFJCE3RM"},O0=De({enhance(){E0(T0)}});const fu={autoLocale:!0,switchLocale:"modal",localeConfig:{0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},defaultLocale:"/en/",localeFallback:!0,defaultBehavior:"defaultLocale"},gs=eo(fu.localeConfig),_s={"/zh/":{name:"简体中文",hint:"您的首选语言是 $1,是否切换到该语言?",switch:"切换到 $1",cancel:"取消"},"/en/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"},"/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"}},{switchLocale:bs}=fu,ys=kh("VUEPRESS_REDIRECT_LOCALES",{});var A0=B({name:"LanguageSwitch",setup(){const e=Ah(),t=Xe(),n=Je(),r=Lt(),o=G(!1),a=A(()=>{if(gs.some(([c])=>r.value===c)){for(const c of e.value)for(const[u,f]of gs)if(f.includes(c))return u===r.value?null:{lang:c,localePath:u}}return null}),l=A(()=>{if(a.value){const{lang:c,localePath:u}=a.value,f=[_s[r.value],_s[u]];return{hint:f.map(({hint:p})=>p.replace("$1",c)),switch:f.map(({switch:p})=>p.replace("$1",c)).join(" / "),cancel:f.map(({cancel:p})=>p).join(" / ")}}return null}),s=A(()=>a.value?t.path.replace(r.value,a.value.localePath):null),i=()=>{ys.value[r.value]=!0,o.value=!1};return ve(()=>{const c=Pa(document.body);ys.value[r.value]||(a.value?bs==="direct"?n.replace(s.value):bs==="modal"?o.value=!0:o.value=!1:o.value=!1),re(o,u=>{c.value=u},{immediate:!0}),$n(()=>{c.value=!1})}),()=>o.value?d(Ei,{name:"lang-modal-fade"},()=>{var c,u,f;return o.value?[d("div",{key:"mask",class:"lang-modal-mask"}),d("div",{key:"popup",class:"lang-modal-wrapper"},[d("div",{class:"lang-modal-content"},(c=l.value)==null?void 0:c.hint.map(p=>d("p",p))),d("button",{type:"button",class:"lang-modal-action primary",onClick:()=>{i(),n.replace(s.value)}},(u=l.value)==null?void 0:u.switch),d("button",{type:"button",class:"lang-modal-action",onClick:()=>i()},(f=l.value)==null?void 0:f.cancel)])]:[]}):null}}),P0=De({setup(){},rootComponents:[A0]});const Lr=[wp,zh,Um,Ym,Xm,nv,sv,yv,kv,xv,Vv,qv,d0,w0,O0,P0],k0=[["v-2d0a870d","/en/",{y:"h",t:"Home",i:"home"},["/en/index.html","/en/README.md"]],["v-082946dd","/en/community.html",{y:"a",t:"Join Community",O:8},["/en/community","/en/community.md"]],["v-038e810e","/en/i18n.html",{y:"a",t:"Localization",O:7},["/en/i18n","/en/i18n.md"]],["v-ba407326","/en/menu.html",{y:"a",t:"Site Menu",I:0},["/en/menu","/en/menu.md"]],["v-586858ed","/en/project.html",{y:"a",t:"Project",O:6},["/en/project","/en/project.md"]],["v-0c01f6a4","/en/quick-start.html",{y:"a",t:"Quick Start",O:5},["/en/quick-start","/en/quick-start.md"]],["v-23b9870a","/en/side-load.html",{y:"a",t:""},["/en/side-load","/en/side-load.md"]],["v-7d29d7d8","/en/star-request.html",{y:"a",t:""},["/en/star-request","/en/star-request.md"]],["v-2d0ad528","/zh/",{y:"h",t:"首页",i:"home"},["/zh/index.html","/zh/README.md"]],["v-5cad49b8","/zh/community.html",{y:"a",t:"加入用户社区",O:8},["/zh/community","/zh/community.md"]],["v-27c4e153","/zh/i18n.html",{y:"a",t:"国际化支持",O:7},["/zh/i18n","/zh/i18n.md"]],["v-71d3b29c","/zh/menu.html",{y:"a",t:"全站目录",I:0},["/zh/menu","/zh/menu.md"]],["v-6c355688","/zh/project.html",{y:"a",t:"项目说明",O:6},["/zh/project","/zh/project.md"]],["v-4f90aebf","/zh/quick-start.html",{y:"a",t:"快速开始",O:5},["/zh/quick-start","/zh/quick-start.md"]],["v-783d89e5","/zh/side-load.html",{y:"a",t:""},["/zh/side-load","/zh/side-load.md"]],["v-a91bb9c6","/zh/star-request.html",{y:"a",t:""},["/zh/star-request","/zh/star-request.md"]],["v-1bd4ef83","/en/advanced/FAQ.html",{y:"a",t:"FAQ",i:"ask",O:1},["/en/advanced/FAQ","/en/advanced/FAQ.md"]],["v-5c3f740a","/en/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"read",O:7},["/en/advanced/Gacha-system-and-export-principal","/en/advanced/Gacha-system-and-export-principal.md"]],["v-5f449840","/en/advanced/",{y:"a",t:"Advanced",O:2},["/en/advanced/index.html","/en/advanced/README.md"]],["v-1a028d16","/en/advanced/exceptions.html",{y:"a",t:"Common Program Exceptions",i:"debug",O:2},["/en/advanced/exceptions","/en/advanced/exceptions.md"]],["v-bd668802","/en/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"read",O:6},["/en/advanced/get-stoken-cookie-from-the-third-party","/en/advanced/get-stoken-cookie-from-the-third-party.md"]],["v-51647c4a","/en/advanced/known-issue.html",{y:"a",t:"Known Issue",i:"tool",O:3},["/en/advanced/known-issue","/en/advanced/known-issue.md"]],["v-bbae7dd2","/en/advanced/uninstall.html",{y:"a",t:"Uninstall Snap Hutao",i:"delete",O:8},["/en/advanced/uninstall","/en/advanced/uninstall.md"]],["v-f88d343e","/en/development/",{y:"a",t:"Development",O:3},["/en/development/index.html","/en/development/README.md"]],["v-32bb1805","/en/development/platform.html",{y:"a",t:"Hutao Open Platform",i:"vscode",O:1},["/en/development/platform","/en/development/platform.md"]],["v-30f089b6","/en/features/",{y:"a",t:"Features",O:1},["/en/features/index.html","/en/features/README.md"]],["v-699a13b0","/en/features/achievements.html",{y:"a",t:"Achievement Management",O:4},["/en/features/achievements","/en/features/achievements.md"]],["v-f3692af4","/en/features/character-data.html",{y:"a",t:"My Characters",O:6},["/en/features/character-data","/en/features/character-data.md"]],["v-10108380","/en/features/character-wiki.html",{y:"a",t:"Character WIKI",O:9},["/en/features/character-wiki","/en/features/character-wiki.md"]],["v-36ceadac","/en/features/dashboard.html",{y:"a",t:"Home Dashboard",O:1},["/en/features/dashboard","/en/features/dashboard.md"]],["v-83f6294a","/en/features/develop-plan.html",{y:"a",t:"Development Plan",O:8},["/en/features/develop-plan","/en/features/develop-plan.md"]],["v-7839fe83","/en/features/game-launcher.html",{y:"a",t:"Game Launcher",O:2},["/en/features/game-launcher","/en/features/game-launcher.md"]],["v-0106e0dc","/en/features/hutao-API.html",{y:"a",t:"Hutao Database / Abyss Record",O:7},["/en/features/hutao-API","/en/features/hutao-API.md"]],["v-639b3ef9","/en/features/hutao-settings.html",{y:"a",t:"Software Settings",O:12},["/en/features/hutao-settings","/en/features/hutao-settings.md"]],["v-03aaffb1","/en/features/mhy-account-switch.html",{y:"a",t:"MiHoYo BBS Account Switch",O:11},["/en/features/mhy-account-switch","/en/features/mhy-account-switch.md"]],["v-124743a4","/en/features/real-time-notes.html",{y:"a",t:"Real-time Notes",O:5},["/en/features/real-time-notes","/en/features/real-time-notes.md"]],["v-e30b3c46","/en/features/weapon-wiki.html",{y:"a",t:"Weapon WIKI",O:10},["/en/features/weapon-wiki","/en/features/weapon-wiki.md"]],["v-b8e3a2b8","/en/features/wish-export.html",{y:"a",t:"Wish History",O:3},["/en/features/wish-export","/en/features/wish-export.md"]],["v-a4f9d2c4","/en/statements/",{y:"a",t:"Statements",O:4},["/en/statements/index.html","/en/statements/README.md"]],["v-45ceb024","/en/statements/bug-report.html",{y:"a",t:"Submit Bug Report",i:"debug",O:2},["/en/statements/bug-report","/en/statements/bug-report.md"]],["v-b4085a44","/en/statements/privacy-notice.html",{y:"a",t:"User Data and Privacy Notice",i:"license",O:3},["/en/statements/privacy-notice","/en/statements/privacy-notice.md"]],["v-b1c7a1c2","/en/statements/tos.html",{y:"a",t:"User Agreement and Legal Disclaime",i:"license",O:4},["/en/statements/tos","/en/statements/tos.md"]],["v-52f43e3b","/en/statements/update-log.html",{y:"a",t:"Update Logs",i:"update",O:1},["/en/statements/update-log","/en/statements/update-log.md"]],["v-4a1d3ac8","/zh/advanced/FAQ.html",{y:"a",t:"常见问题",i:"ask",O:1},["/zh/advanced/FAQ","/zh/advanced/FAQ.md"]],["v-b0dd6b00","/zh/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"read",O:7},["/zh/advanced/Gacha-system-and-export-principal","/zh/advanced/Gacha-system-and-export-principal.md"]],["v-16d7d7b6","/zh/advanced/",{y:"a",t:"高级",O:2},["/zh/advanced/index.html","/zh/advanced/README.md"]],["v-c8e5b2e0","/zh/advanced/exceptions.html",{y:"a",t:"常见的程序异常",i:"debug",O:2},["/zh/advanced/exceptions","/zh/advanced/exceptions.md"]],["v-6892c29a","/zh/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"read",O:6},["/zh/advanced/get-stoken-cookie-from-the-third-party","/zh/advanced/get-stoken-cookie-from-the-third-party.md"]],["v-8ab89ae2","/zh/advanced/known-issue.html",{y:"a",t:"已知问题",i:"tool",O:3},["/zh/advanced/known-issue","/zh/advanced/known-issue.md"]],["v-a04a76c8","/zh/advanced/uninstall.html",{y:"a",t:"卸载胡桃工具箱",i:"delete",O:8},["/zh/advanced/uninstall","/zh/advanced/uninstall.md"]],["v-d0f33908","/zh/development/",{y:"a",t:"开发",O:3},["/zh/development/index.html","/zh/development/README.md"]],["v-c80b636c","/zh/development/platform.html",{y:"a",t:"胡桃开放平台",i:"vscode",O:1},["/zh/development/platform","/zh/development/platform.md"]],["v-56d3ae80","/zh/development/symposium1.html",{y:"a",t:"第一期开发组座谈会",I:0},["/zh/development/symposium1","/zh/development/symposium1.md"]],["v-5369fd42","/zh/development/symposium2.html",{y:"a",t:"第二期开发组座谈会",I:0},["/zh/development/symposium2","/zh/development/symposium2.md"]],["v-0bbe1b6a","/zh/features/",{y:"a",t:"功能指南",O:1},["/zh/features/index.html","/zh/features/README.md"]],["v-2841a60b","/zh/features/achievements.html",{y:"a",t:"成就管理",O:4},["/zh/features/achievements","/zh/features/achievements.md"]],["v-3957d221","/zh/features/character-data.html",{y:"a",t:"属性统计",O:6},["/zh/features/character-data","/zh/features/character-data.md"]],["v-a9f7b44a","/zh/features/character-wiki.html",{y:"a",t:"角色资料",O:9},["/zh/features/character-wiki","/zh/features/character-wiki.md"]],["v-1b6aa6a2","/zh/features/dashboard.html",{y:"a",t:"首页仪表盘",O:1},["/zh/features/dashboard","/zh/features/dashboard.md"]],["v-7cac7db6","/zh/features/develop-plan.html",{y:"a",t:"养成计划",O:8},["/zh/features/develop-plan","/zh/features/develop-plan.md"]],["v-e2f690f0","/zh/features/game-launcher.html",{y:"a",t:"高级启动器",O:2},["/zh/features/game-launcher","/zh/features/game-launcher.md"]],["v-0eb8e461","/zh/features/hutao-API.html",{y:"a",t:"胡桃数据库/深渊统计",O:7},["/zh/features/hutao-API","/zh/features/hutao-API.md"]],["v-16a7a694","/zh/features/hutao-settings.html",{y:"a",t:"软件设置",O:12},["/zh/features/hutao-settings","/zh/features/hutao-settings.md"]],["v-04b421cc","/zh/features/mhy-account-switch.html",{y:"a",t:"米游社多帐号切换",O:11},["/zh/features/mhy-account-switch","/zh/features/mhy-account-switch.md"]],["v-b5462c1a","/zh/features/real-time-notes.html",{y:"a",t:"实时便笺",O:5},["/zh/features/real-time-notes","/zh/features/real-time-notes.md"]],["v-108ccfbc","/zh/features/weapon-wiki.html",{y:"a",t:"武器资料",O:10},["/zh/features/weapon-wiki","/zh/features/weapon-wiki.md"]],["v-0ccd64e9","/zh/features/wish-export.html",{y:"a",t:"祈愿记录",O:3},["/zh/features/wish-export","/zh/features/wish-export.md"]],["v-c4bb0cba","/zh/statements/",{y:"a",t:"声明和公告",O:4},["/zh/statements/index.html","/zh/statements/README.md"]],["v-c87f8b6e","/zh/statements/bug-report.html",{y:"a",t:"提交 BUG 报告",i:"debug",O:2},["/zh/statements/bug-report","/zh/statements/bug-report.md"]],["v-70e6808e","/zh/statements/privacy-notice.html",{y:"a",t:"用户数据和隐私权益",i:"license",O:3},["/zh/statements/privacy-notice","/zh/statements/privacy-notice.md"]],["v-647ebd24","/zh/statements/tos.html",{y:"a",t:"用户使用协议和法律声明",i:"license",O:4},["/zh/statements/tos","/zh/statements/tos.md"]],["v-119bd096","/zh/statements/update-log.html",{y:"a",t:"更新日志",i:"update",O:1},["/zh/statements/update-log","/zh/statements/update-log.md"]],["v-3706649a","/404.html",{y:"p",t:""},["/404"]],["v-8daa1a0e","/",{y:"p",t:"Home"},["/index.html"]]];var ws=B({name:"Vuepress",setup(){const e=gp();return()=>d(e.value)}}),L0=()=>k0.reduce((e,[t,n,r,o])=>(e.push({name:t,path:n,component:ws,meta:r},...o.map(a=>({path:a,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:ws}]),x0=tm,C0=()=>{const e=zm({history:x0(va("/")),routes:L0(),scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var r;(t.path!==n.path||n===bt)&&([Mt.value]=await Promise.all([_t.resolvePageData(t.name),(r=Pi[t.name])==null?void 0:r.__asyncLoader()]))}),e},I0=e=>{e.component("ClientOnly",Zr),e.component("Content",$i)},S0=(e,t,n)=>{const r=G(t.currentRoute.value.path);re(()=>t.currentRoute.value.path,p=>r.value=p);const o=A(()=>_t.resolveLayouts(n)),a=A(()=>_t.resolveRouteLocale(pn.value.locales,r.value)),l=A(()=>_t.resolveSiteLocaleData(pn.value,a.value)),s=A(()=>_t.resolvePageFrontmatter(Mt.value)),i=A(()=>_t.resolvePageHeadTitle(Mt.value,l.value)),c=A(()=>_t.resolvePageHead(i.value,s.value,l.value)),u=A(()=>_t.resolvePageLang(Mt.value)),f=A(()=>_t.resolvePageLayout(Mt.value,o.value));return e.provide(pp,o),e.provide(Li,s),e.provide(vp,i),e.provide(xi,c),e.provide(Ci,u),e.provide(Ii,f),e.provide(ga,a),e.provide(Ri,l),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>s.value},$head:{get:()=>c.value},$headTitle:{get:()=>i.value},$lang:{get:()=>u.value},$page:{get:()=>Mt.value},$routeLocale:{get:()=>a.value},$site:{get:()=>pn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>ht}}),{layouts:o,pageData:Mt,pageFrontmatter:s,pageHead:c,pageHeadTitle:i,pageLang:u,pageLayout:f,routeLocale:a,siteData:pn,siteLocaleData:l}},R0=()=>{const e=mp(),t=Jr(),n=G([]),r=()=>{e.value.forEach(a=>{const l=$0(a);l&&n.value.push(l)})},o=()=>{document.documentElement.lang=t.value,n.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),n.value.splice(0,n.value.length),e.value.forEach(a=>{const l=D0(a);l!==null&&(document.head.appendChild(l),n.value.push(l))})};Jt(_p,o),ve(()=>{r(),o(),re(()=>e.value,()=>o())})},$0=([e,t,n=""])=>{const r=Object.entries(t).map(([s,i])=>ae(i)?`[${s}=${JSON.stringify(i)}]`:i===!0?`[${s}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(s=>s.innerText===n)||null},D0=([e,t,n])=>{if(!ae(e))return null;const r=document.createElement(e);return ma(t)&&Object.entries(t).forEach(([o,a])=>{ae(a)?r.setAttribute(o,a):a===!0&&r.setAttribute(o,"")}),ae(n)&&r.appendChild(document.createTextNode(n)),r},M0=np,z0=async()=>{var n;const e=M0({name:"VuepressApp",setup(){var r;R0();for(const o of Lr)(r=o.setup)==null||r.call(o);return()=>[d(hc),...Lr.flatMap(({rootComponents:o=[]})=>o.map(a=>d(a)))]}}),t=C0();I0(e),S0(e,t,Lr);for(const r of Lr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:pn}));return e.use(t),{app:e,router:t}};z0().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Rn as A,V0 as B,U0 as C,wl as D,Te as E,He as F,W0 as G,xh as H,Jt as I,rn as J,G0 as K,q0 as L,di as a,fi as b,B0 as c,z0 as createVueApp,Oe as d,H0 as e,ve as f,B as g,G as h,re as i,ua as j,F0 as k,Ee as l,A as m,Yo as n,lf as o,j0 as p,cf as q,at as r,nt as s,N0 as t,K0 as u,Qo as v,wd as w,d as x,Oa as y,$n as z}; + */const se={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=se.isStarted();e=_o(e,se.settings.minimum,1),se.status=e===1?null:e;const n=se.render(!t),r=n.querySelector(se.settings.barSelector),o=se.settings.speed,a=se.settings.easing;return n.offsetWidth,Zm(l=>{Pr(r,{transform:"translate3d("+ls(e)+"%,0,0)",transition:"all "+o+"ms "+a}),e===1?(Pr(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Pr(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(function(){se.remove(),l()},o)},o)):setTimeout(()=>l(),o)}),se},isStarted:()=>typeof se.status=="number",start:()=>{se.status||se.set(0);const e=()=>{setTimeout(()=>{se.status&&(se.trickle(),e())},se.settings.trickleSpeed)};return se.settings.trickle&&e(),se},done:e=>!e&&!se.status?se:se.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=se.status;return t?(typeof e!="number"&&(e=(1-t)*_o(Math.random()*t,.1,.95)),t=_o(t+e,0,.994),se.set(t)):se.start()},trickle:()=>se.inc(Math.random()*se.settings.trickleRate),render:e=>{if(se.isRendered())return document.getElementById("nprogress");ss(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=se.settings.template;const n=t.querySelector(se.settings.barSelector),r=e?"-100":ls(se.status||0),o=document.querySelector(se.settings.parent);return Pr(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&ss(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{is(document.documentElement,"nprogress-busy"),is(document.querySelector(se.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&ev(e)},isRendered:()=>!!document.getElementById("nprogress")},_o=(e,t,n)=>en?n:e,ls=e=>(-1+e)*100,Zm=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Pr=function(){const e=["Webkit","O","Moz","ms"],t={};function n(l){return l.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(s,i){return i.toUpperCase()})}function r(l){const s=document.body.style;if(l in s)return l;let i=e.length;const c=l.charAt(0).toUpperCase()+l.slice(1);let u;for(;i--;)if(u=e[i]+c,u in s)return u;return l}function o(l){return l=n(l),t[l]??(t[l]=r(l))}function a(l,s,i){s=o(s),l.style[s]=i}return function(l,s){for(const i in s){const c=s[i];c!==void 0&&Object.prototype.hasOwnProperty.call(s,i)&&a(l,i,c)}}}(),_c=(e,t)=>(typeof e=="string"?e:xa(e)).indexOf(" "+t+" ")>=0,ss=(e,t)=>{const n=xa(e),r=n+t;_c(n,t)||(e.className=r.substring(1))},is=(e,t)=>{const n=xa(e);if(!_c(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},xa=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),ev=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)};const tv=()=>{ve(()=>{const e=Je(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||se.start()}),e.afterEach(n=>{t.add(n.path),se.done()})})},nv=De({setup(){tv()}}),rv=JSON.parse(`{"encrypt":{},"author":{"name":"DGP-Studio","url":"https://github.com/DGP-Studio"},"logo":"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01vK3m2w1g6duwt8quS_!!1797064093.png","repo":"DGP-Studio/Snap.Hutao","pageInfo":["Author","Original","Date","Category","Tag","ReadingTime"],"docsRepo":"DGP-Studio/Snap.Hutao.Docs","docsDir":"docs","locales":{"/zh/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"在 GitHub 上编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"navbar":["/zh/",{"text":"文档","icon":"article","link":"/zh/menu.html"},{"text":"下载","icon":"install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"加入社区讨论","icon":"community","link":"/zh/community"}],"sidebar":{"/zh/":["",{"icon":"workingDirectory","text":"项目介绍","link":"project"},{"icon":"network","text":"国际化支持","link":"i18n"},{"icon":"play","text":"快速开始","link":"quick-start"},{"icon":"read","text":"功能指南","prefix":"features/","children":"structure"},{"icon":"advance","text":"高级","prefix":"advanced/","children":"structure"},{"icon":"article","text":"声明和公告","prefix":"statements/","children":"structure"}]},"footer":"用开源社区力量为原神 PC 端玩家带来最好的游戏体验","displayFooter":true},"/en/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page on GitHub","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"navbar":["/en/",{"text":"Document","icon":"article","link":"/en/menu.html"},{"text":"Download","icon":"install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"Community","icon":"community","link":"/en/community"}],"sidebar":{"/en/":["",{"icon":"workingDirectory","text":"Project","link":"project"},{"icon":"network","text":"Localization","link":"i18n"},{"icon":"play","text":"Quick Start","link":"quick-start"},{"icon":"read","text":"Features","prefix":"features/","children":"structure"},{"icon":"advance","text":"Advanced","prefix":"advanced/","children":"structure"},{"icon":"article","text":"Statements","prefix":"statements/","children":"structure"}]},"footer":"Be the best Genshin Impact tool","displayFooter":true},"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"}}}}`),ov=G(rv),bc=()=>ov,yc=Symbol(""),av=()=>{const e=Ee(yc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},lv=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},sv=De({enhance({app:e}){const t=bc(),n=e._context.provides[ga],r=A(()=>lv(t.value,n.value));e.provide(yc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),iv={"Content-Type":"application/json"},cv=({serverURL:e,lang:t,paths:n,signal:r})=>(({serverURL:o,lang:a,paths:l,type:s,signal:i})=>fetch(`${o}/article?path=${encodeURIComponent(l.join(","))}&type=${encodeURIComponent(s.join(","))}&lang=${a}`,{signal:i}).then(c=>c.json()))({serverURL:e,lang:t,paths:n,type:["time"],signal:r}).then(o=>Array.isArray(o)?o:[o]),uv=e=>(({serverURL:t,lang:n,path:r,type:o,action:a})=>fetch(`${t}/article?lang=${n}`,{method:"POST",headers:iv,body:JSON.stringify({path:r,type:o,action:a})}).then(l=>l.json()))({...e,type:"time",action:"inc"}),cs=e=>{const t=((n="")=>n.replace(/\/$/u,""))(e);return/^(https?:)?\/\//.test(t)?t:`https://${t}`},dv=e=>{e.name!=="AbortError"&&console.error(e.message)},us=e=>e.dataset.path||e.getAttribute("id"),ds=(e,t)=>{t.forEach((n,r)=>{n.innerText=e[r].toString()})},fv=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:r=!0,lang:o=navigator.language})=>{const a=new AbortController,l=Array.from(document.querySelectorAll(n)),s=c=>{const u=us(c);return u!==null&&t!==u},i=c=>cv({serverURL:cs(e),paths:c.map(u=>us(u)||t),lang:o,signal:a.signal}).then(u=>ds(u,c)).catch(dv);if(r){const c=l.filter(f=>!s(f)),u=l.filter(s);uv({serverURL:cs(e),path:t,lang:o}).then(f=>ds(new Array(c.length).fill(f),c)),u.length&&i(u)}else i(l);return a.abort.bind(a)};const pv={provider:"Waline",dark:'html[data-theme="dark"]',serverURL:"https://comments.snapgenshin.com",emoji:["//unpkg.com/@waline/emojis@1.1.0/weibo","//unpkg.com/@waline/emojis@1.1.0/bilibili","//unpkg.com/@waline/emojis@1.1.0/bmoji","//unpkg.com/@waline/emojis@1.1.0/qq","//unpkg.com/@waline/emojis@1.1.0/tieba"],requiredMeta:["mail"],reaction:!1};let hv=pv;const wc=Symbol(""),Ec=()=>Ee(wc),mv=Ec,vv=e=>{e.provide(wc,hv)},gv={"/zh/":{placeholder:"请留言。(填写邮箱可在被回复时收到邮件提醒)"},"/en/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"},"/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"}};w(()=>import("./waline-meta-a31b78ed.js"),[]);var _v=B({name:"WalineComment",setup(){const e=mv(),t=pe(),n=Pe(),r=Jr(),o=an(gv);let a;const l=!!e.serverURL,s=A(()=>{if(!l)return!1;const u=e.pageview!==!1,f=n.value.pageview;return!!f||u!==!1&&f!==!1}),i=A(()=>ht(t.value.path)),c=A(()=>({lang:r.value==="zh-CN"?"zh-CN":"en",locale:o.value,dark:"html.dark",...e,path:i.value}));return ve(()=>{re(i,()=>{a==null||a(),s.value&&rn().then(()=>{setTimeout(()=>{a=fv({serverURL:e.serverURL,path:i.value})},e.delay||800)})},{immediate:!0})}),()=>l?d("div",{class:"waline-wrapper",id:"comment"},l?d(N({loader:async()=>(await w(()=>import("./component-0205f978.js"),[])).Waline,loadingComponent:Di}),c.value):[]):null}}),bv=B({name:"CommentService",props:{darkmode:Boolean},setup(e){const t=Ec(),n=Pe(),r=t.comment!==!1,o=A(()=>n.value.comment||r&&n.value.comment!==!1);return()=>d(_v,{darkmode:e.darkmode,style:{display:o.value?"block":"none"}})}}),yv=De({enhance:({app:e})=>{vv(e),e.component("CommentService",bv)}});const wv=800,Ev=2e3,Tv={"/zh/":{copy:"复制代码",copied:"已复制",hint:"复制成功"},"/en/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"},"/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"}},Ov=!1,Av=['.theme-hope-content div[class*="language-"] pre'],fs=!1,bo=new Map,Pv=()=>{const{copy:e}=nh({legacy:!0}),t=an(Tv),n=pe(),r=kp(),o=s=>{if(!s.hasAttribute("copy-code-registered")){const i=document.createElement("button");i.type="button",i.classList.add("copy-code-button"),i.innerHTML='
',i.setAttribute("aria-label",t.value.copy),i.setAttribute("data-copied",t.value.copied),s.parentElement&&s.parentElement.insertBefore(i,s),s.setAttribute("copy-code-registered","")}},a=()=>rn().then(()=>new Promise(s=>{setTimeout(()=>{Av.forEach(i=>{document.querySelectorAll(i).forEach(o)}),s()},wv)})),l=(s,i,c)=>{let{innerText:u=""}=i;/language-(shellscript|shell|bash|sh|zsh)/.test(s.classList.toString())&&(u=u.replace(/^ *(\$|>) /gm,"")),e(u).then(()=>{c.classList.add("copied"),clearTimeout(bo.get(c));const f=setTimeout(()=>{c.classList.remove("copied"),c.blur(),bo.delete(c)},Ev);bo.set(c,f)})};ve(()=>{(!r.value||fs)&&a(),xe("click",s=>{const i=s.target;if(i.matches('div[class*="language-"] > button.copy')){const c=i.parentElement,u=i.nextElementSibling;u&&l(c,u,i)}else if(i.matches('div[class*="language-"] div.copy-icon')){const c=i.parentElement,u=c.parentElement,f=c.nextElementSibling;f&&l(u,f,c)}}),re(()=>n.value.path,()=>{(!r.value||fs)&&a()})})};var kv=De({setup:()=>{Pv()}});const yo=Oa("VUEPRESS_TAB_STORE",{});var Lv=B({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=G(e.active),r=it([]),o=()=>{if(e.tabId){const{title:c,id:u=c}=e.data[n.value];yo.value[e.tabId]=u}},a=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},s=(c,u)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=u):c.key==="ArrowRight"?(c.preventDefault(),a()):c.key==="ArrowLeft"&&(c.preventDefault(),l()),o()},i=()=>{if(e.tabId){const c=e.data.findIndex(({title:u,id:f=u})=>yo.value[e.tabId]===f);if(c!==-1)return c}return e.active};return ve(()=>{n.value=i(),re(()=>yo.value[e.tabId],(c,u)=>{if(e.tabId&&c!==u){const f=e.data.findIndex(({title:p,id:m=p})=>m===c);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"tab-list"},[d("div",{class:"tab-list-nav",role:"tablist"},e.data.map(({title:c},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(r.value[u]=p)},class:["tab-list-nav-item",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,o()},onKeydown:p=>s(p,u)},c)})),e.data.map(({title:c,id:u=c},f)=>{const p=f===n.value;return d("div",{class:["tab-item",{active:p}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":p},t[`tab${f}`]({title:c,value:u,isActive:p}))})]):null}});const xv=De({enhance:({app:e})=>{e.component("Tabs",Lv)}});let Cv={};const Tc=Symbol(""),Iv=()=>Ee(Tc),Sv=e=>{e.provide(Tc,Cv)};const Rv=".theme-hope-content :not(a) > img:not([no-view])",$v={"/zh/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"},"/en/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"},"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}},Dv=800,Mv='
',zv=e=>ae(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),Oc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(Oc(e)),e.onerror=r=>n(r))}),Nv=()=>{const{isSupported:e,toggle:t}=Aa(),n=Iv(),r=an($v),o=pe();let a;const l=i=>{i.on("uiRegister",()=>{e&&i.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{t()}}),i.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(c,u)=>{c.setAttribute("download",""),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),u.on("change",()=>{c.setAttribute("href",u.currSlide.data.src)})}}),i.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(c,u)=>{const f=[];let p=-1;for(let m=0;m{u.goTo(f.indexOf(E.target))},f.push(y),c.appendChild(y)}u.on("change",()=>{p>=0&&f[p].classList.remove("active"),f[u.currIndex].classList.add("active"),p=u.currIndex})}})})},s=()=>Promise.all([w(()=>import("./photoswipe.esm-2450701e.js"),[]),rn().then(()=>new Promise(i=>setTimeout(i,Dv)).then(()=>zv(Rv)))]).then(([{default:i},c])=>{const u=c.map(f=>({html:Mv,element:f,msrc:f.src}));c.forEach((f,p)=>{const m=()=>{a=new i({preloaderDelay:0,showHideAnimationType:"zoom",...r.value,...n,dataSource:u,index:p,closeOnVerticalDrag:!0,wheelToZoom:!1}),l(a),a.addFilter("thumbEl",()=>f),a.addFilter("placeholderSrc",()=>f.src),a.init()};f.style.cursor="zoom-in",f.addEventListener("click",()=>{m()}),f.addEventListener("keypress",({key:y})=>{y==="Enter"&&m()})}),c.forEach((f,p)=>{Oc(f).then(m=>{u.splice(p,1,m),a==null||a.refreshSlideContent(p)})})});ve(()=>{xe("wheel",()=>{a==null||a.close()}),s(),re(()=>o.value.path,()=>s())})};var Vv=De({enhance:({app:e})=>{Sv(e)},setup:()=>{Nv()}});function Fv(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(o){o(n)}),(r=e.get("*"))&&r.slice().map(function(o){o(t,n)})}}}const Ac=Symbol(""),Bv=()=>{const e=Ee(Ac);if(!e)throw new Error("usePWAEvent() is called without provider.");return e},Hv=async e=>{const{register:t}=await w(()=>import("./index-e32a7948.js"),[]);t(ht("service-worker.js"),{ready(n){console.log("[PWA]: Service worker is active"),e.emit("ready",n)},registered(n){console.log("[PWA]: Service worker has been registered."),e.emit("registered",n)},cached(n){console.log("[PWA]: Content has been cached for offline usage"),e.emit("cached",n)},async updatefound(n){await navigator.serviceWorker.getRegistration()&&(console.log("[PWA]: New content is downloading."),e.emit("updatefound",n))},updated(n){console.log("[PWA]: New content is available, please refresh.");const r="service-worker-version",o=Number(localStorage.getItem(r)||0);localStorage.setItem(r,(o+1).toString()),localStorage.removeItem("manifest"),e.emit("updated",n)},offline(){console.log("[PWA]: No internet connection found. App is running in offline mode."),e.emit("offline")},error(n){console.log("[PWA]: Error during service worker registration:",n),e.emit("error",n)}})},jv=()=>{const e=Fv();Jt(Ac,e),ve(async()=>{var t;let n=!1;(t=navigator.serviceWorker)!=null&&t.controller&&navigator.serviceWorker.addEventListener("controllerchange",()=>{n||(n=!0,window.location.reload())}),await Hv(e)})},Pc=()=>d(we,{name:"update"},()=>d("path",{d:"M949.949 146.25v255.826c0 21.981-13.989 35.97-35.97 35.97H658.154c-13.988 0-25.983-7.992-33.973-21.981-5.997-13.989-4-27.977 7.991-39.97l79.942-77.946c-55.954-51.973-121.918-77.955-199.863-77.955-37.975 0-75.95 8.002-113.924 21.99-37.975 15.985-67.948 37.976-91.934 63.957-25.982 23.987-47.973 53.96-63.957 91.934-29.983 73.955-29.983 153.895 0 227.85 15.984 37.976 37.975 67.947 63.957 91.934 23.986 25.982 53.959 47.973 91.934 63.956 37.974 13.989 75.95 21.991 113.924 21.991 45.967 0 87.942-9.998 127.913-29.982 41.976-17.99 75.951-45.967 101.931-83.943 7.993-4 11.994-5.995 13.989-5.995 5.997 0 9.998 1.994 13.988 5.995l77.958 77.946c3.989 4 5.986 7.993 5.986 11.994 0 1.994-1.996 5.995-3.99 11.994-43.973 51.962-93.941 91.934-151.9 117.914-53.958 25.983-115.92 39.972-185.874 39.972-61.961 0-119.921-11.984-169.89-33.973-57.96-25.985-105.923-57.963-139.896-93.943-35.98-33.972-67.958-81.936-93.94-139.897-45.967-101.93-45.967-237.846 0-339.777 25.982-57.96 57.96-105.923 93.94-139.896 33.973-35.98 81.936-67.958 139.896-93.94 49.968-21.99 107.928-33.974 169.89-33.974 55.963 0 109.923 9.988 161.885 29.973 53.97 21.99 101.933 51.963 139.908 89.938l73.954-73.944c9.987-9.998 23.987-13.988 39.971-8.002 13.988 8.002 21.98 19.995 21.98 33.984z"}));Pc.displayName="UpdateIcon";const Uv={"/zh/":{install:"安装",iOSInstall:"点击分享按钮然后点击“添加到主屏幕”",cancel:"取消",close:"关闭",prevImage:"上一张图片",nextImage:"下一张图片",desc:"详情",feature:"主要特色",explain:"该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。",hint:"发现新内容可用",update:"新内容已就绪"},"/en/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."},"/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."}};var Wv=B({name:"SWHintPopup",slots:Object,setup(e,{slots:t}){const n=an(Uv),r=G(!1),o=()=>{r.value&&(window.location.reload(!0),r.value=!1)};return ve(()=>{const a=Bv();a.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(l=>{l&&l.active&&(r.value=!0)})}),a.on("updated",()=>{r.value=!1})}),()=>d(Pt,{name:"popup"},()=>{var a;return((a=t.default)==null?void 0:a.call(t,{enabled:r.value,uninstall:o}))||(r.value?d("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>o()},[n.value.hint,d("span",{class:"icon-wrapper"},d(Pc))]):null)})}});const qv=De({setup:()=>{jv()},rootComponents:[Wv]}),kc=()=>{const e=pe();return A(()=>e.value.readingTime??null)},Vo=typeof{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}}>"u"?null:{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}},Kv=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:a,time:l}=t;return{time:n<1?o:l.replace("$time",Math.round(n).toString()),words:a.replace("$word",r.toString())}},ps={words:"",time:""},Gv=()=>Vo?an(Vo):A(()=>null),Yv=()=>{if(typeof Vo>"u")return A(()=>ps);const e=kc(),t=Gv();return A(()=>e.value&&t.value?Kv(e.value,t.value):ps)},zn=()=>bc(),ge=()=>av(),ro=()=>A(()=>!!zn().value.pure);var hs=B({name:"EmptyComponent",setup:()=>()=>null});const Qv="719px",Jv="1440px",Xv="false",Ca={mobileBreakPoint:Qv,pcBreakPoint:Jv,enableThemeColor:Xv},Ia={"/zh/features/":["dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","mhy-account-switch","hutao-settings"],"/zh/advanced/":["FAQ","exceptions","known-issue","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/zh/statements/":["update-log","bug-report","privacy-notice","tos"],"/en/features/":["dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","mhy-account-switch","hutao-settings"],"/en/advanced/":["FAQ","exceptions","known-issue","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/en/statements/":["update-log","bug-report","privacy-notice","tos"],"/":[]},Lc=e=>{const{icon:t="",color:n,size:r}=e,o={};return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),Dn(t)?d("img",{class:"icon",src:t,"no-view":"",style:o}):_a(t)?d("img",{class:"icon",src:ht(t),"no-view":"",style:o}):d(at("FontIcon"),e)};Lc.displayName="HopeIcon";var Qe=Lc,Et=(e=>(e.type="y",e.title="t",e.shortTitle="s",e.icon="i",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e.index="I",e.order="O",e))(Et||{}),Zv=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(Zv||{});const bn=(e,t=!1)=>{const n=Je(),{fullPath:r,meta:o,name:a}=ya(n,encodeURI(e));return{text:!t&&o[Et.shortTitle]?o[Et.shortTitle]:o[Et.title]||e,link:a==="404"?e:r,...o[Et.icon]?{icon:o[Et.icon]}:{}}},e1=()=>{const e=Je(),t=Xe();return n=>{if(n)if(_a(n))t.path!==n&&e.push(n);else if(Dn(n)||Oi(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(`${r}/${encodeURI(n)}`)}}},xc=()=>{const e=ge(),t=Pe();return A(()=>{const{author:n}=t.value;return n?kl(n):n===!1?[]:kl(e.value.author,!1)})},t1=()=>{const e=Pe();return A(()=>Cp(e.value.category).map(t=>({name:t,path:""})))},n1=()=>{const e=Pe();return A(()=>Ip(e.value.tag).map(t=>({name:t,path:""})))},r1=()=>{const e=Pe(),t=pe();return A(()=>{const n=Lp(e.value.date);if(n)return n;const{createdTime:r}=t.value.git||{};return r?new Date(r):null})},o1=()=>{const e=ge(),t=pe(),n=Pe(),r=xc(),o=t1(),a=n1(),l=r1(),s=kc(),i=Yv(),c=A(()=>({author:r.value,category:o.value,date:l.value,localizedDate:t.value.localizedDate,tag:a.value,isOriginal:n.value.isOriginal||!1,readingTime:s.value,readingTimeLocale:i.value,pageview:"pageview"in n.value?n.value.pageview:!0})),u=A(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:u}},{mobileBreakPoint:a1,pcBreakPoint:l1}=Ca,ms=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,oo=()=>{const e=G(!1),t=G(!1),n=()=>{e.value=window.innerWidth<=(ms(a1)??719),t.value=window.innerWidth>=(ms(l1)??1440)};return ve(()=>{n(),xe("resize",n,!1),xe("orientationchange",n,!1)}),{isMobile:e,isPC:t}},Cc=Symbol(""),pr=()=>{const e=Ee(Cc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},s1=e=>{const t=zn(),n=dh(),r=Oa("vuepress-theme-hope-scheme","auto"),o=A(()=>t.value.darkmode||"switch"),a=A(()=>{const s=o.value;return s==="disable"?!1:s==="enable"?!0:s==="auto"?n.value:s==="toggle"?r.value==="dark":r.value==="dark"||r.value==="auto"&&n.value}),l=A(()=>{const s=o.value;return s==="switch"||s==="toggle"});e.provide(Cc,{canToggle:l,config:o,isDarkmode:a,status:r}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>a.value}})},i1=()=>{const{isDarkmode:e}=pr(),t=(n=e.value)=>document.documentElement.setAttribute("data-theme",n?"dark":"light");ve(()=>{re(e,t,{immediate:!0})})};var Ne=B({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:r}){const o=Xe(),a=Si(),l=Wr(e,"config"),s=A(()=>Dn(l.value.link)),i=A(()=>Oi(l.value.link)||dp(l.value.link)),c=A(()=>i.value?void 0:l.value.target||(s.value?"_blank":void 0)),u=A(()=>c.value==="_blank"),f=A(()=>!s.value&&!i.value&&!u.value),p=A(()=>i.value?void 0:l.value.rel||(u.value?"noopener noreferrer":void 0)),m=A(()=>l.value.ariaLabel||l.value.text),y=A(()=>{if(e.exact)return!1;const T=Mn(a.value.locales);return T.length?T.every(g=>g!==l.value.link):l.value.link!=="/"}),E=A(()=>f.value?l.value.activeMatch?new RegExp(l.value.activeMatch).test(o.path):y.value?ar(o.path,l.value.link):o.path===l.value.link:!1);return()=>{const{before:T,after:g,default:_}=r,{text:R,icon:I,link:j}=l.value;return f.value?d(Ot,{to:j,"aria-label":m.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>_?_():[T?T():d(Qe,{icon:I}),R,g==null?void 0:g()]):d("a",{href:j,rel:p.value,target:c.value,"aria-label":m.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},_?_():[T?T():d(Qe,{icon:I}),R,e.noExternalLinkIcon?null:d(gc),g==null?void 0:g()])}}});const Ln=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch).test(e.path):ba(e,t.link)?!0:t.children&&!n?t.children.some(r=>Ln(e,r)):!1,Ic=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?Ic(e,n):n.type==="page"&&Ln(e,n,!0))||"prefix"in t&&ba(e,t.prefix):!1,Sc=(e,t)=>ae(e.link)?d(Ne,{...t,config:e}):d("p",t,[d(Qe,{icon:e.icon}),e.text]),Rc=e=>{const t=Xe();return e?d("ul",{class:"sidebar-sub-headers"},e.map(n=>{const r=Ln(t,n,!0);return d("li",{class:"sidebar-sub-header"},[Sc(n,{class:["sidebar-link","heading",{active:r}]}),Rc(n.children)])})):null},wo=(e="",t="")=>_a(t)?t:`${ip(e)}${t}`,c1=(e,t)=>{const n=pe();return{type:"heading",text:e.title,link:`${n.value.path}#${e.slug}`,children:Sa(e.children,t)}},Sa=(e,t)=>t>0?e.map(n=>c1(n,t-1)):[],$c=e=>{const t=pe();return Sa(t.value.headers,e)},Fo=(e,t,n="")=>{const r=pe(),o=(a,l=n)=>{var s;const i=ae(a)?bn(wo(l,a)):a.link?{...a,...Fr(a.link)?{}:{link:bn(wo(l,a.link)).link}}:a;if("children"in i){const c=wo(l,i.prefix),u=i.children==="structure"?Ia[c]:i.children;return{type:"group",...i,prefix:c,children:u.map(f=>o(f,c))}}return{type:"page",...i,children:i.link===r.value.path?Sa(((s=r.value.headers[0])==null?void 0:s.level)===1?r.value.headers[0].children:r.value.headers,t):[]}};return e.map(a=>o(a))},u1=(e,t)=>{const n=pe(),r=Mn(e).sort((o,a)=>a.length-o.length);for(const o of r)if(ar(decodeURI(n.value.path),o)){const a=e[o];return a?Fo(a==="structure"?Ia[o]:a==="heading"?$c(t):a,t,o):[]}return console.warn(`${n.value.path} is missing sidebar config.`),[]},d1=()=>{const e=Lt(),t=Pe(),n=ge(),r=t.value.home?!1:t.value.sidebar??n.value.sidebar??"structure",o=t.value.headerDepth??n.value.headerDepth??2;return r===!1?[]:r==="heading"?$c(o):r==="structure"?Fo(Ia[e.value],o,e.value):q(r)?Fo(r,o):ma(r)?u1(r,o):[]},Dc=Symbol(""),f1=()=>{const e=A(()=>d1());Jt(Dc,e)},Ra=()=>{const e=Ee(Dc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var p1=B({name:"PageFooter",setup(){const e=Pe(),t=ge(),n=xc(),r=A(()=>{const{copyright:l,footer:s}=e.value;return s!==!1&&!!(l||s||t.value.displayFooter)}),o=A(()=>{const{footer:l}=e.value;return l===!1?!1:ae(l)?l:t.value.footer||""}),a=A(()=>"copyright"in e.value?e.value.copyright:"copyright"in t.value?t.value.copyright:n.value.length?`Copyright © ${new Date().getFullYear()} ${n.value[0].name}`:!1);return()=>r.value?d("footer",{class:"footer-wrapper"},[o.value?d("div",{class:"footer",innerHTML:o.value}):null,a.value?d("div",{class:"copyright",innerHTML:a.value}):null]):null}}),Mc=B({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=pe(),r=Wr(e,"config"),o=A(()=>r.value.ariaLabel||r.value.text),a=G(!1);re(()=>n.value.path,()=>{a.value=!1});const l=s=>{s.detail===0&&(a.value=!a.value)};return()=>{var s;return d("div",{class:["dropdown-wrapper",{open:a.value}]},[d("button",{type:"button",class:"dropdown-title","aria-label":o.value,onClick:l},[((s=t.title)==null?void 0:s.call(t))||d("span",{class:"title"},[d(Qe,{icon:r.value.icon}),e.config.text]),d("span",{class:"arrow"}),d("ul",{class:"nav-dropdown"},r.value.children.map((i,c)=>{const u=c===r.value.children.length-1;return d("li",{class:"dropdown-item"},"children"in i?[d("h4",{class:"dropdown-subtitle"},i.link?d(Ne,{config:i,onFocusout:()=>{i.children.length===0&&u&&(a.value=!1)}}):d("span",i.text)),d("ul",{class:"dropdown-subitem-wrapper"},i.children.map((f,p)=>d("li",{class:"dropdown-subitem"},d(Ne,{config:f,onFocusout:()=>{p===i.children.length-1&&u&&(a.value=!1)}}))))]:d(Ne,{config:i,onFocusout:()=>{u&&(a.value=!1)}}))}))])])}}});const zc=()=>d(we,{name:"i18n"},()=>[d("path",{d:"M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"})]);zc.displayName="I18nIcon";const Nc=(e,t="")=>ae(e)?bn(`${t}${e}`):"children"in e?{...e,...e.link&&!Fr(e.link)?bn(`${t}${e.link}`):{},children:e.children.map(n=>Nc(n,`${t}${e.prefix||""}`))}:{...e,link:Fr(e.link)?e.link:bn(`${t}${e.link}`).link},Vc=()=>A(()=>(ge().value.navbar||[]).map(e=>Nc(e))),h1=()=>{const e=Je(),t=Xe(),n=Lt(),r=Xr(),o=zn(),a=ge();return A(()=>{const l=Mn(r.value.locales);if(l.length<2)return null;const{path:s,fullPath:i}=e.currentRoute.value,{navbarLocales:c}=a.value;return{text:"",ariaLabel:c==null?void 0:c.selectLangAriaLabel,children:[...l.map(u=>{var f,p,m;const y=((f=r.value.locales)==null?void 0:f[u])??{},E=((p=o.value.locales)==null?void 0:p[u])??{},T=y.lang||"",g=((m=E.navbarLocales)==null?void 0:m.langName)??T;let _;if(T===r.value.lang)_=s;else{const R=s.replace(n.value,u);_=e.getRoutes().some(I=>I.path===R)?i.replace(s,R):E.home??u}return{text:g,link:_}}),...eo(o.value.extraLocales||{}).map(([u,f])=>({text:u,link:f.replace(":route",t.path.replace(n.value,""))}))]}})},m1=()=>{const e=ge(),t=A(()=>e.value.repo||null),n=A(()=>t.value?Rp(t.value):null),r=A(()=>t.value?Gi(t.value):null),o=A(()=>n.value?e.value.repoLabel??(r.value===null?"Source":r.value):null);return A(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value||"Source",label:o.value,link:n.value})};var v1=B({name:"LanguageDropdown",setup(){const e=h1();return()=>e.value?d("div",{class:"nav-item"},d(Mc,{class:"i18n-dropdown",config:e.value},{title:()=>{var t;return d(zc,{"aria-label":(t=e.value)==null?void 0:t.ariaLabel,style:{width:"1rem",height:"1rem",verticalAlign:"middle"}})}})):null}}),g1=B({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=pe(),n=Wr(e,"config"),r=A(()=>n.value.ariaLabel||n.value.text),o=G(!1);re(()=>t.value.path,()=>{o.value=!1});const a=(l,s)=>s[s.length-1]===l;return()=>[d("button",{type:"button",class:["nav-screen-dropdown-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[d("span",{class:"title"},[d(Qe,{icon:n.value.icon}),e.config.text]),d("span",{class:["arrow",o.value?"down":"end"]})]),d("ul",{class:["nav-screen-dropdown",{hide:!o.value}]},n.value.children.map(l=>d("li",{class:"dropdown-item"},"children"in l?[d("h4",{class:"dropdown-subtitle"},l.link?d(Ne,{config:l,onFocusout:()=>{a(l,n.value.children)&&l.children.length===0&&(o.value=!1)}}):d("span",l.text)),d("ul",{class:"dropdown-subitem-wrapper"},l.children.map(s=>d("li",{class:"dropdown-subitem"},d(Ne,{config:s,onFocusout:()=>{a(s,l.children)&&a(l,n.value.children)&&(o.value=!1)}}))))]:d(Ne,{config:l,onFocusout:()=>{a(l,n.value.children)&&(o.value=!1)}}))))]}}),_1=B({name:"NavScreenLinks",setup(){const e=Vc();return()=>e.value.length?d("nav",{class:"nav-screen-links"},e.value.map(t=>d("div",{class:"navbar-links-item"},"children"in t?d(g1,{config:t}):d(Ne,{config:t})))):null}});const Fc=()=>d(we,{name:"dark"},()=>d("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Fc.displayName="DarkIcon";const Bc=()=>d(we,{name:"light"},()=>d("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Bc.displayName="LightIcon";const Hc=()=>d(we,{name:"auto"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));Hc.displayName="AutoIcon";const jc=()=>d(we,{name:"enter-fullscreen"},()=>d("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));jc.displayName="EnterFullScreenIcon";const Uc=()=>d(we,{name:"cancel-fullscreen"},()=>d("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Uc.displayName="CancelFullScreenIcon";const Wc=()=>d(we,{name:"outlook"},()=>[d("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Wc.displayName="OutlookIcon";var qc=B({name:"AppearanceSwitch",setup(){const{config:e,status:t}=pr(),n=()=>{e.value==="switch"?t.value={light:"dark",dark:"auto",auto:"light"}[t.value]:t.value=t.value==="light"?"dark":"light"};return()=>d("button",{type:"button",id:"appearance-switch",onClick:()=>n()},[d(Hc,{style:{display:t.value==="auto"?"block":"none"}}),d(Fc,{style:{display:t.value==="dark"?"block":"none"}}),d(Bc,{style:{display:t.value==="light"?"block":"none"}})])}}),b1=B({name:"AppearanceMode",setup(){const e=ge(),{canToggle:t}=pr(),n=A(()=>e.value.outlookLocales.darkmode);return()=>t.value?d("div",{class:"appearance-wrapper"},[d("label",{class:"appearance-title",for:"appearance-switch"},n.value),d(qc)]):null}});const Eo="VUEPRESS_THEME_COLOR";var y1=B({name:"ThemeColorPicker",props:{themeColor:{type:Object,required:!0}},setup(e){const t=(n="")=>{const r=document.documentElement.classList,o=Mn(e.themeColor);if(!n){localStorage.removeItem(Eo),r.remove(...o);return}r.remove(...o.filter(a=>a!==n)),r.add(n),localStorage.setItem(Eo,n)};return ve(()=>{const n=localStorage.getItem(Eo);n&&t(n)}),()=>d("ul",{id:"theme-color-picker"},[d("li",d("span",{class:"theme-color",onClick:()=>t()})),eo(e.themeColor).map(([n,r])=>d("li",d("span",{style:{background:r},onClick:()=>t(n)})))])}});const yn=Ca.enableThemeColor==="true",w1=yn?xp(eo(Ca).filter(([e])=>e.startsWith("theme-"))):{};var E1=B({name:"ThemeColor",setup(){const e=ge(),t=A(()=>e.value.outlookLocales.themeColor);return()=>yn?d("div",{class:"theme-color-wrapper"},[d("label",{class:"theme-color-title",for:"theme-color-picker"},t.value),d(y1,{themeColor:w1})]):null}}),Kc=B({name:"ToggleFullScreenButton",setup(){const e=ge(),{isSupported:t,isFullscreen:n,toggle:r}=Aa(),o=A(()=>e.value.outlookLocales.fullscreen);return()=>t?d("div",{class:"full-screen-wrapper"},[d("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),d("button",{type:"button",class:"full-screen",id:"full-screen-switch",ariaPressed:n.value,onClick:()=>r()},n.value?d(Uc):d(jc))]):null}}),Gc=B({name:"OutlookSettings",setup(){const e=zn(),t=ro(),n=A(()=>!t.value&&e.value.fullscreen);return()=>d(Zr,()=>[yn?d(E1):null,d(b1),n.value?d(Kc):null])}}),T1=B({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=pe(),{isMobile:o}=oo(),a=it(),l=Pa(a);return ve(()=>{a.value=document.body,re(o,s=>{!s&&e.show&&(l.value=!1,t("close"))}),re(()=>r.value.path,()=>{l.value=!1,t("close")})}),$n(()=>{l.value=!1}),()=>d(Pt,{name:"fade",onEnter:()=>{l.value=!0},onAfterLeave:()=>{l.value=!1}},()=>{var s,i;return e.show?d("div",{id:"nav-screen"},d("div",{class:"container"},[(s=n.before)==null?void 0:s.call(n),d(_1),d("div",{class:"outlook-wrapper"},d(Gc)),(i=n.after)==null?void 0:i.call(n)])):null})}}),O1=B({name:"NavbarBrand",setup(){const e=Lt(),t=Xr(),n=ge(),r=A(()=>n.value.home||e.value),o=A(()=>t.value.title),a=A(()=>n.value.logo?ht(n.value.logo):null),l=A(()=>n.value.logoDark?ht(n.value.logoDark):null);return()=>d(Ot,{to:r.value,class:"brand"},()=>[a.value?d("img",{class:["logo",{light:!!l.value}],src:a.value,alt:o.value}):null,l.value?d("img",{class:["logo dark"],src:l.value,alt:o.value}):null,o.value?d("span",{class:["site-name",{"hide-in-pad":a.value&&n.value.hideSiteNameOnMobile!==!1}]},o.value):null])}}),A1=B({name:"NavbarLinks",setup(){const e=Vc();return()=>e.value.length?d("nav",{class:"nav-links"},e.value.map(t=>d("div",{class:"nav-item hide-in-mobile"},"children"in t?d(Mc,{config:t}):d(Ne,{config:t})))):null}}),P1=B({name:"RepoLink",components:{BitbucketIcon:Fi,GiteeIcon:Vi,GitHubIcon:zi,GitLabIcon:Ni,SourceIcon:Bi},setup(){const e=m1();return()=>e.value?d("div",{class:"nav-item"},d("a",{class:"repo-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},d(at(`${e.value.type}Icon`),{style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const Yc=({active:e=!1},{emit:t})=>d("button",{type:"button",class:["toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},d("span",{class:"button-container"},[d("span",{class:"button-top"}),d("span",{class:"button-middle"}),d("span",{class:"button-bottom"})]));Yc.displayName="ToggleNavbarButton";var k1=Yc;const Bo=(e,{emit:t})=>d("button",{type:"button",class:"toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},d("span",{class:"icon"}));Bo.displayName="ToggleSidebarButton",Bo.emits=["toggle"];var L1=Bo,x1=B({name:"OutlookButton",setup(){const{isSupported:e}=Aa(),t=zn(),n=ro(),r=pe(),{canToggle:o}=pr(),a=G(!1),l=A(()=>!n.value&&t.value.fullscreen&&e);return re(()=>r.value.path,()=>{a.value=!1}),()=>o.value||l.value||yn?d("div",{class:"nav-item hide-in-mobile"},o.value&&!l.value&&!yn?d(qc):l.value&&!o.value&&!yn?d(Kc):d("button",{type:"button",class:["outlook-button",{open:a.value}],tabindex:"-1","aria-hidden":!0},[d(Wc),d("div",{class:"outlook-dropdown"},d(Gc))])):null}}),C1=B({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=ge(),{isMobile:o}=oo(),a=G(!1),l=A(()=>{const{navbarAutoHide:u="mobile"}=r.value;return u!=="none"&&(u==="always"||o.value)}),s=A(()=>r.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),i={Brand:O1,Language:v1,Links:A1,Repo:P1,Outlook:x1,Search:pt("Docsearch")?at("Docsearch"):pt("SearchBox")?at("SearchBox"):hs},c=u=>i[u]??(pt(u)?at(u):hs);return()=>{var u,f,p,m,y,E;return[d("header",{class:["navbar",{"auto-hide":l.value,"hide-icon":r.value.navbarIcon===!1}],id:"navbar"},[d("div",{class:"navbar-start"},[d(L1,{onToggle:()=>{a.value&&(a.value=!1),t("toggleSidebar")}}),(u=n.startBefore)==null?void 0:u.call(n),(s.value.start||[]).map(T=>d(c(T))),(f=n.startAfter)==null?void 0:f.call(n)]),d("div",{class:"navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(s.value.center||[]).map(T=>d(c(T))),(m=n.centerAfter)==null?void 0:m.call(n)]),d("div",{class:"navbar-end"},[(y=n.endBefore)==null?void 0:y.call(n),(s.value.end||[]).map(T=>d(c(T))),(E=n.endAfter)==null?void 0:E.call(n),d(k1,{active:a.value,onToggle:()=>{a.value=!a.value}})])]),d(T1,{show:a.value,onClose:()=>{a.value=!1}},{before:()=>{var T;return(T=n.screenTop)==null?void 0:T.call(n)},after:()=>{var T;return(T=n.screenBottom)==null?void 0:T.call(n)}})]}}}),I1=B({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=Xe();return()=>[Sc(e.config,{class:["sidebar-link",`sidebar-${e.config.type}`,{active:Ln(t,e.config,!0)}],exact:!0}),Rc(e.config.children)]}}),S1=B({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=Xe(),r=A(()=>Ln(n,e.config)),o=A(()=>Ln(n,e.config,!0));return()=>{const{collapsible:a,children:l=[],icon:s,prefix:i,link:c,text:u}=e.config;return d("section",{class:"sidebar-group"},[d(a?"button":"p",{class:["sidebar-heading",{clickable:a||c,exact:o.value,active:r.value}],...a?{type:"button",onClick:()=>t("toggle"),onKeydown:f=>{f.key==="Enter"&&t("toggle")}}:{}},[d(Qe,{icon:s}),c?d(Ne,{class:"title",config:{text:u,link:c},noExternalLinkIcon:!0}):d("span",{class:"title"},u),a?d("span",{class:["arrow",e.open?"down":"end"]}):null]),e.open||!a?d(Qc,{key:i,config:l}):null])}}}),Qc=B({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=Xe(),n=G(-1),r=o=>{n.value=o===n.value?-1:o};return re(()=>t.path,()=>{const o=e.config.findIndex(a=>Ic(t,a));n.value=o},{immediate:!0,flush:"post"}),()=>d("ul",{class:"sidebar-links"},e.config.map((o,a)=>d("li",o.type==="group"?d(S1,{config:o,open:a===n.value,onToggle:()=>r(a)}):d(I1,{config:o}))))}}),R1=B({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=Xe(),r=ge(),o=Ra(),a=it();return ve(()=>{re(()=>n.hash,l=>{const s=document.querySelector(`.sidebar a.sidebar-link[href="${n.path}${l}"]`);if(!s)return;const{top:i,height:c}=a.value.getBoundingClientRect(),{top:u,height:f}=s.getBoundingClientRect();ui+c&&s.scrollIntoView(!1)})}),()=>{var l,s,i;return d("aside",{class:["sidebar",{"hide-icon":r.value.sidebarIcon===!1}],id:"sidebar",ref:a},[(l=t.top)==null?void 0:l.call(t),((s=t.default)==null?void 0:s.call(t))||d(Qc,{config:o.value}),(i=t.bottom)==null?void 0:i.call(t)])}}}),Jc=B({name:"CommonWrapper",props:{noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=Je(),r=pe(),o=Pe(),a=ge(),{isMobile:l,isPC:s}=oo(),[i,c]=Cl(!1),[u,f]=Cl(!1),p=Ra(),m=G(!1),y=A(()=>e.noNavbar||o.value.navbar===!1||a.value.navbar===!1?!1:!!(r.value.title||a.value.logo||a.value.repo||a.value.navbar)),E=A(()=>e.noSidebar?!1:o.value.sidebar!==!1&&p.value.length!==0&&!o.value.home),T=A(()=>e.noToc||o.value.home?!1:o.value.toc||a.value.toc!==!1&&o.value.toc!==!1),g={x:0,y:0},_=S=>{g.x=S.changedTouches[0].clientX,g.y=S.changedTouches[0].clientY},R=S=>{const z=S.changedTouches[0].clientX-g.x,P=S.changedTouches[0].clientY-g.y;Math.abs(z)>Math.abs(P)*1.5&&Math.abs(z)>40&&(z>0&&g.x<=80?c(!0):c(!1))},I=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let j=0;return xe("scroll",Np(()=>{const S=I();S<=58||S{S||c(!1)}),ve(()=>{const S=Pa(document.body);re(i,P=>{S.value=P});const z=n.afterEach(()=>{c(!1)});$n(()=>{S.value=!1,z()})}),()=>d(pt("GlobalEncrypt")?at("GlobalEncrypt"):Mi,()=>d("div",{class:["theme-container",{"no-navbar":!y.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":T.value,"hide-navbar":m.value,"sidebar-collapsed":!l.value&&!s.value&&u.value,"sidebar-open":l.value&&i.value},o.value.containerClass||""],onTouchStart:_,onTouchEnd:R},[y.value?d(C1,{onToggleSidebar:()=>c()},{startBefore:()=>{var S;return(S=t.navbarStartBefore)==null?void 0:S.call(t)},startAfter:()=>{var S;return(S=t.navbarStartAfter)==null?void 0:S.call(t)},centerBefore:()=>{var S;return(S=t.navbarCenterBefore)==null?void 0:S.call(t)},centerAfter:()=>{var S;return(S=t.navbarCenterAfter)==null?void 0:S.call(t)},endBefore:()=>{var S;return(S=t.navbarEndBefore)==null?void 0:S.call(t)},endAfter:()=>{var S;return(S=t.navbarEndAfter)==null?void 0:S.call(t)},screenTop:()=>{var S;return(S=t.navScreenTop)==null?void 0:S.call(t)},screenBottom:()=>{var S;return(S=t.navScreenBottom)==null?void 0:S.call(t)}}):null,d(Pt,{name:"fade"},()=>i.value?d("div",{class:"sidebar-mask",onClick:()=>c(!1)}):null),d(Pt,{name:"fade"},()=>l.value?null:d("div",{class:"toggle-sidebar-wrapper",onClick:()=>f()},d("span",{class:["arrow",u.value?"end":"start"]}))),d(R1,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var S;return(S=t.sidebarTop)==null?void 0:S.call(t)},bottom:()=>{var S;return(S=t.sidebarBottom)==null?void 0:S.call(t)}}),t.default(),d(p1)]))}}),hn=B({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>d(e.type==="single"?Pt:Ei,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},()=>t.default())}});const Ho=({custom:e})=>d($i,{class:["theme-hope-content",{custom:e}]});Ho.displayName="MarkdownContent",Ho.props={custom:Boolean};var Xc=Ho;const Zc=()=>d(we,{name:"author"},()=>d("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));Zc.displayName="AuthorIcon";const eu=()=>d(we,{name:"calendar"},()=>d("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));eu.displayName="CalendarIcon";const tu=()=>d(we,{name:"category"},()=>d("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));tu.displayName="CategoryIcon";const nu=()=>d(we,{name:"eye"},()=>d("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));nu.displayName="EyeIcon";const ru=()=>d(we,{name:"fire"},()=>d("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));ru.displayName="FireIcon";const ou=()=>d(we,{name:"print"},()=>d("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));ou.displayName="PrintIcon";const au=()=>d(we,{name:"tag"},()=>d("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));au.displayName="TagIcon";const lu=()=>d(we,{name:"timer"},()=>d("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));lu.displayName="TimerIcon";const su=()=>d(we,{name:"word"},()=>[d("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),d("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);su.displayName="WordIcon";const xt=()=>{const e=ge();return A(()=>e.value.metaLocales)};var $1=B({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=xt();return()=>e.author.length?d("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(Zc),d("span",e.author.map(n=>n.url?d("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):d("span",{class:"page-author-item"},n.name))),d("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),D1=B({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=Je(),n=pe(),r=xt(),o=(a,l="")=>{l&&n.value.path!==l&&(a.preventDefault(),t.push(l))};return()=>e.category.length?d("span",{class:"page-category-info","aria-label":`${r.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(tu),e.category.map(({name:a,path:l})=>d("span",{class:["page-category-item",{[`category${Wi(a,9)}`]:!e.pure,clickable:l}],role:l?"navigation":"",onClick:s=>o(s,l)},a)),d("meta",{property:"articleSection",content:e.category.map(({name:a})=>a).join(",")})]):null}}),M1=B({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=Jr(),n=xt();return()=>e.date?d("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(eu),d("span",d(Zr,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),d("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),z1=B({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=xt();return()=>e.isOriginal?d("span",{class:"page-original-info"},t.value.origin):null}}),N1=B({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=Xe(),n=xt(),r=it(),o=G(0);return mh(r,()=>{const a=r.value.textContent;a&&!isNaN(Number(a))&&(o.value=Number(a))},{childList:!0}),()=>e.pageview?d("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(o.value<1e3?nu:ru),d("span",{ref:r,class:"waline-pageview-count",id:"ArtalkPV","data-path":ae(e.pageview)?e.pageview:ht(t.path)},"...")]):null}}),V1=B({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=xt(),n=A(()=>{if(!e.readingTime)return null;const{minutes:r}=e.readingTime;return r<1?"PT1M":`PT${Math.round(r)}M`});return()=>{var r,o;return(r=e.readingTimeLocale)!=null&&r.time?d("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${e.pure?"":"⌛"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(lu),d("span",(o=e.readingTimeLocale)==null?void 0:o.time),d("meta",{property:"timeRequired",content:n.value})]):null}}}),F1=B({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=Je(),n=pe(),r=xt(),o=(a,l="")=>{l&&n.value.path!==l&&(a.preventDefault(),t.push(l))};return()=>e.tag.length?d("span",{class:"page-tag-info","aria-label":`${r.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(au),e.tag.map(({name:a,path:l})=>d("span",{class:["page-tag-item",{[`tag${Wi(a,9)}`]:!e.pure,clickable:l}],role:l?"navigation":"",onClick:s=>o(s,l)},a)),d("meta",{property:"keywords",content:e.tag.map(({name:a})=>a).join(",")})]):null}}),B1=B({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=xt();return()=>{var n,r,o;return(n=e.readingTimeLocale)!=null&&n.words?d("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(su),d("span",(r=e.readingTimeLocale)==null?void 0:r.words),d("meta",{property:"wordCount",content:(o=e.readingTime)==null?void 0:o.words})]):null}}}),H1=B({name:"PageInfo",components:{AuthorInfo:$1,CategoryInfo:D1,DateInfo:M1,OriginalInfo:z1,PageViewInfo:N1,ReadingTimeInfo:V1,TagInfo:F1,WordInfo:B1},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=ro();return()=>e.items?d("div",{class:"page-info"},e.items.map(n=>d(at(`${n}Info`),{...e.info,pure:t.value}))):null}}),j1=B({name:"PrintButton",setup(){const e=zn(),t=ge();return()=>e.value.print===!1?null:d("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},d(ou))}});const U1=({title:e,level:t,slug:n})=>d(Ot,{to:`#${n}`,class:["toc-link",`level${t}`]},()=>e),jo=(e,t)=>{const n=Xe();return e.length&&t>0?d("ul",{class:"toc-list"},e.map(r=>{const o=jo(r.children,t-1);return[d("li",{class:["toc-item",{active:ba(n,`#${r.slug}`)}]},U1(r)),o?d("li",o):null]})):null};var W1=B({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=Xe(),r=pe(),o=xt(),a=it(),l=G("-1.7rem"),s=c=>{var u;(u=a.value)==null||u.scrollTo({top:c,behavior:"smooth"})},i=()=>{if(a.value){const c=document.querySelector(".toc-item.active");c?l.value=`${c.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:l.value="-1.7rem"}else l.value="-1.7rem"};return ve(()=>{re(()=>n.hash,c=>{if(a.value){const u=document.querySelector(`#toc a.toc-link[href$="${c}"]`);if(!u)return;const{top:f,height:p}=a.value.getBoundingClientRect(),{top:m,height:y}=u.getBoundingClientRect();mf+p&&s(a.value.scrollTop+m+y-f-p)}}),re(()=>n.fullPath,()=>i(),{flush:"post",immediate:!0})}),()=>{var c,u;const f=e.items.length?jo(e.items,e.headerDepth):r.value.headers?jo(r.value.headers,e.headerDepth):null;return f?d("div",{class:"toc-place-holder"},[d("aside",{id:"toc"},[(c=t.before)==null?void 0:c.call(t),d("div",{class:"toc-header"},[o.value.toc,d(j1)]),d("div",{class:"toc-wrapper",ref:a},[f,d("div",{class:"toc-marker",style:{top:l.value}})]),(u=t.after)==null?void 0:u.call(t)])]):null}}}),iu=B({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=pe(),n=ge(),r=it(),o=({target:a})=>{const l=document.querySelector(a.hash);if(l){const s=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",s)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",s),l.focus(),window.scrollTo(0,0)}};return ve(()=>{re(()=>t.value.path,()=>r.value.focus())}),()=>[d("span",{ref:r,tabindex:"-1"}),d("a",{href:`#${e.content}`,class:"skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}});let To=null,kr=null;const q1={wait:()=>To,pending:()=>{To=new Promise(e=>kr=e)},resolve:()=>{kr==null||kr(),To=null,kr=null}},cu=()=>q1;var K1=B({name:"FadeSlideY",slots:Object,setup(e,{slots:t}){const{resolve:n,pending:r}=cu();return()=>d(Pt,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:n,onBeforeLeave:r},()=>{var o;return(o=t.default)==null?void 0:o.call(t)})}}),G1=B({name:"FeaturePanel",props:{items:{type:Object,default:()=>[]},header:{type:String,default:""}},setup(e){return()=>d("div",{class:"feature-panel"},[e.header?d("h2",{class:"feature-header"},e.header):null,e.items.length?d("div",{class:"feature-wrapper"},e.items.map(t=>{const n=[d("h3",[d(Qe,{icon:t.icon}),d("span",{innerHTML:t.title})]),d("p",{innerHTML:t.details})];return t.link?Fr(t.link)?d("a",{class:"feature-item link",href:t.link,role:"navigation","aria-label":t.title,target:"_blank"},n):d(Ot,{class:"feature-item link",to:t.link,role:"navigation","aria-label":t.title},()=>n):d("div",{class:"feature-item"},n)})):null])}}),Y1=B({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Pe(),r=Xr(),o=A(()=>n.value.heroText===!1?!1:n.value.heroText||r.value.title||"Hello"),a=A(()=>n.value.tagline===!1?!1:n.value.tagline||r.value.description||"Welcome to your VuePress site"),l=A(()=>n.value.heroImage?ht(n.value.heroImage):null),s=A(()=>n.value.heroImageDark?ht(n.value.heroImageDark):null),i=A(()=>n.value.heroAlt||o.value||"hero"),c=A(()=>n.value.actions??[]);return()=>{var u,f;return d("header",{class:"hero-info-wrapper"},[((u=t.heroImage)==null?void 0:u.call(t))||d(hn,{appear:!0,type:"group"},()=>[l.value?d("img",{key:"light",class:{light:s.value},src:l.value,alt:i.value}):null,s.value?d("img",{key:"dark",class:"dark",src:s.value,alt:i.value}):null]),((f=t.heroInfo)==null?void 0:f.call(t))??d("div",{class:"hero-info"},[o.value?d(hn,{appear:!0,delay:.04},()=>d("h1",{id:"main-title"},o.value)):null,a.value?d(hn,{appear:!0,delay:.08},()=>d("p",{class:"description"},a.value)):null,c.value.length?d(hn,{appear:!0,delay:.12},()=>d("p",{class:"actions"},c.value.map(p=>d(Ne,{class:["action-button",p.type||"default"],config:p,noExternalLinkIcon:!0})))):null])])}}}),Q1=B({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=ro(),r=Pe(),o=A(()=>{const{features:a}=r.value;return q(a)?a.some(l=>!("items"in l))?[{items:a}]:a:[]});return()=>{var a,l,s;return d("main",{class:["home project",{pure:n.value}],id:"main-content","aria-labelledby":r.value.heroText===null?void 0:"main-title"},[(a=t.top)==null?void 0:a.call(t),d(Y1),o.value.map(({header:i="",items:c},u)=>d(hn,{appear:!0,delay:.16+u*.08},()=>d(G1,{header:i,items:c}))),(l=t.center)==null?void 0:l.call(t),d(hn,{appear:!0,delay:.16+o.value.length*.08},()=>d(Xc)),(s=t.bottom)==null?void 0:s.call(t)])}}});const J1=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=va(t);return n.forEach((a,l)=>{l!==n.length-1?(o+=`${a}/`,r.push(o)):a!==""&&(o+=a,r.push(o))}),r};var X1=B({name:"BreadCrumb",setup(){const e=Je(),t=pe(),n=Lt(),r=Pe(),o=ge(),a=it([]),l=A(()=>(r.value.breadcrumb||r.value.breadcrumb!==!1&&o.value.breadcrumb!==!1)&&a.value.length>1),s=A(()=>r.value.breadcrumbIcon||r.value.breadcrumbIcon!==!1&&o.value.breadcrumbIcon!==!1),i=()=>{const c=e.getRoutes(),u=J1(t.value.path,n.value).map(f=>{const p=c.find(m=>m.path===f);if(p){const{meta:m,path:y}=ya(e,p.path),E=m[Et.shortTitle]||m[Et.title];if(E)return{title:E,icon:m[Et.icon],path:y}}return null}).filter(f=>f!==null);u.length>1&&(a.value=u)};return ve(()=>{i(),re(()=>t.value.path,i)}),()=>d("nav",{class:["breadcrumb",{disable:!l.value}]},l.value?d("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((c,u)=>d("li",{class:{"is-active":a.value.length-1===u},property:"itemListElement",typeof:"ListItem"},[d(Ot,{to:c.path,property:"item",typeof:"WebPage"},()=>[s.value?d(Qe,{icon:c.icon}):null,d("span",{property:"name"},c.title||"Unknown")]),d("meta",{property:"position",content:u+1})]))):[])}});const vs=e=>e===!1?!1:ae(e)?bn(e,!0):ma(e)?e:null,Uo=(e,t,n)=>{const r=e.findIndex(o=>o.link===t);if(r!==-1){const o=e[r+n];return o!=null&&o.link?o:null}for(const o of e)if(o.children){const a=Uo(o.children,t,n);if(a)return a}return null};var Z1=B({name:"PageNav",setup(){const e=ge(),t=Pe(),n=Ra(),r=pe(),o=e1(),a=A(()=>{const s=vs(t.value.prev);return s===!1?null:s||(e.value.prevLink===!1?null:Uo(n.value,r.value.path,-1))}),l=A(()=>{const s=vs(t.value.next);return s===!1?null:s||(e.value.nextLink===!1?null:Uo(n.value,r.value.path,1))});return xe("keydown",s=>{s.altKey&&(s.key==="ArrowRight"?l.value&&(o(l.value.link),s.preventDefault()):s.key==="ArrowLeft"&&a.value&&(o(a.value.link),s.preventDefault()))}),()=>a.value||l.value?d("nav",{class:"page-nav"},[a.value?d(Ne,{class:"prev",config:a.value},()=>{var s,i;return[d("div",{class:"hint"},[d("span",{class:"arrow start"}),e.value.metaLocales.prev]),d("div",{class:"link"},[d(Qe,{icon:(s=a.value)==null?void 0:s.icon}),(i=a.value)==null?void 0:i.text])]}):null,l.value?d(Ne,{class:"next",config:l.value},()=>{var s,i;return[d("div",{class:"hint"},[e.value.metaLocales.next,d("span",{class:"arrow end"})]),d("div",{class:"link"},[(s=l.value)==null?void 0:s.text,d(Qe,{icon:(i=l.value)==null?void 0:i.icon})])]}):null]):null}});const e0={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},t0=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const a=Gi(e);let l;return o?l=o:a!==null&&(l=e0[a]),l?l.replace(/:repo/,Dn(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Ai(`${va(n)}/${r}`)):null},n0=()=>{const e=ge(),t=pe(),n=Pe();return A(()=>{const{repo:r,docsRepo:o=r,docsBranch:a="main",docsDir:l="",editLink:s,editLinkPattern:i=""}=e.value;if(!(n.value.editLink??s??!0)||!o)return null;const c=t0({docsRepo:o,docsBranch:a,docsDir:l,editLinkPattern:i,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},r0=()=>{const e=Xr(),t=ge(),n=pe(),r=Pe();return A(()=>{var o,a;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((o=n.value.git)!=null&&o.updatedTime)?null:new Date((a=n.value.git)==null?void 0:a.updatedTime).toLocaleString(e.value.lang)})},o0=()=>{const e=ge(),t=pe(),n=Pe();return A(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})};var a0=B({name:"PageTitle",setup(){const e=pe(),t=Pe(),n=ge(),{info:r,items:o}=o1();return()=>d("div",{class:"page-title"},[d("h1",[n.value.titleIcon===!1?null:d(Qe,{icon:t.value.icon}),e.value.title]),d(H1,{info:r.value,...o.value===null?{}:{items:o.value}}),d("hr")])}});const uu=()=>d(we,{name:"edit"},()=>[d("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),d("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);uu.displayName="EditIcon";var l0=B({name:"PageMeta",setup(){const e=ge(),t=n0(),n=r0(),r=o0();return()=>{const{metaLocales:o}=e.value;return d("footer",{class:"page-meta"},[t.value?d("div",{class:"meta-item edit-link"},d(Ne,{class:"label",config:t.value},{before:()=>d(uu)})):null,d("div",{class:"meta-item git-info"},[n.value?d("div",{class:"update-time"},[d("span",{class:"label"},`${o.lastUpdated}: `),d(Zr,()=>d("span",{class:"info"},n.value))]):null,r.value&&r.value.length?d("div",{class:"contributors"},[d("span",{class:"label"},`${o.contributors}: `),r.value.map(({email:a,name:l},s)=>[d("span",{class:"contributor",title:`email: ${a}`},l),s!==r.value.length-1?",":""])]):null])])}}}),s0=B({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Pe(),r=pe(),{isDarkmode:o}=pr(),a=ge(),l=A(()=>n.value.toc||n.value.toc!==!1&&a.value.toc!==!1);return()=>d("main",{class:"page",id:"main-content"},d(pt("LocalEncrypt")?at("LocalEncrypt"):Mi,()=>{var s,i,c,u;return[(s=t.top)==null?void 0:s.call(t),n.value.cover?d("img",{class:"page-cover",src:ht(n.value.cover),alt:r.value.title,"no-view":""}):null,d(X1),d(a0),l.value?d(W1,{headerDepth:n.value.headerDepth??a.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(i=t.contentBefore)==null?void 0:i.call(t),d(Xc),(c=t.contentAfter)==null?void 0:c.call(t),d(l0),d(Z1),pt("CommentService")?d(at("CommentService"),{darkmode:o.value}):null,(u=t.bottom)==null?void 0:u.call(t)]}))}}),i0=B({name:"Layout",setup(){ge();const e=pe(),t=Pe(),{isMobile:n}=oo(),r=A(()=>"none");return()=>[d(iu),d(Jc,{},{default:()=>t.value.home?d(Q1):d(K1,()=>d(s0,{key:e.value.path})),...r.value!=="none"?{navScreenBottom:()=>d(at("BloggerInfo"))}:{},...!n.value&&r.value==="always"?{sidebar:()=>d(at("BloggerInfo"))}:{}})]}}),c0=B({name:"NotFoundHint",setup(){const e=ge(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>d("div",{class:"not-found-hint"},[d("p",{class:"error-code"},"404"),d("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),d("p",{class:"error-hint"},t())])}}),u0=B({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=Lt(),r=ge(),{navigate:o}=No({to:r.value.home??n.value});return()=>[d(iu),d(Jc,{noSidebar:!0},()=>{var a;return d("main",{class:"page not-found",id:"main-content"},((a=t.default)==null?void 0:a.call(t))||[d(c0),d("div",{class:"actions"},[d("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},r.value.routeLocales.back),d("button",{type:"button",class:"action-button",onClick:()=>o()},r.value.routeLocales.home)])])})]}});Wm(Qe);const d0=De({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await cu().wait(),n(...r)),s1(e)},setup:()=>{i1(),f1()},layouts:{Layout:i0,NotFound:u0}}),f0=e=>{const t=xe("keydown",n=>{const r=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!r||(n.preventDefault(),e(),t())})},p0=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,h0=()=>{const e=Je();return{hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:r=>{p0(r)||(r.preventDefault(),e.push(Al(t.url,"/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push(Al(t,"/"))}},transformSearchClient:t=>{const n=rc(t.search,500);return{...t,search:async(...r)=>n(...r)}}}},m0=(e=[],t)=>[`lang:${t}`,...q(e)?e:[e]],v0=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,g0=16,du=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(du,g0)},_0=e=>{const t="algolia-preconnect";(window.requestIdleCallback||setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const r=document.createElement("link");r.id=t,r.rel="preconnect",r.href=`https://${e}-dsn.algolia.net`,r.crossOrigin="",document.head.appendChild(r)})},b0={appId:"28CTGDOOQD",apiKey:"72d7a9a0f9f0466218ea19988886dce8",indexName:"hutao",locales:{"/zh/":{placeholder:"搜索文档",translations:{button:{buttonText:"搜索文档",buttonAriaLabel:"搜索文档"},modal:{searchBox:{resetButtonTitle:"清除查询条件",resetButtonAriaLabel:"清除查询条件",cancelButtonText:"取消",cancelButtonAriaLabel:"取消"},startScreen:{recentSearchesTitle:"搜索历史",noRecentSearchesText:"没有搜索历史",saveRecentSearchButtonTitle:"保存至搜索历史",removeRecentSearchButtonTitle:"从搜索历史中移除",favoriteSearchesTitle:"收藏",removeFavoriteSearchButtonTitle:"从收藏中移除"},errorScreen:{titleText:"无法获取结果",helpText:"你可能需要检查你的网络连接"},footer:{selectText:"选择",navigateText:"切换",closeText:"关闭",searchByText:"搜索提供者"},noResultsScreen:{noResultsText:"无法找到相关结果",suggestedQueryText:"你可以尝试查询",reportMissingResultsText:"你认为该查询应该有结果?",reportMissingResultsLinkText:"点击反馈"}}}},"/en/":{placeholder:"Search documents",translations:{button:{buttonText:"Search documents"}}}}};w(()=>import("./style-e9220a04.js"),[]),w(()=>import("./docsearch-1d421ddb.js"),[]);const y0=B({name:"Docsearch",props:{containerId:{type:String,required:!1,default:"docsearch-container"},options:{type:Object,required:!1,default:()=>b0}},setup(e){const t=h0(),n=Jr(),r=Lt(),o=G(!1),a=G(!1),l=A(()=>{var c;return{...e.options,...(c=e.options.locales)==null?void 0:c[r.value]}}),s=async()=>{var u;const{default:c}=await w(()=>import("./index-d20b7d60.js"),[]);c({...t,...l.value,container:`#${e.containerId}`,searchParameters:{...l.value.searchParameters,facetFilters:m0((u=l.value.searchParameters)==null?void 0:u.facetFilters,n.value)}}),o.value=!0},i=()=>{a.value||o.value||(a.value=!0,s(),du(),re(r,s))};return f0(i),ve(()=>_0(l.value.appId)),()=>{var c;return[d("div",{id:e.containerId,style:{display:o.value?"block":"none"}}),o.value?null:d("div",{onClick:i,innerHTML:v0((c=l.value.translations)==null?void 0:c.button)})]}}}),w0=De({enhance({app:e}){e.component("Docsearch",y0)}}),E0=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e.id}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),e.debug?gtag("config",e.id,{debug_mode:!0}):gtag("config",e.id)},T0={id:"G-F3LFJCE3RM"},O0=De({enhance(){E0(T0)}});const fu={autoLocale:!0,switchLocale:"modal",localeConfig:{0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},defaultLocale:"/en/",localeFallback:!0,defaultBehavior:"defaultLocale"},gs=eo(fu.localeConfig),_s={"/zh/":{name:"简体中文",hint:"您的首选语言是 $1,是否切换到该语言?",switch:"切换到 $1",cancel:"取消"},"/en/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"},"/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"}},{switchLocale:bs}=fu,ys=kh("VUEPRESS_REDIRECT_LOCALES",{});var A0=B({name:"LanguageSwitch",setup(){const e=Ah(),t=Xe(),n=Je(),r=Lt(),o=G(!1),a=A(()=>{if(gs.some(([c])=>r.value===c)){for(const c of e.value)for(const[u,f]of gs)if(f.includes(c))return u===r.value?null:{lang:c,localePath:u}}return null}),l=A(()=>{if(a.value){const{lang:c,localePath:u}=a.value,f=[_s[r.value],_s[u]];return{hint:f.map(({hint:p})=>p.replace("$1",c)),switch:f.map(({switch:p})=>p.replace("$1",c)).join(" / "),cancel:f.map(({cancel:p})=>p).join(" / ")}}return null}),s=A(()=>a.value?t.path.replace(r.value,a.value.localePath):null),i=()=>{ys.value[r.value]=!0,o.value=!1};return ve(()=>{const c=Pa(document.body);ys.value[r.value]||(a.value?bs==="direct"?n.replace(s.value):bs==="modal"?o.value=!0:o.value=!1:o.value=!1),re(o,u=>{c.value=u},{immediate:!0}),$n(()=>{c.value=!1})}),()=>o.value?d(Ei,{name:"lang-modal-fade"},()=>{var c,u,f;return o.value?[d("div",{key:"mask",class:"lang-modal-mask"}),d("div",{key:"popup",class:"lang-modal-wrapper"},[d("div",{class:"lang-modal-content"},(c=l.value)==null?void 0:c.hint.map(p=>d("p",p))),d("button",{type:"button",class:"lang-modal-action primary",onClick:()=>{i(),n.replace(s.value)}},(u=l.value)==null?void 0:u.switch),d("button",{type:"button",class:"lang-modal-action",onClick:()=>i()},(f=l.value)==null?void 0:f.cancel)])]:[]}):null}}),P0=De({setup(){},rootComponents:[A0]});const Lr=[wp,zh,Um,Ym,Xm,nv,sv,yv,kv,xv,Vv,qv,d0,w0,O0,P0],k0=[["v-2d0a870d","/en/",{y:"h",t:"Home",i:"home"},["/en/index.html","/en/README.md"]],["v-082946dd","/en/community.html",{y:"a",t:"Join Community",O:8},["/en/community","/en/community.md"]],["v-038e810e","/en/i18n.html",{y:"a",t:"Localization",O:7},["/en/i18n","/en/i18n.md"]],["v-ba407326","/en/menu.html",{y:"a",t:"Site Menu",I:0},["/en/menu","/en/menu.md"]],["v-586858ed","/en/project.html",{y:"a",t:"Project",O:6},["/en/project","/en/project.md"]],["v-0c01f6a4","/en/quick-start.html",{y:"a",t:"Quick Start",O:5},["/en/quick-start","/en/quick-start.md"]],["v-23b9870a","/en/side-load.html",{y:"a",t:""},["/en/side-load","/en/side-load.md"]],["v-7d29d7d8","/en/star-request.html",{y:"a",t:""},["/en/star-request","/en/star-request.md"]],["v-2d0ad528","/zh/",{y:"h",t:"首页",i:"home"},["/zh/index.html","/zh/README.md"]],["v-5cad49b8","/zh/community.html",{y:"a",t:"加入用户社区",O:8},["/zh/community","/zh/community.md"]],["v-27c4e153","/zh/i18n.html",{y:"a",t:"国际化支持",O:7},["/zh/i18n","/zh/i18n.md"]],["v-71d3b29c","/zh/menu.html",{y:"a",t:"全站目录",I:0},["/zh/menu","/zh/menu.md"]],["v-6c355688","/zh/project.html",{y:"a",t:"项目说明",O:6},["/zh/project","/zh/project.md"]],["v-4f90aebf","/zh/quick-start.html",{y:"a",t:"快速开始",O:5},["/zh/quick-start","/zh/quick-start.md"]],["v-783d89e5","/zh/side-load.html",{y:"a",t:""},["/zh/side-load","/zh/side-load.md"]],["v-a91bb9c6","/zh/star-request.html",{y:"a",t:""},["/zh/star-request","/zh/star-request.md"]],["v-1bd4ef83","/en/advanced/FAQ.html",{y:"a",t:"FAQ",i:"ask",O:1},["/en/advanced/FAQ","/en/advanced/FAQ.md"]],["v-5c3f740a","/en/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"read",O:7},["/en/advanced/Gacha-system-and-export-principal","/en/advanced/Gacha-system-and-export-principal.md"]],["v-5f449840","/en/advanced/",{y:"a",t:"Advanced",O:2},["/en/advanced/index.html","/en/advanced/README.md"]],["v-1a028d16","/en/advanced/exceptions.html",{y:"a",t:"Common Program Exceptions",i:"debug",O:2},["/en/advanced/exceptions","/en/advanced/exceptions.md"]],["v-bd668802","/en/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"read",O:6},["/en/advanced/get-stoken-cookie-from-the-third-party","/en/advanced/get-stoken-cookie-from-the-third-party.md"]],["v-51647c4a","/en/advanced/known-issue.html",{y:"a",t:"Known Issue",i:"tool",O:3},["/en/advanced/known-issue","/en/advanced/known-issue.md"]],["v-bbae7dd2","/en/advanced/uninstall.html",{y:"a",t:"Uninstall Snap Hutao",i:"delete",O:8},["/en/advanced/uninstall","/en/advanced/uninstall.md"]],["v-f88d343e","/en/development/",{y:"a",t:"Development",O:3},["/en/development/index.html","/en/development/README.md"]],["v-32bb1805","/en/development/platform.html",{y:"a",t:"Hutao Open Platform",i:"vscode",O:1},["/en/development/platform","/en/development/platform.md"]],["v-30f089b6","/en/features/",{y:"a",t:"Features",O:1},["/en/features/index.html","/en/features/README.md"]],["v-699a13b0","/en/features/achievements.html",{y:"a",t:"Achievement Management",O:4},["/en/features/achievements","/en/features/achievements.md"]],["v-f3692af4","/en/features/character-data.html",{y:"a",t:"My Characters",O:6},["/en/features/character-data","/en/features/character-data.md"]],["v-10108380","/en/features/character-wiki.html",{y:"a",t:"Character WIKI",O:9},["/en/features/character-wiki","/en/features/character-wiki.md"]],["v-36ceadac","/en/features/dashboard.html",{y:"a",t:"Home Dashboard",O:1},["/en/features/dashboard","/en/features/dashboard.md"]],["v-83f6294a","/en/features/develop-plan.html",{y:"a",t:"Development Plan",O:8},["/en/features/develop-plan","/en/features/develop-plan.md"]],["v-7839fe83","/en/features/game-launcher.html",{y:"a",t:"Game Launcher",O:2},["/en/features/game-launcher","/en/features/game-launcher.md"]],["v-0106e0dc","/en/features/hutao-API.html",{y:"a",t:"Hutao Database / Abyss Record",O:7},["/en/features/hutao-API","/en/features/hutao-API.md"]],["v-639b3ef9","/en/features/hutao-settings.html",{y:"a",t:"Software Settings",O:12},["/en/features/hutao-settings","/en/features/hutao-settings.md"]],["v-03aaffb1","/en/features/mhy-account-switch.html",{y:"a",t:"MiHoYo BBS Account Switch",O:11},["/en/features/mhy-account-switch","/en/features/mhy-account-switch.md"]],["v-124743a4","/en/features/real-time-notes.html",{y:"a",t:"Real-time Notes",O:5},["/en/features/real-time-notes","/en/features/real-time-notes.md"]],["v-e30b3c46","/en/features/weapon-wiki.html",{y:"a",t:"Weapon WIKI",O:10},["/en/features/weapon-wiki","/en/features/weapon-wiki.md"]],["v-b8e3a2b8","/en/features/wish-export.html",{y:"a",t:"Wish History",O:3},["/en/features/wish-export","/en/features/wish-export.md"]],["v-a4f9d2c4","/en/statements/",{y:"a",t:"Statements",O:4},["/en/statements/index.html","/en/statements/README.md"]],["v-45ceb024","/en/statements/bug-report.html",{y:"a",t:"Submit Bug Report",i:"debug",O:2},["/en/statements/bug-report","/en/statements/bug-report.md"]],["v-b4085a44","/en/statements/privacy-notice.html",{y:"a",t:"User Data and Privacy Notice",i:"license",O:3},["/en/statements/privacy-notice","/en/statements/privacy-notice.md"]],["v-b1c7a1c2","/en/statements/tos.html",{y:"a",t:"User Agreement and Legal Disclaime",i:"license",O:4},["/en/statements/tos","/en/statements/tos.md"]],["v-52f43e3b","/en/statements/update-log.html",{y:"a",t:"Update Logs",i:"update",O:1},["/en/statements/update-log","/en/statements/update-log.md"]],["v-4a1d3ac8","/zh/advanced/FAQ.html",{y:"a",t:"常见问题",i:"ask",O:1},["/zh/advanced/FAQ","/zh/advanced/FAQ.md"]],["v-b0dd6b00","/zh/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"read",O:7},["/zh/advanced/Gacha-system-and-export-principal","/zh/advanced/Gacha-system-and-export-principal.md"]],["v-16d7d7b6","/zh/advanced/",{y:"a",t:"高级",O:2},["/zh/advanced/index.html","/zh/advanced/README.md"]],["v-c8e5b2e0","/zh/advanced/exceptions.html",{y:"a",t:"常见的程序异常",i:"debug",O:2},["/zh/advanced/exceptions","/zh/advanced/exceptions.md"]],["v-6892c29a","/zh/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"read",O:6},["/zh/advanced/get-stoken-cookie-from-the-third-party","/zh/advanced/get-stoken-cookie-from-the-third-party.md"]],["v-8ab89ae2","/zh/advanced/known-issue.html",{y:"a",t:"已知问题",i:"tool",O:3},["/zh/advanced/known-issue","/zh/advanced/known-issue.md"]],["v-a04a76c8","/zh/advanced/uninstall.html",{y:"a",t:"卸载胡桃工具箱",i:"delete",O:8},["/zh/advanced/uninstall","/zh/advanced/uninstall.md"]],["v-d0f33908","/zh/development/",{y:"a",t:"开发",O:3},["/zh/development/index.html","/zh/development/README.md"]],["v-c80b636c","/zh/development/platform.html",{y:"a",t:"胡桃开放平台",i:"vscode",O:1},["/zh/development/platform","/zh/development/platform.md"]],["v-56d3ae80","/zh/development/symposium1.html",{y:"a",t:"第一期开发组座谈会",I:0},["/zh/development/symposium1","/zh/development/symposium1.md"]],["v-5369fd42","/zh/development/symposium2.html",{y:"a",t:"第二期开发组座谈会",I:0},["/zh/development/symposium2","/zh/development/symposium2.md"]],["v-0bbe1b6a","/zh/features/",{y:"a",t:"功能指南",O:1},["/zh/features/index.html","/zh/features/README.md"]],["v-2841a60b","/zh/features/achievements.html",{y:"a",t:"成就管理",O:4},["/zh/features/achievements","/zh/features/achievements.md"]],["v-3957d221","/zh/features/character-data.html",{y:"a",t:"属性统计",O:6},["/zh/features/character-data","/zh/features/character-data.md"]],["v-a9f7b44a","/zh/features/character-wiki.html",{y:"a",t:"角色资料",O:9},["/zh/features/character-wiki","/zh/features/character-wiki.md"]],["v-1b6aa6a2","/zh/features/dashboard.html",{y:"a",t:"首页仪表盘",O:1},["/zh/features/dashboard","/zh/features/dashboard.md"]],["v-7cac7db6","/zh/features/develop-plan.html",{y:"a",t:"养成计划",O:8},["/zh/features/develop-plan","/zh/features/develop-plan.md"]],["v-e2f690f0","/zh/features/game-launcher.html",{y:"a",t:"高级启动器",O:2},["/zh/features/game-launcher","/zh/features/game-launcher.md"]],["v-0eb8e461","/zh/features/hutao-API.html",{y:"a",t:"胡桃数据库/深渊统计",O:7},["/zh/features/hutao-API","/zh/features/hutao-API.md"]],["v-16a7a694","/zh/features/hutao-settings.html",{y:"a",t:"软件设置",O:12},["/zh/features/hutao-settings","/zh/features/hutao-settings.md"]],["v-04b421cc","/zh/features/mhy-account-switch.html",{y:"a",t:"米游社多帐号切换",O:11},["/zh/features/mhy-account-switch","/zh/features/mhy-account-switch.md"]],["v-b5462c1a","/zh/features/real-time-notes.html",{y:"a",t:"实时便笺",O:5},["/zh/features/real-time-notes","/zh/features/real-time-notes.md"]],["v-108ccfbc","/zh/features/weapon-wiki.html",{y:"a",t:"武器资料",O:10},["/zh/features/weapon-wiki","/zh/features/weapon-wiki.md"]],["v-0ccd64e9","/zh/features/wish-export.html",{y:"a",t:"祈愿记录",O:3},["/zh/features/wish-export","/zh/features/wish-export.md"]],["v-c4bb0cba","/zh/statements/",{y:"a",t:"声明和公告",O:4},["/zh/statements/index.html","/zh/statements/README.md"]],["v-c87f8b6e","/zh/statements/bug-report.html",{y:"a",t:"提交 BUG 报告",i:"debug",O:2},["/zh/statements/bug-report","/zh/statements/bug-report.md"]],["v-70e6808e","/zh/statements/privacy-notice.html",{y:"a",t:"用户数据和隐私权益",i:"license",O:3},["/zh/statements/privacy-notice","/zh/statements/privacy-notice.md"]],["v-647ebd24","/zh/statements/tos.html",{y:"a",t:"用户使用协议和法律声明",i:"license",O:4},["/zh/statements/tos","/zh/statements/tos.md"]],["v-119bd096","/zh/statements/update-log.html",{y:"a",t:"更新日志",i:"update",O:1},["/zh/statements/update-log","/zh/statements/update-log.md"]],["v-3706649a","/404.html",{y:"p",t:""},["/404"]],["v-8daa1a0e","/",{y:"p",t:"Home"},["/index.html"]]];var ws=B({name:"Vuepress",setup(){const e=gp();return()=>d(e.value)}}),L0=()=>k0.reduce((e,[t,n,r,o])=>(e.push({name:t,path:n,component:ws,meta:r},...o.map(a=>({path:a,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:ws}]),x0=tm,C0=()=>{const e=zm({history:x0(va("/")),routes:L0(),scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var r;(t.path!==n.path||n===bt)&&([Mt.value]=await Promise.all([_t.resolvePageData(t.name),(r=Pi[t.name])==null?void 0:r.__asyncLoader()]))}),e},I0=e=>{e.component("ClientOnly",Zr),e.component("Content",$i)},S0=(e,t,n)=>{const r=G(t.currentRoute.value.path);re(()=>t.currentRoute.value.path,p=>r.value=p);const o=A(()=>_t.resolveLayouts(n)),a=A(()=>_t.resolveRouteLocale(pn.value.locales,r.value)),l=A(()=>_t.resolveSiteLocaleData(pn.value,a.value)),s=A(()=>_t.resolvePageFrontmatter(Mt.value)),i=A(()=>_t.resolvePageHeadTitle(Mt.value,l.value)),c=A(()=>_t.resolvePageHead(i.value,s.value,l.value)),u=A(()=>_t.resolvePageLang(Mt.value)),f=A(()=>_t.resolvePageLayout(Mt.value,o.value));return e.provide(pp,o),e.provide(Li,s),e.provide(vp,i),e.provide(xi,c),e.provide(Ci,u),e.provide(Ii,f),e.provide(ga,a),e.provide(Ri,l),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>s.value},$head:{get:()=>c.value},$headTitle:{get:()=>i.value},$lang:{get:()=>u.value},$page:{get:()=>Mt.value},$routeLocale:{get:()=>a.value},$site:{get:()=>pn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>ht}}),{layouts:o,pageData:Mt,pageFrontmatter:s,pageHead:c,pageHeadTitle:i,pageLang:u,pageLayout:f,routeLocale:a,siteData:pn,siteLocaleData:l}},R0=()=>{const e=mp(),t=Jr(),n=G([]),r=()=>{e.value.forEach(a=>{const l=$0(a);l&&n.value.push(l)})},o=()=>{document.documentElement.lang=t.value,n.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),n.value.splice(0,n.value.length),e.value.forEach(a=>{const l=D0(a);l!==null&&(document.head.appendChild(l),n.value.push(l))})};Jt(_p,o),ve(()=>{r(),o(),re(()=>e.value,()=>o())})},$0=([e,t,n=""])=>{const r=Object.entries(t).map(([s,i])=>ae(i)?`[${s}=${JSON.stringify(i)}]`:i===!0?`[${s}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(s=>s.innerText===n)||null},D0=([e,t,n])=>{if(!ae(e))return null;const r=document.createElement(e);return ma(t)&&Object.entries(t).forEach(([o,a])=>{ae(a)?r.setAttribute(o,a):a===!0&&r.setAttribute(o,"")}),ae(n)&&r.appendChild(document.createTextNode(n)),r},M0=np,z0=async()=>{var n;const e=M0({name:"VuepressApp",setup(){var r;R0();for(const o of Lr)(r=o.setup)==null||r.call(o);return()=>[d(hc),...Lr.flatMap(({rootComponents:o=[]})=>o.map(a=>d(a)))]}}),t=C0();I0(e),S0(e,t,Lr);for(const r of Lr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:pn}));return e.use(t),{app:e,router:t}};z0().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Rn as A,V0 as B,U0 as C,wl as D,Te as E,He as F,W0 as G,xh as H,Jt as I,rn as J,G0 as K,q0 as L,di as a,fi as b,B0 as c,z0 as createVueApp,Oe as d,H0 as e,ve as f,B as g,G as h,re as i,ua as j,F0 as k,Ee as l,A as m,Yo as n,lf as o,j0 as p,cf as q,at as r,nt as s,N0 as t,K0 as u,Qo as v,wd as w,d as x,Oa as y,$n as z}; diff --git a/assets/bug-report.html-7d6347dc.js b/assets/bug-report.html-a5769e9d.js similarity index 97% rename from assets/bug-report.html-7d6347dc.js rename to assets/bug-report.html-a5769e9d.js index 7f4d91400..56c119d61 100644 --- a/assets/bug-report.html-7d6347dc.js +++ b/assets/bug-report.html-a5769e9d.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as r,a as e,b as t,d as o,w as d,e as c}from"./app-1a16ab73.js";const h={},p=c('

Submit Bug Report

opened-issue closed-issue

',3),m=e("li",null,"You can submit bug reports when you find reproducible issue that cannbot be fixed by youself",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},b=e("li",null,"If you are able to fix the issue from code, you are also welcome to make PRs directly.",-1),f=e("h3",{id:"client-issue",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#client-issue","aria-hidden":"true"},"#"),t(" Client Issue")],-1),g=e("p",null,"Check if the document already answered your issue",-1),S=e("li",null,"Make sure you are in the latest version",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},x=e("p",null,"Open Issue on QQ Support (zh-CN only)",-1),k={href:"https://support.qq.com/products/451231",target:"_blank",rel:"noopener noreferrer"},w=e("h3",{id:"request-new-or-update-document",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#request-new-or-update-document","aria-hidden":"true"},"#"),t(" Request New or Update Document")],-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function G(H,P){const s=n("ExternalLinkIcon"),u=n("RouterLink"),l=n("Badge");return i(),r("div",null,[p,e("ul",null,[m,e("li",null,[t("When submitting the issue, you should describe the problem in as much detail as you can.Screenshots of error should be attached if you have.This is help us to identify the issue faster. "),e("ul",null,[e("li",null,[t("A good example is "),e("a",_,[t("DGP-Studio/Snap.Hutao/issues/100"),o(s)])])])]),b]),f,e("ul",null,[e("li",null,[g,e("ul",null,[S,e("li",null,[t("You can check FAQ document in the sidebar "),e("ul",null,[e("li",null,[o(u,{to:"/en/advanced/FAQ.html"},{default:d(()=>[t("FAQ")]),_:1})])])])])]),e("li",null,[e("p",null,[t("Open an Issue "),o(l,{text:"Recommended",type:"tip"})]),e("ul",null,[e("li",null,[e("a",y,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),o(s)])])])]),e("li",null,[x,e("ul",null,[e("li",null,[e("a",k,[t("support.qq.com/products/451231"),o(s)])])])])]),w,e("ul",null,[e("li",null,[t("Open issue on GitHub: "),e("a",D,[t("DGP-Studio/Snap.Hutao.Docs"),o(s)])])])])}const v=a(h,[["render",G],["__file","bug-report.html.vue"]]);export{v as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as r,a as e,b as t,d as o,w as d,e as c}from"./app-dddc4fb8.js";const h={},p=c('

Submit Bug Report

opened-issue closed-issue

',3),m=e("li",null,"You can submit bug reports when you find reproducible issue that cannbot be fixed by youself",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},b=e("li",null,"If you are able to fix the issue from code, you are also welcome to make PRs directly.",-1),f=e("h3",{id:"client-issue",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#client-issue","aria-hidden":"true"},"#"),t(" Client Issue")],-1),g=e("p",null,"Check if the document already answered your issue",-1),S=e("li",null,"Make sure you are in the latest version",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},x=e("p",null,"Open Issue on QQ Support (zh-CN only)",-1),k={href:"https://support.qq.com/products/451231",target:"_blank",rel:"noopener noreferrer"},w=e("h3",{id:"request-new-or-update-document",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#request-new-or-update-document","aria-hidden":"true"},"#"),t(" Request New or Update Document")],-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function G(H,P){const s=n("ExternalLinkIcon"),u=n("RouterLink"),l=n("Badge");return i(),r("div",null,[p,e("ul",null,[m,e("li",null,[t("When submitting the issue, you should describe the problem in as much detail as you can.Screenshots of error should be attached if you have.This is help us to identify the issue faster. "),e("ul",null,[e("li",null,[t("A good example is "),e("a",_,[t("DGP-Studio/Snap.Hutao/issues/100"),o(s)])])])]),b]),f,e("ul",null,[e("li",null,[g,e("ul",null,[S,e("li",null,[t("You can check FAQ document in the sidebar "),e("ul",null,[e("li",null,[o(u,{to:"/en/advanced/FAQ.html"},{default:d(()=>[t("FAQ")]),_:1})])])])])]),e("li",null,[e("p",null,[t("Open an Issue "),o(l,{text:"Recommended",type:"tip"})]),e("ul",null,[e("li",null,[e("a",y,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),o(s)])])])]),e("li",null,[x,e("ul",null,[e("li",null,[e("a",k,[t("support.qq.com/products/451231"),o(s)])])])])]),w,e("ul",null,[e("li",null,[t("Open issue on GitHub: "),e("a",D,[t("DGP-Studio/Snap.Hutao.Docs"),o(s)])])])])}const v=a(h,[["render",G],["__file","bug-report.html.vue"]]);export{v as default}; diff --git a/assets/bug-report.html-310e0a0e.js b/assets/bug-report.html-c921e978.js similarity index 98% rename from assets/bug-report.html-310e0a0e.js rename to assets/bug-report.html-c921e978.js index a3865a34a..3e587fc50 100644 --- a/assets/bug-report.html-310e0a0e.js +++ b/assets/bug-report.html-c921e978.js @@ -1 +1 @@ -import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as d,a as e,b as t,d as o,w as a,e as c}from"./app-1a16ab73.js";const h={},_=c('

提交 BUG 报告

opened-issueclosed-issue

推荐方法

',3),p=e("li",null,"在你使用 Snap Hutao 时如果发现了可复现或不可自行修复的问题,可以通过提交问题反馈来告知开发者。",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},b={href:"https://www.bilibili.com/video/BV18T411z7R4",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[t("如果你有能力在代码层面修复该问题,也欢迎您直接在对应的项目中发起 PR。 "),e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01jXBMbe1g6du15k9kx_!!1797064093.jpg_.webp",alt:"suggestion",loading:"lazy"}),e("strong",null,"如果你是诚心希望解决问题,则应该在 Issue 中包含尽可能多的信息,比如说:你做了什么;看到了什么结果;程序有什么提示; 你查阅了哪篇文档;尝试了什么解决方案,结果是什么;你的设备 ID 是什么…… 当你愿意付出更多的时间在提供信息上,更大的可能获得一个准确的解决方案。 一两句话就结束的问题报告大多数不是有效的问题,只会被无视。")],-1),f=e("h3",{id:"客户端问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#客户端问题","aria-hidden":"true"},"#"),t(" 客户端问题")],-1),S=e("p",null,[e("strong",null,"在提交问题前,请务必检查文档内是否已包含了你的问题")],-1),x=e("li",null,"首先需要确认您使用的版本是否为最新版本",-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},D=e("h3",{id:"请求增加或更新文档",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#请求增加或更新文档","aria-hidden":"true"},"#"),t(" 请求增加或更新文档")],-1),G={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function H(w,P){const n=l("ExternalLinkIcon"),s=l("RouterLink"),i=l("Badge");return r(),d("div",null,[_,e("ul",null,[p,e("li",null,[t("在提交问题时,您应当尽可能地详细描述问题。如果有错误的截图,也应该提供。这有利于问题排查并加速问题修复。 "),e("ul",null,[e("li",null,[t("一个可以参考的非常正面的例子是 "),e("a",g,[t("DGP-Studio/Snap.Hutao/issues/100"),o(n)])]),e("li",null,[t("你也可以通过"),e("a",b,[t("这个视频"),o(n)]),t("来学习如何发起并管理你在开源项目中的 issue")])])]),m]),f,e("ul",null,[e("li",null,[S,e("ul",null,[x,e("li",null,[t("您可以通过菜单栏中的“常见问题”分类找到这些文档 "),e("ul",null,[e("li",null,[o(s,{to:"/zh/advanced/FAQ.html"},{default:a(()=>[t("常见问题")]),_:1})]),e("li",null,[o(s,{to:"/zh/advanced/known-issue.html"},{default:a(()=>[t("当前版本已知问题")]),_:1})])])])])]),e("li",null,[e("p",null,[t("通过 GitHub 提交问题 "),o(i,{text:"推荐",type:"tip"})]),e("ul",null,[e("li",null,[e("a",k,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),o(n)])])])])]),D,e("ul",null,[e("li",null,[t("通过 GitHub 提交问题:"),e("a",G,[t("DGP-Studio/Snap.Hutao.Docs"),o(n)])])])])}const y=u(h,[["render",H],["__file","bug-report.html.vue"]]);export{y as default}; +import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as d,a as e,b as t,d as o,w as a,e as c}from"./app-dddc4fb8.js";const h={},_=c('

提交 BUG 报告

opened-issueclosed-issue

推荐方法

',3),p=e("li",null,"在你使用 Snap Hutao 时如果发现了可复现或不可自行修复的问题,可以通过提交问题反馈来告知开发者。",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},b={href:"https://www.bilibili.com/video/BV18T411z7R4",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[t("如果你有能力在代码层面修复该问题,也欢迎您直接在对应的项目中发起 PR。 "),e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01jXBMbe1g6du15k9kx_!!1797064093.jpg_.webp",alt:"suggestion",loading:"lazy"}),e("strong",null,"如果你是诚心希望解决问题,则应该在 Issue 中包含尽可能多的信息,比如说:你做了什么;看到了什么结果;程序有什么提示; 你查阅了哪篇文档;尝试了什么解决方案,结果是什么;你的设备 ID 是什么…… 当你愿意付出更多的时间在提供信息上,更大的可能获得一个准确的解决方案。 一两句话就结束的问题报告大多数不是有效的问题,只会被无视。")],-1),f=e("h3",{id:"客户端问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#客户端问题","aria-hidden":"true"},"#"),t(" 客户端问题")],-1),S=e("p",null,[e("strong",null,"在提交问题前,请务必检查文档内是否已包含了你的问题")],-1),x=e("li",null,"首先需要确认您使用的版本是否为最新版本",-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},D=e("h3",{id:"请求增加或更新文档",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#请求增加或更新文档","aria-hidden":"true"},"#"),t(" 请求增加或更新文档")],-1),G={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function H(w,P){const n=l("ExternalLinkIcon"),s=l("RouterLink"),i=l("Badge");return r(),d("div",null,[_,e("ul",null,[p,e("li",null,[t("在提交问题时,您应当尽可能地详细描述问题。如果有错误的截图,也应该提供。这有利于问题排查并加速问题修复。 "),e("ul",null,[e("li",null,[t("一个可以参考的非常正面的例子是 "),e("a",g,[t("DGP-Studio/Snap.Hutao/issues/100"),o(n)])]),e("li",null,[t("你也可以通过"),e("a",b,[t("这个视频"),o(n)]),t("来学习如何发起并管理你在开源项目中的 issue")])])]),m]),f,e("ul",null,[e("li",null,[S,e("ul",null,[x,e("li",null,[t("您可以通过菜单栏中的“常见问题”分类找到这些文档 "),e("ul",null,[e("li",null,[o(s,{to:"/zh/advanced/FAQ.html"},{default:a(()=>[t("常见问题")]),_:1})]),e("li",null,[o(s,{to:"/zh/advanced/known-issue.html"},{default:a(()=>[t("当前版本已知问题")]),_:1})])])])])]),e("li",null,[e("p",null,[t("通过 GitHub 提交问题 "),o(i,{text:"推荐",type:"tip"})]),e("ul",null,[e("li",null,[e("a",k,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),o(n)])])])])]),D,e("ul",null,[e("li",null,[t("通过 GitHub 提交问题:"),e("a",G,[t("DGP-Studio/Snap.Hutao.Docs"),o(n)])])])])}const y=u(h,[["render",H],["__file","bug-report.html.vue"]]);export{y as default}; diff --git a/assets/character-data.html-c6df149c.js b/assets/character-data.html-37eb819e.js similarity index 98% rename from assets/character-data.html-c6df149c.js rename to assets/character-data.html-37eb819e.js index d565dc38f..947465770 100644 --- a/assets/character-data.html-c6df149c.js +++ b/assets/character-data.html-37eb819e.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as i,b as l,d as a,w as t,e as r}from"./app-1a16ab73.js";const s={},h=i("h1",{id:"属性统计",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#属性统计","aria-hidden":"true"},"#"),l(" 属性统计")],-1),u={class:"hint-container info"},p=i("p",{class:"hint-container-title"},"相关信息",-1),_=r('

属性统计,即主程序侧栏中的我的角色功能,可读取当前账号所拥有角色的具体数据,包括等级、命之座、武器、天赋、圣遗物等;并自动计算圣遗物评分和双爆评分

属性统计示例图

同步角色信息

从 Enka API 同步

同步特征

  • Enka API 同步游戏内角色橱窗中公开展示的角色的信息

    • 该同步方式包括圣遗物具体数据
    • 该同步方法包括角色着装信息
    • 该同步方式一次最多包含 8 个角色 :::
  • 在游戏中将角色橱窗设置为公开并添加需要获取详细资料的角色进入橱窗展示

    • 角色橱窗中最多可同时展示 8 个角色
  • 若您更换了橱窗内的角色或角色内的配置,需等待游戏内的数据同步至服务器

    • 开启功能和更换角色后需要最多 5 分钟同步数据
  • 进入胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

  • 点击从Enka API 同步

从 米游社我的角色 同步

同步特征

  • 米游社我的角色 同步的数据来源于米游社数据

    • 该同步方式不包含圣遗物信息
    • 该同步方式一次可同步全部角色信息 :::
  • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

  • 点击从米游社我的角色同步

从 米游社养成计算 同步

同步特征

  • 米游社养成计算 同步的数据来源于米游社养成计算数据

    • 该同步方式包含角色天赋等级信息
    • 该同步方式一次可同步全部角色信息
  • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息
  • 点击从米游社养成计算同步

将当前选定角色加入养成计算

  • 在胡桃工具箱的我的角色功能页面,点击切换至需要加入养成计算的角色的资料页面
  • 点击界面右上方的"养成计算"按钮,输入目标等级
    • 已同步数据的角色的当前角色等级、天赋等级会预填入其中,目标等级可自由更改

rolescal

  • 添加完毕后,您可在"养成计划"功能中查看"已添加的养成目标"

image

',11),m=i("h2",{id:"导出图片",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#导出图片","aria-hidden":"true"},"#"),l(" 导出图片")],-1),g=i("ul",null,[i("li",null,[l("在我的角色页面中,你可以在选择一个角色的情况下点击右上角的"),i("code",null,"导出图片"),l("按钮以将角色数据转化为图片形式,这将有助于你分享你的角色信息")]),i("li",null,"导出的图片储存在系统剪贴板中,你可以在合适的地方直接粘贴以获得该图片"),i("li",null,"导出图片样式如下图所示")],-1),f=i("p",null,[i("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png_.webp",alt:"sample-output-image",loading:"lazy"})],-1);function x(b,v){const e=o("RouterLink");return c(),d("div",null,[h,i("div",u,[p,i("p",null,[l("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(e,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[l("米游社多帐号切换")]),_:1}),l("文档")])]),_,i("ul",null,[i("li",null,[l("关于养成计划功能的详细说明,请见"),a(e,{to:"/zh/features/develop-plan.html"},{default:t(()=>[l("养成计划")]),_:1}),l("文档")])]),m,g,f])}const N=n(s,[["render",x],["__file","character-data.html.vue"]]);export{N as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as i,b as l,d as a,w as t,e as r}from"./app-dddc4fb8.js";const s={},h=i("h1",{id:"属性统计",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#属性统计","aria-hidden":"true"},"#"),l(" 属性统计")],-1),u={class:"hint-container info"},p=i("p",{class:"hint-container-title"},"相关信息",-1),_=r('

属性统计,即主程序侧栏中的我的角色功能,可读取当前账号所拥有角色的具体数据,包括等级、命之座、武器、天赋、圣遗物等;并自动计算圣遗物评分和双爆评分

属性统计示例图

同步角色信息

从 Enka API 同步

同步特征

  • Enka API 同步游戏内角色橱窗中公开展示的角色的信息

    • 该同步方式包括圣遗物具体数据
    • 该同步方法包括角色着装信息
    • 该同步方式一次最多包含 8 个角色 :::
  • 在游戏中将角色橱窗设置为公开并添加需要获取详细资料的角色进入橱窗展示

    • 角色橱窗中最多可同时展示 8 个角色
  • 若您更换了橱窗内的角色或角色内的配置,需等待游戏内的数据同步至服务器

    • 开启功能和更换角色后需要最多 5 分钟同步数据
  • 进入胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

  • 点击从Enka API 同步

从 米游社我的角色 同步

同步特征

  • 米游社我的角色 同步的数据来源于米游社数据

    • 该同步方式不包含圣遗物信息
    • 该同步方式一次可同步全部角色信息 :::
  • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

  • 点击从米游社我的角色同步

从 米游社养成计算 同步

同步特征

  • 米游社养成计算 同步的数据来源于米游社养成计算数据

    • 该同步方式包含角色天赋等级信息
    • 该同步方式一次可同步全部角色信息
  • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息
  • 点击从米游社养成计算同步

将当前选定角色加入养成计算

  • 在胡桃工具箱的我的角色功能页面,点击切换至需要加入养成计算的角色的资料页面
  • 点击界面右上方的"养成计算"按钮,输入目标等级
    • 已同步数据的角色的当前角色等级、天赋等级会预填入其中,目标等级可自由更改

rolescal

  • 添加完毕后,您可在"养成计划"功能中查看"已添加的养成目标"

image

',11),m=i("h2",{id:"导出图片",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#导出图片","aria-hidden":"true"},"#"),l(" 导出图片")],-1),g=i("ul",null,[i("li",null,[l("在我的角色页面中,你可以在选择一个角色的情况下点击右上角的"),i("code",null,"导出图片"),l("按钮以将角色数据转化为图片形式,这将有助于你分享你的角色信息")]),i("li",null,"导出的图片储存在系统剪贴板中,你可以在合适的地方直接粘贴以获得该图片"),i("li",null,"导出图片样式如下图所示")],-1),f=i("p",null,[i("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png_.webp",alt:"sample-output-image",loading:"lazy"})],-1);function x(b,v){const e=o("RouterLink");return c(),d("div",null,[h,i("div",u,[p,i("p",null,[l("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(e,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[l("米游社多帐号切换")]),_:1}),l("文档")])]),_,i("ul",null,[i("li",null,[l("关于养成计划功能的详细说明,请见"),a(e,{to:"/zh/features/develop-plan.html"},{default:t(()=>[l("养成计划")]),_:1}),l("文档")])]),m,g,f])}const N=n(s,[["render",x],["__file","character-data.html.vue"]]);export{N as default}; diff --git a/assets/character-data.html-e1b06baf.js b/assets/character-data.html-bcb1d08c.js similarity index 98% rename from assets/character-data.html-e1b06baf.js rename to assets/character-data.html-bcb1d08c.js index f3464ad53..f528c7b27 100644 --- a/assets/character-data.html-e1b06baf.js +++ b/assets/character-data.html-bcb1d08c.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as l,a as e,b as a,d as o,w as n,e as s}from"./app-1a16ab73.js";const d={},h=e("h1",{id:"my-characters",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#my-characters","aria-hidden":"true"},"#"),a(" My Characters")],-1),u={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=s('

My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

属性统计示例图

Sync Character Data

Sync from Enka API

Synchronous Feature

  • Enka API sync data from characters displayed in the in-game character showcase

    • Data includes Artifacts detail data, weapon detail data, talent data
    • Character costume
    • This sync method only support 8 characters at a time
  • In the game, put characters that you need detailed data into the showcase
    • The character showcase allows up to 8 characters at the same time
  • You need to wait for data sync to complete after editing the showcase configuration
    • You may need up to 5 minutes after enable the showcase or re-config the showcase
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from Enka API

Sync from MiHoYo BBS - My Characters

Synchronous Feature

  • Data in this sync method comes from My Characters feature in MiHoYo official BSS

    • This method does not contain any artifacts data
    • This method can sync all characters data at a time
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from MiHoYo BBS My Characters

Sync from MiHoYo BBS - Development Plan

Synchronous Feature

  • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

    • This sync method contains talent level data
    • This sync method can sync all characters data at a time
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from MiHoYo BBS Developement Plan

Add Selected Character to Development Plan

  • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
  • Click on Development Plan and enter target level
    • Synchronized data of the character will be pre-filled into current level, and you can change the target level

rolescal

  • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

image

',17),y=e("h2",{id:"export-as-image",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#export-as-image","aria-hidden":"true"},"#"),a(" Export as Image")],-1),f=e("ul",null,[e("li",null,[a("In "),e("code",null,"My Characters"),a(" page, you can select a character and then click "),e("code",null,"Export as Image"),a(" button to create image with your character's data, this will help you to share your character's data")]),e("li",null,"The exported image is stored in your clipboard, and you can paste it wherever you need"),e("li",null,"A sample exported image is shown below")],-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png",alt:"sample-output-image",loading:"lazy"})],-1);function S(_,v){const t=i("RouterLink");return r(),l("div",null,[h,e("div",u,[p,e("p",null,[a("This features required sign in to MiHoYo BBS account, please refer to "),o(t,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[a("MiHoYo BBS Account Switch")]),_:1}),a(" document for sign in tutorial")])]),m,e("ul",null,[e("li",null,[a("For tutorial of Dev Plan feature, please refer to "),o(t,{to:"/en/features/develop-plan.html"},{default:n(()=>[a("Dev Plan")]),_:1}),a(" document")])]),y,f,g])}const w=c(d,[["render",S],["__file","character-data.html.vue"]]);export{w as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as l,a as e,b as a,d as o,w as n,e as s}from"./app-dddc4fb8.js";const d={},h=e("h1",{id:"my-characters",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#my-characters","aria-hidden":"true"},"#"),a(" My Characters")],-1),u={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=s('

My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

属性统计示例图

Sync Character Data

Sync from Enka API

Synchronous Feature

  • Enka API sync data from characters displayed in the in-game character showcase

    • Data includes Artifacts detail data, weapon detail data, talent data
    • Character costume
    • This sync method only support 8 characters at a time
  • In the game, put characters that you need detailed data into the showcase
    • The character showcase allows up to 8 characters at the same time
  • You need to wait for data sync to complete after editing the showcase configuration
    • You may need up to 5 minutes after enable the showcase or re-config the showcase
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from Enka API

Sync from MiHoYo BBS - My Characters

Synchronous Feature

  • Data in this sync method comes from My Characters feature in MiHoYo official BSS

    • This method does not contain any artifacts data
    • This method can sync all characters data at a time
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from MiHoYo BBS My Characters

Sync from MiHoYo BBS - Development Plan

Synchronous Feature

  • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

    • This sync method contains talent level data
    • This sync method can sync all characters data at a time
  • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
  • Select Sync from MiHoYo BBS Developement Plan

Add Selected Character to Development Plan

  • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
  • Click on Development Plan and enter target level
    • Synchronized data of the character will be pre-filled into current level, and you can change the target level

rolescal

  • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

image

',17),y=e("h2",{id:"export-as-image",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#export-as-image","aria-hidden":"true"},"#"),a(" Export as Image")],-1),f=e("ul",null,[e("li",null,[a("In "),e("code",null,"My Characters"),a(" page, you can select a character and then click "),e("code",null,"Export as Image"),a(" button to create image with your character's data, this will help you to share your character's data")]),e("li",null,"The exported image is stored in your clipboard, and you can paste it wherever you need"),e("li",null,"A sample exported image is shown below")],-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png",alt:"sample-output-image",loading:"lazy"})],-1);function S(_,v){const t=i("RouterLink");return r(),l("div",null,[h,e("div",u,[p,e("p",null,[a("This features required sign in to MiHoYo BBS account, please refer to "),o(t,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[a("MiHoYo BBS Account Switch")]),_:1}),a(" document for sign in tutorial")])]),m,e("ul",null,[e("li",null,[a("For tutorial of Dev Plan feature, please refer to "),o(t,{to:"/en/features/develop-plan.html"},{default:n(()=>[a("Dev Plan")]),_:1}),a(" document")])]),y,f,g])}const w=c(d,[["render",S],["__file","character-data.html.vue"]]);export{w as default}; diff --git a/assets/character-wiki.html-a47450c4.js b/assets/character-wiki.html-05003755.js similarity index 94% rename from assets/character-wiki.html-a47450c4.js rename to assets/character-wiki.html-05003755.js index b95d56143..b8f6a6246 100644 --- a/assets/character-wiki.html-a47450c4.js +++ b/assets/character-wiki.html-05003755.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c,a,b as e,d as o,w as n,e as d}from"./app-1a16ab73.js";const h={},s=d('

Character WIKI

characters-wiki

Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

Included Data

  • Character list
    • Use the icon above the list, you can change the view between list and grid
    • Click on character's icon or title, and you will be directed to its WIKI page
  • Character information
    • Character information
      • Introduction of the character
      • Numerical attributes value at each level
      • Attributes
  • Talent
    • Introduction
    • Numerical talent value at each level
  • Constellation
  • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
  • Other information
    • Character tachie
    • Special food
    • Costume
    • Character stories

Add to Dev Plan

',6),u=a("code",null,"Dev Plan",-1),m=a("li",null,[e("The new plan will set the base level as "),a("code",null,"1")],-1);function f(p,_){const t=l("RouterLink");return r(),c("div",null,[s,a("ul",null,[a("li",null,[e("At character WIKI page, you can select character and click on "),u,e(" on the top right to add it to your Dev Plan "),a("ul",null,[m,a("li",null,[e("If you want to make new Dev Plan based on character you already have, you can try "),o(t,{to:"/en/features/character-data.html"},{default:n(()=>[e("My Character")]),_:1}),e(" feature")])])])])])}const b=i(h,[["render",f],["__file","character-wiki.html.vue"]]);export{b as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c,a,b as e,d as o,w as n,e as d}from"./app-dddc4fb8.js";const h={},s=d('

Character WIKI

characters-wiki

Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

Included Data

  • Character list
    • Use the icon above the list, you can change the view between list and grid
    • Click on character's icon or title, and you will be directed to its WIKI page
  • Character information
    • Character information
      • Introduction of the character
      • Numerical attributes value at each level
      • Attributes
  • Talent
    • Introduction
    • Numerical talent value at each level
  • Constellation
  • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
  • Other information
    • Character tachie
    • Special food
    • Costume
    • Character stories

Add to Dev Plan

',6),u=a("code",null,"Dev Plan",-1),m=a("li",null,[e("The new plan will set the base level as "),a("code",null,"1")],-1);function f(p,_){const t=l("RouterLink");return r(),c("div",null,[s,a("ul",null,[a("li",null,[e("At character WIKI page, you can select character and click on "),u,e(" on the top right to add it to your Dev Plan "),a("ul",null,[m,a("li",null,[e("If you want to make new Dev Plan based on character you already have, you can try "),o(t,{to:"/en/features/character-data.html"},{default:n(()=>[e("My Character")]),_:1}),e(" feature")])])])])])}const b=i(h,[["render",f],["__file","character-wiki.html.vue"]]);export{b as default}; diff --git a/assets/character-wiki.html-eaa1cab6.js b/assets/character-wiki.html-bff675d5.js similarity index 97% rename from assets/character-wiki.html-eaa1cab6.js rename to assets/character-wiki.html-bff675d5.js index ecacaa262..a4719b042 100644 --- a/assets/character-wiki.html-eaa1cab6.js +++ b/assets/character-wiki.html-bff675d5.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as o,a as l,b as i,d as c,w as n,e as u}from"./app-1a16ab73.js";const s={},d=u('

角色资料

characters-wiki

角色资料是胡桃工具箱中内置的用于查询各个角色的基础信息、天赋数值、命之座、培养材料等数据的 wiki

已包含的数据

  • 角色列表
    • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
    • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
  • 数据内容
    • 角色基本信息
      • 介绍
      • 各等级下的数值
      • 属性
  • 天赋
    • 基本介绍
    • 可切换至对应等级天赋的各项数值
  • 命之座
  • 根据"胡桃数据库"的统计信息而展示的角色队伍搭配、武器搭配以及圣遗物搭配的相关推荐
  • 其他信息
    • 角色立绘
    • 特色料理
    • 衣装信息
    • 角色资料
    • 角色故事

添加至养成计划

',6),h=l("code",null,"养成计算",-1),_=l("li",null,"该养成计划将默认从角色 1 级开始培养",-1);function m(p,f){const e=t("RouterLink");return r(),o("div",null,[d,l("ul",null,[l("li",null,[i("在角色资料页面,你可以在选定角色后,点击右上角的"),h,i("按钮来将该角色添加至你的养成计划中 "),l("ul",null,[_,l("li",null,[i("如果你需要基于当前已有的角色创建养成计划,可以使用"),c(e,{to:"/zh/features/character-data.html"},{default:n(()=>[i("我的角色")]),_:1}),i("功能")])])])])])}const k=a(s,[["render",m],["__file","character-wiki.html.vue"]]);export{k as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as o,a as l,b as i,d as c,w as n,e as u}from"./app-dddc4fb8.js";const s={},d=u('

角色资料

characters-wiki

角色资料是胡桃工具箱中内置的用于查询各个角色的基础信息、天赋数值、命之座、培养材料等数据的 wiki

已包含的数据

  • 角色列表
    • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
    • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
  • 数据内容
    • 角色基本信息
      • 介绍
      • 各等级下的数值
      • 属性
  • 天赋
    • 基本介绍
    • 可切换至对应等级天赋的各项数值
  • 命之座
  • 根据"胡桃数据库"的统计信息而展示的角色队伍搭配、武器搭配以及圣遗物搭配的相关推荐
  • 其他信息
    • 角色立绘
    • 特色料理
    • 衣装信息
    • 角色资料
    • 角色故事

添加至养成计划

',6),h=l("code",null,"养成计算",-1),_=l("li",null,"该养成计划将默认从角色 1 级开始培养",-1);function m(p,f){const e=t("RouterLink");return r(),o("div",null,[d,l("ul",null,[l("li",null,[i("在角色资料页面,你可以在选定角色后,点击右上角的"),h,i("按钮来将该角色添加至你的养成计划中 "),l("ul",null,[_,l("li",null,[i("如果你需要基于当前已有的角色创建养成计划,可以使用"),c(e,{to:"/zh/features/character-data.html"},{default:n(()=>[i("我的角色")]),_:1}),i("功能")])])])])])}const k=a(s,[["render",m],["__file","character-wiki.html.vue"]]);export{k as default}; diff --git a/assets/community.html-9c40a227.js b/assets/community.html-38c7becc.js similarity index 98% rename from assets/community.html-9c40a227.js rename to assets/community.html-38c7becc.js index 67043b5fe..16e28e6b3 100644 --- a/assets/community.html-9c40a227.js +++ b/assets/community.html-38c7becc.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as s,c as i,a as o,b as t,d as n}from"./app-1a16ab73.js";const l={},u=o("h1",{id:"join-community",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#join-community","aria-hidden":"true"},"#"),t(" Join Community")],-1),c=o("p",null,"As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.",-1),h=o("p",null,[o("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},p=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=o("li",null,[t("Rate our App on "),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),f=o("li",null,"Promote our project in your network",-1),b=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t(),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),y=o("h2",{id:"github-discussion",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#github-discussion","aria-hidden":"true"},"#"),t(" GitHub Discussion")],-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},k=o("h2",{id:"qq-group-cn",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#qq-group-cn","aria-hidden":"true"},"#"),t(" QQ Group (CN)")],-1),G={href:"https://go.hut.ao/qun1",target:"_blank",rel:"noopener noreferrer"},H={href:"https://go.hut.ao/qun5",target:"_blank",rel:"noopener noreferrer"},D={href:"https://go.hut.ao/qun2",target:"_blank",rel:"noopener noreferrer"},v={href:"https://go.hut.ao/qun3",target:"_blank",rel:"noopener noreferrer"},w={href:"https://go.hut.ao/qun4",target:"_blank",rel:"noopener noreferrer"},P=o("em",null,"Snap Developer Open Discussion Group",-1),q=o("li",null,"General tech talk, not Snap Hutao Project development group",-1),x=o("li",null,"The Dev group requires some basic tech knowledge",-1),j={href:"https://dev-group.hut.ao",target:"_blank",rel:"noopener noreferrer"},N=o("h2",{id:"discord",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#"),t(" Discord")],-1),I={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function z(C,B){const e=a("ExternalLinkIcon");return s(),i("div",null,[u,c,h,o("ul",null,[o("li",null,[t("Star our project on GitHub ⭐ "),o("ul",null,[o("li",null,[o("a",d,[t("Snap.Hutao"),n(e)]),t(),p]),o("li",null,[o("a",_,[t("Snap.Hutao.Docs"),n(e)]),t(),g])])]),m,f]),b,y,o("p",null,[o("a",S,[t("Snap.Hutao Discussion"),n(e)])]),k,o("ul",null,[o("li",null,[o("a",G,[t("Snap Group #1"),n(e)])]),o("li",null,[o("a",H,[t("Snap Group #5"),n(e)])]),o("li",null,[o("a",D,[t("Snap Group #2"),n(e)])]),o("li",null,[o("a",v,[t("Snap Group #3"),n(e)])]),o("li",null,[o("a",w,[t("Snap Group #4"),n(e)])]),o("li",null,[P,o("ul",null,[q,x,o("li",null,[t("You can join via "),o("a",j,[t("https://dev-group.hut.ao"),n(e)]),t(" if you are interested to join")])])])]),N,o("p",null,[t("Invite link:"),o("a",I,[t("https://discord.gg/Yb8bykUKp"),n(e)])])])}const L=r(l,[["render",z],["__file","community.html.vue"]]);export{L as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as s,c as i,a as o,b as t,d as n}from"./app-dddc4fb8.js";const l={},u=o("h1",{id:"join-community",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#join-community","aria-hidden":"true"},"#"),t(" Join Community")],-1),c=o("p",null,"As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.",-1),h=o("p",null,[o("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},p=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=o("li",null,[t("Rate our App on "),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),f=o("li",null,"Promote our project in your network",-1),b=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t(),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),y=o("h2",{id:"github-discussion",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#github-discussion","aria-hidden":"true"},"#"),t(" GitHub Discussion")],-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},k=o("h2",{id:"qq-group-cn",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#qq-group-cn","aria-hidden":"true"},"#"),t(" QQ Group (CN)")],-1),G={href:"https://go.hut.ao/qun1",target:"_blank",rel:"noopener noreferrer"},H={href:"https://go.hut.ao/qun5",target:"_blank",rel:"noopener noreferrer"},D={href:"https://go.hut.ao/qun2",target:"_blank",rel:"noopener noreferrer"},v={href:"https://go.hut.ao/qun3",target:"_blank",rel:"noopener noreferrer"},w={href:"https://go.hut.ao/qun4",target:"_blank",rel:"noopener noreferrer"},P=o("em",null,"Snap Developer Open Discussion Group",-1),q=o("li",null,"General tech talk, not Snap Hutao Project development group",-1),x=o("li",null,"The Dev group requires some basic tech knowledge",-1),j={href:"https://dev-group.hut.ao",target:"_blank",rel:"noopener noreferrer"},N=o("h2",{id:"discord",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#"),t(" Discord")],-1),I={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function z(C,B){const e=a("ExternalLinkIcon");return s(),i("div",null,[u,c,h,o("ul",null,[o("li",null,[t("Star our project on GitHub ⭐ "),o("ul",null,[o("li",null,[o("a",d,[t("Snap.Hutao"),n(e)]),t(),p]),o("li",null,[o("a",_,[t("Snap.Hutao.Docs"),n(e)]),t(),g])])]),m,f]),b,y,o("p",null,[o("a",S,[t("Snap.Hutao Discussion"),n(e)])]),k,o("ul",null,[o("li",null,[o("a",G,[t("Snap Group #1"),n(e)])]),o("li",null,[o("a",H,[t("Snap Group #5"),n(e)])]),o("li",null,[o("a",D,[t("Snap Group #2"),n(e)])]),o("li",null,[o("a",v,[t("Snap Group #3"),n(e)])]),o("li",null,[o("a",w,[t("Snap Group #4"),n(e)])]),o("li",null,[P,o("ul",null,[q,x,o("li",null,[t("You can join via "),o("a",j,[t("https://dev-group.hut.ao"),n(e)]),t(" if you are interested to join")])])])]),N,o("p",null,[t("Invite link:"),o("a",I,[t("https://discord.gg/Yb8bykUKp"),n(e)])])])}const L=r(l,[["render",z],["__file","community.html.vue"]]);export{L as default}; diff --git a/assets/community.html-5ef2320d.js b/assets/community.html-5d989c81.js similarity index 98% rename from assets/community.html-5ef2320d.js rename to assets/community.html-5d989c81.js index e99ac4a79..c58603152 100644 --- a/assets/community.html-5ef2320d.js +++ b/assets/community.html-5d989c81.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as l,c as s,a as t,b as e,d as n}from"./app-1a16ab73.js";const i={},h=t("h1",{id:"加入用户社区",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#加入用户社区","aria-hidden":"true"},"#"),e(" 加入用户社区")],-1),u=t("p",null,"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。",-1),d=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[e("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),e("上给出好评")],-1),f=t("li",null,"在更多的地方帮助我们宣传",-1),b=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),S=t("h2",{id:"github-讨论",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#github-讨论","aria-hidden":"true"},"#"),e(" GitHub 讨论")],-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},y=t("h2",{id:"qq-群",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#qq-群","aria-hidden":"true"},"#"),e(" QQ 群")],-1),H={href:"https://go.hut.ao/qun1",target:"_blank",rel:"noopener noreferrer"},D={href:"https://go.hut.ao/qun5",target:"_blank",rel:"noopener noreferrer"},x={href:"https://go.hut.ao/qun2",target:"_blank",rel:"noopener noreferrer"},q={href:"https://go.hut.ao/qun3",target:"_blank",rel:"noopener noreferrer"},G={href:"https://go.hut.ao/qun4",target:"_blank",rel:"noopener noreferrer"},P=t("em",null,"Snap 开发交流群",-1),v=t("li",null,"广泛的技术交流群,并非胡桃工具箱开发群",-1),N=t("li",null,"开发群对申请者的技术水平有一定要求",-1),z={href:"https://dev-group.hut.ao",target:"_blank",rel:"noopener noreferrer"},w=t("h2",{id:"discord",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#"),e(" Discord")],-1),B={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function E(I,L){const o=a("ExternalLinkIcon");return l(),s("div",null,[h,u,d,t("ul",null,[t("li",null,[e("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",c,[e("Snap.Hutao"),n(o)]),e(),_]),t("li",null,[t("a",p,[e("Snap.Hutao.Docs"),n(o)]),e(),g])])]),m,f]),b,S,t("p",null,[t("a",k,[e("Snap.Hutao Discussion"),n(o)])]),y,t("ul",null,[t("li",null,[t("a",H,[e("Snap 一群"),n(o)])]),t("li",null,[t("a",D,[e("Snap 五群"),n(o)])]),t("li",null,[t("a",x,[e("Snap 二群"),n(o)])]),t("li",null,[t("a",q,[e("Snap 三群"),n(o)])]),t("li",null,[t("a",G,[e("Snap 四群"),n(o)])]),t("li",null,[P,t("ul",null,[v,N,t("li",null,[e("如果你有兴趣可以从"),t("a",z,[e("dev-group.hut.ao"),n(o)]),e("加入开发者交流群")])])])]),w,t("p",null,[e("邀请链接:"),t("a",B,[e("https://discord.gg/Yb8bykaUKp"),n(o)])])])}const J=r(i,[["render",E],["__file","community.html.vue"]]);export{J as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as l,c as s,a as t,b as e,d as n}from"./app-dddc4fb8.js";const i={},h=t("h1",{id:"加入用户社区",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#加入用户社区","aria-hidden":"true"},"#"),e(" 加入用户社区")],-1),u=t("p",null,"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。",-1),d=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[e("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),e("上给出好评")],-1),f=t("li",null,"在更多的地方帮助我们宣传",-1),b=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),S=t("h2",{id:"github-讨论",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#github-讨论","aria-hidden":"true"},"#"),e(" GitHub 讨论")],-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},y=t("h2",{id:"qq-群",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#qq-群","aria-hidden":"true"},"#"),e(" QQ 群")],-1),H={href:"https://go.hut.ao/qun1",target:"_blank",rel:"noopener noreferrer"},D={href:"https://go.hut.ao/qun5",target:"_blank",rel:"noopener noreferrer"},x={href:"https://go.hut.ao/qun2",target:"_blank",rel:"noopener noreferrer"},q={href:"https://go.hut.ao/qun3",target:"_blank",rel:"noopener noreferrer"},G={href:"https://go.hut.ao/qun4",target:"_blank",rel:"noopener noreferrer"},P=t("em",null,"Snap 开发交流群",-1),v=t("li",null,"广泛的技术交流群,并非胡桃工具箱开发群",-1),N=t("li",null,"开发群对申请者的技术水平有一定要求",-1),z={href:"https://dev-group.hut.ao",target:"_blank",rel:"noopener noreferrer"},w=t("h2",{id:"discord",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#"),e(" Discord")],-1),B={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function E(I,L){const o=a("ExternalLinkIcon");return l(),s("div",null,[h,u,d,t("ul",null,[t("li",null,[e("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",c,[e("Snap.Hutao"),n(o)]),e(),_]),t("li",null,[t("a",p,[e("Snap.Hutao.Docs"),n(o)]),e(),g])])]),m,f]),b,S,t("p",null,[t("a",k,[e("Snap.Hutao Discussion"),n(o)])]),y,t("ul",null,[t("li",null,[t("a",H,[e("Snap 一群"),n(o)])]),t("li",null,[t("a",D,[e("Snap 五群"),n(o)])]),t("li",null,[t("a",x,[e("Snap 二群"),n(o)])]),t("li",null,[t("a",q,[e("Snap 三群"),n(o)])]),t("li",null,[t("a",G,[e("Snap 四群"),n(o)])]),t("li",null,[P,t("ul",null,[v,N,t("li",null,[e("如果你有兴趣可以从"),t("a",z,[e("dev-group.hut.ao"),n(o)]),e("加入开发者交流群")])])])]),w,t("p",null,[e("邀请链接:"),t("a",B,[e("https://discord.gg/Yb8bykaUKp"),n(o)])])])}const J=r(i,[["render",E],["__file","community.html.vue"]]);export{J as default}; diff --git a/assets/component-f5334886.js b/assets/component-0205f978.js similarity index 99% rename from assets/component-f5334886.js rename to assets/component-0205f978.js index 6fe61bcdd..566c95035 100644 --- a/assets/component-f5334886.js +++ b/assets/component-0205f978.js @@ -1,4 +1,4 @@ -var an=Object.defineProperty;var rn=(l,t,n)=>t in l?an(l,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[t]=n;var wt=(l,t,n)=>(rn(l,typeof t!="symbol"?t+"":t,n),n);import{a as _,g as Ne,h as U,f as tt,i as me,j as sn,o as m,c as w,F as te,k as se,n as yt,l as pt,u as on,m as Y,r as cn,p as j,q as ve,s as T,t as M,v as J,d as ee,x as N,y as Le,z as ht,A as un,B as Ze,C as pn,D as hn,E as dn,G as bt,b as Ce,H as gn,I as fn,J as mn,K as vn,L as kn}from"./app-1a16ab73.js";var Be=new Map;function wn(l){var t=Be.get(l);t&&t.destroy()}function yn(l){var t=Be.get(l);t&&t.update()}var De=null;typeof window>"u"?((De=function(l){return l}).destroy=function(l){return l},De.update=function(l){return l}):((De=function(l,t){return l&&Array.prototype.forEach.call(l.length?l:[l],function(n){return function(e){if(e&&e.nodeName&&e.nodeName==="TEXTAREA"&&!Be.has(e)){var i,a=null,r=window.getComputedStyle(e),s=(i=e.value,function(){d({testForHeightReduction:i===""||!e.value.startsWith(i),restoreTextAlign:null}),i=e.value}),u=function(p){e.removeEventListener("autosize:destroy",u),e.removeEventListener("autosize:update",c),e.removeEventListener("input",s),window.removeEventListener("resize",c),Object.keys(p).forEach(function(g){return e.style[g]=p[g]}),Be.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",u),e.addEventListener("autosize:update",c),e.addEventListener("input",s),window.addEventListener("resize",c),e.style.overflowX="hidden",e.style.wordWrap="break-word",Be.set(e,{destroy:u,update:c}),c()}function d(p){var g,h,E=p.restoreTextAlign,o=E===void 0?null:E,f=p.testForHeightReduction,R=f===void 0||f,z=r.overflowY;if(e.scrollHeight!==0&&(r.resize==="vertical"?e.style.resize="none":r.resize==="both"&&(e.style.resize="horizontal"),R&&(g=function($){for(var V=[];$&&$.parentNode&&$.parentNode instanceof Element;)$.parentNode.scrollTop&&V.push([$.parentNode,$.parentNode.scrollTop]),$=$.parentNode;return function(){return V.forEach(function(O){var P=O[0],ie=O[1];P.style.scrollBehavior="auto",P.scrollTop=ie,P.style.scrollBehavior=null})}}(e),e.style.height=""),h=r.boxSizing==="content-box"?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),r.maxHeight!=="none"&&h>parseFloat(r.maxHeight)?(r.overflowY==="hidden"&&(e.style.overflow="scroll"),h=parseFloat(r.maxHeight)):r.overflowY!=="hidden"&&(e.style.overflow="hidden"),e.style.height=h+"px",o&&(e.style.textAlign=o),g&&g(),a!==h&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),a=h),z!==r.overflow&&!o)){var I=r.textAlign;r.overflow==="hidden"&&(e.style.textAlign=I==="start"?"end":"start"),d({restoreTextAlign:I,testForHeightReduction:!0})}}function c(){d({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),l}).destroy=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],wn),l},De.update=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],yn),l});var xt=De;function Vt(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let _e=Vt();function bn(l){_e=l}const Ft=/[&<>"']/,xn=new RegExp(Ft.source,"g"),Wt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,$n=new RegExp(Wt.source,"g"),Cn={"&":"&","<":"<",">":">",'"':""","'":"'"},$t=l=>Cn[l];function X(l,t){if(t){if(Ft.test(l))return l.replace(xn,$t)}else if(Wt.test(l))return l.replace($n,$t);return l}const _n=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function qt(l){return l.replace(_n,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const zn=/(^|[^\[])\^/g;function W(l,t){l=typeof l=="string"?l:l.source,t=t||"";const n={replace:(e,i)=>(i=i.source||i,i=i.replace(zn,"$1"),l=l.replace(e,i),n),getRegex:()=>new RegExp(l,t)};return n}const Rn=/[^\w:]/g,Sn=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ct(l,t,n){if(l){let e;try{e=decodeURIComponent(qt(n)).replace(Rn,"").toLowerCase()}catch{return null}if(e.indexOf("javascript:")===0||e.indexOf("vbscript:")===0||e.indexOf("data:")===0)return null}t&&!Sn.test(n)&&(n=An(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ke={},Ln=/^[^:]+:\/*[^/]*$/,In=/^([^:]+:)[\s\S]*$/,En=/^([^:]+:\/*[^/]*)[\s\S]*$/;function An(l,t){Ke[" "+l]||(Ln.test(l)?Ke[" "+l]=l+"/":Ke[" "+l]=Qe(l,"/",!0)),l=Ke[" "+l];const n=l.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:l.replace(In,"$1")+t:t.charAt(0)==="/"?n?t:l.replace(En,"$1")+t:l+t}const Xe={exec:function(){}};function _t(l,t){const n=l.replace(/\|/g,(a,r,s)=>{let u=!1,d=r;for(;--d>=0&&s[d]==="\\";)u=!u;return u?"|":" |"}),e=n.split(/ \|/);let i=0;if(e[0].trim()||e.shift(),e.length>0&&!e[e.length-1].trim()&&e.pop(),e.length>t)e.splice(t);else for(;e.length1;)t&1&&(n+=l),t>>=1,l+=l;return n+l}function Rt(l,t,n,e){const i=t.href,a=t.title?X(t.title):null,r=l[1].replace(/\\([\[\]])/g,"$1");if(l[0].charAt(0)!=="!"){e.state.inLink=!0;const s={type:"link",raw:n,href:i,title:a,text:r,tokens:e.inlineTokens(r)};return e.state.inLink=!1,s}return{type:"image",raw:n,href:i,title:a,text:X(r)}}function Un(l,t){const n=l.match(/^(\s+)(?:```)/);if(n===null)return t;const e=n[1];return t.split(` +var an=Object.defineProperty;var rn=(l,t,n)=>t in l?an(l,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[t]=n;var wt=(l,t,n)=>(rn(l,typeof t!="symbol"?t+"":t,n),n);import{a as _,g as Ne,h as U,f as tt,i as me,j as sn,o as m,c as w,F as te,k as se,n as yt,l as pt,u as on,m as Y,r as cn,p as j,q as ve,s as T,t as M,v as J,d as ee,x as N,y as Le,z as ht,A as un,B as Ze,C as pn,D as hn,E as dn,G as bt,b as Ce,H as gn,I as fn,J as mn,K as vn,L as kn}from"./app-dddc4fb8.js";var Be=new Map;function wn(l){var t=Be.get(l);t&&t.destroy()}function yn(l){var t=Be.get(l);t&&t.update()}var De=null;typeof window>"u"?((De=function(l){return l}).destroy=function(l){return l},De.update=function(l){return l}):((De=function(l,t){return l&&Array.prototype.forEach.call(l.length?l:[l],function(n){return function(e){if(e&&e.nodeName&&e.nodeName==="TEXTAREA"&&!Be.has(e)){var i,a=null,r=window.getComputedStyle(e),s=(i=e.value,function(){d({testForHeightReduction:i===""||!e.value.startsWith(i),restoreTextAlign:null}),i=e.value}),u=function(p){e.removeEventListener("autosize:destroy",u),e.removeEventListener("autosize:update",c),e.removeEventListener("input",s),window.removeEventListener("resize",c),Object.keys(p).forEach(function(g){return e.style[g]=p[g]}),Be.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",u),e.addEventListener("autosize:update",c),e.addEventListener("input",s),window.addEventListener("resize",c),e.style.overflowX="hidden",e.style.wordWrap="break-word",Be.set(e,{destroy:u,update:c}),c()}function d(p){var g,h,E=p.restoreTextAlign,o=E===void 0?null:E,f=p.testForHeightReduction,R=f===void 0||f,z=r.overflowY;if(e.scrollHeight!==0&&(r.resize==="vertical"?e.style.resize="none":r.resize==="both"&&(e.style.resize="horizontal"),R&&(g=function($){for(var V=[];$&&$.parentNode&&$.parentNode instanceof Element;)$.parentNode.scrollTop&&V.push([$.parentNode,$.parentNode.scrollTop]),$=$.parentNode;return function(){return V.forEach(function(O){var P=O[0],ie=O[1];P.style.scrollBehavior="auto",P.scrollTop=ie,P.style.scrollBehavior=null})}}(e),e.style.height=""),h=r.boxSizing==="content-box"?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),r.maxHeight!=="none"&&h>parseFloat(r.maxHeight)?(r.overflowY==="hidden"&&(e.style.overflow="scroll"),h=parseFloat(r.maxHeight)):r.overflowY!=="hidden"&&(e.style.overflow="hidden"),e.style.height=h+"px",o&&(e.style.textAlign=o),g&&g(),a!==h&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),a=h),z!==r.overflow&&!o)){var I=r.textAlign;r.overflow==="hidden"&&(e.style.textAlign=I==="start"?"end":"start"),d({restoreTextAlign:I,testForHeightReduction:!0})}}function c(){d({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),l}).destroy=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],wn),l},De.update=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],yn),l});var xt=De;function Vt(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let _e=Vt();function bn(l){_e=l}const Ft=/[&<>"']/,xn=new RegExp(Ft.source,"g"),Wt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,$n=new RegExp(Wt.source,"g"),Cn={"&":"&","<":"<",">":">",'"':""","'":"'"},$t=l=>Cn[l];function X(l,t){if(t){if(Ft.test(l))return l.replace(xn,$t)}else if(Wt.test(l))return l.replace($n,$t);return l}const _n=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function qt(l){return l.replace(_n,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const zn=/(^|[^\[])\^/g;function W(l,t){l=typeof l=="string"?l:l.source,t=t||"";const n={replace:(e,i)=>(i=i.source||i,i=i.replace(zn,"$1"),l=l.replace(e,i),n),getRegex:()=>new RegExp(l,t)};return n}const Rn=/[^\w:]/g,Sn=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ct(l,t,n){if(l){let e;try{e=decodeURIComponent(qt(n)).replace(Rn,"").toLowerCase()}catch{return null}if(e.indexOf("javascript:")===0||e.indexOf("vbscript:")===0||e.indexOf("data:")===0)return null}t&&!Sn.test(n)&&(n=An(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ke={},Ln=/^[^:]+:\/*[^/]*$/,In=/^([^:]+:)[\s\S]*$/,En=/^([^:]+:\/*[^/]*)[\s\S]*$/;function An(l,t){Ke[" "+l]||(Ln.test(l)?Ke[" "+l]=l+"/":Ke[" "+l]=Qe(l,"/",!0)),l=Ke[" "+l];const n=l.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:l.replace(In,"$1")+t:t.charAt(0)==="/"?n?t:l.replace(En,"$1")+t:l+t}const Xe={exec:function(){}};function _t(l,t){const n=l.replace(/\|/g,(a,r,s)=>{let u=!1,d=r;for(;--d>=0&&s[d]==="\\";)u=!u;return u?"|":" |"}),e=n.split(/ \|/);let i=0;if(e[0].trim()||e.shift(),e.length>0&&!e[e.length-1].trim()&&e.pop(),e.length>t)e.splice(t);else for(;e.length1;)t&1&&(n+=l),t>>=1,l+=l;return n+l}function Rt(l,t,n,e){const i=t.href,a=t.title?X(t.title):null,r=l[1].replace(/\\([\[\]])/g,"$1");if(l[0].charAt(0)!=="!"){e.state.inLink=!0;const s={type:"link",raw:n,href:i,title:a,text:r,tokens:e.inlineTokens(r)};return e.state.inLink=!1,s}return{type:"image",raw:n,href:i,title:a,text:X(r)}}function Un(l,t){const n=l.match(/^(\s+)(?:```)/);if(n===null)return t;const e=n[1];return t.split(` `).map(i=>{const a=i.match(/^\s+/);if(a===null)return i;const[r]=a;return r.length>=e.length?i.slice(e.length):i}).join(` `)}class dt{constructor(t){this.options=t||_e}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const e=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Qe(e,` `)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const e=n[0],i=Un(e,n[3]||"");return{type:"code",raw:e,lang:n[2]?n[2].trim().replace(this.rules.inline._escapes,"$1"):n[2],text:i}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let e=n[2].trim();if(/#$/.test(e)){const i=Qe(e,"#");(this.options.pedantic||!i||/ $/.test(i))&&(e=i.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){const e=n[0].replace(/^ *>[ \t]?/gm,""),i=this.lexer.state.top;this.lexer.state.top=!0;const a=this.lexer.blockTokens(e);return this.lexer.state.top=i,{type:"blockquote",raw:n[0],tokens:a,text:e}}}list(t){let n=this.rules.block.list.exec(t);if(n){let e,i,a,r,s,u,d,c,p,g,h,E,o=n[1].trim();const f=o.length>1,R={type:"list",raw:"",ordered:f,start:f?+o.slice(0,-1):"",loose:!1,items:[]};o=f?`\\d{1,9}\\${o.slice(-1)}`:`\\${o}`,this.options.pedantic&&(o=f?o:"[*+-]");const z=new RegExp(`^( {0,3}${o})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;t&&(E=!1,!(!(n=z.exec(t))||this.rules.block.hr.test(t)));){if(e=n[0],t=t.substring(e.length),c=n[2].split(` diff --git a/assets/dashboard.html-edf5d612.js b/assets/dashboard.html-98b51e54.js similarity index 96% rename from assets/dashboard.html-edf5d612.js rename to assets/dashboard.html-98b51e54.js index 0bdbd77b7..c06096015 100644 --- a/assets/dashboard.html-edf5d612.js +++ b/assets/dashboard.html-98b51e54.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as i}from"./app-1a16ab73.js";const o={},l=i('

Home Dashboard

Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

Personal gaming data dashboard includes:

  • Game launcher
    • You can select your account and start the game from dashboard
  • Wish history
    • Game UID and progress bar styled pity count will be display in the dashboard
    • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
  • Achievement statistics
    • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
    • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
  • Real-time Notes
    • Real-time notes data will be displayed on home dashboard
    • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
',5),s=[l];function n(r,c){return a(),t("div",null,s)}const u=e(o,[["render",n],["__file","dashboard.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as i}from"./app-dddc4fb8.js";const o={},l=i('

Home Dashboard

Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

Personal gaming data dashboard includes:

  • Game launcher
    • You can select your account and start the game from dashboard
  • Wish history
    • Game UID and progress bar styled pity count will be display in the dashboard
    • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
  • Achievement statistics
    • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
    • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
  • Real-time Notes
    • Real-time notes data will be displayed on home dashboard
    • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
',5),s=[l];function n(r,c){return a(),t("div",null,s)}const u=e(o,[["render",n],["__file","dashboard.html.vue"]]);export{u as default}; diff --git a/assets/dashboard.html-1af9e950.js b/assets/dashboard.html-a23f348c.js similarity index 95% rename from assets/dashboard.html-1af9e950.js rename to assets/dashboard.html-a23f348c.js index a7d210d7e..562ad1a4e 100644 --- a/assets/dashboard.html-1af9e950.js +++ b/assets/dashboard.html-a23f348c.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as e,e as a}from"./app-1a16ab73.js";const t={},o=a('

首页仪表盘

胡桃工具箱启动后会默认进入首页仪表盘,上半部分为你的个人游戏数据,下半部分为近期游戏公告及游戏活动倒计时。

个人游戏数据仪表盘包含以下内容:

  • 游戏启动器
    • 你可以直接在仪表盘中选择帐号并启动游戏
  • 祈愿记录
    • 仪表盘中将显示祈愿档案 UID 并以进度条的形式显示保底计数
    • 如在胡桃工具箱中有多个祈愿档案,你可以使用祈愿记录图表两侧的箭头按钮来切换档案
  • 成就统计
    • 仪表盘中将显示成就档案中已完成成就总数、百分比和最新获得的成就
    • 如在胡桃工具箱中有多个成就档案,你可以使用成就统计图表两侧的箭头按钮来切换档案
  • 实时便笺
    • 仪表盘中将显示实时便笺数据
    • 如在胡桃工具箱中有多个激活的实时便笺,你可以使用实时便笺两侧的箭头按钮来切换档案
',5),r=[o];function c(s,d){return i(),e("div",null,r)}const u=l(t,[["render",c],["__file","dashboard.html.vue"]]);export{u as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as e,e as a}from"./app-dddc4fb8.js";const t={},o=a('

首页仪表盘

胡桃工具箱启动后会默认进入首页仪表盘,上半部分为你的个人游戏数据,下半部分为近期游戏公告及游戏活动倒计时。

个人游戏数据仪表盘包含以下内容:

  • 游戏启动器
    • 你可以直接在仪表盘中选择帐号并启动游戏
  • 祈愿记录
    • 仪表盘中将显示祈愿档案 UID 并以进度条的形式显示保底计数
    • 如在胡桃工具箱中有多个祈愿档案,你可以使用祈愿记录图表两侧的箭头按钮来切换档案
  • 成就统计
    • 仪表盘中将显示成就档案中已完成成就总数、百分比和最新获得的成就
    • 如在胡桃工具箱中有多个成就档案,你可以使用成就统计图表两侧的箭头按钮来切换档案
  • 实时便笺
    • 仪表盘中将显示实时便笺数据
    • 如在胡桃工具箱中有多个激活的实时便笺,你可以使用实时便笺两侧的箭头按钮来切换档案
',5),r=[o];function c(s,d){return i(),e("div",null,r)}const u=l(t,[["render",c],["__file","dashboard.html.vue"]]);export{u as default}; diff --git a/assets/develop-plan.html-b8a06082.js b/assets/develop-plan.html-e7652959.js similarity index 98% rename from assets/develop-plan.html-b8a06082.js rename to assets/develop-plan.html-e7652959.js index eef4a21d9..8da7bed25 100644 --- a/assets/develop-plan.html-b8a06082.js +++ b/assets/develop-plan.html-e7652959.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as l,c as o,a as n,b as e,d as r,w as u,e as d}from"./app-1a16ab73.js";const c={},h=d('

Development Plan

dev-plan

Info

Dev Plan is under redesigning, the document will be translated after the refinement.

添加养成目标进入材料清单

基于 WIKI 资料添加

  • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
  • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
    • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

基于玩家数据添加

  • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
  • 在选中角色后,点击右上角的养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
    • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
    • 请参考My Characters文档以获取更多信息

背包物品

  • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
  • 点击"背包物品"功能栏
  • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
  • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
    • 此处可勾选"绑定当前选中的账号角色"
    • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
  • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
    • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
  • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
    • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除

功能说明

',11);function s(q,p){const t=i("RouterLink");return l(),o("div",null,[h,n("p",null,[e("此功能尚在完善阶段,若您有建设性的建议,或发现了显著的问题,请按"),r(t,{to:"/en/statements/bug-report.html"},{default:u(()=>[e("此页面")]),_:1}),e("直接向我们反馈,感谢您的贡献!")])])}const _=a(c,[["render",s],["__file","develop-plan.html.vue"]]);export{_ as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as l,c as o,a as n,b as e,d as r,w as u,e as d}from"./app-dddc4fb8.js";const c={},h=d('

Development Plan

dev-plan

Info

Dev Plan is under redesigning, the document will be translated after the refinement.

添加养成目标进入材料清单

基于 WIKI 资料添加

  • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
  • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
    • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

基于玩家数据添加

  • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
  • 在选中角色后,点击右上角的养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
    • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
    • 请参考My Characters文档以获取更多信息

背包物品

  • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
  • 点击"背包物品"功能栏
  • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
  • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
    • 此处可勾选"绑定当前选中的账号角色"
    • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
  • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
    • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
  • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
    • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除

功能说明

',11);function s(q,p){const t=i("RouterLink");return l(),o("div",null,[h,n("p",null,[e("此功能尚在完善阶段,若您有建设性的建议,或发现了显著的问题,请按"),r(t,{to:"/en/statements/bug-report.html"},{default:u(()=>[e("此页面")]),_:1}),e("直接向我们反馈,感谢您的贡献!")])])}const _=a(c,[["render",s],["__file","develop-plan.html.vue"]]);export{_ as default}; diff --git a/assets/develop-plan.html-ee596474.js b/assets/develop-plan.html-e7866253.js similarity index 98% rename from assets/develop-plan.html-ee596474.js rename to assets/develop-plan.html-e7866253.js index c86d59b78..b5ad8f99c 100644 --- a/assets/develop-plan.html-ee596474.js +++ b/assets/develop-plan.html-e7866253.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as i,c as l,a as u,b as e,d as r,w as d,e as n}from"./app-1a16ab73.js";const c={},h=n('

养成计划

dev-plan

添加养成目标进入材料清单

基于 WIKI 资料添加

  • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
  • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
    • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

基于玩家数据添加

  • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
  • 在选中角色后,点击右上角的养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
    • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
    • 请参考属性统计文档以获取更多信息

背包物品

  • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
  • 点击"背包物品"功能栏
  • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
  • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
    • 此处可勾选"绑定当前选中的账号角色"
    • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
  • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
    • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
  • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
    • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除

功能说明

',10);function s(q,_){const t=o("RouterLink");return i(),l("div",null,[h,u("p",null,[e("此功能尚在完善阶段,若您有建设性的建议,或发现了显著的问题,请按"),r(t,{to:"/zh/statements/bug-report.html"},{default:d(()=>[e("此页面")]),_:1}),e("直接向我们反馈,感谢您的贡献!")])])}const f=a(c,[["render",s],["__file","develop-plan.html.vue"]]);export{f as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as i,c as l,a as u,b as e,d as r,w as d,e as n}from"./app-dddc4fb8.js";const c={},h=n('

养成计划

dev-plan

添加养成目标进入材料清单

基于 WIKI 资料添加

  • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
  • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
    • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

基于玩家数据添加

  • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
  • 在选中角色后,点击右上角的养成计算按钮
  • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
    • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
    • 请参考属性统计文档以获取更多信息

背包物品

  • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
  • 点击"背包物品"功能栏
  • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
  • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
    • 此处可勾选"绑定当前选中的账号角色"
    • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
  • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
    • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
  • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
    • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除

功能说明

',10);function s(q,_){const t=o("RouterLink");return i(),l("div",null,[h,u("p",null,[e("此功能尚在完善阶段,若您有建设性的建议,或发现了显著的问题,请按"),r(t,{to:"/zh/statements/bug-report.html"},{default:d(()=>[e("此页面")]),_:1}),e("直接向我们反馈,感谢您的贡献!")])])}const f=a(c,[["render",s],["__file","develop-plan.html.vue"]]);export{f as default}; diff --git a/assets/exceptions.html-0b83e1ba.js b/assets/exceptions.html-44b0164a.js similarity index 98% rename from assets/exceptions.html-0b83e1ba.js rename to assets/exceptions.html-44b0164a.js index 81eaedea1..8b87e51e1 100644 --- a/assets/exceptions.html-0b83e1ba.js +++ b/assets/exceptions.html-44b0164a.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as a,a as e,b as o,d as n,e as s}from"./app-1a16ab73.js";const d={},c=e("h1",{id:"常见的程序异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见的程序异常","aria-hidden":"true"},"#"),o(" 常见的程序异常")],-1),h=e("p",null,[o("该文档包含由"),e("strong",null,"用户端错误"),o("造成的问题")],-1),u=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),p=e("li",null,[o("异常:"),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("提示:"),e("code",null,"未开启长路径功能,无法设置注册表键值")])])],-1),_=e("li",null,"问题来源:没有解除 Windows 目录长度限制",-1),g={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,".reg",-1),m=s('

Return Code: -10001

  • 该异常实际上来源于米游社的返回信息,包括:
    • Return Code: -10001
    • Return Code: -100
  • 问题来源:
    1. Cookie 过期或网络异常
    2. 系统时间错误
  • 解决方案:
    1. 在帐号面板中,点击刷新 Cookie
    2. 删除帐号后重新添加米游社帐号
    3. 在系统设置中启用自动同步时间并立刻同步时间

状态:1034 验证失败

  • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
  • 解决方式:
    • 进入 实时便笺 功能
    • 点击右上角的 验证当前用户与角色按钮
    • 根据米游社提示进行验证
    • 完成验证后点击完成
    • 此时,风控应当已被解除;若没有,可继续执行上述操作

提示

  • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

注意

  • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
  • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

HttpRequestException 元数据校验文件下载失败

403 (Forbidden)/ 404 (NOT FOUND)

',8),b={href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},x=e("h3",{id:"_502-bad-gateway",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_502-bad-gateway","aria-hidden":"true"},"#"),o(" 502 (Bad Gateway)")],-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,[o("当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 "),e("code",null,"HttpRequestException"),o(" 错误。")],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg_.webp",alt:"HttpRequestException",loading:"lazy"})],-1),E=e("p",null,"当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。",-1),N={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},C={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},R=e("h2",{id:"_653366069-请求异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_653366069-请求异常","aria-hidden":"true"},"#"),o(),e("code",null,"653366069"),o(" 请求异常")],-1),P=e("ul",null,[e("li",null,[o("网络请求错误,请求异常前程序会说明具体哪一个功能的网络请求失败。 "),e("ul",null,[e("li",null,"如果仅是偶尔出现的问题,你可以考虑忽略该错误"),e("li",null,"如果持续该错误,请检查本地网络到目标服务器的连接是否正常")])])],-1);function y(q,H){const t=l("ExternalLinkIcon");return r(),a("div",null,[c,h,u,e("ul",null,[p,_,e("li",null,[o("解决方案:下载 "),e("a",g,[o("EnableLongPaths.zip"),n(t)]),o(" 后解压,以管理员身份运行解压后的 "),f,o(" 文件")])]),m,e("p",null,[o("解决方案:更新胡桃工具箱至"),e("a",b,[o("最新版本"),n(t)])]),x,e("blockquote",null,[e("p",null,[o("相关 Issue: "),e("a",k,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),n(t)])])]),w,v,E,e("p",null,[o("如果系统代理是你的网络必须选项,请关闭系统代理而使用 TUN 模式代理;或者也可以通过 "),e("a",N,[o("Windows 8 AppContainer Loopback Utility"),n(t)]),o(" 解除 "),e("a",C,[o("Windows APP Container Loopback 的限制"),n(t)]),o(" 。")]),R,P])}const S=i(d,[["render",y],["__file","exceptions.html.vue"]]);export{S as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as a,a as e,b as o,d as n,e as s}from"./app-dddc4fb8.js";const d={},c=e("h1",{id:"常见的程序异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见的程序异常","aria-hidden":"true"},"#"),o(" 常见的程序异常")],-1),h=e("p",null,[o("该文档包含由"),e("strong",null,"用户端错误"),o("造成的问题")],-1),u=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),p=e("li",null,[o("异常:"),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("提示:"),e("code",null,"未开启长路径功能,无法设置注册表键值")])])],-1),_=e("li",null,"问题来源:没有解除 Windows 目录长度限制",-1),g={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,".reg",-1),m=s('

Return Code: -10001

  • 该异常实际上来源于米游社的返回信息,包括:
    • Return Code: -10001
    • Return Code: -100
  • 问题来源:
    1. Cookie 过期或网络异常
    2. 系统时间错误
  • 解决方案:
    1. 在帐号面板中,点击刷新 Cookie
    2. 删除帐号后重新添加米游社帐号
    3. 在系统设置中启用自动同步时间并立刻同步时间

状态:1034 验证失败

  • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
  • 解决方式:
    • 进入 实时便笺 功能
    • 点击右上角的 验证当前用户与角色按钮
    • 根据米游社提示进行验证
    • 完成验证后点击完成
    • 此时,风控应当已被解除;若没有,可继续执行上述操作

提示

  • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

注意

  • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
  • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

HttpRequestException 元数据校验文件下载失败

403 (Forbidden)/ 404 (NOT FOUND)

',8),b={href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},x=e("h3",{id:"_502-bad-gateway",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_502-bad-gateway","aria-hidden":"true"},"#"),o(" 502 (Bad Gateway)")],-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,[o("当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 "),e("code",null,"HttpRequestException"),o(" 错误。")],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg_.webp",alt:"HttpRequestException",loading:"lazy"})],-1),E=e("p",null,"当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。",-1),N={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},C={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},R=e("h2",{id:"_653366069-请求异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_653366069-请求异常","aria-hidden":"true"},"#"),o(),e("code",null,"653366069"),o(" 请求异常")],-1),P=e("ul",null,[e("li",null,[o("网络请求错误,请求异常前程序会说明具体哪一个功能的网络请求失败。 "),e("ul",null,[e("li",null,"如果仅是偶尔出现的问题,你可以考虑忽略该错误"),e("li",null,"如果持续该错误,请检查本地网络到目标服务器的连接是否正常")])])],-1);function y(q,H){const t=l("ExternalLinkIcon");return r(),a("div",null,[c,h,u,e("ul",null,[p,_,e("li",null,[o("解决方案:下载 "),e("a",g,[o("EnableLongPaths.zip"),n(t)]),o(" 后解压,以管理员身份运行解压后的 "),f,o(" 文件")])]),m,e("p",null,[o("解决方案:更新胡桃工具箱至"),e("a",b,[o("最新版本"),n(t)])]),x,e("blockquote",null,[e("p",null,[o("相关 Issue: "),e("a",k,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),n(t)])])]),w,v,E,e("p",null,[o("如果系统代理是你的网络必须选项,请关闭系统代理而使用 TUN 模式代理;或者也可以通过 "),e("a",N,[o("Windows 8 AppContainer Loopback Utility"),n(t)]),o(" 解除 "),e("a",C,[o("Windows APP Container Loopback 的限制"),n(t)]),o(" 。")]),R,P])}const S=i(d,[["render",y],["__file","exceptions.html.vue"]]);export{S as default}; diff --git a/assets/exceptions.html-28bfe411.js b/assets/exceptions.html-ef765121.js similarity index 97% rename from assets/exceptions.html-28bfe411.js rename to assets/exceptions.html-ef765121.js index b7e1d13ce..1c223391c 100644 --- a/assets/exceptions.html-28bfe411.js +++ b/assets/exceptions.html-ef765121.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as s,a as e,b as o,d as i,e as l}from"./app-1a16ab73.js";const c={},d=e("h1",{id:"common-program-exceptions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-program-exceptions","aria-hidden":"true"},"#"),o(" Common Program Exceptions")],-1),u=e("p",null,[o("This document covers solutions of "),e("strong",null,"foreseeable client error")],-1),h=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),p=e("li",null,[o("Exception: "),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("Hint: "),e("code",null,"Unable to set registry key without enabling long path")])])],-1),f=e("li",null,"Issue source: Windows long path limit is set to be limited at 256 characters by default",-1),m={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},g=e("code",null,".reg",-1),_=l('

Return Code: -10001

  • This error comes directly from MiHoYo BBS, hints include
    • Return Code: -10001
    • Return Code: -100
  • Issue source
    1. Cookie expired
    2. Network error
    3. System time is not accurate
  • Solution
    1. In the account panel, execute Refresh Cookies
    2. Remove your account and add it again
    3. Sync your system time

Return Code: 1034 Verification Failed

  • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
  • Solution:
    • Enter Realtime Notes
    • Click on Verify Current User and Role button
    • Follow the instruction in MiHoYo BBS to verify
    • After finishing the verification process, click Complete to close the verification window
    • Now, the account should back to normal; If not, process the step above again

Tips

If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

Note

  • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
  • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

HttpRequestException Metadata Download Failed

403 (Forbidden) / 404 (Not Found)

Solution: Update your Snap Hutao to latest version

502 (Bad Gateway)

',10),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},y=e("p",null,"This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)",-1),x=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg",alt:"HttpRequestException",loading:"lazy"})],-1),w={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},v={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"};function k(S,B){const t=a("ExternalLinkIcon");return r(),s("div",null,[d,u,h,e("ul",null,[p,f,e("li",null,[o("Solution: Download "),e("a",m,[o("EnableLongPaths.zip"),i(t)]),o(", unzip it and run "),g,o(" file as administrator")])]),_,e("blockquote",null,[e("p",null,[o("Associated Issue: "),e("a",b,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),i(t)])])]),y,x,e("p",null,[o("If you are using proxy software, you may need to turn it off or using TUN mode proxy; otherwise you need to use "),e("a",w,[o("Windows 8 AppContainer Loopback Utility"),i(t)]),o(" to remove "),e("a",v,[o("Windows APP Container Loopback limits"),i(t)]),o(".")])])}const E=n(c,[["render",k],["__file","exceptions.html.vue"]]);export{E as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as s,a as e,b as o,d as i,e as l}from"./app-dddc4fb8.js";const c={},d=e("h1",{id:"common-program-exceptions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-program-exceptions","aria-hidden":"true"},"#"),o(" Common Program Exceptions")],-1),u=e("p",null,[o("This document covers solutions of "),e("strong",null,"foreseeable client error")],-1),h=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),p=e("li",null,[o("Exception: "),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("Hint: "),e("code",null,"Unable to set registry key without enabling long path")])])],-1),f=e("li",null,"Issue source: Windows long path limit is set to be limited at 256 characters by default",-1),m={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},g=e("code",null,".reg",-1),_=l('

Return Code: -10001

  • This error comes directly from MiHoYo BBS, hints include
    • Return Code: -10001
    • Return Code: -100
  • Issue source
    1. Cookie expired
    2. Network error
    3. System time is not accurate
  • Solution
    1. In the account panel, execute Refresh Cookies
    2. Remove your account and add it again
    3. Sync your system time

Return Code: 1034 Verification Failed

  • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
  • Solution:
    • Enter Realtime Notes
    • Click on Verify Current User and Role button
    • Follow the instruction in MiHoYo BBS to verify
    • After finishing the verification process, click Complete to close the verification window
    • Now, the account should back to normal; If not, process the step above again

Tips

If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

Note

  • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
  • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

HttpRequestException Metadata Download Failed

403 (Forbidden) / 404 (Not Found)

Solution: Update your Snap Hutao to latest version

502 (Bad Gateway)

',10),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},y=e("p",null,"This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)",-1),x=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg",alt:"HttpRequestException",loading:"lazy"})],-1),w={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},v={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"};function k(S,B){const t=a("ExternalLinkIcon");return r(),s("div",null,[d,u,h,e("ul",null,[p,f,e("li",null,[o("Solution: Download "),e("a",m,[o("EnableLongPaths.zip"),i(t)]),o(", unzip it and run "),g,o(" file as administrator")])]),_,e("blockquote",null,[e("p",null,[o("Associated Issue: "),e("a",b,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),i(t)])])]),y,x,e("p",null,[o("If you are using proxy software, you may need to turn it off or using TUN mode proxy; otherwise you need to use "),e("a",w,[o("Windows 8 AppContainer Loopback Utility"),i(t)]),o(" to remove "),e("a",v,[o("Windows APP Container Loopback limits"),i(t)]),o(".")])])}const E=n(c,[["render",k],["__file","exceptions.html.vue"]]);export{E as default}; diff --git a/assets/game-launcher.html-73a05aec.js b/assets/game-launcher.html-0c7b2319.js similarity index 99% rename from assets/game-launcher.html-73a05aec.js rename to assets/game-launcher.html-0c7b2319.js index d338bdb33..1ae7e2656 100644 --- a/assets/game-launcher.html-73a05aec.js +++ b/assets/game-launcher.html-0c7b2319.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as s,a as e,b as t,d as i,w as d,e as a}from"./app-1a16ab73.js";const u={},h=a('

Game Launcher

  • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
  • Click on the Game Launcher on the sidebar to get into game launcher's page
    • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
      • When choosing the game path, noticed that you should choose game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe and $\\Genshin Impact\\Genshin Impact Game\\Genshin Impact.exe
        • Official launcher program is usually $\\Genshin Impact\\launcher.exe
  • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
    • Launcher options is explained in the document below

Server Switch

Privilege Notice

  1. You need to run Snap Hutao as administrator to use this feature
  2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files
  • Enter Game Launcher page

  • In the General - Server field, select the server you want

    • Current available serves options include:
    OptionServer
    CNMainland China server
    BiliBiliChinese server with BiliBili account system
    Global DefaultHoYoVerse servers
    Global EpicHoYoVerse servers with Epic Store payment gateway
    Global GoogleHoYoVerse servers with Google Pay payment gateway
  • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

Game Account Switch

Tips

  1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
  2. Game account switch feature currently only supporting official CN server
',7),p=e("thead",null,[e("tr",null,[e("th"),e("th",null,"CN"),e("th",null,"BiliBili"),e("th",null,"Global")])],-1),m=e("tr",null,[e("td",null,"Save Login Status"),e("td",null,"Supported"),e("td",null,"Supported"),e("td",null,"Supported")],-1),g=e("td",null,"Switch Account",-1),f=e("td",null,"Supported",-1),w=e("td",null,"Not Supported",-1),v=e("br",null,null,-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},y=a('
  1. Enter Game Launcher page
  2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
  3. In this pop-up window, enter an archive name for this account and click Confirm
  4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
    • Each saved account are selectable
    • On the right side, there are three buttons, they are:
      • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
      • Rename, rename current account archive name
      • Delete, delete current account archive

Appearance

Note

  • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

    • Suggest to use Borderless or Fullscreen mode if you faced same problem
    • The problem is caused by failure of game embedded browser cannot run
  • Enter Game Launcher page
  • In the Appearance category, there are 6 available options:
    • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
    • Fullscreen, the game display mode is set to fullscreen
    • Borderless, the game display mode is set to borderless
    • Width, game window width, such as 1920
    • Height, game window height, such as 1080
    • Display, users with multiple displays can use this option to set which display to run the game

Advanced Features

Warning

  • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
  • You need to enable advanced features in Snap Hutao's settings page

Unlock Frame Rate Limit

',7),_={class:"hint-container danger"},S=e("p",{class:"hint-container-title"},"Warning",-1),k={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=a('
  • Run Snap Hutao as administrator

  • Enter Game Launcher page

  • At the bottom of the page, you can find Unlock Frame Rate Limit option

    • Trigger the switch to enable or disable this feature
    • In the Set Frame Rate Limit field, you can adjust the limit freely
  • Fact that may cause failure in unlocking frame rate limit:

    • Snap Hutao process is not kept in the background
    • V-Sync is not set to off in the game
    • Max Framerate limit is not changed in your graphic card settings
    • Power Saving mode is not disabled in power settings
    • Your graphic card is not powerful enough

Multi-Client

Warning

Multiple instances of the game client is a far more dangerous feature compared to unlocking the framerate limit. You should personally or invite a technically knowledgeable professional to review the code and make your own judgment on whether to use this feature.

Using this feature may cause the anti-cheat system in Genshin Impact to fail to load, and the game client will report this situation to miHoYo's servers.

  1. Run Snap Hutao as administrator
  2. Enter Game Launcher page
  3. At the bottom of the page, enable Multi-Client option
  4. Click Launch button on the top-right of the window
  5. Wait for 12 seconds before entering the game (open the gate)
  6. Repeat step 4 and 5 to launch next client instance
',4);function x(H,L){const n=o("ExternalLinkIcon"),l=o("RouterLink");return c(),s("div",null,[h,e("table",null,[p,e("tbody",null,[m,e("tr",null,[g,f,w,e("td",null,[t("Theoretically Supported "),v,e("a",b,[t("We need community's support for this"),i(n)])])])])]),y,e("div",_,[S,e("ul",null,[e("li",null,[t("The "),e("a",k,[t("Unlocker project"),i(n)]),t(" only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the "),i(l,{to:"/en/statements/tos.html"},{default:d(()=>[t("user agreement")]),_:1}),t(" on your own.")])])]),G])}const C=r(u,[["render",x],["__file","game-launcher.html.vue"]]);export{C as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as s,a as e,b as t,d as i,w as d,e as a}from"./app-dddc4fb8.js";const u={},h=a('

Game Launcher

  • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
  • Click on the Game Launcher on the sidebar to get into game launcher's page
    • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
      • When choosing the game path, noticed that you should choose game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe and $\\Genshin Impact\\Genshin Impact Game\\Genshin Impact.exe
        • Official launcher program is usually $\\Genshin Impact\\launcher.exe
  • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
    • Launcher options is explained in the document below

Server Switch

Privilege Notice

  1. You need to run Snap Hutao as administrator to use this feature
  2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files
  • Enter Game Launcher page

  • In the General - Server field, select the server you want

    • Current available serves options include:
    OptionServer
    CNMainland China server
    BiliBiliChinese server with BiliBili account system
    Global DefaultHoYoVerse servers
    Global EpicHoYoVerse servers with Epic Store payment gateway
    Global GoogleHoYoVerse servers with Google Pay payment gateway
  • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

Game Account Switch

Tips

  1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
  2. Game account switch feature currently only supporting official CN server
',7),p=e("thead",null,[e("tr",null,[e("th"),e("th",null,"CN"),e("th",null,"BiliBili"),e("th",null,"Global")])],-1),m=e("tr",null,[e("td",null,"Save Login Status"),e("td",null,"Supported"),e("td",null,"Supported"),e("td",null,"Supported")],-1),g=e("td",null,"Switch Account",-1),f=e("td",null,"Supported",-1),w=e("td",null,"Not Supported",-1),v=e("br",null,null,-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},y=a('
  1. Enter Game Launcher page
  2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
  3. In this pop-up window, enter an archive name for this account and click Confirm
  4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
    • Each saved account are selectable
    • On the right side, there are three buttons, they are:
      • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
      • Rename, rename current account archive name
      • Delete, delete current account archive

Appearance

Note

  • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

    • Suggest to use Borderless or Fullscreen mode if you faced same problem
    • The problem is caused by failure of game embedded browser cannot run
  • Enter Game Launcher page
  • In the Appearance category, there are 6 available options:
    • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
    • Fullscreen, the game display mode is set to fullscreen
    • Borderless, the game display mode is set to borderless
    • Width, game window width, such as 1920
    • Height, game window height, such as 1080
    • Display, users with multiple displays can use this option to set which display to run the game

Advanced Features

Warning

  • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
  • You need to enable advanced features in Snap Hutao's settings page

Unlock Frame Rate Limit

',7),_={class:"hint-container danger"},S=e("p",{class:"hint-container-title"},"Warning",-1),k={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=a('
  • Run Snap Hutao as administrator

  • Enter Game Launcher page

  • At the bottom of the page, you can find Unlock Frame Rate Limit option

    • Trigger the switch to enable or disable this feature
    • In the Set Frame Rate Limit field, you can adjust the limit freely
  • Fact that may cause failure in unlocking frame rate limit:

    • Snap Hutao process is not kept in the background
    • V-Sync is not set to off in the game
    • Max Framerate limit is not changed in your graphic card settings
    • Power Saving mode is not disabled in power settings
    • Your graphic card is not powerful enough

Multi-Client

Warning

Multiple instances of the game client is a far more dangerous feature compared to unlocking the framerate limit. You should personally or invite a technically knowledgeable professional to review the code and make your own judgment on whether to use this feature.

Using this feature may cause the anti-cheat system in Genshin Impact to fail to load, and the game client will report this situation to miHoYo's servers.

  1. Run Snap Hutao as administrator
  2. Enter Game Launcher page
  3. At the bottom of the page, enable Multi-Client option
  4. Click Launch button on the top-right of the window
  5. Wait for 12 seconds before entering the game (open the gate)
  6. Repeat step 4 and 5 to launch next client instance
',4);function x(H,L){const n=o("ExternalLinkIcon"),l=o("RouterLink");return c(),s("div",null,[h,e("table",null,[p,e("tbody",null,[m,e("tr",null,[g,f,w,e("td",null,[t("Theoretically Supported "),v,e("a",b,[t("We need community's support for this"),i(n)])])])])]),y,e("div",_,[S,e("ul",null,[e("li",null,[t("The "),e("a",k,[t("Unlocker project"),i(n)]),t(" only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the "),i(l,{to:"/en/statements/tos.html"},{default:d(()=>[t("user agreement")]),_:1}),t(" on your own.")])])]),G])}const C=r(u,[["render",x],["__file","game-launcher.html.vue"]]);export{C as default}; diff --git a/assets/game-launcher.html-69f961e4.js b/assets/game-launcher.html-56b7cc24.js similarity index 99% rename from assets/game-launcher.html-69f961e4.js rename to assets/game-launcher.html-56b7cc24.js index b5f6c3ef7..199e6d6f8 100644 --- a/assets/game-launcher.html-69f961e4.js +++ b/assets/game-launcher.html-56b7cc24.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,a as l,d as i,b as e,w as h,e as t}from"./app-1a16ab73.js";const u={},_=t('

高级启动器

  • 胡桃工具箱提供的高级启动器功能中通过多样的设置选项来允许用户以自定义设置启动游戏
  • 你可以通过点击左侧菜单栏中的启动游戏进入高级启动器功能
    • 第一次使用时你会被跳转到设置页面以设置你的游戏路径
    • 选择游戏路径时,请注意此处选择的应是游戏本身
      • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
      • 而官方启动器的目录一般是$\\Genshin Impact\\launcher.exe
  • 在设置完毕启动游戏所需的附加选项后,点击右上角的启动游戏按钮即可
    • 附加选项请看本页下方的功能文档

视频指南

对于大多数人而言,遵循本页文档会有更高的效率。

但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

',5),p={class:"hint-container details"},g=l("summary",null,"胡桃工具箱指南 4 - 高级启动器(切换帐号/切换服务器/帧率解锁)",-1),m=t('

切换服务器

权限提示

  1. 使用该功能时需要以管理员权限启动胡桃工具
  2. 胡桃工具箱会在数据目录下创建一个名为 ServerCache 的文件夹并储存转换服务器所需要的文件
  • 在主界面点击左侧菜单栏进入启动游戏页面
  • 找到常规分类中的服务器一栏
  • 点击右侧选项中的服务器名称,选择要进入的服务器
    • 目前可选的服务器包括:
      选项服务器
      官方服中国大陆服务器
      渠道服使用 BiliBili 帐号登录的中国大陆服务器
      国际服 DefaultHoYoVerse 国际服服务器
      国际服 Epic使用 Epic 商城支付网关的 HoYoVerse 国际服服务器
      国际服 Google使用 Google Pay 支付网关的 HoYoVerse 国际服服务器
  • 点击右上角的启动游戏按钮,胡桃会自动下载并应用对应服务器的文件并启动游戏

账号保存

提示

  1. 本功能所描述的帐号,特指当前原神所登录游戏账号的登录状态
  2. 目前仅支持切换官方服(不含渠道服)帐号
',5),f=l("thead",null,[l("tr",null,[l("th"),l("th",null,"官方服"),l("th",null,"渠道服"),l("th",null,"国际服")])],-1),b=l("tr",null,[l("td",null,"保存登录状态"),l("td",null,"支持"),l("td",null,"支持"),l("td",null,"支持")],-1),v=l("td",null,"切换账号",-1),x=l("td",null,"支持",-1),k=l("td",null,"不支持",-1),B=l("br",null,null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},G=t('
  1. 在主界面点击左侧菜单栏进入启动游戏标签
  2. 点击常规分类中的检测账号一栏,胡桃工具箱会保存当前原神游戏的登录状态
  3. 在弹出的为账号命名界面中,输入您要为此账号设置的名称,点击确认
  4. 在游戏中,注销当前登录并登录你另一个帐号。重复执行上述的第 2 步和第三步直至你将全部的帐号添加进胡桃工具箱中。
  5. 此时即可在账号功能下方自由选择您要切换的账号
    • 每个已保存的账号均为可点击选择的按钮
    • 在其右侧有三个按钮,分别为:
      • 绑定当前用户角色,即将您当前选择的米游社登录状态绑定至该账号中,点击该按钮后,对应的 UID 将出现在该账号自定义名称的下方
      • 重命名,即修改当前选择账号的自定义名称
      • 删除,即删除当前选择的账号

外观选项

注意

  • 在当前的游戏版本中,有案例表明部分用户使用胡桃工具箱,选择独占全屏模式启动原神游戏,出现游戏无响应或卡顿的情况
    • 建议此部分用户使用无边框选项进行启动游戏
    • 问题的来源是游戏内置浏览器无法运行
  • 在主界面点击左侧菜单栏进入启动游戏标签
  • 外观功能中,有六个选项:
    • 独占全屏,即选择游戏进程以独占全屏模式运行
    • 全屏,即选择启动游戏后的游戏界面是否设置为全屏
    • 无边框,即选择启动游戏后的游戏界面是否设置为无边框窗口
    • 宽度,即选择启动游戏后的游戏界面的宽度,例如1920
    • 高度,即选择启动游戏后的游戏界面的高度,例如1080
    • 显示器,允许多显示器用户选择指定的显示器来运行游戏

高级功能

警告

  • 请注意:高级功能已明确标注为 Dangerous Feature,即危险功能,选择启用即代表您选择自行承担任意风险
  • 你需要首先在胡桃设置页面中启用高级功能

解锁帧率上限

',7),V={class:"hint-container danger"},S=l("p",{class:"hint-container-title"},"警告",-1),D={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},I=l("code",null,"120帧率",-1),E=t('
  • 使用管理员模式启动胡桃

  • 在主界面点击左侧菜单栏进入启动游戏标签

  • 在最下方可见 解锁帧率限制 选项

    • 在右侧点击开启或关闭按钮,所显示的 禁用启用 分别代表已禁用已启用该功能
    • 在下方的 设置帧率上限 选项中,可自由拖动拉杆,调整到您需要设置的最高帧率上限
  • 会导致解锁帧率上限失败的因素:

    • 胡桃工具箱没有保持在后台运行
    • 游戏内未关闭垂直同步选项
    • 在显卡驱动中存在最大帧速率的设置
    • 在显卡驱动软件内存在未关闭的类似于节能模式的选项
    • 显卡性能不足

游戏客户端多开

警告

游戏客户端多开是一个远比解锁帧率上限还危险的功能,你应当在亲自或邀请有技术知识的专业人士审阅代码后自行判断是否使用该功能。

使用该功能会导致原神反作弊功能加载失败,原神客户端会向米哈游服务器汇报该现实情况。

  1. 使用管理员模式启动胡桃
  2. 在主界面点击左侧菜单栏进入启动游戏标签
  3. 在最下方启用 多客户端 选项
  4. 点击右上角的启动游戏
  5. 等待 12 秒后再进门
  6. 重复步骤 4 和步骤 5 以开启下一个客户端
',4);function L(U,H){const n=o("BiliBili"),d=o("ExternalLinkIcon"),c=o("RouterLink");return r(),s("div",null,[_,l("details",p,[g,i(n,{bvid:"BV1Sv4y1k7zi"})]),m,l("table",null,[f,l("tbody",null,[b,l("tr",null,[v,x,k,l("td",null,[e("理论支持"),B,l("a",y,[e("我们期待更多的社区开发者帮助"),i(d)])])])])]),G,l("div",V,[S,l("ul",null,[l("li",null,[l("a",D,[e("Unlocker 项目"),i(d)]),e("仅作用于 UnityPlayer 本身,即直接作用于 Unity3D 引擎,与游戏本体不发生直接关系,本质上与移动端中"),I,e("等设置无异,但您仍应谨慎使用并自行阅读"),i(c,{to:"/zh/statements/tos.html"},{default:h(()=>[e("用户协议")]),_:1})])])]),E])}const Y=a(u,[["render",L],["__file","game-launcher.html.vue"]]);export{Y as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,a as l,d as i,b as e,w as h,e as t}from"./app-dddc4fb8.js";const u={},_=t('

高级启动器

  • 胡桃工具箱提供的高级启动器功能中通过多样的设置选项来允许用户以自定义设置启动游戏
  • 你可以通过点击左侧菜单栏中的启动游戏进入高级启动器功能
    • 第一次使用时你会被跳转到设置页面以设置你的游戏路径
    • 选择游戏路径时,请注意此处选择的应是游戏本身
      • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
      • 而官方启动器的目录一般是$\\Genshin Impact\\launcher.exe
  • 在设置完毕启动游戏所需的附加选项后,点击右上角的启动游戏按钮即可
    • 附加选项请看本页下方的功能文档

视频指南

对于大多数人而言,遵循本页文档会有更高的效率。

但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

',5),p={class:"hint-container details"},g=l("summary",null,"胡桃工具箱指南 4 - 高级启动器(切换帐号/切换服务器/帧率解锁)",-1),m=t('

切换服务器

权限提示

  1. 使用该功能时需要以管理员权限启动胡桃工具
  2. 胡桃工具箱会在数据目录下创建一个名为 ServerCache 的文件夹并储存转换服务器所需要的文件
  • 在主界面点击左侧菜单栏进入启动游戏页面
  • 找到常规分类中的服务器一栏
  • 点击右侧选项中的服务器名称,选择要进入的服务器
    • 目前可选的服务器包括:
      选项服务器
      官方服中国大陆服务器
      渠道服使用 BiliBili 帐号登录的中国大陆服务器
      国际服 DefaultHoYoVerse 国际服服务器
      国际服 Epic使用 Epic 商城支付网关的 HoYoVerse 国际服服务器
      国际服 Google使用 Google Pay 支付网关的 HoYoVerse 国际服服务器
  • 点击右上角的启动游戏按钮,胡桃会自动下载并应用对应服务器的文件并启动游戏

账号保存

提示

  1. 本功能所描述的帐号,特指当前原神所登录游戏账号的登录状态
  2. 目前仅支持切换官方服(不含渠道服)帐号
',5),f=l("thead",null,[l("tr",null,[l("th"),l("th",null,"官方服"),l("th",null,"渠道服"),l("th",null,"国际服")])],-1),b=l("tr",null,[l("td",null,"保存登录状态"),l("td",null,"支持"),l("td",null,"支持"),l("td",null,"支持")],-1),v=l("td",null,"切换账号",-1),x=l("td",null,"支持",-1),k=l("td",null,"不支持",-1),B=l("br",null,null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},G=t('
  1. 在主界面点击左侧菜单栏进入启动游戏标签
  2. 点击常规分类中的检测账号一栏,胡桃工具箱会保存当前原神游戏的登录状态
  3. 在弹出的为账号命名界面中,输入您要为此账号设置的名称,点击确认
  4. 在游戏中,注销当前登录并登录你另一个帐号。重复执行上述的第 2 步和第三步直至你将全部的帐号添加进胡桃工具箱中。
  5. 此时即可在账号功能下方自由选择您要切换的账号
    • 每个已保存的账号均为可点击选择的按钮
    • 在其右侧有三个按钮,分别为:
      • 绑定当前用户角色,即将您当前选择的米游社登录状态绑定至该账号中,点击该按钮后,对应的 UID 将出现在该账号自定义名称的下方
      • 重命名,即修改当前选择账号的自定义名称
      • 删除,即删除当前选择的账号

外观选项

注意

  • 在当前的游戏版本中,有案例表明部分用户使用胡桃工具箱,选择独占全屏模式启动原神游戏,出现游戏无响应或卡顿的情况
    • 建议此部分用户使用无边框选项进行启动游戏
    • 问题的来源是游戏内置浏览器无法运行
  • 在主界面点击左侧菜单栏进入启动游戏标签
  • 外观功能中,有六个选项:
    • 独占全屏,即选择游戏进程以独占全屏模式运行
    • 全屏,即选择启动游戏后的游戏界面是否设置为全屏
    • 无边框,即选择启动游戏后的游戏界面是否设置为无边框窗口
    • 宽度,即选择启动游戏后的游戏界面的宽度,例如1920
    • 高度,即选择启动游戏后的游戏界面的高度,例如1080
    • 显示器,允许多显示器用户选择指定的显示器来运行游戏

高级功能

警告

  • 请注意:高级功能已明确标注为 Dangerous Feature,即危险功能,选择启用即代表您选择自行承担任意风险
  • 你需要首先在胡桃设置页面中启用高级功能

解锁帧率上限

',7),V={class:"hint-container danger"},S=l("p",{class:"hint-container-title"},"警告",-1),D={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},I=l("code",null,"120帧率",-1),E=t('
  • 使用管理员模式启动胡桃

  • 在主界面点击左侧菜单栏进入启动游戏标签

  • 在最下方可见 解锁帧率限制 选项

    • 在右侧点击开启或关闭按钮,所显示的 禁用启用 分别代表已禁用已启用该功能
    • 在下方的 设置帧率上限 选项中,可自由拖动拉杆,调整到您需要设置的最高帧率上限
  • 会导致解锁帧率上限失败的因素:

    • 胡桃工具箱没有保持在后台运行
    • 游戏内未关闭垂直同步选项
    • 在显卡驱动中存在最大帧速率的设置
    • 在显卡驱动软件内存在未关闭的类似于节能模式的选项
    • 显卡性能不足

游戏客户端多开

警告

游戏客户端多开是一个远比解锁帧率上限还危险的功能,你应当在亲自或邀请有技术知识的专业人士审阅代码后自行判断是否使用该功能。

使用该功能会导致原神反作弊功能加载失败,原神客户端会向米哈游服务器汇报该现实情况。

  1. 使用管理员模式启动胡桃
  2. 在主界面点击左侧菜单栏进入启动游戏标签
  3. 在最下方启用 多客户端 选项
  4. 点击右上角的启动游戏
  5. 等待 12 秒后再进门
  6. 重复步骤 4 和步骤 5 以开启下一个客户端
',4);function L(U,H){const n=o("BiliBili"),d=o("ExternalLinkIcon"),c=o("RouterLink");return r(),s("div",null,[_,l("details",p,[g,i(n,{bvid:"BV1Sv4y1k7zi"})]),m,l("table",null,[f,l("tbody",null,[b,l("tr",null,[v,x,k,l("td",null,[e("理论支持"),B,l("a",y,[e("我们期待更多的社区开发者帮助"),i(d)])])])])]),G,l("div",V,[S,l("ul",null,[l("li",null,[l("a",D,[e("Unlocker 项目"),i(d)]),e("仅作用于 UnityPlayer 本身,即直接作用于 Unity3D 引擎,与游戏本体不发生直接关系,本质上与移动端中"),I,e("等设置无异,但您仍应谨慎使用并自行阅读"),i(c,{to:"/zh/statements/tos.html"},{default:h(()=>[e("用户协议")]),_:1})])])]),E])}const Y=a(u,[["render",L],["__file","game-launcher.html.vue"]]);export{Y as default}; diff --git a/assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js b/assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js similarity index 96% rename from assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js rename to assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js index 70a2eed85..872f414a6 100644 --- a/assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js +++ b/assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-1a16ab73.js";const d={},s=i('

使用第三方工具获取有 Stoken 的 cookie

注意

  • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
  • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

Android

Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
  • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
    • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
    • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
      • 你需要卸载官方版米游社以安装该版本的米游社
  • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
  • 在右上角点击形如 🔑 形状的按钮
  • 点击勾选 Stoken 选项
  • 点击复制登录信息
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录

iOS

iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-dddc4fb8.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    注意

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; diff --git a/assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js b/assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js similarity index 96% rename from assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js rename to assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js index 0db38b08e..d4ffe06eb 100644 --- a/assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js +++ b/assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-1a16ab73.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    Note

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-dddc4fb8.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    Note

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; diff --git a/assets/hutao-API.html-85c59718.js b/assets/hutao-API.html-6a0f3bd7.js similarity index 98% rename from assets/hutao-API.html-85c59718.js rename to assets/hutao-API.html-6a0f3bd7.js index b8c3ac56e..d0fecb290 100644 --- a/assets/hutao-API.html-85c59718.js +++ b/assets/hutao-API.html-6a0f3bd7.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as r,c as d,d as p,w as e,e as l,a as t}from"./app-1a16ab73.js";const h={},f=l('

    胡桃数据库/深渊统计

    胡桃工具箱提供两个主要的深境螺旋挑战统计的功能

    • 侧栏中的深渊统计是一个旨在通过统计并展示广大玩家深境螺旋挑战数据,来帮助对原神对战系统不熟悉玩家组建队伍、通关深渊、获取奖励的功能
    • 侧栏中的深渊记录是一个通过保存玩家每一期深境螺旋挑战数据来帮助个人玩家回顾游戏经历及个人数据收集的统计功能
      • 众多的玩家通过上传个人的深渊记录来形成胡桃数据库的深渊统计数据集
    ',3),u=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01VNtgaU1g6du5Mh1Oo_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),g=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01AKGIZn1g6du8k0Rhb_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ZRakBS1g6duBCh0c1_!!1797064093.png_.webp",alt:"hutaoapi",loading:"lazy"})],-1),_=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01EUjFsJ1g6du8k0NYy_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),b=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01xMLXhn1g6du6lPUDD_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),v=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01xtWJfr1g6dtvjZLWZ_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),x=l('

    查看深渊数据

    数据范围局限性

    所有计算数据都基于已上传至胡桃数据库中的玩家数据,无法代表全部原神玩家的平均数据,数据仅做参考用途

    数据刷新周期

    1. 深境螺旋统计数据(角色使用率、角色出场率、队伍出场)在帐号所属游戏服务器时区每月 1 日和 16 日的 4 点自动清理。
      • 点击界面右上角的信息按钮你可以查看当前实时已上传的总数据
    2. 同时,若用户在 30 天内没有重新上传记录以更新数据,则其的角色持有数据将被清理
    • 在主界面点击左侧菜单栏进入深渊统计页面
    • 点击角色使用以查看角色使用率数据
      • 角色使用率 = 角色在当前层数出场次数[1] / 持有该角色的玩家在该层数的总记录数
    • 点击角色出场以查看角色出场率数据
      • 角色出场率 = 角色在当前层数出场次数[2] / 当前层数总记录数
    • 点击角色持有以查看角色持有率数据[3]
      • 角色持有率[4] = 所有拥有该角色的玩家数量 / 全部玩家数量
    • 点击队伍出场以查看队伍组合出场次数数据
      • 各种角色组队情况下出场次数的排名

    上传深境螺旋数据

    使用胡桃客户端

    • 在主界面点击左侧菜单栏进入深渊记录功能页面
    • 点击右上角的刷新数据以确保胡桃工具箱客户端已经获取到最新的个人深境螺旋数据
    • 点击右上角的上传数据以上传你的深境螺旋数据
      • 这可能需要花费数秒,上传成功后你将会看到如下图的成功提示 upload-hutaoapi

    使用浏览器

    相关信息

    该方法不适用于 HoYoLab

    • 打开我们的 JavaScript 脚本,复制全部内容

    • 在浏览器中创建一个新的书签

      • 在名称中填写一个合适的名称
      • 在 URL 中粘贴你刚刚复制的全部代码

      add-bookmark

    • 访问米游社,在页面加载完成后点击你刚刚创建的书签

    • 稍等片刻,你应该能看到请求上传的确认窗口

    • 在确认后,浏览器将上传你的深渊数据,请勿关闭米游社页面

    • 在上传完成后,浏览器会有确认完成的提示窗口


    1. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    2. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    3. 角色持有数据与深境螺旋记录独立 ↩︎

    4. 只要拥有该角色,即使没有在深境螺旋中登场,也会被计入拥有的状态;只要上传过深境螺旋记录,即会被计入全部玩家的数据中。 ↩︎

    ',12);function N(k,w){const s=n("Tabs");return r(),d("div",null,[f,p(s,{id:"25",data:[{title:"角色使用率"},{title:"角色出场率"},{title:"队伍出场次数"},{title:"角色持有率"},{title:"个人数据统计"},{title:"个人数据详情"}]},{tab0:e(({title:o,value:a,isActive:i})=>[u]),tab1:e(({title:o,value:a,isActive:i})=>[g]),tab2:e(({title:o,value:a,isActive:i})=>[m]),tab3:e(({title:o,value:a,isActive:i})=>[_]),tab4:e(({title:o,value:a,isActive:i})=>[b]),tab5:e(({title:o,value:a,isActive:i})=>[v]),_:1}),x])}const O=c(h,[["render",N],["__file","hutao-API.html.vue"]]);export{O as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as r,c as d,d as p,w as e,e as l,a as t}from"./app-dddc4fb8.js";const h={},f=l('

    胡桃数据库/深渊统计

    胡桃工具箱提供两个主要的深境螺旋挑战统计的功能

    • 侧栏中的深渊统计是一个旨在通过统计并展示广大玩家深境螺旋挑战数据,来帮助对原神对战系统不熟悉玩家组建队伍、通关深渊、获取奖励的功能
    • 侧栏中的深渊记录是一个通过保存玩家每一期深境螺旋挑战数据来帮助个人玩家回顾游戏经历及个人数据收集的统计功能
      • 众多的玩家通过上传个人的深渊记录来形成胡桃数据库的深渊统计数据集
    ',3),u=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01VNtgaU1g6du5Mh1Oo_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),g=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01AKGIZn1g6du8k0Rhb_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ZRakBS1g6duBCh0c1_!!1797064093.png_.webp",alt:"hutaoapi",loading:"lazy"})],-1),_=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01EUjFsJ1g6du8k0NYy_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),b=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01xMLXhn1g6du6lPUDD_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),v=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01xtWJfr1g6dtvjZLWZ_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),x=l('

    查看深渊数据

    数据范围局限性

    所有计算数据都基于已上传至胡桃数据库中的玩家数据,无法代表全部原神玩家的平均数据,数据仅做参考用途

    数据刷新周期

    1. 深境螺旋统计数据(角色使用率、角色出场率、队伍出场)在帐号所属游戏服务器时区每月 1 日和 16 日的 4 点自动清理。
      • 点击界面右上角的信息按钮你可以查看当前实时已上传的总数据
    2. 同时,若用户在 30 天内没有重新上传记录以更新数据,则其的角色持有数据将被清理
    • 在主界面点击左侧菜单栏进入深渊统计页面
    • 点击角色使用以查看角色使用率数据
      • 角色使用率 = 角色在当前层数出场次数[1] / 持有该角色的玩家在该层数的总记录数
    • 点击角色出场以查看角色出场率数据
      • 角色出场率 = 角色在当前层数出场次数[2] / 当前层数总记录数
    • 点击角色持有以查看角色持有率数据[3]
      • 角色持有率[4] = 所有拥有该角色的玩家数量 / 全部玩家数量
    • 点击队伍出场以查看队伍组合出场次数数据
      • 各种角色组队情况下出场次数的排名

    上传深境螺旋数据

    使用胡桃客户端

    • 在主界面点击左侧菜单栏进入深渊记录功能页面
    • 点击右上角的刷新数据以确保胡桃工具箱客户端已经获取到最新的个人深境螺旋数据
    • 点击右上角的上传数据以上传你的深境螺旋数据
      • 这可能需要花费数秒,上传成功后你将会看到如下图的成功提示 upload-hutaoapi

    使用浏览器

    相关信息

    该方法不适用于 HoYoLab

    • 打开我们的 JavaScript 脚本,复制全部内容

    • 在浏览器中创建一个新的书签

      • 在名称中填写一个合适的名称
      • 在 URL 中粘贴你刚刚复制的全部代码

      add-bookmark

    • 访问米游社,在页面加载完成后点击你刚刚创建的书签

    • 稍等片刻,你应该能看到请求上传的确认窗口

    • 在确认后,浏览器将上传你的深渊数据,请勿关闭米游社页面

    • 在上传完成后,浏览器会有确认完成的提示窗口


    1. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    2. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    3. 角色持有数据与深境螺旋记录独立 ↩︎

    4. 只要拥有该角色,即使没有在深境螺旋中登场,也会被计入拥有的状态;只要上传过深境螺旋记录,即会被计入全部玩家的数据中。 ↩︎

    ',12);function N(k,w){const s=n("Tabs");return r(),d("div",null,[f,p(s,{id:"25",data:[{title:"角色使用率"},{title:"角色出场率"},{title:"队伍出场次数"},{title:"角色持有率"},{title:"个人数据统计"},{title:"个人数据详情"}]},{tab0:e(({title:o,value:a,isActive:i})=>[u]),tab1:e(({title:o,value:a,isActive:i})=>[g]),tab2:e(({title:o,value:a,isActive:i})=>[m]),tab3:e(({title:o,value:a,isActive:i})=>[_]),tab4:e(({title:o,value:a,isActive:i})=>[b]),tab5:e(({title:o,value:a,isActive:i})=>[v]),_:1}),x])}const O=c(h,[["render",N],["__file","hutao-API.html.vue"]]);export{O as default}; diff --git a/assets/hutao-API.html-cef8eefd.js b/assets/hutao-API.html-861299fa.js similarity index 98% rename from assets/hutao-API.html-cef8eefd.js rename to assets/hutao-API.html-861299fa.js index a5a9f165b..7aaf682e1 100644 --- a/assets/hutao-API.html-cef8eefd.js +++ b/assets/hutao-API.html-861299fa.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as d,d as h,w as e,e as s,a}from"./app-1a16ab73.js";const p={},u=s('

    Hutao Database / Abyss Record

    Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

    • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
    • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
      • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records
    ',3),f=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01VNtgaU1g6du5Mh1Oo_!!1797064093.png",alt:"character-usage-rate",loading:"lazy"})],-1),b=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01AKGIZn1g6du8k0Rhb_!!1797064093.png",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ZRakBS1g6duBCh0c1_!!1797064093.png",alt:"hutaoapi",loading:"lazy"})],-1),g=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01EUjFsJ1g6du8k0NYy_!!1797064093.png",alt:"character-held-rate",loading:"lazy"})],-1),y=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01xMLXhn1g6du6lPUDD_!!1797064093.png",alt:"personal-record-stat",loading:"lazy"})],-1),w=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01xtWJfr1g6dtvjZLWZ_!!1797064093.png",alt:"personal-record-details",loading:"lazy"})],-1),A=s('

    View Abyss Stats

    Data Scope Limitation

    All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

    Stats Data Refresh Cycle

    1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
      • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
    2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
    • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
    • Click Character Usage tab to view character usage rate statistics
      • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
    • Click Character Appearance tab to view character appearance rate statistics
      • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
    • Click Teams tab to view teams appearance time statistics
      • Team appearance is the appearance time rank of different characters team combination
    • Click Character Constellation tab to view character constellation statistics [3]
      • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

    Upload Abyss Data

    Use Snap Hutao Client

    • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
    • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
    • Click Upload Data to upload your Spiral Abyss records
      • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

    Use Browser

    Info

    This method does not support HoYoLab

    • Open our JavaScript file, copy the entire content
    • Create new bookmark in your browser
      • Fill with a suitable name
      • in the URL field, fill with script you just copied add-bookmark
    • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
    • Wait for a moment, and you will see data upload request window
    • After confirm it, the browser will upload your abyss record, do not turn off your browser
    • You will receive a notification when your data is submitted

    1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

    4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

    ',12);function v(_,C){const l=n("Tabs");return c(),d("div",null,[u,h(l,{id:"25",data:[{title:"Character Usage"},{title:"Character Appearance"},{title:"Teams Appearance"},{title:"Character Constellation"},{title:"Personal Statistics"},{title:"Personal Stats Details"}]},{tab0:e(({title:t,value:o,isActive:i})=>[f]),tab1:e(({title:t,value:o,isActive:i})=>[b]),tab2:e(({title:t,value:o,isActive:i})=>[m]),tab3:e(({title:t,value:o,isActive:i})=>[g]),tab4:e(({title:t,value:o,isActive:i})=>[y]),tab5:e(({title:t,value:o,isActive:i})=>[w]),_:1}),A])}const x=r(p,[["render",v],["__file","hutao-API.html.vue"]]);export{x as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as d,d as h,w as e,e as s,a}from"./app-dddc4fb8.js";const p={},u=s('

    Hutao Database / Abyss Record

    Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

    • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
    • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
      • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records
    ',3),f=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01VNtgaU1g6du5Mh1Oo_!!1797064093.png",alt:"character-usage-rate",loading:"lazy"})],-1),b=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01AKGIZn1g6du8k0Rhb_!!1797064093.png",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ZRakBS1g6duBCh0c1_!!1797064093.png",alt:"hutaoapi",loading:"lazy"})],-1),g=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01EUjFsJ1g6du8k0NYy_!!1797064093.png",alt:"character-held-rate",loading:"lazy"})],-1),y=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01xMLXhn1g6du6lPUDD_!!1797064093.png",alt:"personal-record-stat",loading:"lazy"})],-1),w=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01xtWJfr1g6dtvjZLWZ_!!1797064093.png",alt:"personal-record-details",loading:"lazy"})],-1),A=s('

    View Abyss Stats

    Data Scope Limitation

    All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

    Stats Data Refresh Cycle

    1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
      • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
    2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
    • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
    • Click Character Usage tab to view character usage rate statistics
      • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
    • Click Character Appearance tab to view character appearance rate statistics
      • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
    • Click Teams tab to view teams appearance time statistics
      • Team appearance is the appearance time rank of different characters team combination
    • Click Character Constellation tab to view character constellation statistics [3]
      • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

    Upload Abyss Data

    Use Snap Hutao Client

    • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
    • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
    • Click Upload Data to upload your Spiral Abyss records
      • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

    Use Browser

    Info

    This method does not support HoYoLab

    • Open our JavaScript file, copy the entire content
    • Create new bookmark in your browser
      • Fill with a suitable name
      • in the URL field, fill with script you just copied add-bookmark
    • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
    • Wait for a moment, and you will see data upload request window
    • After confirm it, the browser will upload your abyss record, do not turn off your browser
    • You will receive a notification when your data is submitted

    1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

    4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

    ',12);function v(_,C){const l=n("Tabs");return c(),d("div",null,[u,h(l,{id:"25",data:[{title:"Character Usage"},{title:"Character Appearance"},{title:"Teams Appearance"},{title:"Character Constellation"},{title:"Personal Statistics"},{title:"Personal Stats Details"}]},{tab0:e(({title:t,value:o,isActive:i})=>[f]),tab1:e(({title:t,value:o,isActive:i})=>[b]),tab2:e(({title:t,value:o,isActive:i})=>[m]),tab3:e(({title:t,value:o,isActive:i})=>[g]),tab4:e(({title:t,value:o,isActive:i})=>[y]),tab5:e(({title:t,value:o,isActive:i})=>[w]),_:1}),A])}const x=r(p,[["render",v],["__file","hutao-API.html.vue"]]);export{x as default}; diff --git a/assets/hutao-settings.html-2b8d08a8.js b/assets/hutao-settings.html-67e3962d.js similarity index 99% rename from assets/hutao-settings.html-2b8d08a8.js rename to assets/hutao-settings.html-67e3962d.js index 9020364be..3a6d8d05e 100644 --- a/assets/hutao-settings.html-2b8d08a8.js +++ b/assets/hutao-settings.html-67e3962d.js @@ -1 +1 @@ -import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as u,a as e,b as a,d as i,w as l,e as r}from"./app-1a16ab73.js";const p={},g=r('

    Software Settings

    Info

    • The following feature tutorials are introduced in-program order.

    About Snap Hutao

    This part has the following information:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},f={class:"hint-container details"},y=e("summary",null,"Drawing Process",-1),w={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},_=e("li",null,"Snap Hutao client version",-1),b=e("li",null,"Device ID",-1),x={id:"snap-hutao-account",tabindex:"-1"},k=e("a",{class:"header-anchor",href:"#snap-hutao-account","aria-hidden":"true"},"#",-1),S=r('

    Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

    Appearance

    • Language

      • Snap Hutao will following system language setting by default
      • You can force to change to another language in the settings page
    • Backdrop Material

      • In this option, you can change the backdrop material of the software to
        • Acrylic
        • Mica (Windows 11 only)
        • MicaAlt (Windows 11 only)
      • The setting will take effect immediately

    @slidestart auto

    Windows 10 Acrylic

    win10-Acrylic


    Windows 11 Acrylic

    win11-Acrylic


    Windows 11 Mica

    win11-Mica


    Windows 11 MicaAlt

    win11-MicaAlt

    @slideend

    Wish History

    • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

    Game

    • Game Path

      • In this field, you can modify or set your game path for Snap Hutao
      • When setting the game path, you should select game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • Delete Game Embedded Browser Web Cache

      • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
      • Click on this field to execute the operation

    Storage

    • Open Data Folder

      • Click this field to open data folder that contains user data, log, and metadata
    • Change Data Directory

      • This field allows you to change the data directory to path you want
    • Open Cache Folder

      • Click this field will open cache folder that saves image assets used by Snap Hutao
    • Reset Image Resource

      • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

    MiHoYo BBS/HoYoLab Daily Check-in

    Tips

    Daily Check-in feature in Snap Hutao is mainly used to check account login status

    • How to use
      • First, login to your MiHoYo BBS/HoYoLab account and select it
      • Click on the field
      • Then Snap Hutao will pop up the check-in page and you can check-in manually
    • Interface when this feature is working: Daily check in

    Dangerous Features

    ',26),v=e("p",null,"For reference:",-1),C={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},B={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},H=e("li",null,[a("Delete All Users "),e("ul",null,[e("li",null,"Execute this operation will delete all user data in Snap Hutao"),e("li",null,"Click on the field to operate, you will be asked to confirm"),e("li",null,"In most scenario, you don't need to use this field")])],-1);function I(A,D){const o=n("RouterLink"),t=n("ExternalLinkIcon"),s=n("BiliBili"),c=n("Badge");return d(),u("div",null,[g,e("ul",null,[e("li",null,[a("The icon of Snap Hutao:You can find the original image of the icon at the "),i(o,{to:"/"},{default:l(()=>[a("home page")]),_:1}),e("ul",null,[e("li",null,[a("The artist is "),e("a",m,[a("画画的芦苇 (BiliBili)"),i(t)]),e("details",f,[y,i(s,{bvid:"BV1UL411d7Py"})])]),e("li",null,[e("a",w,[a("DGP-Studio"),i(t)]),a(" is authorized by owner to use it for Snap Hutao Project")])])]),_,b]),e("h2",x,[k,a(" Snap Hutao Account "),i(c,{text:"Beta",type:"info"})]),S,e("ul",null,[e("li",null,[a("Enable Advanced Features "),e("ul",null,[e("li",null,[a("With Snap Hutao running as administrator, you can enable this field to enable advanced features in the game launcher "),e("blockquote",null,[v,e("p",null,[i(o,{to:"/en/statements/tos.html"},{default:l(()=>[a("Snap Hutao Terms of Service")]),_:1})]),e("p",null,[e("a",C,[a("Genshin Impact Terms of Service (CN server/Chinese)"),i(t)])]),e("p",null,[e("a",B,[a("Genshin Impact Terms of Service (Oversea servers/English)"),i(t)])])])])])]),H])])}const N=h(p,[["render",I],["__file","hutao-settings.html.vue"]]);export{N as default}; +import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as u,a as e,b as a,d as i,w as l,e as r}from"./app-dddc4fb8.js";const p={},g=r('

    Software Settings

    Info

    • The following feature tutorials are introduced in-program order.

    About Snap Hutao

    This part has the following information:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},f={class:"hint-container details"},y=e("summary",null,"Drawing Process",-1),w={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},_=e("li",null,"Snap Hutao client version",-1),b=e("li",null,"Device ID",-1),x={id:"snap-hutao-account",tabindex:"-1"},k=e("a",{class:"header-anchor",href:"#snap-hutao-account","aria-hidden":"true"},"#",-1),S=r('

    Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

    Appearance

    • Language

      • Snap Hutao will following system language setting by default
      • You can force to change to another language in the settings page
    • Backdrop Material

      • In this option, you can change the backdrop material of the software to
        • Acrylic
        • Mica (Windows 11 only)
        • MicaAlt (Windows 11 only)
      • The setting will take effect immediately

    @slidestart auto

    Windows 10 Acrylic

    win10-Acrylic


    Windows 11 Acrylic

    win11-Acrylic


    Windows 11 Mica

    win11-Mica


    Windows 11 MicaAlt

    win11-MicaAlt

    @slideend

    Wish History

    • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

    Game

    • Game Path

      • In this field, you can modify or set your game path for Snap Hutao
      • When setting the game path, you should select game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • Delete Game Embedded Browser Web Cache

      • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
      • Click on this field to execute the operation

    Storage

    • Open Data Folder

      • Click this field to open data folder that contains user data, log, and metadata
    • Change Data Directory

      • This field allows you to change the data directory to path you want
    • Open Cache Folder

      • Click this field will open cache folder that saves image assets used by Snap Hutao
    • Reset Image Resource

      • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

    MiHoYo BBS/HoYoLab Daily Check-in

    Tips

    Daily Check-in feature in Snap Hutao is mainly used to check account login status

    • How to use
      • First, login to your MiHoYo BBS/HoYoLab account and select it
      • Click on the field
      • Then Snap Hutao will pop up the check-in page and you can check-in manually
    • Interface when this feature is working: Daily check in

    Dangerous Features

    ',26),v=e("p",null,"For reference:",-1),C={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},B={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},H=e("li",null,[a("Delete All Users "),e("ul",null,[e("li",null,"Execute this operation will delete all user data in Snap Hutao"),e("li",null,"Click on the field to operate, you will be asked to confirm"),e("li",null,"In most scenario, you don't need to use this field")])],-1);function I(A,D){const o=n("RouterLink"),t=n("ExternalLinkIcon"),s=n("BiliBili"),c=n("Badge");return d(),u("div",null,[g,e("ul",null,[e("li",null,[a("The icon of Snap Hutao:You can find the original image of the icon at the "),i(o,{to:"/"},{default:l(()=>[a("home page")]),_:1}),e("ul",null,[e("li",null,[a("The artist is "),e("a",m,[a("画画的芦苇 (BiliBili)"),i(t)]),e("details",f,[y,i(s,{bvid:"BV1UL411d7Py"})])]),e("li",null,[e("a",w,[a("DGP-Studio"),i(t)]),a(" is authorized by owner to use it for Snap Hutao Project")])])]),_,b]),e("h2",x,[k,a(" Snap Hutao Account "),i(c,{text:"Beta",type:"info"})]),S,e("ul",null,[e("li",null,[a("Enable Advanced Features "),e("ul",null,[e("li",null,[a("With Snap Hutao running as administrator, you can enable this field to enable advanced features in the game launcher "),e("blockquote",null,[v,e("p",null,[i(o,{to:"/en/statements/tos.html"},{default:l(()=>[a("Snap Hutao Terms of Service")]),_:1})]),e("p",null,[e("a",C,[a("Genshin Impact Terms of Service (CN server/Chinese)"),i(t)])]),e("p",null,[e("a",B,[a("Genshin Impact Terms of Service (Oversea servers/English)"),i(t)])])])])])]),H])])}const N=h(p,[["render",I],["__file","hutao-settings.html.vue"]]);export{N as default}; diff --git a/assets/hutao-settings.html-ef1abfbf.js b/assets/hutao-settings.html-ec4d694d.js similarity index 99% rename from assets/hutao-settings.html-ef1abfbf.js rename to assets/hutao-settings.html-ec4d694d.js index 09daabccd..bdc21010b 100644 --- a/assets/hutao-settings.html-ef1abfbf.js +++ b/assets/hutao-settings.html-ec4d694d.js @@ -1 +1 @@ -import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as u,a as i,b as l,d as e,w as o,e as r}from"./app-1a16ab73.js";const p={},_=r('

    软件设置

    相关信息

    • 以下内容将以胡桃工具箱内的设置功能的条目排列顺序为介绍顺序

    关于 胡桃

    该部分包含以下信息:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},g={class:"hint-container details"},w=i("summary",null,"图标的绘制过程",-1),b={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},f=i("li",null,"胡桃的版本号",-1),x=i("li",null,"设备 ID",-1),y={id:"胡桃帐号",tabindex:"-1"},B=i("a",{class:"header-anchor",href:"#胡桃帐号","aria-hidden":"true"},"#",-1),C=r('

    Hutao-account 胡桃帐号是由 DGP-Studio 团队创建的为胡桃工具箱服务的帐号系统,以使用在会在未来提供的包括祈愿云同步在内的涉及云端服务的功能。 目前胡桃帐号已支持注册和登录,你可以在设置中点击这一选项以注册并登录你的帐号。

    外观

    • 语言

      • 默认情况下胡桃会跟随系统设置来显示对应的语言
      • 使用该功能你可以强制将胡桃的显示语言设置为指定的语言
    • 背景材质

      • 在此选项中,您可以更改背景的材质为:
        • 亚克力
        • 云母 (Windows 11 特性)
        • 变种云母(Windows 11 特性)
      • 每个背景材质被选中后,您可以即时查看更改后的效果

    @slidestart auto

    Windows 10 亚克力

    win10-亚克力


    Windows 11 亚克力

    win11-亚克力


    Windows 11 云母

    win11-云母


    Windows 11 变种云母

    win11-变种云母

    @slideend

    祈愿记录

    • 在此条目中,您可以选择是否隐藏无记录的历史祈愿活动,即"没有祈愿记录的卡池"

    游戏

    • 游戏路径
      • 在此条目中,可以修改或设置您的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • 删除游戏内网页缓存
      • 若您在使用祈愿记录功能时,选择使用"从缓存刷新",但频繁提示验证密钥过期,可以尝试此操作
      • 点击此选项即可执行操作

    储存空间

    • 打开数据文件夹

      • 点击此选项,即可打开包含"用户数据/日志/元数据"的文件夹
    • 更换数据目录

      • 此选项将允许用户将数据文件夹设置到其它目录
    • 打开缓存文件夹

      • 点击此选项即可打开包含"图片缓存"的文件夹
      • 在此文件夹内,存储了胡桃工具箱在运行期间产生的图片缓存
    • 重置图片资源

      • 此选项允许用户在有大量图片下载失败的情况下重置缓存记录,执行该操作后软件会重启并重新下载图片缓存资源

    米游社每日签到

    提示

    米游社签到功能主要用于米游社帐号登录状态监测

    • 如何使用
      • 首先需要您在米游社多账号切换功能中,选中当前需要进行签到的米游社账号
      • 点击"打开签到对话框"按钮
      • 胡桃工具箱会打开签到页面,随后你即可手动签到
    • 该功能的正常使用界面:
      米游社每日签到

    危险功能

    ',26),N=i("p",null,"参考阅读:",-1),k={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},q={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},v=i("li",null,[l("删除所有用户 "),i("ul",null,[i("li",null,"此功能的作用是删除用户表的所有记录"),i("li",null,[l("点击"),i("code",null,"执行"),l("按钮即可完成删除")]),i("li",null,"通常情况下,用户不需要使用此功能来删除用户表的信息")])],-1);function W(z,I){const t=n("RouterLink"),a=n("ExternalLinkIcon"),d=n("BiliBili"),s=n("Badge");return c(),u("div",null,[_,i("ul",null,[i("li",null,[l("胡桃工具箱的图标:您可以在胡桃的"),e(t,{to:"/"},{default:o(()=>[l("首页")]),_:1}),l("查看它的原图 "),i("ul",null,[i("li",null,[l("该图像作品的作者为"),i("a",m,[l("画画的芦苇"),e(a)]),i("details",g,[w,e(d,{bvid:"BV1UL411d7Py"})])]),i("li",null,[i("a",b,[l("DGP-Studio"),e(a)]),l("已被所有者授权使用")])])]),f,x]),i("h2",y,[B,l(" 胡桃帐号 "),e(s,{text:"测试功能",type:"info"})]),C,i("ul",null,[i("li",null,[l("启用高级功能 "),i("ul",null,[i("li",null,[l("在管理员模式下,你可以通过启用这一栏设置以启用游戏启动器中的高级功能 "),i("blockquote",null,[N,i("p",null,[e(t,{to:"/zh/statements/tos.html"},{default:o(()=>[l("胡桃工具箱用户协议")]),_:1})]),i("p",null,[i("a",k,[l("原神用户协议(国服)"),e(a)])]),i("p",null,[i("a",q,[l("原神用户协议(国际服)"),e(a)])])])])])]),v])])}const L=h(p,[["render",W],["__file","hutao-settings.html.vue"]]);export{L as default}; +import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as u,a as i,b as l,d as e,w as o,e as r}from"./app-dddc4fb8.js";const p={},_=r('

    软件设置

    相关信息

    • 以下内容将以胡桃工具箱内的设置功能的条目排列顺序为介绍顺序

    关于 胡桃

    该部分包含以下信息:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},g={class:"hint-container details"},w=i("summary",null,"图标的绘制过程",-1),b={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},f=i("li",null,"胡桃的版本号",-1),x=i("li",null,"设备 ID",-1),y={id:"胡桃帐号",tabindex:"-1"},B=i("a",{class:"header-anchor",href:"#胡桃帐号","aria-hidden":"true"},"#",-1),C=r('

    Hutao-account 胡桃帐号是由 DGP-Studio 团队创建的为胡桃工具箱服务的帐号系统,以使用在会在未来提供的包括祈愿云同步在内的涉及云端服务的功能。 目前胡桃帐号已支持注册和登录,你可以在设置中点击这一选项以注册并登录你的帐号。

    外观

    • 语言

      • 默认情况下胡桃会跟随系统设置来显示对应的语言
      • 使用该功能你可以强制将胡桃的显示语言设置为指定的语言
    • 背景材质

      • 在此选项中,您可以更改背景的材质为:
        • 亚克力
        • 云母 (Windows 11 特性)
        • 变种云母(Windows 11 特性)
      • 每个背景材质被选中后,您可以即时查看更改后的效果

    @slidestart auto

    Windows 10 亚克力

    win10-亚克力


    Windows 11 亚克力

    win11-亚克力


    Windows 11 云母

    win11-云母


    Windows 11 变种云母

    win11-变种云母

    @slideend

    祈愿记录

    • 在此条目中,您可以选择是否隐藏无记录的历史祈愿活动,即"没有祈愿记录的卡池"

    游戏

    • 游戏路径
      • 在此条目中,可以修改或设置您的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • 删除游戏内网页缓存
      • 若您在使用祈愿记录功能时,选择使用"从缓存刷新",但频繁提示验证密钥过期,可以尝试此操作
      • 点击此选项即可执行操作

    储存空间

    • 打开数据文件夹

      • 点击此选项,即可打开包含"用户数据/日志/元数据"的文件夹
    • 更换数据目录

      • 此选项将允许用户将数据文件夹设置到其它目录
    • 打开缓存文件夹

      • 点击此选项即可打开包含"图片缓存"的文件夹
      • 在此文件夹内,存储了胡桃工具箱在运行期间产生的图片缓存
    • 重置图片资源

      • 此选项允许用户在有大量图片下载失败的情况下重置缓存记录,执行该操作后软件会重启并重新下载图片缓存资源

    米游社每日签到

    提示

    米游社签到功能主要用于米游社帐号登录状态监测

    • 如何使用
      • 首先需要您在米游社多账号切换功能中,选中当前需要进行签到的米游社账号
      • 点击"打开签到对话框"按钮
      • 胡桃工具箱会打开签到页面,随后你即可手动签到
    • 该功能的正常使用界面:
      米游社每日签到

    危险功能

    ',26),N=i("p",null,"参考阅读:",-1),k={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},q={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},v=i("li",null,[l("删除所有用户 "),i("ul",null,[i("li",null,"此功能的作用是删除用户表的所有记录"),i("li",null,[l("点击"),i("code",null,"执行"),l("按钮即可完成删除")]),i("li",null,"通常情况下,用户不需要使用此功能来删除用户表的信息")])],-1);function W(z,I){const t=n("RouterLink"),a=n("ExternalLinkIcon"),d=n("BiliBili"),s=n("Badge");return c(),u("div",null,[_,i("ul",null,[i("li",null,[l("胡桃工具箱的图标:您可以在胡桃的"),e(t,{to:"/"},{default:o(()=>[l("首页")]),_:1}),l("查看它的原图 "),i("ul",null,[i("li",null,[l("该图像作品的作者为"),i("a",m,[l("画画的芦苇"),e(a)]),i("details",g,[w,e(d,{bvid:"BV1UL411d7Py"})])]),i("li",null,[i("a",b,[l("DGP-Studio"),e(a)]),l("已被所有者授权使用")])])]),f,x]),i("h2",y,[B,l(" 胡桃帐号 "),e(s,{text:"测试功能",type:"info"})]),C,i("ul",null,[i("li",null,[l("启用高级功能 "),i("ul",null,[i("li",null,[l("在管理员模式下,你可以通过启用这一栏设置以启用游戏启动器中的高级功能 "),i("blockquote",null,[N,i("p",null,[e(t,{to:"/zh/statements/tos.html"},{default:o(()=>[l("胡桃工具箱用户协议")]),_:1})]),i("p",null,[i("a",k,[l("原神用户协议(国服)"),e(a)])]),i("p",null,[i("a",q,[l("原神用户协议(国际服)"),e(a)])])])])])]),v])])}const L=h(p,[["render",W],["__file","hutao-settings.html.vue"]]);export{L as default}; diff --git a/assets/i18n.html-d18b79eb.js b/assets/i18n.html-2617d448.js similarity index 98% rename from assets/i18n.html-d18b79eb.js rename to assets/i18n.html-2617d448.js index 357844ecd..f7f3ab10c 100644 --- a/assets/i18n.html-d18b79eb.js +++ b/assets/i18n.html-2617d448.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as k,a as l,b as e,d as s,e as d}from"./app-1a16ab73.js";const b={},o=d('

    国际化支持

    国际化进度

    Snap Hutao 虽然基于原神国服提供功能,但项目也有意提升国际化支持,包括语言本土化和功能国际化。目前国际化进度如下:

    • Snap Hutao 主项目
        • 进度:Crowdin
    • Snap Hutao 文档
      • 进度:

    参与国际化

    ',5),n=l("code",null,"[Hoyolab]: Globalization support",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=l("ul",null,[l("li",null,"我们会在该 Issue 中更新当前主程序国际化进度"),l("li",null,[e("你可以在这里宣布参与主程序某一部分的国际化支持,我们会为此提供支持 "),l("ul",null,[l("li",null,"我们也欢迎直接通过分支发起 Pull Request")])])],-1),r={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=l("li",null,"开发团队正在维护中文文档并完善英文文档",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[e("如果你计划为一个新的语言翻译文档,你可以创建一个英文文档目录("),l("code",null,"en"),e("目录)的副本然后以 [ISO 639-1 语言代码]命名 "),l("ul",null,[l("li",null,[e("比如说日语文档目录应命名为 "),l("code",null,"jp")]),l("li",null,[e("不要基于中文文档("),l("code",null,"zh"),e(")翻译,因为其中有一些内容是专门有效于中文用户的;对于国际用户而言并不是有用的。")])])],-1);function f(_,y){const t=i("ExternalLinkIcon");return c(),k("div",null,[o,l("ul",null,[l("li",null,[e("Snap Hutao 主项目 "),l("ul",null,[l("li",null,[e("我们在 GitHub 上创建了一个名为 "),n,e(" 的 "),l("a",m,[e("Issue"),s(t)]),h]),l("li",null,[l("strong",null,[e("你可以在 "),l("a",r,[e("translate.hut.ao"),s(t)]),e(" 参与客户端的翻译工作")])])])]),l("li",null,[e("Snap Hutao 文档 "),l("ul",null,[u,l("li",null,[e("你可以克隆"),l("a",p,[e("文档库"),s(t)]),e(",在你自己的库中使用你喜欢的工具翻译文档,之后创建一个 PR 来将你的作品提交到文档库中")]),x])])])])}const H=a(b,[["render",f],["__file","i18n.html.vue"]]);export{H as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as k,a as l,b as e,d as s,e as d}from"./app-dddc4fb8.js";const b={},o=d('

    国际化支持

    国际化进度

    Snap Hutao 虽然基于原神国服提供功能,但项目也有意提升国际化支持,包括语言本土化和功能国际化。目前国际化进度如下:

    • Snap Hutao 主项目
        • 进度:Crowdin
    • Snap Hutao 文档
      • 进度:

    参与国际化

    ',5),n=l("code",null,"[Hoyolab]: Globalization support",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=l("ul",null,[l("li",null,"我们会在该 Issue 中更新当前主程序国际化进度"),l("li",null,[e("你可以在这里宣布参与主程序某一部分的国际化支持,我们会为此提供支持 "),l("ul",null,[l("li",null,"我们也欢迎直接通过分支发起 Pull Request")])])],-1),r={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=l("li",null,"开发团队正在维护中文文档并完善英文文档",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[e("如果你计划为一个新的语言翻译文档,你可以创建一个英文文档目录("),l("code",null,"en"),e("目录)的副本然后以 [ISO 639-1 语言代码]命名 "),l("ul",null,[l("li",null,[e("比如说日语文档目录应命名为 "),l("code",null,"jp")]),l("li",null,[e("不要基于中文文档("),l("code",null,"zh"),e(")翻译,因为其中有一些内容是专门有效于中文用户的;对于国际用户而言并不是有用的。")])])],-1);function f(_,y){const t=i("ExternalLinkIcon");return c(),k("div",null,[o,l("ul",null,[l("li",null,[e("Snap Hutao 主项目 "),l("ul",null,[l("li",null,[e("我们在 GitHub 上创建了一个名为 "),n,e(" 的 "),l("a",m,[e("Issue"),s(t)]),h]),l("li",null,[l("strong",null,[e("你可以在 "),l("a",r,[e("translate.hut.ao"),s(t)]),e(" 参与客户端的翻译工作")])])])]),l("li",null,[e("Snap Hutao 文档 "),l("ul",null,[u,l("li",null,[e("你可以克隆"),l("a",p,[e("文档库"),s(t)]),e(",在你自己的库中使用你喜欢的工具翻译文档,之后创建一个 PR 来将你的作品提交到文档库中")]),x])])])])}const H=a(b,[["render",f],["__file","i18n.html.vue"]]);export{H as default}; diff --git a/assets/i18n.html-97547831.js b/assets/i18n.html-5a20b497.js similarity index 98% rename from assets/i18n.html-97547831.js rename to assets/i18n.html-5a20b497.js index a02a1740e..808928d61 100644 --- a/assets/i18n.html-97547831.js +++ b/assets/i18n.html-5a20b497.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as o,a as e,b as l,d as a,e as n}from"./app-1a16ab73.js";const r={},d=n('

    Localization

    Localization Process

    Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

    • Snap Hutao
        • Process: Crowdin
    • Snao Hutao Docs
      • Process:

    Engage our Localization

    ',5),k=e("code",null,"[Hoyolab] on GitHub: Globalization support",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=e("ul",null,[e("li",null,"We will update our process in this thread"),e("li",null,[l("You can declare your localization engagement in the thread, and we will provide the necessary support "),e("ul",null,[e("li",null,"We also welcome PR directly")])])],-1),m={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"The developer team is maintaining Chinese documents and working on English documents",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,"en",-1),x={href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[l("For example "),e("code",null,"jp"),l(" as Japanese")]),e("li",null,[l("Do not translate based on Chinese docs ("),e("code",null,"zh"),l(") as there are some content only specific useful for Chinese users; they are not useful for international users.")])],-1);function y(_,w){const t=i("ExternalLinkIcon");return c(),o("div",null,[d,e("ul",null,[e("li",null,[l("Snap Hutao "),e("ul",null,[e("li",null,[l("We created an issue thread named "),k,l(),e("a",b,[l("Issue"),a(t)]),h]),e("li",null,[e("strong",null,[l("You can provide your translation at "),e("a",m,[l("translate.hut.ao"),a(t)])])])])]),e("li",null,[l("Snap Hutao Docs "),e("ul",null,[u,e("li",null,[l("You can clone the "),e("a",p,[l("docs repository"),a(t)]),l(", translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository")]),e("li",null,[l("If you are adding a new language, you can copy the entire "),f,l(" folder and rename it with "),e("a",x,[l("ISO 639-1 language code"),a(t)]),g])])])])])}const H=s(r,[["render",y],["__file","i18n.html.vue"]]);export{H as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as o,a as e,b as l,d as a,e as n}from"./app-dddc4fb8.js";const r={},d=n('

    Localization

    Localization Process

    Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

    • Snap Hutao
        • Process: Crowdin
    • Snao Hutao Docs
      • Process:

    Engage our Localization

    ',5),k=e("code",null,"[Hoyolab] on GitHub: Globalization support",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=e("ul",null,[e("li",null,"We will update our process in this thread"),e("li",null,[l("You can declare your localization engagement in the thread, and we will provide the necessary support "),e("ul",null,[e("li",null,"We also welcome PR directly")])])],-1),m={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"The developer team is maintaining Chinese documents and working on English documents",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,"en",-1),x={href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[l("For example "),e("code",null,"jp"),l(" as Japanese")]),e("li",null,[l("Do not translate based on Chinese docs ("),e("code",null,"zh"),l(") as there are some content only specific useful for Chinese users; they are not useful for international users.")])],-1);function y(_,w){const t=i("ExternalLinkIcon");return c(),o("div",null,[d,e("ul",null,[e("li",null,[l("Snap Hutao "),e("ul",null,[e("li",null,[l("We created an issue thread named "),k,l(),e("a",b,[l("Issue"),a(t)]),h]),e("li",null,[e("strong",null,[l("You can provide your translation at "),e("a",m,[l("translate.hut.ao"),a(t)])])])])]),e("li",null,[l("Snap Hutao Docs "),e("ul",null,[u,e("li",null,[l("You can clone the "),e("a",p,[l("docs repository"),a(t)]),l(", translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository")]),e("li",null,[l("If you are adding a new language, you can copy the entire "),f,l(" folder and rename it with "),e("a",x,[l("ISO 639-1 language code"),a(t)]),g])])])])])}const H=s(r,[["render",y],["__file","i18n.html.vue"]]);export{H as default}; diff --git a/assets/index.html-a2f7c506.js b/assets/index.html-30bc5ccf.js similarity index 84% rename from assets/index.html-a2f7c506.js rename to assets/index.html-30bc5ccf.js index d0618d351..44af9f02f 100644 --- a/assets/index.html-a2f7c506.js +++ b/assets/index.html-30bc5ccf.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c,d as r,a as e,b as d}from"./app-1a16ab73.js";const s={},_=e("h1",{id:"advanced",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#advanced","aria-hidden":"true"},"#"),d(" Advanced")],-1);function i(l,m){const a=t("AutoCatalog");return n(),c("div",null,[_,r(a)])}const u=o(s,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c,d as r,a as e,b as d}from"./app-dddc4fb8.js";const s={},_=e("h1",{id:"advanced",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#advanced","aria-hidden":"true"},"#"),d(" Advanced")],-1);function i(l,m){const a=t("AutoCatalog");return n(),c("div",null,[_,r(a)])}const u=o(s,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-c6a3007c.js b/assets/index.html-3f0b9626.js similarity index 83% rename from assets/index.html-c6a3007c.js rename to assets/index.html-3f0b9626.js index c93a70357..038d0f442 100644 --- a/assets/index.html-c6a3007c.js +++ b/assets/index.html-3f0b9626.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as o,a as e,b as r}from"./app-1a16ab73.js";const c={},n=e("h1",{id:"开发",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#开发","aria-hidden":"true"},"#"),r(" 开发")],-1),s=[n];function _(d,i){return a(),o("div",null,s)}const f=t(c,[["render",_],["__file","index.html.vue"]]);export{f as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as o,a as e,b as r}from"./app-dddc4fb8.js";const c={},n=e("h1",{id:"开发",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#开发","aria-hidden":"true"},"#"),r(" 开发")],-1),s=[n];function _(d,i){return a(),o("div",null,s)}const f=t(c,[["render",_],["__file","index.html.vue"]]);export{f as default}; diff --git a/assets/index.html-cdb106dd.js b/assets/index.html-3ff3e6c5.js similarity index 98% rename from assets/index.html-cdb106dd.js rename to assets/index.html-3ff3e6c5.js index 100258550..7614730b1 100644 --- a/assets/index.html-cdb106dd.js +++ b/assets/index.html-3ff3e6c5.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c as l,a as t,b as o,d as e,w as c,e as u}from"./app-1a16ab73.js";const d={},h=t("h2",{id:"contribute",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#contribute","aria-hidden":"true"},"#"),o(" Contribute")],-1),p=t("p",null,"Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.",-1),m=t("p",null,"You can make contribution by the following ways:",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),k=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),x=t("li",null,"Promote our project in your network",-1),H=u('

    commit_activity hutao-last-commit

    Service Used

    Snap Hutao is currently using software from the following service providers.

    Deploys by NetlifyCrowdin | Agile localization for tech companies',5);function v(D,P){const a=n("ExternalLinkIcon"),i=n("RouterLink");return s(),l("div",null,[h,p,m,t("ol",null,[t("li",null,[t("a",g,[o("Make Pull Requests to our code"),e(a)])]),t("li",null,[o("Translate the project for a better "),e(i,{to:"/en/i18n.html"},{default:c(()=>[o("localization")]),_:1})]),t("li",null,[t("a",_,[o("Update document"),e(a)])])]),f,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",b,[o("Snap.Hutao"),e(a)]),o(),w]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(a)]),o(),S])])]),k,x]),H])}const z=r(d,[["render",v],["__file","index.html.vue"]]);export{z as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c as l,a as t,b as o,d as e,w as c,e as u}from"./app-dddc4fb8.js";const d={},h=t("h2",{id:"contribute",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#contribute","aria-hidden":"true"},"#"),o(" Contribute")],-1),p=t("p",null,"Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.",-1),m=t("p",null,"You can make contribution by the following ways:",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),k=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),x=t("li",null,"Promote our project in your network",-1),H=u('

    commit_activity hutao-last-commit

    Service Used

    Snap Hutao is currently using software from the following service providers.

    Deploys by NetlifyCrowdin | Agile localization for tech companies',5);function v(D,P){const a=n("ExternalLinkIcon"),i=n("RouterLink");return s(),l("div",null,[h,p,m,t("ol",null,[t("li",null,[t("a",g,[o("Make Pull Requests to our code"),e(a)])]),t("li",null,[o("Translate the project for a better "),e(i,{to:"/en/i18n.html"},{default:c(()=>[o("localization")]),_:1})]),t("li",null,[t("a",_,[o("Update document"),e(a)])])]),f,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",b,[o("Snap.Hutao"),e(a)]),o(),w]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(a)]),o(),S])])]),k,x]),H])}const z=r(d,[["render",v],["__file","index.html.vue"]]);export{z as default}; diff --git a/assets/index.html-03a53c22.js b/assets/index.html-62cd4613.js similarity index 84% rename from assets/index.html-03a53c22.js rename to assets/index.html-62cd4613.js index db171dba7..51571eaaf 100644 --- a/assets/index.html-03a53c22.js +++ b/assets/index.html-62cd4613.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-1a16ab73.js";const d={},_=e("h1",{id:"高级",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#高级","aria-hidden":"true"},"#"),s(" 高级")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-dddc4fb8.js";const d={},_=e("h1",{id:"高级",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#高级","aria-hidden":"true"},"#"),s(" 高级")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-81ae5447.js b/assets/index.html-686501f4.js similarity index 85% rename from assets/index.html-81ae5447.js rename to assets/index.html-686501f4.js index ec1a4fdd3..d1876bd15 100644 --- a/assets/index.html-81ae5447.js +++ b/assets/index.html-686501f4.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-1a16ab73.js";const d={},_=e("h1",{id:"声明和公告",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#声明和公告","aria-hidden":"true"},"#"),s(" 声明和公告")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-dddc4fb8.js";const d={},_=e("h1",{id:"声明和公告",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#声明和公告","aria-hidden":"true"},"#"),s(" 声明和公告")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-a856e4a5.js b/assets/index.html-6d28017a.js similarity index 85% rename from assets/index.html-a856e4a5.js rename to assets/index.html-6d28017a.js index ae5cf3e1f..821d8ad70 100644 --- a/assets/index.html-a856e4a5.js +++ b/assets/index.html-6d28017a.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as s,d as r,a as e,b as c}from"./app-1a16ab73.js";const d={},_=e("h1",{id:"statements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#statements","aria-hidden":"true"},"#"),c(" Statements")],-1);function i(l,m){const t=o("AutoCatalog");return n(),s("div",null,[_,r(t)])}const u=a(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as s,d as r,a as e,b as c}from"./app-dddc4fb8.js";const d={},_=e("h1",{id:"statements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#statements","aria-hidden":"true"},"#"),c(" Statements")],-1);function i(l,m){const t=o("AutoCatalog");return n(),s("div",null,[_,r(t)])}const u=a(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-a28dd6fb.js b/assets/index.html-8057fd2e.js similarity index 85% rename from assets/index.html-a28dd6fb.js rename to assets/index.html-8057fd2e.js index 5bee8d804..657ba0700 100644 --- a/assets/index.html-a28dd6fb.js +++ b/assets/index.html-8057fd2e.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-1a16ab73.js";const d={},_=e("h1",{id:"功能指南",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#功能指南","aria-hidden":"true"},"#"),s(" 功能指南")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-dddc4fb8.js";const d={},_=e("h1",{id:"功能指南",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#功能指南","aria-hidden":"true"},"#"),s(" 功能指南")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-3508ae45.js b/assets/index.html-a5685402.js similarity index 98% rename from assets/index.html-3508ae45.js rename to assets/index.html-a5685402.js index 49028ab6b..6b9848ad7 100644 --- a/assets/index.html-3508ae45.js +++ b/assets/index.html-a5685402.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c as r,a as t,b as o,d as e,w as c,e as d}from"./app-1a16ab73.js";const h={},u=t("h2",{id:"贡献",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#贡献","aria-hidden":"true"},"#"),o(" 贡献")],-1),p=t("p",null,"Snap Hutao 是一个由开源社区维护的免费项目,我们希望有更多志同道合的开发者能参与到项目中,为 Snap Hutao 带来更多的功能。",-1),m=t("p",null,"你可以通过以下方法为项目作出贡献:",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),w={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},y=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),x=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),H=t("li",null,"在更多的地方帮助我们宣传",-1),k=d('

    commit_activityhutao-last-commit

    平台

    Snap Hutao 目前使用了以下软件厂商提供的服务

    Deploys by NetlifyCrowdin | Agile localization for tech companies',5);function D(P,G){const a=n("ExternalLinkIcon"),i=n("RouterLink");return s(),r("div",null,[u,p,m,t("ol",null,[t("li",null,[t("a",_,[o("向我们提交 PR"),e(a)])]),t("li",null,[o("为项目贡献"),e(i,{to:"/zh/i18n.html"},{default:c(()=>[o("本地化翻译")]),_:1})]),t("li",null,[t("a",g,[o("为我们更新文档"),e(a)])])]),f,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",b,[o("Snap.Hutao"),e(a)]),o(),S]),t("li",null,[t("a",w,[o("Snap.Hutao.Docs"),e(a)]),o(),y])])]),x,H]),k])}const z=l(h,[["render",D],["__file","index.html.vue"]]);export{z as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c as r,a as t,b as o,d as e,w as c,e as d}from"./app-dddc4fb8.js";const h={},u=t("h2",{id:"贡献",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#贡献","aria-hidden":"true"},"#"),o(" 贡献")],-1),p=t("p",null,"Snap Hutao 是一个由开源社区维护的免费项目,我们希望有更多志同道合的开发者能参与到项目中,为 Snap Hutao 带来更多的功能。",-1),m=t("p",null,"你可以通过以下方法为项目作出贡献:",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),w={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},y=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),x=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),H=t("li",null,"在更多的地方帮助我们宣传",-1),k=d('

    commit_activityhutao-last-commit

    平台

    Snap Hutao 目前使用了以下软件厂商提供的服务

    Deploys by NetlifyCrowdin | Agile localization for tech companies',5);function D(P,G){const a=n("ExternalLinkIcon"),i=n("RouterLink");return s(),r("div",null,[u,p,m,t("ol",null,[t("li",null,[t("a",_,[o("向我们提交 PR"),e(a)])]),t("li",null,[o("为项目贡献"),e(i,{to:"/zh/i18n.html"},{default:c(()=>[o("本地化翻译")]),_:1})]),t("li",null,[t("a",g,[o("为我们更新文档"),e(a)])])]),f,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",b,[o("Snap.Hutao"),e(a)]),o(),S]),t("li",null,[t("a",w,[o("Snap.Hutao.Docs"),e(a)]),o(),y])])]),x,H]),k])}const z=l(h,[["render",D],["__file","index.html.vue"]]);export{z as default}; diff --git a/assets/index.html-86b28290.js b/assets/index.html-af8a954b.js similarity index 83% rename from assets/index.html-86b28290.js rename to assets/index.html-af8a954b.js index a4996db73..bf5965bb1 100644 --- a/assets/index.html-86b28290.js +++ b/assets/index.html-af8a954b.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{o,c as a,a as e,b as n}from"./app-1a16ab73.js";const r={},c=e("h1",{id:"development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#development","aria-hidden":"true"},"#"),n(" Development")],-1),s=[c];function d(_,i){return o(),a("div",null,s)}const h=t(r,[["render",d],["__file","index.html.vue"]]);export{h as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{o,c as a,a as e,b as n}from"./app-dddc4fb8.js";const r={},c=e("h1",{id:"development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#development","aria-hidden":"true"},"#"),n(" Development")],-1),s=[c];function d(_,i){return o(),a("div",null,s)}const h=t(r,[["render",d],["__file","index.html.vue"]]);export{h as default}; diff --git a/assets/index.html-f454d95a.js b/assets/index.html-df914bf0.js similarity index 92% rename from assets/index.html-f454d95a.js rename to assets/index.html-df914bf0.js index 6b41662d1..1bdde9103 100644 --- a/assets/index.html-f454d95a.js +++ b/assets/index.html-df914bf0.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{f as u,o as _,c as m,a as p}from"./app-1a16ab73.js";const g=p("p",null,"Redirecting to the correct locale...",-1),$=[g],z={__name:"index.html",setup(x){return u(()=>{const{languages:c}=window.navigator,{hash:l,origin:o}=window.location,e=l.substring(1),r={0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},t=["/en/","/zh/"],a=t.pop();let n=null;e:for(const h of c)for(const[i,f]of Object.entries(r))if(f.includes(h)){if(!t.includes(i))continue;n=i;break e}const s=a?`${o}${a}${e?`#${e}`:""}`:null;n&&t.includes(n)?location.href=`${o}${n}${e?`#${e}`:""}`:s?location.href=s:location.href=`${o}/404.html`}),(c,l)=>(_(),m("div",null,$))}},v=d(z,[["__file","index.html.vue"]]);export{v as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{f as u,o as _,c as m,a as p}from"./app-dddc4fb8.js";const g=p("p",null,"Redirecting to the correct locale...",-1),$=[g],z={__name:"index.html",setup(x){return u(()=>{const{languages:c}=window.navigator,{hash:l,origin:o}=window.location,e=l.substring(1),r={0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},t=["/en/","/zh/"],a=t.pop();let n=null;e:for(const h of c)for(const[i,f]of Object.entries(r))if(f.includes(h)){if(!t.includes(i))continue;n=i;break e}const s=a?`${o}${a}${e?`#${e}`:""}`:null;n&&t.includes(n)?location.href=`${o}${n}${e?`#${e}`:""}`:s?location.href=s:location.href=`${o}/404.html`}),(c,l)=>(_(),m("div",null,$))}},v=d(z,[["__file","index.html.vue"]]);export{v as default}; diff --git a/assets/index.html-95fa6e78.js b/assets/index.html-fcaf2f1e.js similarity index 85% rename from assets/index.html-95fa6e78.js rename to assets/index.html-fcaf2f1e.js index 28be0ac8c..7f9c8ab5d 100644 --- a/assets/index.html-95fa6e78.js +++ b/assets/index.html-fcaf2f1e.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,d as n,a as e,b as c}from"./app-1a16ab73.js";const d={},_=e("h1",{id:"features",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#features","aria-hidden":"true"},"#"),c(" Features")],-1);function i(l,f){const t=o("AutoCatalog");return r(),s("div",null,[_,n(t)])}const h=a(d,[["render",i],["__file","index.html.vue"]]);export{h as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,d as n,a as e,b as c}from"./app-dddc4fb8.js";const d={},_=e("h1",{id:"features",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#features","aria-hidden":"true"},"#"),c(" Features")],-1);function i(l,f){const t=o("AutoCatalog");return r(),s("div",null,[_,n(t)])}const h=a(d,[["render",i],["__file","index.html.vue"]]);export{h as default}; diff --git a/assets/known-issue.html-e05471ea.js b/assets/known-issue.html-dfcd3928.js similarity index 94% rename from assets/known-issue.html-e05471ea.js rename to assets/known-issue.html-dfcd3928.js index 83634dbde..b137824f2 100644 --- a/assets/known-issue.html-e05471ea.js +++ b/assets/known-issue.html-dfcd3928.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as o,a as e,b as a,d as r,e as h}from"./app-1a16ab73.js";const c={},u=h('

    Known Issue

    This document records known issues that need to be fixed.

    Game Throw Data Exception Error when Enabling Multi-Client Feature

    The issue occurs at early May 2023, and caused by MiHoYo's anti-cheat module update. Disable the multi-client and restart the game to fix it.

    This issue is planned to be fixed in the following versions.

    Snap Hutao No Response or Cash when Using Real-time Notes

    ',6),l={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/706",target:"_blank",rel:"noopener noreferrer"},d=e("h2",{id:"game-quick-launch-failure",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#game-quick-launch-failure","aria-hidden":"true"},"#"),a(" Game Quick Launch Failure")],-1),f=e("p",null,[a("In the current version, a known issue will cause "),e("code",null,"JumpList"),a(" game quick start launcher fail to open the window. This issue will be fixed in the next patch.")],-1),m=e("h2",{id:"frequent-1034-verification-error-from-real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frequent-1034-verification-error-from-real-time-notes","aria-hidden":"true"},"#"),a(" Frequent 1034 Verification Error from Real-time Notes")],-1),p=e("p",null,"This issue is caused by change of anti-bot program in Miyoushe, and will cause Real-time Notes data refresh failure. User can fix this issue temporarily by manual verification.",-1),_=e("p",null,"This issue will be fixed in the future.",-1);function w(b,x){const n=i("ExternalLinkIcon");return s(),o("div",null,[u,e("p",null,[a("A current local database issue will cause Snap Hutao to no response or even crash. This issue is planned to be fixed in the next version, you may also track this issue in "),e("a",l,[a("GitHub"),r(n)])]),d,f,m,p,_])}const v=t(c,[["render",w],["__file","known-issue.html.vue"]]);export{v as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as o,a as e,b as a,d as r,e as h}from"./app-dddc4fb8.js";const c={},u=h('

    Known Issue

    This document records known issues that need to be fixed.

    Game Throw Data Exception Error when Enabling Multi-Client Feature

    The issue occurs at early May 2023, and caused by MiHoYo's anti-cheat module update. Disable the multi-client and restart the game to fix it.

    This issue is planned to be fixed in the following versions.

    Snap Hutao No Response or Cash when Using Real-time Notes

    ',6),l={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/706",target:"_blank",rel:"noopener noreferrer"},d=e("h2",{id:"game-quick-launch-failure",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#game-quick-launch-failure","aria-hidden":"true"},"#"),a(" Game Quick Launch Failure")],-1),f=e("p",null,[a("In the current version, a known issue will cause "),e("code",null,"JumpList"),a(" game quick start launcher fail to open the window. This issue will be fixed in the next patch.")],-1),m=e("h2",{id:"frequent-1034-verification-error-from-real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frequent-1034-verification-error-from-real-time-notes","aria-hidden":"true"},"#"),a(" Frequent 1034 Verification Error from Real-time Notes")],-1),p=e("p",null,"This issue is caused by change of anti-bot program in Miyoushe, and will cause Real-time Notes data refresh failure. User can fix this issue temporarily by manual verification.",-1),_=e("p",null,"This issue will be fixed in the future.",-1);function w(b,x){const n=i("ExternalLinkIcon");return s(),o("div",null,[u,e("p",null,[a("A current local database issue will cause Snap Hutao to no response or even crash. This issue is planned to be fixed in the next version, you may also track this issue in "),e("a",l,[a("GitHub"),r(n)])]),d,f,m,p,_])}const v=t(c,[["render",w],["__file","known-issue.html.vue"]]);export{v as default}; diff --git a/assets/known-issue.html-dd2d4e95.js b/assets/known-issue.html-eb48207a.js similarity index 85% rename from assets/known-issue.html-dd2d4e95.js rename to assets/known-issue.html-eb48207a.js index b7ab5c445..fd09ecd12 100644 --- a/assets/known-issue.html-dd2d4e95.js +++ b/assets/known-issue.html-eb48207a.js @@ -1 +1 @@ -const e=JSON.parse('{"key":"v-8ab89ae2","path":"/zh/advanced/known-issue.html","title":"已知问题","lang":"zh-CN","frontmatter":{"headerDepth":2,"icon":"tool","category":["FAQ"],"order":3,"redirectFrom":"/advanced/known-issue.html","description":"该文档包含由所有已知问题和修复计划 微软商店下载应用程序 该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下 发现于 2023/02/07; 无法从微软商店下载的原因在于微软在东亚的授权服务器 licensing.mp.microsoft.com 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。; 当授权...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://hut.ao/en/advanced/known-issue.html"}],["meta",{"property":"og:url","content":"https://hut.ao/zh/advanced/known-issue.html"}],["meta",{"property":"og:site_name","content":"胡桃工具箱"}],["meta",{"property":"og:title","content":"已知问题"}],["meta",{"property":"og:description","content":"该文档包含由所有已知问题和修复计划 微软商店下载应用程序 该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下 发现于 2023/02/07; 无法从微软商店下载的原因在于微软在东亚的授权服务器 licensing.mp.microsoft.com 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。; 当授权..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-06-04T07:20:04.000Z"}],["meta",{"property":"article:author","content":"DGP-Studio"}],["meta",{"property":"article:modified_time","content":"2023-06-04T07:20:04.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"已知问题\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-06-04T07:20:04.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"DGP-Studio\\",\\"url\\":\\"https://github.com/DGP-Studio\\"}]}"]]},"headers":[{"level":2,"title":"微软商店下载应用程序","slug":"微软商店下载应用程序","link":"#微软商店下载应用程序","children":[]},{"level":2,"title":"启用多客户端时会导致游戏抛出数据异常错误","slug":"启用多客户端时会导致游戏抛出数据异常错误","link":"#启用多客户端时会导致游戏抛出数据异常错误","children":[]},{"level":2,"title":"使用实时便笺时程序卡死或闪退","slug":"使用实时便笺时程序卡死或闪退","link":"#使用实时便笺时程序卡死或闪退","children":[]},{"level":2,"title":"游戏快速启动窗口失效","slug":"游戏快速启动窗口失效","link":"#游戏快速启动窗口失效","children":[]},{"level":2,"title":"实时便笺功能频繁地抛出 1034 验证错误","slug":"实时便笺功能频繁地抛出-1034-验证错误","link":"#实时便笺功能频繁地抛出-1034-验证错误","children":[]},{"level":2,"title":"解锁帧率失败","slug":"解锁帧率失败","link":"#解锁帧率失败","children":[]}],"git":{"createdTime":1679366029000,"updatedTime":1685863204000,"contributors":[{"name":"Masterain","email":"i@irain.in","commits":13},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"readingTime":{"minutes":2.84,"words":851},"filePathRelative":"zh/advanced/known-issue.md","localizedDate":"2023年3月21日","autoDesc":true}');export{e as data}; +const e=JSON.parse('{"key":"v-8ab89ae2","path":"/zh/advanced/known-issue.html","title":"已知问题","lang":"zh-CN","frontmatter":{"headerDepth":2,"icon":"tool","category":["FAQ"],"order":3,"redirectFrom":"/advanced/known-issue.html","description":"该文档包含由所有已知问题和修复计划 微软商店下载应用程序 该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下 发现于 2023/02/07; 无法从微软商店下载的原因在于微软在东亚的授权服务器 licensing.mp.microsoft.com 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。; 当授权...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://hut.ao/en/advanced/known-issue.html"}],["meta",{"property":"og:url","content":"https://hut.ao/zh/advanced/known-issue.html"}],["meta",{"property":"og:site_name","content":"胡桃工具箱"}],["meta",{"property":"og:title","content":"已知问题"}],["meta",{"property":"og:description","content":"该文档包含由所有已知问题和修复计划 微软商店下载应用程序 该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下 发现于 2023/02/07; 无法从微软商店下载的原因在于微软在东亚的授权服务器 licensing.mp.microsoft.com 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。; 当授权..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-06-06T13:34:07.000Z"}],["meta",{"property":"article:author","content":"DGP-Studio"}],["meta",{"property":"article:modified_time","content":"2023-06-06T13:34:07.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"已知问题\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-06-06T13:34:07.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"DGP-Studio\\",\\"url\\":\\"https://github.com/DGP-Studio\\"}]}"]]},"headers":[{"level":2,"title":"微软商店下载应用程序","slug":"微软商店下载应用程序","link":"#微软商店下载应用程序","children":[]},{"level":2,"title":"启用多客户端时会导致游戏抛出数据异常错误","slug":"启用多客户端时会导致游戏抛出数据异常错误","link":"#启用多客户端时会导致游戏抛出数据异常错误","children":[]},{"level":2,"title":"使用实时便笺时程序卡死或闪退","slug":"使用实时便笺时程序卡死或闪退","link":"#使用实时便笺时程序卡死或闪退","children":[]},{"level":2,"title":"游戏快速启动窗口失效","slug":"游戏快速启动窗口失效","link":"#游戏快速启动窗口失效","children":[]},{"level":2,"title":"实时便笺功能频繁地抛出 1034 验证错误","slug":"实时便笺功能频繁地抛出-1034-验证错误","link":"#实时便笺功能频繁地抛出-1034-验证错误","children":[]},{"level":2,"title":"解锁帧率失败","slug":"解锁帧率失败","link":"#解锁帧率失败","children":[]}],"git":{"createdTime":1679366029000,"updatedTime":1686058447000,"contributors":[{"name":"Masterain","email":"i@irain.in","commits":14},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"readingTime":{"minutes":2.89,"words":867},"filePathRelative":"zh/advanced/known-issue.md","localizedDate":"2023年3月21日","autoDesc":true}');export{e as data}; diff --git a/assets/known-issue.html-83423385.js b/assets/known-issue.html-f9e5e987.js similarity index 60% rename from assets/known-issue.html-83423385.js rename to assets/known-issue.html-f9e5e987.js index 4038223ba..51baf6c5c 100644 --- a/assets/known-issue.html-83423385.js +++ b/assets/known-issue.html-f9e5e987.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as a,a as e,b as o,d as l,w as r,e as n}from"./app-1a16ab73.js";const u={},h=e("h1",{id:"已知问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#已知问题","aria-hidden":"true"},"#"),o(" 已知问题")],-1),_=e("p",null,"该文档包含由所有已知问题和修复计划",-1),p=e("h2",{id:"微软商店下载应用程序",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#微软商店下载应用程序","aria-hidden":"true"},"#"),o(" 微软商店下载应用程序")],-1),f=e("blockquote",null,[e("p",null,"该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下")],-1),m=e("li",null,"发现于 2023/02/07",-1),b=e("li",null,[o("无法从微软商店下载的原因在于微软在东亚的授权服务器 "),e("code",null,"licensing.mp.microsoft.com"),o(" 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。 当授权服务出现问题时,自然不会再进入到下一步下载环节,这就导致了用户无法安装 "),e("ul",null,[e("li",null,[o("目前仅发现于微软商店新加坡授权服务器 "),e("code",null,"52.137.108.250"),o(" 出现了问题,所以你可以使用代理,切换到其它授权服务器,来实现下载。")])])],-1),x=e("li",null,"授权服务器问题 DGP-Studio 已反馈给微软,等待解决。",-1),g=e("strong",null,"方法 1",-1),k={href:"https://www.dogfight360.com/blog/475/",target:"_blank",rel:"noopener noreferrer"},w=n("
    • 在该工具箱内选择 Microsoft Store - 微软商店 中的 微软授权验证
    • 点击检测延迟
    • 选择一个对你而言延迟最低的服务器,选中后点击应用选中
    • 此时重启微软商店后,你应当可以下载应用了
    • 下载完成后,建议点击清除当前以删除对 Hosts 文件的修改
    ",1),H=n("
  • 如果你懒得下载,可以尝试将 licensing.mp.microsoft.com 通过修改 Hosts文件解析到以下 IP 地址之一 (收集于 UsbEAm Hosts Editor)
    • 124.108.22.138
    • 92.38.149.175
    • 141.147.180.87
    • 103.151.179.4
  • ",1),S=e("li",null,[e("strong",null,"方法 2"),o(": "),e("ul",null,[e("li",null,"将系统的 DNS 服务器设置为 4.2.2.1 和 4.2.2.2(完事后记得改回原本的设置)")])],-1),E=e("strong",null,"方法 3",-1),I=e("li",null,"使用北美地区的网络代理",-1),L=e("h2",{id:"启用多客户端时会导致游戏抛出数据异常错误",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#启用多客户端时会导致游戏抛出数据异常错误","aria-hidden":"true"},"#"),o(" 启用多客户端时会导致游戏抛出"),e("code",null,"数据异常"),o("错误")],-1),D=e("p",null,"该问题出现于 2023 年 5 月初,来源是米哈游反作弊模块更新。关闭多客户端后正常启动游戏即可解决问题。",-1),G=e("p",null,"该问题计划在接下来的版本中修复。",-1),N=e("h2",{id:"使用实时便笺时程序卡死或闪退",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#使用实时便笺时程序卡死或闪退","aria-hidden":"true"},"#"),o(" 使用实时便笺时程序卡死或闪退")],-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/706",target:"_blank",rel:"noopener noreferrer"},A=n('

    游戏快速启动窗口失效

    在当前版本中,一个已知问题会导致任务栏JumpList快速启动游戏功能失效,窗口无法打开。 该问题会在下一版本修复。

    实时便笺功能频繁地抛出 1034 验证错误

    该问题由米游社风控机制更改产生,并导致实时便笺数据更新失败,用户在根据本文档说明手动验证后可短暂地通过人机验证。

    该问题会在后续版本中修复。

    解锁帧率失败

    在某些情况下,以解锁帧率要求启动游戏时会收到一个 ArgumentException 错误,并提示读取游戏内存失败

    ',7),P={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},V=e("code",null,"系统版本,Snap Hutao 版本,设备ID",-1);function B(C,R){const t=i("ExternalLinkIcon"),s=i("RouterLink");return c(),a("div",null,[h,_,p,f,e("ul",null,[m,b,x,e("li",null,[o("临时的解决方案: "),e("ul",null,[e("li",null,[g,o(": "),e("ul",null,[e("li",null,[o("使用"),e("a",k,[o("UsbEAm Hosts Editor"),l(t)]),w]),H])]),S,e("li",null,[E,o(": "),e("ul",null,[I,e("li",null,[o("如果使用加速器或网络代理,你需要"),l(s,{to:"/zh/advanced/exceptions.html#_502-bad-gateway"},{default:r(()=>[o("解除微软商店的 Windows App Container Loopback 限制")]),_:1})])])])])])]),L,D,G,N,e("p",null,[o("当前一个本地数据库问题会造成胡桃工具箱卡顿,甚至闪退。这个问题计划在接下来的版本中修复,你也可以关注这个 "),e("a",v,[o("GitHub Issue"),l(t)]),o(" 来追踪进度。")]),A,e("p",null,[o("该问题开发者无法复现。如果你有类似的问题,请在 "),e("a",P,[o("GitHub Issue #747"),l(t)]),o(" 中创建 回复,并包含以下信息:"),V])])}const y=d(u,[["render",B],["__file","known-issue.html.vue"]]);export{y as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as a,a as e,b as o,d as l,w as r,e as t}from"./app-dddc4fb8.js";const h={},u=e("h1",{id:"已知问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#已知问题","aria-hidden":"true"},"#"),o(" 已知问题")],-1),_=e("p",null,"该文档包含由所有已知问题和修复计划",-1),p=e("h2",{id:"微软商店下载应用程序",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#微软商店下载应用程序","aria-hidden":"true"},"#"),o(" 微软商店下载应用程序")],-1),m=e("blockquote",null,[e("p",null,"该问题来源并非胡桃工具箱,属于外部问题 该问题通常仅出现在东亚地区的网络环境下")],-1),f=e("li",null,"发现于 2023/02/07",-1),b=e("li",null,[o("无法从微软商店下载的原因在于微软在东亚的授权服务器 "),e("code",null,"licensing.mp.microsoft.com"),o(" 掉线。当你在商店上下载一个新应用时,这实际上是一个授权/购买的过程。 当授权服务出现问题时,自然不会再进入到下一步下载环节,这就导致了用户无法安装 "),e("ul",null,[e("li",null,[o("目前仅发现于微软商店新加坡授权服务器 "),e("code",null,"52.137.108.250"),o(" 出现了问题,所以你可以使用代理,切换到其它授权服务器,来实现下载。")])])],-1),g=e("li",null,"授权服务器问题 DGP-Studio 已反馈给微软,等待解决。",-1),x=e("strong",null,"方法 1",-1),k={href:"https://www.dogfight360.com/blog/475/",target:"_blank",rel:"noopener noreferrer"},w=t("
    • 在该工具箱内选择 Microsoft Store - 微软商店 中的 微软授权验证
    • 点击检测延迟
    • 选择一个对你而言延迟最低的服务器,选中后点击应用选中
    • 此时重启微软商店后,你应当可以下载应用了
    • 下载完成后,建议点击清除当前以删除对 Hosts 文件的修改
    ",1),v=t("
  • 如果你懒得下载,可以尝试将 licensing.mp.microsoft.com 通过修改 Hosts文件解析到以下 IP 地址之一 (收集于 UsbEAm Hosts Editor)
    • 124.108.22.138
    • 92.38.149.175
    • 141.147.180.87
    • 103.151.179.4
  • ",1),E=e("li",null,[e("strong",null,"方法 2"),o(": "),e("ul",null,[e("li",null,"将系统的 DNS 服务器设置为 4.2.2.1 和 4.2.2.2(完事后记得改回原本的设置)")])],-1),q=e("strong",null,"方法 3",-1),B=e("li",null,"使用北美地区的网络代理",-1),A=e("h2",{id:"启用多客户端时会导致游戏抛出数据异常错误",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#启用多客户端时会导致游戏抛出数据异常错误","aria-hidden":"true"},"#"),o(" 启用多客户端时会导致游戏抛出"),e("code",null,"数据异常"),o("错误")],-1),H=e("p",null,"该问题出现于 2023 年 5 月初,来源是米哈游反作弊模块更新。关闭多客户端后正常启动游戏即可解决问题。",-1),N=e("p",null,"该问题计划在接下来的版本中修复。",-1),S=e("h2",{id:"使用实时便笺时程序卡死或闪退",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#使用实时便笺时程序卡死或闪退","aria-hidden":"true"},"#"),o(" 使用实时便笺时程序卡死或闪退")],-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/706",target:"_blank",rel:"noopener noreferrer"},I=t('

    游戏快速启动窗口失效

    在当前版本中,一个已知问题会导致任务栏JumpList快速启动游戏功能失效,窗口无法打开。 该问题会在下一版本修复。

    实时便笺功能频繁地抛出 1034 验证错误

    该问题由米游社风控机制更改产生,并导致实时便笺数据更新失败,用户在根据本文档说明手动验证后可短暂地通过人机验证。

    该问题会在后续版本中修复。

    解锁帧率失败

    在某些情况下,以解锁帧率要求启动游戏时会收到一个 ArgumentException 错误,并提示读取游戏内存失败

    ',7),L={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=IVey-FAg0WEBUF2epqQowb7p4NRJFkQC&authKey=1DGPml%2BrSVHRJvcA08c0Ag9OZ2aa9GnKvi8Nve8bsqUWDk%2BxPyWjBa6m%2B2f4hlRD&noverify=0&group_code=812818449",target:"_blank",rel:"noopener noreferrer"};function V(y,G){const n=i("ExternalLinkIcon"),c=i("RouterLink");return s(),a("div",null,[u,_,p,m,e("ul",null,[f,b,g,e("li",null,[o("临时的解决方案: "),e("ul",null,[e("li",null,[x,o(": "),e("ul",null,[e("li",null,[o("使用"),e("a",k,[o("UsbEAm Hosts Editor"),l(n)]),w]),v])]),E,e("li",null,[q,o(": "),e("ul",null,[B,e("li",null,[o("如果使用加速器或网络代理,你需要"),l(c,{to:"/zh/advanced/exceptions.html#_502-bad-gateway"},{default:r(()=>[o("解除微软商店的 Windows App Container Loopback 限制")]),_:1})])])])])])]),A,H,N,S,e("p",null,[o("当前一个本地数据库问题会造成胡桃工具箱卡顿,甚至闪退。这个问题计划在接下来的版本中修复,你也可以关注这个 "),e("a",D,[o("GitHub Issue"),l(n)]),o(" 来追踪进度。")]),I,e("p",null,[o("该问题开发者无法复现。如果你有类似的问题,加入"),e("a",L,[o("QQ 群 812818449"),l(n)]),o(" 并根据群公告,使用开发者提供的测试工具来帮助排查问题。")])])}const C=d(h,[["render",V],["__file","known-issue.html.vue"]]);export{C as default}; diff --git a/assets/menu.html-4da31906.js b/assets/menu.html-663862c5.js similarity index 86% rename from assets/menu.html-4da31906.js rename to assets/menu.html-663862c5.js index abb791384..b49a0ad73 100644 --- a/assets/menu.html-4da31906.js +++ b/assets/menu.html-663862c5.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as n,d as c,a as e,b as s}from"./app-1a16ab73.js";const _={},l=e("h1",{id:"全站目录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#全站目录","aria-hidden":"true"},"#"),s(" 全站目录")],-1);function d(m,i){const a=t("AutoCatalog");return r(),n("div",null,[l,c(a,{base:"/zh/",level:"3"})])}const f=o(_,[["render",d],["__file","menu.html.vue"]]);export{f as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as n,d as c,a as e,b as s}from"./app-dddc4fb8.js";const _={},l=e("h1",{id:"全站目录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#全站目录","aria-hidden":"true"},"#"),s(" 全站目录")],-1);function d(m,i){const a=t("AutoCatalog");return r(),n("div",null,[l,c(a,{base:"/zh/",level:"3"})])}const f=o(_,[["render",d],["__file","menu.html.vue"]]);export{f as default}; diff --git a/assets/menu.html-965d73a2.js b/assets/menu.html-f061a795.js similarity index 85% rename from assets/menu.html-965d73a2.js rename to assets/menu.html-f061a795.js index e95304916..1ad0589d4 100644 --- a/assets/menu.html-965d73a2.js +++ b/assets/menu.html-f061a795.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as r,d as s,a as e,b as c}from"./app-1a16ab73.js";const _={},l=e("h1",{id:"site-menu",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#site-menu","aria-hidden":"true"},"#"),c(" Site Menu")],-1);function d(i,m){const t=o("AutoCatalog");return n(),r("div",null,[l,s(t,{base:"/en/",level:"3"})])}const h=a(_,[["render",d],["__file","menu.html.vue"]]);export{h as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as r,d as s,a as e,b as c}from"./app-dddc4fb8.js";const _={},l=e("h1",{id:"site-menu",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#site-menu","aria-hidden":"true"},"#"),c(" Site Menu")],-1);function d(i,m){const t=o("AutoCatalog");return n(),r("div",null,[l,s(t,{base:"/en/",level:"3"})])}const h=a(_,[["render",d],["__file","menu.html.vue"]]);export{h as default}; diff --git a/assets/mhy-account-switch.html-466b8430.js b/assets/mhy-account-switch.html-2d99275b.js similarity index 98% rename from assets/mhy-account-switch.html-466b8430.js rename to assets/mhy-account-switch.html-2d99275b.js index 9ca75cbfb..6499b8215 100644 --- a/assets/mhy-account-switch.html-466b8430.js +++ b/assets/mhy-account-switch.html-2d99275b.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as a,c as l,a as o,b as t,d as u,w as s,e}from"./app-1a16ab73.js";const r={},d=e('

    MiHoYo BBS Account Switch

    Tips

    There are two types of MiHoYo BBS, MiYouShe and HoYoLab. MiYouShe refers to Mainland China version, HoYoLab refers to global version, both of them are accepted by Snap Hutao

    • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
    • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
      • If your account name shows like user_123456789, then it means the account is not initial yet

    多帐号管理样图

    ',3),h=e("
  • At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLab account:

  • Click on Web Login

    • In the pop-up build-in browser, login with your account
    • Click I'm logged in button on the top right, after you have logged into your account
    • Then your account will be added to Snap Hutao, the browser will close automatically
  • ",2),p=o("p",null,[t("Alternatively, you can enter your MiHoYo BBS cookie list by click on "),o("code",null,"Input Manually"),t(" button")],-1),y=o("li",null,[t("If you do so, the cookies must contains "),o("code",null,"Stoken"),t(" field")],-1),m=o("code",null,"Stoken",-1),f=o("li",null,[o("p",null,"After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it")],-1),g=o("li",null,[o("p",null,"You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there")],-1),_=e('

    Security Tips

    • Stoken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
    • You can copy accounts' cookie with Stoken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have Stoken cookie
    • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
    ',1);function b(S,k){const n=c("RouterLink");return a(),l("div",null,[d,o("ul",null,[h,o("li",null,[p,o("ul",null,[y,o("li",null,[t("You can refer to "),u(n,{to:"/en/advanced/get-stoken-cookie-from-the-third-party.html"},{default:s(()=>[t("使用第三方工具获取有 Stoken 的 cookie")]),_:1}),t(" document for methods to capture cookie with "),m])])]),f,g]),_])}const B=i(r,[["render",b],["__file","mhy-account-switch.html.vue"]]);export{B as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as a,c as l,a as o,b as t,d as u,w as s,e}from"./app-dddc4fb8.js";const r={},d=e('

    MiHoYo BBS Account Switch

    Tips

    There are two types of MiHoYo BBS, MiYouShe and HoYoLab. MiYouShe refers to Mainland China version, HoYoLab refers to global version, both of them are accepted by Snap Hutao

    • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
    • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
      • If your account name shows like user_123456789, then it means the account is not initial yet

    多帐号管理样图

    ',3),h=e("
  • At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLab account:

  • Click on Web Login

    • In the pop-up build-in browser, login with your account
    • Click I'm logged in button on the top right, after you have logged into your account
    • Then your account will be added to Snap Hutao, the browser will close automatically
  • ",2),p=o("p",null,[t("Alternatively, you can enter your MiHoYo BBS cookie list by click on "),o("code",null,"Input Manually"),t(" button")],-1),y=o("li",null,[t("If you do so, the cookies must contains "),o("code",null,"Stoken"),t(" field")],-1),m=o("code",null,"Stoken",-1),f=o("li",null,[o("p",null,"After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it")],-1),g=o("li",null,[o("p",null,"You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there")],-1),_=e('

    Security Tips

    • Stoken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
    • You can copy accounts' cookie with Stoken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have Stoken cookie
    • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
    ',1);function b(S,k){const n=c("RouterLink");return a(),l("div",null,[d,o("ul",null,[h,o("li",null,[p,o("ul",null,[y,o("li",null,[t("You can refer to "),u(n,{to:"/en/advanced/get-stoken-cookie-from-the-third-party.html"},{default:s(()=>[t("使用第三方工具获取有 Stoken 的 cookie")]),_:1}),t(" document for methods to capture cookie with "),m])])]),f,g]),_])}const B=i(r,[["render",b],["__file","mhy-account-switch.html.vue"]]);export{B as default}; diff --git a/assets/mhy-account-switch.html-d18a8f83.js b/assets/mhy-account-switch.html-4fecf81c.js similarity index 98% rename from assets/mhy-account-switch.html-d18a8f83.js rename to assets/mhy-account-switch.html-4fecf81c.js index 9fcee207e..2987b164f 100644 --- a/assets/mhy-account-switch.html-d18a8f83.js +++ b/assets/mhy-account-switch.html-4fecf81c.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as a,c as d,a as o,d as e,b as t,w as r,e as n}from"./app-1a16ab73.js";const u={},_=n('

    米游社多帐号切换

    提示

    胡桃工具箱支持中国大陆版米哈游论坛米游社和国际版论坛 HoYoLab的帐号。HoYoLab 默认阻拦来自中国大陆的网络连接,Snap Hutao 软件无法自行绕开该限制。

    • 本文档所描述的帐号切换指的是用于获取游戏数据的米游社/ HoYoLab 帐号,不是原神游戏内的帐号
    • 在使用本功能前,你需要使用官方的米游社 App 登录你的帐号以初始化你的米游社功能
      • 如果在胡桃中登录的帐号名称格式为 user_123456789 则其有可能没有被初始化

    多帐号管理样图

    ',3),h={class:"hint-container details"},p=o("summary",null,"胡桃工具箱视频指南 - 米游社帐号登录",-1),k=o("p",null,"对于大多数人而言,遵循本页文档会有更高的效率。",-1),m=o("p",null,"但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。",-1),g=o("code",null,"网页登录",-1),f=o("li",null,[t("您也可以通过点击"),o("code",null,"手动输入"),t("按钮,直接输入米游社通行证 cookie 来添加您的帐号")],-1),v=o("code",null,"手动输入",-1),S=o("strong",null,[t("必须包含 "),o("code",null,"Stoken"),t(" 字段")],-1),b=o("code",null,"Stoken",-1),B=o("li",null,'在弹出的内置浏览器登陆成功后,点击右上角的"我已登陆"按钮',-1),x=o("li",null,[t("完成后,您就可以在帐号管理面板切换已登录的米游社帐号了 "),o("ul",null,[o("li",null,"新添加米游社账号后,需在主界面左下角切换账号的功能中,手动点击一次新登录的账号,以将其设置为使用状态"),o("li",null,"你可以在帐号管理菜单中复制对应帐号的 cookie 或从胡桃工具箱中删除该帐号")])],-1),y=n('

    安全提示

    • Stoken 是一个安全敏感的 cookie 字段,你不应该在任何云端或其它无法保证数据安全的设备上储存含有 Stoken 字段的 cookie。
    • 从胡桃工具箱中复制获得的 cookie 中包含该字段,请慎重考虑是否为接受 cookie 的一方提供 Stoken 字段。
    • 在胡桃工具箱中通过密码或 cookie 登录米游社的过程中,你的数据只经米游社服务器和本地胡桃工具箱处理,不经过包括胡桃服务器在内的任何第三方服务。
    ',1);function L(N,w){const i=l("BiliBili"),c=l("RouterLink");return a(),d("div",null,[_,o("details",h,[p,k,m,e(i,{bvid:"BV1j84y1L7N9"})]),o("ul",null,[o("li",null,[t("你可以在程序主界面的左下角,设置按钮的上方找到帐号菜单,以管理你在胡桃工具箱中登录的米游社帐号。在弹出的面板中你可以添加米游社或 HoYoLab 帐号 ,登录它们的方法是一样的: "),o("ul",null,[o("li",null,[t("在对应的帐号种类中点击"),g,t("按钮 "),o("ul",null,[f,o("li",null,[t("若您选择"),v,t("米游社 cookie,则该 cookie "),S,o("ul",null,[o("li",null,[t("手动获取含 "),b,t(" 字段的 cookie 的方式可参考"),e(c,{to:"/zh/advanced/get-stoken-cookie-from-the-third-party.html"},{default:r(()=>[t("使用第三方工具获取有 Stoken 的 cookie")]),_:1}),t(" 文档")])])])])]),B,x])])]),y])}const Y=s(u,[["render",L],["__file","mhy-account-switch.html.vue"]]);export{Y as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as a,c as d,a as o,d as e,b as t,w as r,e as n}from"./app-dddc4fb8.js";const u={},_=n('

    米游社多帐号切换

    提示

    胡桃工具箱支持中国大陆版米哈游论坛米游社和国际版论坛 HoYoLab的帐号。HoYoLab 默认阻拦来自中国大陆的网络连接,Snap Hutao 软件无法自行绕开该限制。

    • 本文档所描述的帐号切换指的是用于获取游戏数据的米游社/ HoYoLab 帐号,不是原神游戏内的帐号
    • 在使用本功能前,你需要使用官方的米游社 App 登录你的帐号以初始化你的米游社功能
      • 如果在胡桃中登录的帐号名称格式为 user_123456789 则其有可能没有被初始化

    多帐号管理样图

    ',3),h={class:"hint-container details"},p=o("summary",null,"胡桃工具箱视频指南 - 米游社帐号登录",-1),k=o("p",null,"对于大多数人而言,遵循本页文档会有更高的效率。",-1),m=o("p",null,"但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。",-1),g=o("code",null,"网页登录",-1),f=o("li",null,[t("您也可以通过点击"),o("code",null,"手动输入"),t("按钮,直接输入米游社通行证 cookie 来添加您的帐号")],-1),v=o("code",null,"手动输入",-1),S=o("strong",null,[t("必须包含 "),o("code",null,"Stoken"),t(" 字段")],-1),b=o("code",null,"Stoken",-1),B=o("li",null,'在弹出的内置浏览器登陆成功后,点击右上角的"我已登陆"按钮',-1),x=o("li",null,[t("完成后,您就可以在帐号管理面板切换已登录的米游社帐号了 "),o("ul",null,[o("li",null,"新添加米游社账号后,需在主界面左下角切换账号的功能中,手动点击一次新登录的账号,以将其设置为使用状态"),o("li",null,"你可以在帐号管理菜单中复制对应帐号的 cookie 或从胡桃工具箱中删除该帐号")])],-1),y=n('

    安全提示

    • Stoken 是一个安全敏感的 cookie 字段,你不应该在任何云端或其它无法保证数据安全的设备上储存含有 Stoken 字段的 cookie。
    • 从胡桃工具箱中复制获得的 cookie 中包含该字段,请慎重考虑是否为接受 cookie 的一方提供 Stoken 字段。
    • 在胡桃工具箱中通过密码或 cookie 登录米游社的过程中,你的数据只经米游社服务器和本地胡桃工具箱处理,不经过包括胡桃服务器在内的任何第三方服务。
    ',1);function L(N,w){const i=l("BiliBili"),c=l("RouterLink");return a(),d("div",null,[_,o("details",h,[p,k,m,e(i,{bvid:"BV1j84y1L7N9"})]),o("ul",null,[o("li",null,[t("你可以在程序主界面的左下角,设置按钮的上方找到帐号菜单,以管理你在胡桃工具箱中登录的米游社帐号。在弹出的面板中你可以添加米游社或 HoYoLab 帐号 ,登录它们的方法是一样的: "),o("ul",null,[o("li",null,[t("在对应的帐号种类中点击"),g,t("按钮 "),o("ul",null,[f,o("li",null,[t("若您选择"),v,t("米游社 cookie,则该 cookie "),S,o("ul",null,[o("li",null,[t("手动获取含 "),b,t(" 字段的 cookie 的方式可参考"),e(c,{to:"/zh/advanced/get-stoken-cookie-from-the-third-party.html"},{default:r(()=>[t("使用第三方工具获取有 Stoken 的 cookie")]),_:1}),t(" 文档")])])])])]),B,x])])]),y])}const Y=s(u,[["render",L],["__file","mhy-account-switch.html.vue"]]);export{Y as default}; diff --git a/assets/platform.html-d1e289f7.js b/assets/platform.html-311d9f9f.js similarity index 97% rename from assets/platform.html-d1e289f7.js rename to assets/platform.html-311d9f9f.js index 4aa7005bd..95cbae3ba 100644 --- a/assets/platform.html-d1e289f7.js +++ b/assets/platform.html-311d9f9f.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as h,a as e,b as t,d as a,w as c}from"./app-1a16ab73.js";const l={},d=e("h1",{id:"hutao-open-platform",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-open-platform","aria-hidden":"true"},"#"),t(" Hutao Open Platform")],-1),u=e("p",null,"The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.",-1),p=e("p",null,"Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.",-1),f=e("h2",{id:"hutao-api-hutao-cloud-open-source-developer-s-license",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-api-hutao-cloud-open-source-developer-s-license","aria-hidden":"true"},"#"),t(" Hutao API & Hutao Cloud Open-source Developer's License")],-1),m=e("p",null,"Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.",-1),_=e("p",null,"Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.",-1),g={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},v=e("h2",{id:"enka-api-with-china-acceleration",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-with-china-acceleration","aria-hidden":"true"},"#"),t(" Enka API with China Acceleration")],-1),w={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b={href:"https://docs.google.com/forms/d/e/1FAIpQLSefnrYz41NZ2hSG0xC6OoBsIiM_mDdVLS7lsUg9thHmA1h8qw/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"},k=e("h2",{id:"uigf-interchangeable-game-data-format",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-interchangeable-game-data-format","aria-hidden":"true"},"#"),t(" UIGF Interchangeable Game Data Format")],-1),I={href:"https://uigf.org/en/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},y={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function H(x,A){const o=n("ExternalLinkIcon"),r=n("RouterLink");return i(),h("div",null,[d,u,p,f,m,_,e("p",null,[t("Developers can apply for access by submitting their information through the Hutao API Open Platform at "),e("a",g,[t("https://homa.snapgenshin.com/"),a(o)])]),v,e("p",null,[e("a",w,[t("Enka Network"),a(o)]),t(" is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.")]),e("p",null,[t("To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the "),a(r,{to:"/en/features/character-data.html"},{default:c(()=>[t("My Characters")]),_:1}),t(" feature and established a proxy server.")]),e("p",null,[t("If you are a developer of open-source Genshin Impact tools and require this functionality, you can fill out the "),e("a",b,[t("form"),a(o)]),t(" to apply for the usage of our maintained proxy service.")]),k,e("p",null,[t("Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the "),e("a",I,[t("Uniformed Interchangeable GachaLog Format Standard (UIGF)"),a(o)]),t(".")]),e("p",null,[t("Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the "),e("a",y,[t("UIGF organization"),a(o)]),t(". Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.")])])}const C=s(l,[["render",H],["__file","platform.html.vue"]]);export{C as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as h,a as e,b as t,d as a,w as c}from"./app-dddc4fb8.js";const l={},d=e("h1",{id:"hutao-open-platform",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-open-platform","aria-hidden":"true"},"#"),t(" Hutao Open Platform")],-1),u=e("p",null,"The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.",-1),p=e("p",null,"Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.",-1),f=e("h2",{id:"hutao-api-hutao-cloud-open-source-developer-s-license",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-api-hutao-cloud-open-source-developer-s-license","aria-hidden":"true"},"#"),t(" Hutao API & Hutao Cloud Open-source Developer's License")],-1),m=e("p",null,"Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.",-1),_=e("p",null,"Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.",-1),g={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},v=e("h2",{id:"enka-api-with-china-acceleration",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-with-china-acceleration","aria-hidden":"true"},"#"),t(" Enka API with China Acceleration")],-1),w={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b={href:"https://docs.google.com/forms/d/e/1FAIpQLSefnrYz41NZ2hSG0xC6OoBsIiM_mDdVLS7lsUg9thHmA1h8qw/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"},k=e("h2",{id:"uigf-interchangeable-game-data-format",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-interchangeable-game-data-format","aria-hidden":"true"},"#"),t(" UIGF Interchangeable Game Data Format")],-1),I={href:"https://uigf.org/en/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},y={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function H(x,A){const o=n("ExternalLinkIcon"),r=n("RouterLink");return i(),h("div",null,[d,u,p,f,m,_,e("p",null,[t("Developers can apply for access by submitting their information through the Hutao API Open Platform at "),e("a",g,[t("https://homa.snapgenshin.com/"),a(o)])]),v,e("p",null,[e("a",w,[t("Enka Network"),a(o)]),t(" is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.")]),e("p",null,[t("To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the "),a(r,{to:"/en/features/character-data.html"},{default:c(()=>[t("My Characters")]),_:1}),t(" feature and established a proxy server.")]),e("p",null,[t("If you are a developer of open-source Genshin Impact tools and require this functionality, you can fill out the "),e("a",b,[t("form"),a(o)]),t(" to apply for the usage of our maintained proxy service.")]),k,e("p",null,[t("Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the "),e("a",I,[t("Uniformed Interchangeable GachaLog Format Standard (UIGF)"),a(o)]),t(".")]),e("p",null,[t("Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the "),e("a",y,[t("UIGF organization"),a(o)]),t(". Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.")])])}const C=s(l,[["render",H],["__file","platform.html.vue"]]);export{C as default}; diff --git a/assets/platform.html-edbc69ea.js b/assets/platform.html-9c25e1ff.js similarity index 96% rename from assets/platform.html-edbc69ea.js rename to assets/platform.html-9c25e1ff.js index 30e6b6386..aab80acdf 100644 --- a/assets/platform.html-edbc69ea.js +++ b/assets/platform.html-9c25e1ff.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as h,c as l,a as e,b as t,d as n,w as i}from"./app-1a16ab73.js";const _={},c=e("h1",{id:"胡桃开放平台",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃开放平台","aria-hidden":"true"},"#"),t(" 胡桃开放平台")],-1),d=e("p",null,"Snap Hutao 项目自 2022 年 4 月 18 日在 GitHub 上创立项目以来获得了开源社区和用户的广泛支持。随着项目的发展,我们创建了一系列的支持服务作为 Snap Hutao 的中间组件。",-1),p=e("p",null,"现在,开发组将其中一些实用的服务以开放接口的形式公开给开源社区,供与我们有共同愿景的开发者使用。我们将为这些接口编写使用文档,维护这些服务并提供 常见问题的解答。无论你是一个有经验的开发者还是初学者,我们都希望这些接口能为你创造应用提供帮助。",-1),f=e("h2",{id:"胡桃-api-胡桃云开发者许可证",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃-api-胡桃云开发者许可证","aria-hidden":"true"},"#"),t(" 胡桃 API & 胡桃云开发者许可证")],-1),u=e("p",null,"胡桃 API 是一个将胡桃深渊数据库公开的接口服务。开源软件作者可以通过胡桃 API 从胡桃数据库获取数据获上传数据。",-1),k=e("p",null,"获得胡桃 API 权限的开发者同时也获得胡桃工具箱内胡桃云功能的完整权限作为福利。",-1),m={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},g=e("h2",{id:"enka-api-中国加速服务",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-中国加速服务","aria-hidden":"true"},"#"),t(" Enka API 中国加速服务")],-1),I={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b={href:"https://docs.google.com/forms/d/e/1FAIpQLSefnrYz41NZ2hSG0xC6OoBsIiM_mDdVLS7lsUg9thHmA1h8qw/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"},x=e("h2",{id:"uigf-可交换数据记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-可交换数据记录","aria-hidden":"true"},"#"),t(" UIGF 可交换数据记录")],-1),w={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},A={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function E(N,G){const r=o("ExternalLinkIcon"),a=o("RouterLink");return h(),l("div",null,[c,d,p,f,u,k,e("p",null,[t("开发者可以通过 "),e("a",m,[t("胡桃 API 开放平台"),n(r)]),t(",提交信息申请权限。")]),g,e("p",null,[e("a",I,[t("Enka Network"),n(r)]),t(" 是一个优秀的原神工具,它可以为用户获取当前角色展柜内角色的详细数据。 由于 Enka Network 使用了中国网络访问受阻的网络服务,其功能在中国地区难以获得稳定性保证。")]),e("p",null,[t("胡桃工具箱在开发"),n(a,{to:"/zh/features/character-data.html"},{default:i(()=>[t("我的角色")]),_:1}),t("功能时使用了 Enka Network 的数据, 并搭建了中转服务器以保证胡桃工具箱中国用户的使用体验。")]),e("p",null,[t("如果你是原神开源工具的开发者并且有该功能的需要可以填写"),e("a",b,[t("该表格"),n(r)]),t("以申请使用我们维护的中转服务。")]),x,e("p",null,[t("胡桃工具箱希望用户的数据能在具有不同特色的开源工具自由流动,并因此设定了最初版本的"),e("a",w,[t("统一可交换抽卡记录标准"),n(r)]),t("。 现在这一标准获得了更多开发者的相应,更多的标准被推行。")]),e("p",null,[t("众多的开发者现在聚集于 "),e("a",A,[t("UIGF-Org"),n(r)]),t(",我们希望通过维护这一组织让更多的开发者通过接触更多的用户, 获得更多的反馈并获得技术上的进步,创造更多优秀的原神开源工具。")])])}const F=s(_,[["render",E],["__file","platform.html.vue"]]);export{F as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as h,c as l,a as e,b as t,d as n,w as i}from"./app-dddc4fb8.js";const _={},c=e("h1",{id:"胡桃开放平台",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃开放平台","aria-hidden":"true"},"#"),t(" 胡桃开放平台")],-1),d=e("p",null,"Snap Hutao 项目自 2022 年 4 月 18 日在 GitHub 上创立项目以来获得了开源社区和用户的广泛支持。随着项目的发展,我们创建了一系列的支持服务作为 Snap Hutao 的中间组件。",-1),p=e("p",null,"现在,开发组将其中一些实用的服务以开放接口的形式公开给开源社区,供与我们有共同愿景的开发者使用。我们将为这些接口编写使用文档,维护这些服务并提供 常见问题的解答。无论你是一个有经验的开发者还是初学者,我们都希望这些接口能为你创造应用提供帮助。",-1),f=e("h2",{id:"胡桃-api-胡桃云开发者许可证",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃-api-胡桃云开发者许可证","aria-hidden":"true"},"#"),t(" 胡桃 API & 胡桃云开发者许可证")],-1),u=e("p",null,"胡桃 API 是一个将胡桃深渊数据库公开的接口服务。开源软件作者可以通过胡桃 API 从胡桃数据库获取数据获上传数据。",-1),k=e("p",null,"获得胡桃 API 权限的开发者同时也获得胡桃工具箱内胡桃云功能的完整权限作为福利。",-1),m={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},g=e("h2",{id:"enka-api-中国加速服务",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-中国加速服务","aria-hidden":"true"},"#"),t(" Enka API 中国加速服务")],-1),I={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b={href:"https://docs.google.com/forms/d/e/1FAIpQLSefnrYz41NZ2hSG0xC6OoBsIiM_mDdVLS7lsUg9thHmA1h8qw/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"},x=e("h2",{id:"uigf-可交换数据记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-可交换数据记录","aria-hidden":"true"},"#"),t(" UIGF 可交换数据记录")],-1),w={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},A={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function E(N,G){const r=o("ExternalLinkIcon"),a=o("RouterLink");return h(),l("div",null,[c,d,p,f,u,k,e("p",null,[t("开发者可以通过 "),e("a",m,[t("胡桃 API 开放平台"),n(r)]),t(",提交信息申请权限。")]),g,e("p",null,[e("a",I,[t("Enka Network"),n(r)]),t(" 是一个优秀的原神工具,它可以为用户获取当前角色展柜内角色的详细数据。 由于 Enka Network 使用了中国网络访问受阻的网络服务,其功能在中国地区难以获得稳定性保证。")]),e("p",null,[t("胡桃工具箱在开发"),n(a,{to:"/zh/features/character-data.html"},{default:i(()=>[t("我的角色")]),_:1}),t("功能时使用了 Enka Network 的数据, 并搭建了中转服务器以保证胡桃工具箱中国用户的使用体验。")]),e("p",null,[t("如果你是原神开源工具的开发者并且有该功能的需要可以填写"),e("a",b,[t("该表格"),n(r)]),t("以申请使用我们维护的中转服务。")]),x,e("p",null,[t("胡桃工具箱希望用户的数据能在具有不同特色的开源工具自由流动,并因此设定了最初版本的"),e("a",w,[t("统一可交换抽卡记录标准"),n(r)]),t("。 现在这一标准获得了更多开发者的相应,更多的标准被推行。")]),e("p",null,[t("众多的开发者现在聚集于 "),e("a",A,[t("UIGF-Org"),n(r)]),t(",我们希望通过维护这一组织让更多的开发者通过接触更多的用户, 获得更多的反馈并获得技术上的进步,创造更多优秀的原神开源工具。")])])}const F=s(_,[["render",E],["__file","platform.html.vue"]]);export{F as default}; diff --git a/assets/privacy-notice.html-a6ebdd0b.js b/assets/privacy-notice.html-516ff78b.js similarity index 97% rename from assets/privacy-notice.html-a6ebdd0b.js rename to assets/privacy-notice.html-516ff78b.js index 55b7cc0a8..fb4e8e54b 100644 --- a/assets/privacy-notice.html-a6ebdd0b.js +++ b/assets/privacy-notice.html-516ff78b.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as r}from"./app-1a16ab73.js";const o={},i=r('

    User Data and Privacy Notice

    Personal Information

    The nature of Snap Hutao project states it does not collect any personal information data.

    Regular Data Usage

    Snap Hutao respects the privacy of users, and we're currently using data as described below:

    • Once using Snap Hutao,the database file in the data directory

      • Store
        • MiHoYo BBS and HoYoLab cookie
        • Snap Hutao program settings
        • All other user data
    • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

    • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

      • Upload data to Hutao API, including
        • User's in-game UID
        • User's Abyss record
        • User's character information including artifact and weapon data
    • After using Real-time Notes features

      • Create a Windows scheduled task to fetch data timely
    • After using server switch feature in Game Laucher, in Snap Hutao's data directory

      • Store game files for server switch usage
    • After using Hutao Account features, Hutao Account system server will

      • Store
        • User registered email address
        • Encrypted password
    ',6),s=[i];function l(n,c){return a(),t("div",null,s)}const p=e(o,[["render",l],["__file","privacy-notice.html.vue"]]);export{p as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as r}from"./app-dddc4fb8.js";const o={},i=r('

    User Data and Privacy Notice

    Personal Information

    The nature of Snap Hutao project states it does not collect any personal information data.

    Regular Data Usage

    Snap Hutao respects the privacy of users, and we're currently using data as described below:

    • Once using Snap Hutao,the database file in the data directory

      • Store
        • MiHoYo BBS and HoYoLab cookie
        • Snap Hutao program settings
        • All other user data
    • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

    • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

      • Upload data to Hutao API, including
        • User's in-game UID
        • User's Abyss record
        • User's character information including artifact and weapon data
    • After using Real-time Notes features

      • Create a Windows scheduled task to fetch data timely
    • After using server switch feature in Game Laucher, in Snap Hutao's data directory

      • Store game files for server switch usage
    • After using Hutao Account features, Hutao Account system server will

      • Store
        • User registered email address
        • Encrypted password
    ',6),s=[i];function l(n,c){return a(),t("div",null,s)}const p=e(o,[["render",l],["__file","privacy-notice.html.vue"]]);export{p as default}; diff --git a/assets/privacy-notice.html-dd02ae9b.js b/assets/privacy-notice.html-91f130c3.js similarity index 97% rename from assets/privacy-notice.html-dd02ae9b.js rename to assets/privacy-notice.html-91f130c3.js index e43db56a6..d1136e995 100644 --- a/assets/privacy-notice.html-dd02ae9b.js +++ b/assets/privacy-notice.html-91f130c3.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as e,e as o}from"./app-1a16ab73.js";const r={},t=o('

    用户数据和隐私权益

    个人信息数据

    Snap Hutao 的项目性质决定了其不会收集任何个人信息数据

    常规数据使用

    胡桃工具箱充分尊重用户的隐私,目前我们会按下方的说明使用用户的数据:

    • 使用胡桃后,在 数据目录 中以数据库文件的形式

      • 储存
        • 米游社和 HoYoLab Cookie
        • 胡桃的软件设置信息
        • 全部的用户数据
    • 使用胡桃主程序时,胡桃会因开发和统计为目的匿名化地收集程序意外停止或出错时抛出的日志,包括:

      • 用户设备 ID
      • 错误与崩溃日志
      • 用户活跃数据统计信息
    • 使用 胡桃数据库 (深渊记录/深渊统计) 功能并选择上传数据时,

      • 向 胡桃 API 上传
        • 用户的游戏 UID
        • 用户的深境螺旋记录
        • 用户的角色信息及其装备的武器和圣遗物信息
    • 使用实时便笺功能后

      • 在 Windows 定时任务中创建一个用于获取数据的定时任务
    • 使用高级启动器中的服务器切换功能后,在胡桃数据目录中

      • 储存服务器转换所需要的文件
    • 使用胡桃帐号功能后,胡桃帐号云端系统会

      • 储存
        • 注册使用的邮箱
        • 加密后的密码
    ',6),c=[t];function a(d,n){return i(),e("div",null,c)}const p=l(r,[["render",a],["__file","privacy-notice.html.vue"]]);export{p as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as e,e as o}from"./app-dddc4fb8.js";const r={},t=o('

    用户数据和隐私权益

    个人信息数据

    Snap Hutao 的项目性质决定了其不会收集任何个人信息数据

    常规数据使用

    胡桃工具箱充分尊重用户的隐私,目前我们会按下方的说明使用用户的数据:

    • 使用胡桃后,在 数据目录 中以数据库文件的形式

      • 储存
        • 米游社和 HoYoLab Cookie
        • 胡桃的软件设置信息
        • 全部的用户数据
    • 使用胡桃主程序时,胡桃会因开发和统计为目的匿名化地收集程序意外停止或出错时抛出的日志,包括:

      • 用户设备 ID
      • 错误与崩溃日志
      • 用户活跃数据统计信息
    • 使用 胡桃数据库 (深渊记录/深渊统计) 功能并选择上传数据时,

      • 向 胡桃 API 上传
        • 用户的游戏 UID
        • 用户的深境螺旋记录
        • 用户的角色信息及其装备的武器和圣遗物信息
    • 使用实时便笺功能后

      • 在 Windows 定时任务中创建一个用于获取数据的定时任务
    • 使用高级启动器中的服务器切换功能后,在胡桃数据目录中

      • 储存服务器转换所需要的文件
    • 使用胡桃帐号功能后,胡桃帐号云端系统会

      • 储存
        • 注册使用的邮箱
        • 加密后的密码
    ',6),c=[t];function a(d,n){return i(),e("div",null,c)}const p=l(r,[["render",a],["__file","privacy-notice.html.vue"]]);export{p as default}; diff --git a/assets/project.html-bb79e8cb.js b/assets/project.html-001b8361.js similarity index 97% rename from assets/project.html-bb79e8cb.js rename to assets/project.html-001b8361.js index 797e88353..ba49bb87c 100644 --- a/assets/project.html-bb79e8cb.js +++ b/assets/project.html-001b8361.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as a,c,a as e,d as k,w as d,e as s,b}from"./app-1a16ab73.js";const m={},o=s('

    项目说明

    胡桃工具箱是一个 Windows 平台的开源的原神工具箱,旨在帮助玩家获得更好的游戏体验; 它是对官方移动端工具的一种非破坏性功能扩展,为不习惯在移动端进行原神游戏的 PC 玩家提供一个在 Windows 平台下获得接近移动端功能权利的途径。

    功能迁移

    胡桃正在迁移原 Snap Genshin 客户端中的功能

    已经完成迁移的功能将会在本站文档中提供指导说明,功能迁移和开发进度可以参阅下方

      • 将整合进养成计划
      • 将整合进养成计划

    新增功能

    以下新功能计划被增加到胡桃工具箱中

    ',8),h={class:"task-list-container"},n=s('
  • ',1),r={class:"task-list-item"},p=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),x={class:"task-list-item-label",for:"task-item-16"},u=s('
  • ',1);function f(_,y){const t=i("RouterLink");return a(),c("div",null,[o,e("ul",h,[n,e("li",r,[p,e("label",x,[k(t,{to:"/zh/i18n.html"},{default:d(()=>[b("国际化支持")]),_:1})])]),u])])}const w=l(m,[["render",f],["__file","project.html.vue"]]);export{w as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as a,c,a as e,d as k,w as d,e as s,b}from"./app-dddc4fb8.js";const m={},o=s('

    项目说明

    胡桃工具箱是一个 Windows 平台的开源的原神工具箱,旨在帮助玩家获得更好的游戏体验; 它是对官方移动端工具的一种非破坏性功能扩展,为不习惯在移动端进行原神游戏的 PC 玩家提供一个在 Windows 平台下获得接近移动端功能权利的途径。

    功能迁移

    胡桃正在迁移原 Snap Genshin 客户端中的功能

    已经完成迁移的功能将会在本站文档中提供指导说明,功能迁移和开发进度可以参阅下方

      • 将整合进养成计划
      • 将整合进养成计划

    新增功能

    以下新功能计划被增加到胡桃工具箱中

    ',8),h={class:"task-list-container"},n=s('
  • ',1),r={class:"task-list-item"},p=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),x={class:"task-list-item-label",for:"task-item-16"},u=s('
  • ',1);function f(_,y){const t=i("RouterLink");return a(),c("div",null,[o,e("ul",h,[n,e("li",r,[p,e("label",x,[k(t,{to:"/zh/i18n.html"},{default:d(()=>[b("国际化支持")]),_:1})])]),u])])}const w=l(m,[["render",f],["__file","project.html.vue"]]);export{w as default}; diff --git a/assets/project.html-0bc86b04.js b/assets/project.html-d2f367cd.js similarity index 98% rename from assets/project.html-0bc86b04.js rename to assets/project.html-d2f367cd.js index 6811b4440..224d0a509 100644 --- a/assets/project.html-0bc86b04.js +++ b/assets/project.html-d2f367cd.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c,a as e,d as k,w as d,e as t,b as o}from"./app-1a16ab73.js";const b={},m=t('

    Project

    Snap Hutao is an MIT-licensed open-source project that provides a Genshin Impact Toolset on Windows, aiming to provide a better experience on PC gaming. It makes undestructive feature expansions on desktops by making features that Genshin Impact provides only on mobile applications.

    Feature Migration

    Snap Hutao project was originally from the Snap Genshin project. Currently, we are still migrating features.

    Documents will be provided on this website for all migrated features. The migration process is shown below:

      • Will be integrated to Dev Plan feature
      • Will be integrated to Dev Plan feature

    New features

    The following features are planned to add when the project was established.

    ',8),n={class:"task-list-container"},r=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-14"}," Wish history cloud sync")],-1),h={class:"task-list-item"},p=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",disabled:"disabled"},null,-1),u={class:"task-list-item-label",for:"task-item-15"},x=t('
  • ',1);function f(y,_){const s=l("RouterLink");return i(),c("div",null,[m,e("ul",n,[r,e("li",h,[p,e("label",u,[k(s,{to:"/en/i18n.html"},{default:d(()=>[o("Localization")]),_:1})])]),x])])}const v=a(b,[["render",f],["__file","project.html.vue"]]);export{v as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c,a as e,d as k,w as d,e as t,b as o}from"./app-dddc4fb8.js";const b={},m=t('

    Project

    Snap Hutao is an MIT-licensed open-source project that provides a Genshin Impact Toolset on Windows, aiming to provide a better experience on PC gaming. It makes undestructive feature expansions on desktops by making features that Genshin Impact provides only on mobile applications.

    Feature Migration

    Snap Hutao project was originally from the Snap Genshin project. Currently, we are still migrating features.

    Documents will be provided on this website for all migrated features. The migration process is shown below:

      • Will be integrated to Dev Plan feature
      • Will be integrated to Dev Plan feature

    New features

    The following features are planned to add when the project was established.

    ',8),n={class:"task-list-container"},r=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-14"}," Wish history cloud sync")],-1),h={class:"task-list-item"},p=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",disabled:"disabled"},null,-1),u={class:"task-list-item-label",for:"task-item-15"},x=t('
  • ',1);function f(y,_){const s=l("RouterLink");return i(),c("div",null,[m,e("ul",n,[r,e("li",h,[p,e("label",u,[k(s,{to:"/en/i18n.html"},{default:d(()=>[o("Localization")]),_:1})])]),x])])}const v=a(b,[["render",f],["__file","project.html.vue"]]);export{v as default}; diff --git a/assets/quick-start.html-d52f76e6.js b/assets/quick-start.html-144d2db4.js similarity index 99% rename from assets/quick-start.html-d52f76e6.js rename to assets/quick-start.html-144d2db4.js index 175c0bbd4..3e262138d 100644 --- a/assets/quick-start.html-d52f76e6.js +++ b/assets/quick-start.html-144d2db4.js @@ -1 +1 @@ -import{_ as p}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as m,c as f,a as t,b as e,d as a,w as o,e as r}from"./app-1a16ab73.js";const _={},g=t("h1",{id:"quick-start",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#quick-start","aria-hidden":"true"},"#"),e(" Quick Start")],-1),b={class:"hint-container tip"},w=t("p",{class:"hint-container-title"},"Tips",-1),S=t("strong",null,"Snap Hutao",-1),y=r('

    If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

    commit_activity hutao-last-commit

    Video Tutorial

    For most people, follow the instruction on this page is more effiency.

    However, if you are not familiar with the operation mentioned below, you can come back the follow the video tutorial.

    ',6),v={class:"hint-container details"},H=t("summary",null,"Snap Hutao Tutorial - Microsoft Store Installation (zh-CN)",-1),k=r('

    Minimum System Requirements

    RequirementAttribute
    Minimum Required OSWindows 10 Build 19045 (22H2) [1]
    Recommended OSWindows 11 Build 22621 (22H2)
    Optional ComponentsWebView2 Runtime

    Download Snap Hutao

    Whatever installation method you used, package source and registration are always handled by Microsoft Store.

    ',4),M=t("p",null,[e("Microsoft Store Link:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),P=t("p",null,"On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.",-1),x=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget install "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the installation")],-1),D=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,[e("Run the MSIX package directly to perform installation "),t("ul",null,[t("li",null,[e("If failed install or receive error of missing dependency, you need to install "),t("a",{href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},"dependency package"),e(" first")])])])],-1),V=t("h3",{id:"upgrade-to-ms-store-version-from-sideload-versions",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#upgrade-to-ms-store-version-from-sideload-versions","aria-hidden":"true"},"#"),e(" Upgrade to MS Store Version from Sideload Versions")],-1),B=t("ul",null,[t("li",null,"You data will not lose as long as you don't delete data directory manually")],-1),N=t("li",null,"Follow the method above to install the Microsoft Store version application",-1),A=t("h2",{id:"update-snap-hutao",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#update-snap-hutao","aria-hidden":"true"},"#"),e(" Update Snap Hutao")],-1),G=t("p",null,[t("strong",null,"You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.")],-1),I=t("ul",null,[t("li",null,"Launch Microsoft Store"),t("li",null,"Click on Library in the bottom left to see all apps you have installed"),t("li",null,[e("Click "),t("code",null,"Get updates"),e(" on the top right and your application will be updated")])],-1),R=t("p",null,[e("If you still don't receive the update, you may enter the Snap Hutao "),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"detail page"),e(" in Microsoft Store, to allow the store to fetch the latest metadata.")],-1),W=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the upgrade")],-1),L=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,"Run the MSIX package directly to perform upgrade")],-1),q=r('

    Installing WebView2 Runtime

    WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

    At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


    1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

    ',5);function T(C,J){const d=s("RouterLink"),c=s("BiliBili"),h=s("ms-store-badge"),u=s("Tabs");return m(),f("div",null,[g,t("div",b,[w,t("p",null,[e("If you download and use "),S,e(",you are agree to our"),a(d,{to:"/en/statements/tos.html"},{default:o(()=>[e(" terms of service")]),_:1})])]),y,t("details",v,[H,a(c,{bvid:"BV13A411k7B4"})]),k,a(u,{id:"105",data:[{title:"Microsoft Store"},{title:"winget"},{title:"GitHub"}]},{tab0:o(({title:i,value:n,isActive:l})=>[a(h,{productid:"9PH4NXJ2JN52",theme:"auto"}),M,P]),tab1:o(({title:i,value:n,isActive:l})=>[x]),tab2:o(({title:i,value:n,isActive:l})=>[D]),_:1}),V,t("ul",null,[t("li",null,[e("Uninstall the sideload version with our "),a(d,{to:"/advanced/uninstall.html"},{default:o(()=>[e("uninstallation instruction document")]),_:1}),B]),N]),A,G,a(u,{id:"189",data:[{title:"Microsoft"},{title:"winget"},{title:"GitHub"}]},{tab0:o(({title:i,value:n,isActive:l})=>[I,R]),tab1:o(({title:i,value:n,isActive:l})=>[W]),tab2:o(({title:i,value:n,isActive:l})=>[L]),_:1}),q])}const O=p(_,[["render",T],["__file","quick-start.html.vue"]]);export{O as default}; +import{_ as p}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as m,c as f,a as t,b as e,d as a,w as o,e as r}from"./app-dddc4fb8.js";const _={},g=t("h1",{id:"quick-start",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#quick-start","aria-hidden":"true"},"#"),e(" Quick Start")],-1),b={class:"hint-container tip"},w=t("p",{class:"hint-container-title"},"Tips",-1),S=t("strong",null,"Snap Hutao",-1),y=r('

    If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

    commit_activity hutao-last-commit

    Video Tutorial

    For most people, follow the instruction on this page is more effiency.

    However, if you are not familiar with the operation mentioned below, you can come back the follow the video tutorial.

    ',6),v={class:"hint-container details"},H=t("summary",null,"Snap Hutao Tutorial - Microsoft Store Installation (zh-CN)",-1),k=r('

    Minimum System Requirements

    RequirementAttribute
    Minimum Required OSWindows 10 Build 19045 (22H2) [1]
    Recommended OSWindows 11 Build 22621 (22H2)
    Optional ComponentsWebView2 Runtime

    Download Snap Hutao

    Whatever installation method you used, package source and registration are always handled by Microsoft Store.

    ',4),M=t("p",null,[e("Microsoft Store Link:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),P=t("p",null,"On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.",-1),x=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget install "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the installation")],-1),D=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,[e("Run the MSIX package directly to perform installation "),t("ul",null,[t("li",null,[e("If failed install or receive error of missing dependency, you need to install "),t("a",{href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},"dependency package"),e(" first")])])])],-1),V=t("h3",{id:"upgrade-to-ms-store-version-from-sideload-versions",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#upgrade-to-ms-store-version-from-sideload-versions","aria-hidden":"true"},"#"),e(" Upgrade to MS Store Version from Sideload Versions")],-1),B=t("ul",null,[t("li",null,"You data will not lose as long as you don't delete data directory manually")],-1),N=t("li",null,"Follow the method above to install the Microsoft Store version application",-1),A=t("h2",{id:"update-snap-hutao",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#update-snap-hutao","aria-hidden":"true"},"#"),e(" Update Snap Hutao")],-1),G=t("p",null,[t("strong",null,"You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.")],-1),I=t("ul",null,[t("li",null,"Launch Microsoft Store"),t("li",null,"Click on Library in the bottom left to see all apps you have installed"),t("li",null,[e("Click "),t("code",null,"Get updates"),e(" on the top right and your application will be updated")])],-1),R=t("p",null,[e("If you still don't receive the update, you may enter the Snap Hutao "),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"detail page"),e(" in Microsoft Store, to allow the store to fetch the latest metadata.")],-1),W=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the upgrade")],-1),L=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,"Run the MSIX package directly to perform upgrade")],-1),q=r('

    Installing WebView2 Runtime

    WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

    At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


    1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

    ',5);function T(C,J){const d=s("RouterLink"),c=s("BiliBili"),h=s("ms-store-badge"),u=s("Tabs");return m(),f("div",null,[g,t("div",b,[w,t("p",null,[e("If you download and use "),S,e(",you are agree to our"),a(d,{to:"/en/statements/tos.html"},{default:o(()=>[e(" terms of service")]),_:1})])]),y,t("details",v,[H,a(c,{bvid:"BV13A411k7B4"})]),k,a(u,{id:"105",data:[{title:"Microsoft Store"},{title:"winget"},{title:"GitHub"}]},{tab0:o(({title:i,value:n,isActive:l})=>[a(h,{productid:"9PH4NXJ2JN52",theme:"auto"}),M,P]),tab1:o(({title:i,value:n,isActive:l})=>[x]),tab2:o(({title:i,value:n,isActive:l})=>[D]),_:1}),V,t("ul",null,[t("li",null,[e("Uninstall the sideload version with our "),a(d,{to:"/advanced/uninstall.html"},{default:o(()=>[e("uninstallation instruction document")]),_:1}),B]),N]),A,G,a(u,{id:"189",data:[{title:"Microsoft"},{title:"winget"},{title:"GitHub"}]},{tab0:o(({title:i,value:n,isActive:l})=>[I,R]),tab1:o(({title:i,value:n,isActive:l})=>[W]),tab2:o(({title:i,value:n,isActive:l})=>[L]),_:1}),q])}const O=p(_,[["render",T],["__file","quick-start.html.vue"]]);export{O as default}; diff --git a/assets/quick-start.html-f98b97d0.js b/assets/quick-start.html-d7922d91.js similarity index 99% rename from assets/quick-start.html-f98b97d0.js rename to assets/quick-start.html-d7922d91.js index 3e3b04eff..1d4471b20 100644 --- a/assets/quick-start.html-f98b97d0.js +++ b/assets/quick-start.html-d7922d91.js @@ -1 +1 @@ -import{_ as p}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as _,c as f,a as t,b as e,d as l,w as o,e as r}from"./app-1a16ab73.js";const m={},b=t("h1",{id:"快速开始",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#快速开始","aria-hidden":"true"},"#"),e(" 快速开始")],-1),g={class:"hint-container tip"},S=t("p",{class:"hint-container-title"},"提示",-1),w=t("strong",null,"胡桃工具箱",-1),v=r('

    如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们

    commit_activityhutao-last-commit

    视频指南

    对于大多数人而言,遵循本页文档会有更高的效率。

    但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

    ',6),H={class:"hint-container details"},k=t("summary",null,"胡桃工具箱视频指南 - 下载/安装/卸载篇",-1),y=r('

    最低系统要求

    要求规格
    最低可运行系统版本Windows 10 Build 19045 (22H2) [1]
    推荐系统版本Windows 11 Build 22621 (22H2)
    可选组件WebView2 Runtime

    下载胡桃工具箱

    无论使用何种安装方式,应用包来源和注册授权都由微软商店管理

    ',4),P=t("p",null,[e("微软商店链接:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),x=t("p",null,"在 Windows 10 和 Windows 11 下你可以直接点击上面的按钮来下载胡桃工具箱",-1),B=t("ul",null,[t("li",null,"启动 PowerShell"),t("li",null,[e("执行命令 "),t("code",null,'winget install "Snap Hutao"')]),t("li",null,"根据提示允许安装")],-1),D=t("ul",null,[t("li",null,[e("访问胡桃工具箱"),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面"),e("或"),t("a",{href:"https://d.hut.ao/releases",target:"_blank",rel:"noopener noreferrer"},"胡桃资源站")]),t("li",null,"下载 MSIX 应用包"),t("li",null,[e("直接运行 MSIX 应用包以执行安装 "),t("ul",null,[t("li",null,[e("如果安装失败或显示缺少依赖包,则意味着你的系统缺少"),t("a",{href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},"依赖环境"),e(",需要提前安装")])])])],-1),N=t("h3",{id:"从侧载版升级至商店版",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#从侧载版升级至商店版","aria-hidden":"true"},"#"),e(" 从侧载版升级至商店版")],-1),G=t("ul",null,[t("li",null,"只要不手动删除数据目录,你的数据不会受到影响")],-1),V=t("li",null,"按照上述方法全新安装商店版应用",-1),W=t("h2",{id:"更新胡桃工具箱",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#更新胡桃工具箱","aria-hidden":"true"},"#"),e(" 更新胡桃工具箱")],-1),X=t("p",null,[t("strong",null,"无论你使用何种方式安装了应用,你都可以选择任意的方式去更新它,不必选择和安装时一样的方法,因为微软商店是应用包唯一来源")],-1),J=t("ul",null,[t("li",null,"启动微软商店"),t("li",null,"点击左下角的库,查看到你目前已安装的全部应用"),t("li",null,"点击界面右上角的获取更新,你的应用将会被更新")],-1),z=t("p",null,[e("若点击获取更新后胡桃仍然没有获取到更新,则可以进入"),t("code",null,"Snap Hutao"),e("的"),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"商店详情页面"),e(",等待信息加载完成来获取更新")],-1),A=t("ul",null,[t("li",null,"启动 PowerShell"),t("li",null,[e("执行命令 "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"根据提示允许安装")],-1),I=t("ul",null,[t("li",null,[e("访问胡桃工具箱"),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")]),t("li",null,"下载 MSIX 应用包"),t("li",null,"直接运行 MSIX 应用包以执行安装")],-1),L=r('

    安装 WebView2 运行时

    WebView2 运行时由微软提供,其允许胡桃在程序内低开销地启用一个内置的浏览器。作为可选组件,WebView2 运行时不是强制组件,但安装后你会更容易地使用部分功能。

    微软官网的底部,你可以找到常青独立安装程序,选择x64下载并根据提示安装即可


    1. LTSC 和 LTSB 版本系统由于不包含微软商店,不在支持列表中。Windows 10 Build 19041 亦可以安装,但部分功能会因内核问题无法使用,故该版本下的胡桃工具箱问题将不会被处理 ↩︎

    ',5);function M(T,C){const d=n("RouterLink"),c=n("BiliBili"),u=n("ms-store-badge"),h=n("Tabs");return _(),f("div",null,[b,t("div",g,[S,t("p",null,[e("若您已下载或使用"),w,e(",即表示你已阅读并完全同意"),l(d,{to:"/zh/statements/tos.html"},{default:o(()=>[e("用户使用协议与法律声明")]),_:1})])]),v,t("details",H,[k,l(c,{bvid:"BV13A411k7B4"})]),y,l(h,{id:"105",data:[{title:"使用微软商店安装"},{title:"使用 winget 安装"},{title:"从 MSIX 文件安装"}]},{tab0:o(({title:a,value:i,isActive:s})=>[l(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),P,x]),tab1:o(({title:a,value:i,isActive:s})=>[B]),tab2:o(({title:a,value:i,isActive:s})=>[D]),_:1}),N,t("ul",null,[t("li",null,[e("按照文档提供的"),l(d,{to:"/zh/advanced/uninstall.html"},{default:o(()=>[e("卸载方法")]),_:1}),e("卸载侧载版应用 "),G]),V]),W,X,l(h,{id:"189",data:[{title:"使用微软商店更新"},{title:"使用 winget 更新"},{title:"从 GitHub 更新"}]},{tab0:o(({title:a,value:i,isActive:s})=>[J,z]),tab1:o(({title:a,value:i,isActive:s})=>[A]),tab2:o(({title:a,value:i,isActive:s})=>[I]),_:1}),L])}const E=p(m,[["render",M],["__file","quick-start.html.vue"]]);export{E as default}; +import{_ as p}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as _,c as f,a as t,b as e,d as l,w as o,e as r}from"./app-dddc4fb8.js";const m={},b=t("h1",{id:"快速开始",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#快速开始","aria-hidden":"true"},"#"),e(" 快速开始")],-1),g={class:"hint-container tip"},S=t("p",{class:"hint-container-title"},"提示",-1),w=t("strong",null,"胡桃工具箱",-1),v=r('

    如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们

    commit_activityhutao-last-commit

    视频指南

    对于大多数人而言,遵循本页文档会有更高的效率。

    但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

    ',6),H={class:"hint-container details"},k=t("summary",null,"胡桃工具箱视频指南 - 下载/安装/卸载篇",-1),y=r('

    最低系统要求

    要求规格
    最低可运行系统版本Windows 10 Build 19045 (22H2) [1]
    推荐系统版本Windows 11 Build 22621 (22H2)
    可选组件WebView2 Runtime

    下载胡桃工具箱

    无论使用何种安装方式,应用包来源和注册授权都由微软商店管理

    ',4),P=t("p",null,[e("微软商店链接:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),x=t("p",null,"在 Windows 10 和 Windows 11 下你可以直接点击上面的按钮来下载胡桃工具箱",-1),B=t("ul",null,[t("li",null,"启动 PowerShell"),t("li",null,[e("执行命令 "),t("code",null,'winget install "Snap Hutao"')]),t("li",null,"根据提示允许安装")],-1),D=t("ul",null,[t("li",null,[e("访问胡桃工具箱"),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面"),e("或"),t("a",{href:"https://d.hut.ao/releases",target:"_blank",rel:"noopener noreferrer"},"胡桃资源站")]),t("li",null,"下载 MSIX 应用包"),t("li",null,[e("直接运行 MSIX 应用包以执行安装 "),t("ul",null,[t("li",null,[e("如果安装失败或显示缺少依赖包,则意味着你的系统缺少"),t("a",{href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},"依赖环境"),e(",需要提前安装")])])])],-1),N=t("h3",{id:"从侧载版升级至商店版",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#从侧载版升级至商店版","aria-hidden":"true"},"#"),e(" 从侧载版升级至商店版")],-1),G=t("ul",null,[t("li",null,"只要不手动删除数据目录,你的数据不会受到影响")],-1),V=t("li",null,"按照上述方法全新安装商店版应用",-1),W=t("h2",{id:"更新胡桃工具箱",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#更新胡桃工具箱","aria-hidden":"true"},"#"),e(" 更新胡桃工具箱")],-1),X=t("p",null,[t("strong",null,"无论你使用何种方式安装了应用,你都可以选择任意的方式去更新它,不必选择和安装时一样的方法,因为微软商店是应用包唯一来源")],-1),J=t("ul",null,[t("li",null,"启动微软商店"),t("li",null,"点击左下角的库,查看到你目前已安装的全部应用"),t("li",null,"点击界面右上角的获取更新,你的应用将会被更新")],-1),z=t("p",null,[e("若点击获取更新后胡桃仍然没有获取到更新,则可以进入"),t("code",null,"Snap Hutao"),e("的"),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"商店详情页面"),e(",等待信息加载完成来获取更新")],-1),A=t("ul",null,[t("li",null,"启动 PowerShell"),t("li",null,[e("执行命令 "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"根据提示允许安装")],-1),I=t("ul",null,[t("li",null,[e("访问胡桃工具箱"),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")]),t("li",null,"下载 MSIX 应用包"),t("li",null,"直接运行 MSIX 应用包以执行安装")],-1),L=r('

    安装 WebView2 运行时

    WebView2 运行时由微软提供,其允许胡桃在程序内低开销地启用一个内置的浏览器。作为可选组件,WebView2 运行时不是强制组件,但安装后你会更容易地使用部分功能。

    微软官网的底部,你可以找到常青独立安装程序,选择x64下载并根据提示安装即可


    1. LTSC 和 LTSB 版本系统由于不包含微软商店,不在支持列表中。Windows 10 Build 19041 亦可以安装,但部分功能会因内核问题无法使用,故该版本下的胡桃工具箱问题将不会被处理 ↩︎

    ',5);function M(T,C){const d=n("RouterLink"),c=n("BiliBili"),u=n("ms-store-badge"),h=n("Tabs");return _(),f("div",null,[b,t("div",g,[S,t("p",null,[e("若您已下载或使用"),w,e(",即表示你已阅读并完全同意"),l(d,{to:"/zh/statements/tos.html"},{default:o(()=>[e("用户使用协议与法律声明")]),_:1})])]),v,t("details",H,[k,l(c,{bvid:"BV13A411k7B4"})]),y,l(h,{id:"105",data:[{title:"使用微软商店安装"},{title:"使用 winget 安装"},{title:"从 MSIX 文件安装"}]},{tab0:o(({title:a,value:i,isActive:s})=>[l(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),P,x]),tab1:o(({title:a,value:i,isActive:s})=>[B]),tab2:o(({title:a,value:i,isActive:s})=>[D]),_:1}),N,t("ul",null,[t("li",null,[e("按照文档提供的"),l(d,{to:"/zh/advanced/uninstall.html"},{default:o(()=>[e("卸载方法")]),_:1}),e("卸载侧载版应用 "),G]),V]),W,X,l(h,{id:"189",data:[{title:"使用微软商店更新"},{title:"使用 winget 更新"},{title:"从 GitHub 更新"}]},{tab0:o(({title:a,value:i,isActive:s})=>[J,z]),tab1:o(({title:a,value:i,isActive:s})=>[A]),tab2:o(({title:a,value:i,isActive:s})=>[I]),_:1}),L])}const E=p(m,[["render",M],["__file","quick-start.html.vue"]]);export{E as default}; diff --git a/assets/real-time-notes.html-485bd43b.js b/assets/real-time-notes.html-76828791.js similarity index 98% rename from assets/real-time-notes.html-485bd43b.js rename to assets/real-time-notes.html-76828791.js index 1e0045c00..9657973d1 100644 --- a/assets/real-time-notes.html-485bd43b.js +++ b/assets/real-time-notes.html-76828791.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as l,a as e,b as t,d as c,w as s,e as r}from"./app-1a16ab73.js";const d={},h=e("h1",{id:"real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#real-time-notes","aria-hidden":"true"},"#"),t(" Real-time Notes")],-1),u={class:"hint-container info"},f=e("p",{class:"hint-container-title"},"Info",-1),m=r('

    live-data-tracking

    Add Role

    • Click on Add Role button
    • In the pop-up menu, find the UID you want to add, and click on the add button to its right
    • Now, the game UID character's Real-time Notes should be displayed in the page
      • The Real-time Notes is set to refresh timely
        • You can click on the Notification Settings on the top right to manage it
        • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
      • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

    Global Notification Settings

    • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
      • Refresh rate
      • Do not disturb setting
      • Prioritized notification
        • This prevent Snap Hutao's notification being closed automatically

    Independent Settings for Accounts

    • Snap Hutao allows different settings on each Real-time Notes account
    • Hover the cursor over the form of Real-time Notes account that needs to set
    • Click on the setting button on it, and you can modify these settings:
      • Original Resin threshold value
      • Realm Currency threshold value
      • Parametric Transformer notification
      • Daily Commission notification
      • Expeditions notification
      • Display in the main page (feature coming soon)
    • Click on Save and you can save the settings

    Delete Daily-Notes Account

    • Hover the cursor over the form of Real-time Notes account that needs to delete
    • Clock on the remove button on it, and you can remove the corresponding account
    ',9);function g(y,p){const i=a("RouterLink");return n(),l("div",null,[h,e("div",u,[f,e("p",null,[t("This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check "),c(i,{to:"/en/features/mhy-account-switch.html"},{default:s(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" for more information.")])]),m])}const N=o(d,[["render",g],["__file","real-time-notes.html.vue"]]);export{N as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as l,a as e,b as t,d as c,w as s,e as r}from"./app-dddc4fb8.js";const d={},h=e("h1",{id:"real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#real-time-notes","aria-hidden":"true"},"#"),t(" Real-time Notes")],-1),u={class:"hint-container info"},f=e("p",{class:"hint-container-title"},"Info",-1),m=r('

    live-data-tracking

    Add Role

    • Click on Add Role button
    • In the pop-up menu, find the UID you want to add, and click on the add button to its right
    • Now, the game UID character's Real-time Notes should be displayed in the page
      • The Real-time Notes is set to refresh timely
        • You can click on the Notification Settings on the top right to manage it
        • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
      • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

    Global Notification Settings

    • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
      • Refresh rate
      • Do not disturb setting
      • Prioritized notification
        • This prevent Snap Hutao's notification being closed automatically

    Independent Settings for Accounts

    • Snap Hutao allows different settings on each Real-time Notes account
    • Hover the cursor over the form of Real-time Notes account that needs to set
    • Click on the setting button on it, and you can modify these settings:
      • Original Resin threshold value
      • Realm Currency threshold value
      • Parametric Transformer notification
      • Daily Commission notification
      • Expeditions notification
      • Display in the main page (feature coming soon)
    • Click on Save and you can save the settings

    Delete Daily-Notes Account

    • Hover the cursor over the form of Real-time Notes account that needs to delete
    • Clock on the remove button on it, and you can remove the corresponding account
    ',9);function g(y,p){const i=a("RouterLink");return n(),l("div",null,[h,e("div",u,[f,e("p",null,[t("This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check "),c(i,{to:"/en/features/mhy-account-switch.html"},{default:s(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" for more information.")])]),m])}const N=o(d,[["render",g],["__file","real-time-notes.html.vue"]]);export{N as default}; diff --git a/assets/real-time-notes.html-5c1061b7.js b/assets/real-time-notes.html-bcb443a3.js similarity index 98% rename from assets/real-time-notes.html-5c1061b7.js rename to assets/real-time-notes.html-bcb443a3.js index 67a00709f..07b4f6e1f 100644 --- a/assets/real-time-notes.html-5c1061b7.js +++ b/assets/real-time-notes.html-bcb443a3.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as l,b as e,d as t,w as a,e as s}from"./app-1a16ab73.js";const r={},h=l("h1",{id:"实时便笺",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#实时便笺","aria-hidden":"true"},"#"),e(" 实时便笺")],-1),u={class:"hint-container info"},_=l("p",{class:"hint-container-title"},"相关信息",-1),m=l("p",null,[l("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01mzYqiM1g6dvE0z3nZ_!!1797064093.png_.webp",alt:"live-data-tracking",loading:"lazy"})],-1),f=l("h2",{id:"添加角色",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#添加角色","aria-hidden":"true"},"#"),e(" 添加角色")],-1),p=l("li",null,[e("点击"),l("code",null,"添加角色"),e("按钮")],-1),x=l("li",null,[e("在弹出的"),l("code",null,"添加角色"),e("浮窗中,找到你要添加的游戏角色 UID,并单击其右侧的加号按钮")],-1),g=l("li",null,[e("实时便笺是间隔固定时间自动刷新的 "),l("ul",null,[l("li",null,[e("你可以点击窗口右上角的"),l("code",null,"通知设置"),e("来设置查询的间隔时间")]),l("li",null,[e("如您需要立即刷新以获取实时的最新数值,请单击"),l("code",null,"立即刷新"),e("按钮")])])],-1),E=s('

    全局通知设置

    • 在窗口右上角点击通知设置可以修改实时便笺的全局设置,包括:
      • 数据刷新间隔时间
      • 通知免打扰
      • 高优先度通知
        • 这将避免胡桃工具箱的通知被自动收入操作中心
        • 请注意,开启此设置可能会让您在日常使用电脑期间受到打扰

    帐号独立设置

    • 胡桃工具箱的实时便笺功能允许用户对每一个被监控的帐号给予不同的设置
    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的设置图案按钮,即可修改如下参数
      • 原粹树脂提醒阈值
      • 洞天宝钱提醒阈值
      • 启用参量质变仪提醒
      • 启用每日委托上限提醒
      • 启用探索派遣完成提醒
      • 启用在主页显示卡片 (未上线的新功能)
    • 点击保存,即可保存您当前所设置的通知选项

    删除角色

    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的移除标志按钮,即可移除该角色对应的实时便笺
    ',6);function b(v,A){const i=o("RouterLink");return c(),d("div",null,[h,l("div",u,[_,l("p",null,[e("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),t(i,{to:"/zh/features/mhy-account-switch.html"},{default:a(()=>[e("米游社多帐号切换")]),_:1}),e("文档")])]),m,f,l("ul",null,[p,x,l("li",null,[e("此时您添加的游戏角色即可显示在实时便笺页面中 "),l("ul",null,[g,l("li",null,[e('如出现"账号有风险,请前往米游社查看"字样的提示 '),l("ul",null,[l("li",null,[e("请参考"),t(i,{to:"/zh/advanced/exceptions.html#%E7%8A%B6%E6%80%811034-%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5"},{default:a(()=>[e("账号风险提示")]),_:1}),e("文档")])])])])])]),E])}const k=n(r,[["render",b],["__file","real-time-notes.html.vue"]]);export{k as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as l,b as e,d as t,w as a,e as s}from"./app-dddc4fb8.js";const r={},h=l("h1",{id:"实时便笺",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#实时便笺","aria-hidden":"true"},"#"),e(" 实时便笺")],-1),u={class:"hint-container info"},_=l("p",{class:"hint-container-title"},"相关信息",-1),m=l("p",null,[l("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01mzYqiM1g6dvE0z3nZ_!!1797064093.png_.webp",alt:"live-data-tracking",loading:"lazy"})],-1),f=l("h2",{id:"添加角色",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#添加角色","aria-hidden":"true"},"#"),e(" 添加角色")],-1),p=l("li",null,[e("点击"),l("code",null,"添加角色"),e("按钮")],-1),x=l("li",null,[e("在弹出的"),l("code",null,"添加角色"),e("浮窗中,找到你要添加的游戏角色 UID,并单击其右侧的加号按钮")],-1),g=l("li",null,[e("实时便笺是间隔固定时间自动刷新的 "),l("ul",null,[l("li",null,[e("你可以点击窗口右上角的"),l("code",null,"通知设置"),e("来设置查询的间隔时间")]),l("li",null,[e("如您需要立即刷新以获取实时的最新数值,请单击"),l("code",null,"立即刷新"),e("按钮")])])],-1),E=s('

    全局通知设置

    • 在窗口右上角点击通知设置可以修改实时便笺的全局设置,包括:
      • 数据刷新间隔时间
      • 通知免打扰
      • 高优先度通知
        • 这将避免胡桃工具箱的通知被自动收入操作中心
        • 请注意,开启此设置可能会让您在日常使用电脑期间受到打扰

    帐号独立设置

    • 胡桃工具箱的实时便笺功能允许用户对每一个被监控的帐号给予不同的设置
    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的设置图案按钮,即可修改如下参数
      • 原粹树脂提醒阈值
      • 洞天宝钱提醒阈值
      • 启用参量质变仪提醒
      • 启用每日委托上限提醒
      • 启用探索派遣完成提醒
      • 启用在主页显示卡片 (未上线的新功能)
    • 点击保存,即可保存您当前所设置的通知选项

    删除角色

    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的移除标志按钮,即可移除该角色对应的实时便笺
    ',6);function b(v,A){const i=o("RouterLink");return c(),d("div",null,[h,l("div",u,[_,l("p",null,[e("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),t(i,{to:"/zh/features/mhy-account-switch.html"},{default:a(()=>[e("米游社多帐号切换")]),_:1}),e("文档")])]),m,f,l("ul",null,[p,x,l("li",null,[e("此时您添加的游戏角色即可显示在实时便笺页面中 "),l("ul",null,[g,l("li",null,[e('如出现"账号有风险,请前往米游社查看"字样的提示 '),l("ul",null,[l("li",null,[e("请参考"),t(i,{to:"/zh/advanced/exceptions.html#%E7%8A%B6%E6%80%811034-%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5"},{default:a(()=>[e("账号风险提示")]),_:1}),e("文档")])])])])])]),E])}const k=n(r,[["render",b],["__file","real-time-notes.html.vue"]]);export{k as default}; diff --git a/assets/side-load.html-70ce2289.js b/assets/side-load.html-14a04174.js similarity index 96% rename from assets/side-load.html-70ce2289.js rename to assets/side-load.html-14a04174.js index 2dc383315..3a8f0fb4c 100644 --- a/assets/side-load.html-70ce2289.js +++ b/assets/side-load.html-14a04174.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-1a16ab73.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-dddc4fb8.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; diff --git a/assets/side-load.html-a906d0ea.js b/assets/side-load.html-9b18c97a.js similarity index 96% rename from assets/side-load.html-a906d0ea.js rename to assets/side-load.html-9b18c97a.js index 2dc383315..3a8f0fb4c 100644 --- a/assets/side-load.html-a906d0ea.js +++ b/assets/side-load.html-9b18c97a.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-1a16ab73.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-dddc4fb8.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; diff --git a/assets/star-request.html-9743779e.js b/assets/star-request.html-219d2341.js similarity index 96% rename from assets/star-request.html-9743779e.js rename to assets/star-request.html-219d2341.js index 635cdf4fd..0b72f3a5d 100644 --- a/assets/star-request.html-9743779e.js +++ b/assets/star-request.html-219d2341.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as i,c as n,a as t,b as o,d as s}from"./app-1a16ab73.js";const r={},c=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),u={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),p=t("li",null,"在更多的地方帮助我们宣传",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(S,b){const e=a("ExternalLinkIcon");return i(),n("div",null,[c,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",u,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),_])])]),m,p]),g])}const D=l(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as i,c as n,a as t,b as o,d as s}from"./app-dddc4fb8.js";const r={},c=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),u={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),p=t("li",null,"在更多的地方帮助我们宣传",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(S,b){const e=a("ExternalLinkIcon");return i(),n("div",null,[c,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",u,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),_])])]),m,p]),g])}const D=l(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; diff --git a/assets/star-request.html-a806e1e3.js b/assets/star-request.html-e3f26991.js similarity index 96% rename from assets/star-request.html-a806e1e3.js rename to assets/star-request.html-e3f26991.js index cc8ff48c2..98cd284f4 100644 --- a/assets/star-request.html-a806e1e3.js +++ b/assets/star-request.html-e3f26991.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as n,a as t,b as o,d as s}from"./app-1a16ab73.js";const r={},u=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},p=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),_=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),m=t("li",null,"Promote our project in your network",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(y,S){const e=l("ExternalLinkIcon");return i(),n("div",null,[u,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",c,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),p])])]),_,m]),g])}const D=a(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as n,a as t,b as o,d as s}from"./app-dddc4fb8.js";const r={},u=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},p=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),_=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),m=t("li",null,"Promote our project in your network",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(y,S){const e=l("ExternalLinkIcon");return i(),n("div",null,[u,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",c,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),p])])]),_,m]),g])}const D=a(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; diff --git a/assets/symposium1.html-4e5cad0b.js b/assets/symposium1.html-be2a8ae0.js similarity index 98% rename from assets/symposium1.html-4e5cad0b.js rename to assets/symposium1.html-be2a8ae0.js index e5f524612..2d254a218 100644 --- a/assets/symposium1.html-4e5cad0b.js +++ b/assets/symposium1.html-be2a8ae0.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as s,c as n,a as e,b as a,d as i,e as t}from"./app-1a16ab73.js";const o={},c=e("h1",{id:"第一期开发组座谈会",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#第一期开发组座谈会","aria-hidden":"true"},"#"),a(" 第一期开发组座谈会")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/46",target:"_blank",rel:"noopener noreferrer"},u=t('

    为啥胡桃在电脑上要做成类似 uwp 格式的应用?

    开发 MSIX 封装的应用是桌面端的开发趋势,开发体验更佳,用户体验也能提升。

    胡桃的作用是啥,和 SG 有什么区别?

    胡桃是 SG 的次世代版本,更新/更快/更强。

    胡桃会全面继承 SG 的功能吗?SG 的一些功能会在 hutao 里被弃用吗?

    多数功能会完全继承与升级。少数功能会以整合功能的形式出现在胡桃中。

    为啥不把胡桃和 SG 集合到一起,而是要分开呢?和 sg 有什么侧重上的不同?

    Snap Genshin 采用 WPF 技术开发,该技术基于 DirectX 9,而 胡桃 采用 WinUI 3 开发,该新技术基于 DirectX 12 与其他较新的显示技术,呈现的效果更好,同时也更易于开发,胡桃 与 Snap Genshin 类似,但侧重于流畅、简单的用户体验,同时也更注重程序架构的可维护性,更关注性能表现。

    除了 SG 的旧功能迁移,还会有新功能开发吗?

    随着原神的发展,我们也会推出更多的功能。

    SG 永远不会更新了吗?SG 是快不能用了吗?

    没有严重的数据异常问题不会再更新。由于缺乏维护,不保证在何时由于某些不确定的原因会导致 SG 的部分功能失效(如先去的签到功能)。 Snap.Genshin 已停止更新,项目已归档

    胡桃的使用文档秋梨膏?

    使用文档 @Masterain98 正在制作中,很快就会和大家见面。 你现在看到的就是

    胡桃图标还会更新嘛?

    不会,我们持有胡桃图标的版权。

    什么时候上微软商店?上微软商店是否不需要自己信任证书了?胡桃以后会在线更新嘛?

    会在所有功能完善后上架。不需要证书。上架后就可以支持在线更新了。

    有考虑增加根据角色展示面板来计算伤害的功能吗?什么时候胡桃能当启动器,解锁帧率?这个无边框全屏的功能以后会不会支持?

    面板功能会在用户系统重构后进行开发,并且会在完成面板查询功能后实现启动游戏相关功能。启动参数包括在内。

    胡桃数据库 和 Hutao 是否有关系?什么时候上胡桃数据库?

    胡桃数据库是 HutaoAPI 的一部分,包含了深渊相关的数据,HutaoAPI 是胡桃使用的 RESTful API,同时面向其他应用的开发者开放,接入成本低,接入收益高。胡桃数据库将会在后续版本实装。 已经实装

    会把胡桃放到右下角任务栏吗?会考虑在角色里添加立绘吗?

    基本不会考虑。后续可能会考虑。

    你可以通过快速启动栏来快速启动游戏,具体方法可见此文档

    将来会有移动端吗?有考虑根据胡桃做个手机桌面小组件吗?胡桃以后支持插件吗?胡桃会有插件开发文档吗?

    短时间内不会考虑移动端。手机桌面小组件也基本不会考虑。不会再支持插件。同样也不会有插件文档。

    离支持外服账号还有多远?会整合其他插件比如空荧酒馆这种嘛?

    Hoyolab 的相关支持需要其他开发者的帮助。由于技术栈的不同,很难整合。

    受益于开源社区力量,目前高级启动器、祈愿记录导出和成就管理功能已支持国际服。

    有没有打算添加收费功能,还是说只靠捐助?

    由于服务器需要资费,与服务器存储相关的功能可能会进行收费。 Snap.Hutao 等有关项目均为公益项目

    是用爱发电吗?开发胡桃,是业余时间开发的吗?

    显然是。

    ',34);function l(f,x){const h=d("ExternalLinkIcon");return s(),n("div",null,[c,e("p",null,[a("复制自 "),e("a",p,[a("GitHub 讨论帖"),i(h)]),a(",总结于群讨论")]),u])}const _=r(o,[["render",l],["__file","symposium1.html.vue"]]);export{_ as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as s,c as n,a as e,b as a,d as i,e as t}from"./app-dddc4fb8.js";const o={},c=e("h1",{id:"第一期开发组座谈会",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#第一期开发组座谈会","aria-hidden":"true"},"#"),a(" 第一期开发组座谈会")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/46",target:"_blank",rel:"noopener noreferrer"},u=t('

    为啥胡桃在电脑上要做成类似 uwp 格式的应用?

    开发 MSIX 封装的应用是桌面端的开发趋势,开发体验更佳,用户体验也能提升。

    胡桃的作用是啥,和 SG 有什么区别?

    胡桃是 SG 的次世代版本,更新/更快/更强。

    胡桃会全面继承 SG 的功能吗?SG 的一些功能会在 hutao 里被弃用吗?

    多数功能会完全继承与升级。少数功能会以整合功能的形式出现在胡桃中。

    为啥不把胡桃和 SG 集合到一起,而是要分开呢?和 sg 有什么侧重上的不同?

    Snap Genshin 采用 WPF 技术开发,该技术基于 DirectX 9,而 胡桃 采用 WinUI 3 开发,该新技术基于 DirectX 12 与其他较新的显示技术,呈现的效果更好,同时也更易于开发,胡桃 与 Snap Genshin 类似,但侧重于流畅、简单的用户体验,同时也更注重程序架构的可维护性,更关注性能表现。

    除了 SG 的旧功能迁移,还会有新功能开发吗?

    随着原神的发展,我们也会推出更多的功能。

    SG 永远不会更新了吗?SG 是快不能用了吗?

    没有严重的数据异常问题不会再更新。由于缺乏维护,不保证在何时由于某些不确定的原因会导致 SG 的部分功能失效(如先去的签到功能)。 Snap.Genshin 已停止更新,项目已归档

    胡桃的使用文档秋梨膏?

    使用文档 @Masterain98 正在制作中,很快就会和大家见面。 你现在看到的就是

    胡桃图标还会更新嘛?

    不会,我们持有胡桃图标的版权。

    什么时候上微软商店?上微软商店是否不需要自己信任证书了?胡桃以后会在线更新嘛?

    会在所有功能完善后上架。不需要证书。上架后就可以支持在线更新了。

    有考虑增加根据角色展示面板来计算伤害的功能吗?什么时候胡桃能当启动器,解锁帧率?这个无边框全屏的功能以后会不会支持?

    面板功能会在用户系统重构后进行开发,并且会在完成面板查询功能后实现启动游戏相关功能。启动参数包括在内。

    胡桃数据库 和 Hutao 是否有关系?什么时候上胡桃数据库?

    胡桃数据库是 HutaoAPI 的一部分,包含了深渊相关的数据,HutaoAPI 是胡桃使用的 RESTful API,同时面向其他应用的开发者开放,接入成本低,接入收益高。胡桃数据库将会在后续版本实装。 已经实装

    会把胡桃放到右下角任务栏吗?会考虑在角色里添加立绘吗?

    基本不会考虑。后续可能会考虑。

    你可以通过快速启动栏来快速启动游戏,具体方法可见此文档

    将来会有移动端吗?有考虑根据胡桃做个手机桌面小组件吗?胡桃以后支持插件吗?胡桃会有插件开发文档吗?

    短时间内不会考虑移动端。手机桌面小组件也基本不会考虑。不会再支持插件。同样也不会有插件文档。

    离支持外服账号还有多远?会整合其他插件比如空荧酒馆这种嘛?

    Hoyolab 的相关支持需要其他开发者的帮助。由于技术栈的不同,很难整合。

    受益于开源社区力量,目前高级启动器、祈愿记录导出和成就管理功能已支持国际服。

    有没有打算添加收费功能,还是说只靠捐助?

    由于服务器需要资费,与服务器存储相关的功能可能会进行收费。 Snap.Hutao 等有关项目均为公益项目

    是用爱发电吗?开发胡桃,是业余时间开发的吗?

    显然是。

    ',34);function l(f,x){const h=d("ExternalLinkIcon");return s(),n("div",null,[c,e("p",null,[a("复制自 "),e("a",p,[a("GitHub 讨论帖"),i(h)]),a(",总结于群讨论")]),u])}const _=r(o,[["render",l],["__file","symposium1.html.vue"]]);export{_ as default}; diff --git a/assets/symposium2.html-a3e8732e.js b/assets/symposium2.html-998a2702.js similarity index 96% rename from assets/symposium2.html-a3e8732e.js rename to assets/symposium2.html-998a2702.js index c4a0a8269..70940a47d 100644 --- a/assets/symposium2.html-a3e8732e.js +++ b/assets/symposium2.html-998a2702.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c as s,a,b as e,d as h,e as d}from"./app-1a16ab73.js";const o={},c=a("h1",{id:"第二期开发组座谈会",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#第二期开发组座谈会","aria-hidden":"true"},"#"),e(" 第二期开发组座谈会")],-1),l={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/280",target:"_blank",rel:"noopener noreferrer"},u=d('

    现在成就导出的 json 格式也是 UIGF 的嘛

    A: UIAF

    能否适配祈愿系统数据 UEFI 旧版本的导入,和 SG 一样就可以

    A: 首先它叫 UIGF 格式,其次一直是适配的,只是 SG 的导入导出规则较为宽泛,如果您从始至终仅使用且正确使用了我们的产品,是不会出现导入导出异常的问题的

    啥时候会有 sg 那种自动检查更新下载

    A: 自动更新不能在 MSIX 包上实现,检查更新会在后续版本推出。

    我同一个设备上同时登陆 SG,hutao 会算作一个设备还是两个设备

    A: 两个设备,理论上每次重启胡桃后均相当于切换了设备

    我感觉胡桃有些页面的加载需要很久,会影响使用体验,感觉胡桃的界面有点掉帧

    A: 深渊统计页面在 1.2.6 版本前确实存在加载慢的问题,已在新版本解决,如果有其他页面的卡顿问题,通常是因为你的显卡不够强劲,或者胡桃通过你的集显进行渲染。

    属性统计经常加载不了

    A: 历史遗留问题,可以通过备份数据后删除 userdata.db 解决

    自定义网页功能是否还有规划

    A: 别急

    微软方面的问题,我们无法解决

    • 有的时候使用管理员启动并不能获取到管理员权限,需要关掉后二次启动
    • 胡桃的图标尺寸可不可以改成像其他图标—样的小尺寸呀
    • 写入的注册表文件,在更新时遇安装问题,尝试所有修复无果,在卸载重装进行修复的过程中会否因卸载残留问题对重装造成影响
    ',15);function p(f,_){const r=t("ExternalLinkIcon");return n(),s("div",null,[c,a("p",null,[e("复制自 "),a("a",l,[e("GitHub 讨论帖"),h(r)]),e(",总结于群讨论")]),u])}const b=i(o,[["render",p],["__file","symposium2.html.vue"]]);export{b as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c as s,a,b as e,d as h,e as d}from"./app-dddc4fb8.js";const o={},c=a("h1",{id:"第二期开发组座谈会",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#第二期开发组座谈会","aria-hidden":"true"},"#"),e(" 第二期开发组座谈会")],-1),l={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/280",target:"_blank",rel:"noopener noreferrer"},u=d('

    现在成就导出的 json 格式也是 UIGF 的嘛

    A: UIAF

    能否适配祈愿系统数据 UEFI 旧版本的导入,和 SG 一样就可以

    A: 首先它叫 UIGF 格式,其次一直是适配的,只是 SG 的导入导出规则较为宽泛,如果您从始至终仅使用且正确使用了我们的产品,是不会出现导入导出异常的问题的

    啥时候会有 sg 那种自动检查更新下载

    A: 自动更新不能在 MSIX 包上实现,检查更新会在后续版本推出。

    我同一个设备上同时登陆 SG,hutao 会算作一个设备还是两个设备

    A: 两个设备,理论上每次重启胡桃后均相当于切换了设备

    我感觉胡桃有些页面的加载需要很久,会影响使用体验,感觉胡桃的界面有点掉帧

    A: 深渊统计页面在 1.2.6 版本前确实存在加载慢的问题,已在新版本解决,如果有其他页面的卡顿问题,通常是因为你的显卡不够强劲,或者胡桃通过你的集显进行渲染。

    属性统计经常加载不了

    A: 历史遗留问题,可以通过备份数据后删除 userdata.db 解决

    自定义网页功能是否还有规划

    A: 别急

    微软方面的问题,我们无法解决

    • 有的时候使用管理员启动并不能获取到管理员权限,需要关掉后二次启动
    • 胡桃的图标尺寸可不可以改成像其他图标—样的小尺寸呀
    • 写入的注册表文件,在更新时遇安装问题,尝试所有修复无果,在卸载重装进行修复的过程中会否因卸载残留问题对重装造成影响
    ',15);function p(f,_){const r=t("ExternalLinkIcon");return n(),s("div",null,[c,a("p",null,[e("复制自 "),a("a",l,[e("GitHub 讨论帖"),h(r)]),e(",总结于群讨论")]),u])}const b=i(o,[["render",p],["__file","symposium2.html.vue"]]);export{b as default}; diff --git a/assets/tos.html-1d3cfa11.js b/assets/tos.html-6bddfc88.js similarity index 99% rename from assets/tos.html-1d3cfa11.js rename to assets/tos.html-6bddfc88.js index e9bd5a61b..55bb19c6a 100644 --- a/assets/tos.html-1d3cfa11.js +++ b/assets/tos.html-6bddfc88.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as r,a as e,b as t,d as s,w as l,e as d}from"./app-1a16ab73.js";const u={},h=e("h1",{id:"user-agreement-and-legal-disclaime",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#user-agreement-and-legal-disclaime","aria-hidden":"true"},"#"),t(" User Agreement and Legal Disclaime")],-1),c={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=d('

    General Provisions

    • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
      • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
      • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
      • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
      • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

    Nature of the Project, Services, and Definition of Responsibilities and Obligations

    1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

    2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

    3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

    4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

      • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
      • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
    5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

      • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
      • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
      • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
      • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

    Rights and Obligations

    1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

      • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
      • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
      • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
    2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

      • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
      • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
    3. Copyright of the developed projects.

      • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
      • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
      • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.

    Other Terms

    1. Determination of "Non-Business Nature" of Projects Developed by the Team.

      • Any project developed by the team has no business nature.
      • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
    2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

    3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

    4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

    5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

    6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

    7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

    ',8);function f(y,g){const o=a("RouterLink");return n(),r("div",null,[h,e("div",c,[p,e("p",null,[t("This page of document was original written in Simplified Chinese. It's translated by AI-driven translate software, and still under review. If there is any conflict between the content of the document on this page and the original document, please refer to the "),s(o,{to:"/zh/statements/tos.html"},{default:l(()=>[t("original document")]),_:1}),t(".")])]),m])}const q=i(u,[["render",f],["__file","tos.html.vue"]]);export{q as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as r,a as e,b as t,d as s,w as l,e as d}from"./app-dddc4fb8.js";const u={},h=e("h1",{id:"user-agreement-and-legal-disclaime",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#user-agreement-and-legal-disclaime","aria-hidden":"true"},"#"),t(" User Agreement and Legal Disclaime")],-1),c={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=d('

    General Provisions

    • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
      • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
      • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
      • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
      • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

    Nature of the Project, Services, and Definition of Responsibilities and Obligations

    1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

    2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

    3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

    4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

      • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
      • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
    5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

      • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
      • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
      • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
      • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

    Rights and Obligations

    1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

      • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
      • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
      • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
    2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

      • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
      • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
    3. Copyright of the developed projects.

      • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
      • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
      • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.

    Other Terms

    1. Determination of "Non-Business Nature" of Projects Developed by the Team.

      • Any project developed by the team has no business nature.
      • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
    2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

    3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

    4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

    5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

    6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

    7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

    ',8);function f(y,g){const o=a("RouterLink");return n(),r("div",null,[h,e("div",c,[p,e("p",null,[t("This page of document was original written in Simplified Chinese. It's translated by AI-driven translate software, and still under review. If there is any conflict between the content of the document on this page and the original document, please refer to the "),s(o,{to:"/zh/statements/tos.html"},{default:l(()=>[t("original document")]),_:1}),t(".")])]),m])}const q=i(u,[["render",f],["__file","tos.html.vue"]]);export{q as default}; diff --git a/assets/tos.html-c988e41e.js b/assets/tos.html-afbf6e1f.js similarity index 99% rename from assets/tos.html-c988e41e.js rename to assets/tos.html-afbf6e1f.js index 72bc01358..9eb484f48 100644 --- a/assets/tos.html-c988e41e.js +++ b/assets/tos.html-afbf6e1f.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as u,o as r,c as s,a as l,b as t,d as o,e as n}from"./app-1a16ab73.js";const a={},h=l("h1",{id:"用户使用协议和法律声明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#用户使用协议和法律声明","aria-hidden":"true"},"#"),t(" 用户使用协议和法律声明")],-1),d=l("h2",{id:"总则",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#总则","aria-hidden":"true"},"#"),t(" 总则")],-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},c=l("ul",null,[l("li",null,[t("请您仔细阅读本用户使用协议的"),l("strong",null,"全部内容"),t(',在您阅读"使用协议"后,若对此用户使用协议中的'),l("strong",null,"任何条款"),t("有异议,请立刻停止使用本团队所开发的任意项目。")]),l("li",null,"如您未满 18 周岁,请在法定监护人陪同下仔细阅读并充分理解本协议,并征得法定监护人的同意后使用本团队所开发的任意项目。"),l("li",null,"若您已安装、使用或在开发时引用本团队所开发的任意项目,表示您已主动阅读(已阅读完毕)并完全同意本使用协议所列明的条款,即已充分理解本协议并承诺作为本协议的一方当事人接受协议、法律声明、隐私政策以及与本团队所开发的任意项目相关的规则、规范、声明、公告、通知等内容的约束。"),l("li",null,'此《用户使用协议》是由用户(以下或称"您")与本团队所开发的任意项目所订立的用户使用协议和法律声明,本协议对用户和本团队均具有法律效力。')],-1),p=l("h2",{id:"项目性质、服务以及有关责任与义务的界定",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目性质、服务以及有关责任与义务的界定","aria-hidden":"true"},"#"),t(" 项目性质、服务以及有关责任与义务的界定")],-1),f=l("li",null,[l("p",null,'一、由于本团队所开发的任意项目,均"开源"、"非经营性质",故本团队可随时执行全权决定:包括但不限于更改"使用协议",修改本团队所开发的任意项目内的任何内容。如"条款"及"作品的内容"有任何变更,我方将在相关的项目展示网站上刊载公告作为通知。经修订的"条款"一经在官方网站上公布后,即自动生效。')],-1),b=l("li",null,[l("p",null,'二、本软件以"学习开发知识"、"积累开发经验"为目的进行开发,所有项目所提供的功能,均"开源"、"非经营性质",如用户对本团队所开发的任意项目的安全性表示不满,请立即卸载/删除/停用,如您仍在正常使用,则表示您认可本团队所开发的任意项目的安全性。')],-1),q={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"},g=n("
  • 四、用户使用本团队所开发的任意项目期间,本团队不做任何不发生如下情况的保证:

    • 因网络状况、通讯线路等任何技术原因而导致用户不能正常使用或更新;
    • 因使用"第三方开发的本软件内插件"、"第三方进行二次编译的本软件的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成负面结果。
  • 五、用户认可本团队所开发的任意项目,除被动接收软件或其他相关项目中的必要的上传报告或有关信息外,所有信息的上传均需要用户的主动触发;

    • 用户认可本团队所开发的任意项目,均完全尊重并保护所有用户的"个人隐私权",项目代码亦完全公开,用户不具有"因隐私权收到侵犯"而对开发团队或团队成员发起控诉的主观理由。
    • 本团队所开发的任意项目不会向第三方共享、转让您的个人信息,除非经过您本人事先授权同意,或者共享、转让的个人信息是去标识化处理后的信息,且共享第三方无法重新识别此类信息的自然人主体。
    • 本团队所开发的任意项目包含到其他站点的链接,当您访问第三方链接时,请认真阅读第三方站点的用户协议和声明,本团队对于第三方站点的内容、隐私条款、使用协议等不负任何责任。
    • 在使用本团队所开发的任意项目时,提交任意资料的过程中,本团队不保证提交的信息保存成功,您需要对您提交的资料做好存储保管。本团队所开发的部分项目为"被授权数据"提供存储,但在存储过程中存在各种不可抗力的因素,本团队无法承诺对用户的存储信息无限期保留,您的重要信息请自行备份。
  • ",2),S=l("h2",{id:"权利和义务",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#权利和义务","aria-hidden":"true"},"#"),t(" 权利和义务")],-1),G=l("li",null,[l("p",null,"六、我方允许任何单位或个人在没有本开发团队授权的情况下,对本团队所开发的任意项目进行的二次开发、功能修改以及复用我方创作的代码进行其他项目的开发,但对其所侵犯我方计算机软件著作权的行为,我方保留追责的权利。"),l("ul",null,[l("li",null,"我开发团队不对任何单位或个人在使用本团队所开发的任意项目的内容进行的公开发布行为(包括但不限于制作视频、发布带有本软件内容的文章、上传至非我开发团队指定的下载网站提供下载等)的内容所致的任意结果进行负责。"),l("li",null,'我开发团队不对使用"第三方开发的可用于本团队所开发的任意项目的附属程序或额外代码"、"第三方进行二次编译的本团队所开发的任意项目的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成的任意结果负责。'),l("li",null,'在此基础上,根据《计算机软件保护条例》第二条与第三条对于"计算机软件"和"文档"的法律定义,本软件开发团队(DGP Studio)保留全部我方开发项目的计算机软件著作权,其包括但不限于项目构建所需的全部信息、全部项目有关的所有文档资料(即用来描述程序的内容、组成、设计、功能规格、开发情况的程序设计说明书、流程图、用户手册等),具体内容以各项目《计算机软件著作权登记证书》的实际内容为准。')])],-1),x=l("li",null,[l("p",null,"七、本团队所开发的任意项目仅作用于合法、合规范围内的学习及研究所用,不得利用本软件系统从事违法活动。"),l("ul",null,[l("li",null,"本团队仅作为项目的开发团队(非法人性质,为自然人组成的团体),对任何使用结果不负任何连带责任,软件以及我方开发的任意项目的使用过程中产生的任何法律后果我们概不负责、不承担任何法律责任。"),l("li",null,'若用户已开始使用本团队所开发的任意项目,即已同意"使用协议",表明本团队已履行完毕"本使用协议第十款"的告知情形。')])],-1),k=l("p",null,"八、所开发项目的著作权。",-1),D=l("li",null,'本软件开发团队对所开发的"Snap.Genshin 软件"、"Snap.Hutao 软件"等作品的软件本身(不包括软件内除功能模块外的显示内容)、上述作品的全部历史版本以及周边网站,以及本团队所开发的任意其他作品,拥有软件内的"各商标的所有权"(引用于网络的图片除外),"著作权"等有关的应有权益。',-1),P=l("li",null,"本团队所开发的任意项目的统计数据全部来源于软件用户主动提交,经过对数据简单地筛选后进行展示,因此本团队所开发的任意项目不对数据的准确性负责,该数据也与我方无关。",-1),E={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},N=l("h2",{id:"其他条款",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#其他条款","aria-hidden":"true"},"#"),t(" 其他条款")],-1),I=n("
  • 九、对于团队所开发项目的"非经营性质"的确定。

    • 本团队所开发的任意项目,均无任何经营性质。

    • 若开发团队的个别或部分成员,在参与开发本团队所开发的任意项目期间,与本团队所开发的任意项目的第三方用户间产生了包括但不限于:赠与、交换、买卖等关系,其所产生的关系与本开发团队无关,此种情形的发生不基于团队开发有关项目这一事实,而是基于其与第三方用户,在发生上述关系的互联网交互位置或现实地点所产生的独立事件,应当以发生上述关系的互联网交互位置的用户使用条款或结合其在现实地点所发生的具体行为来判定此行为的性质。

  • 十、本团队所开发的任意项目(含网站),均以"学习开发知识"、"积累开发经验"为目的进行开发,仅供学习交流,严禁用于商业用途,请您在下载或进行查看学习后的 24 小时内自行删除全部相关信息,若您无视本条要求,本软件开发团队不对"可能产生的版权纠纷、著作权侵权以及民事纠纷等问题"负责。

  • 十一、本协议的成立、生效、履行、解释及争议的解决均应适用中华人民共和国大陆地区法律。倘本协议之任何规定因与中华人民共和国的法律抵触而无效,则这些条款将尽可能接近本协议原条文意旨重新解析,且本协议其它规定仍应具有完整的效力及效果。

  • 十二、本协议签订地点为辽宁省盘锦市辽河油田矿区,在履行本协议中发生纠纷,由双方协商解决,如协商不成,由辽河人民法院管辖,所产生的每阶段费用均由上诉人即时承担。

  • 十三、本协议中的标题(包括副标题)仅为方便及阅读而设,并不影响本协议中任何规定的含义或解释。

  • 十四、您和本开发团队均是独立的主体,在任何情况下本协议不构成本开发团队对用户的任何形式的明示或暗示担保或条件,双方之间亦不构成代理、合伙、合营或雇佣关系。

  • ",6),V={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"};function B(L,C){const e=u("ExternalLinkIcon");return r(),s("div",null,[h,d,l("ul",null,[l("li",null,[t('本"用户使用协议和法律声明"(以下简称"条款"或"使用协议")适用于'),l("a",_,[t("DGP-Studio 开发团队"),o(e)]),t('(以下简称"本团队"或"我方")开发的全部软件作品、各开发项目的官方网站、附属的自媒体账号等。 '),c])]),p,l("ul",null,[f,b,l("li",null,[l("p",null,[t('三、一切因使用本团队所开发的任意项目的内容而导致的"任何意外损失(包括但不限于:软件、硬件、财产以及虚拟物品等)"、"合约毁坏"、"诽谤"、"版权或知识产权侵犯"及其所造成的损失与责任,均为使用者自身对于网络公开的开源软件的使用过程中自身发生的使用行为所引致的"损失与责任",基于全部作品在其开放源代码的位置(即'),l("a",q,[t("Github"),o(e)]),t(")中所声明的"),l("a",m,[t("MIT license"),o(e)]),t('以及本声明所约定的内容,应当认定前述的"损失与责任"与全部项目的有关开发者无责任关联。')])]),g]),S,l("ul",null,[G,x,l("li",null,[k,l("ul",null,[D,P,l("li",null,[t('使用本团队所开发的任意项目的过程中可能会产生拥有原有版权的数据,对于这些数据,本团队所开发的任意项目不拥有它们的所有权,为了避免造成侵权,使用者有义务完全阅读并履行"本使用协议第十条"的内容。本软件内使用的资源(包括但不限于字体、图片、文字等)均来源于互联网的公开信息,如果出现侵权可立即联系'),l("a",E,[t("我方"),o(e)]),t("移除。")])])])]),N,l("ul",null,[I,l("li",null,[l("p",null,[t('十五、本"用户使用协议和法律声明"中,"我方"或称"本开发团队"(区别于"用户"或"您")的实际主体为'),l("a",V,[t("DGP-Studio 开发团队"),o(e)]),t("的团队整体及每个成员个人,即包含前述网站中,"),l("a",v,[t("DGP-Studio 开发团队"),o(e)]),t("的全部成员。")])])])])}const M=i(a,[["render",B],["__file","tos.html.vue"]]);export{M as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as u,o as r,c as s,a as l,b as t,d as o,e as n}from"./app-dddc4fb8.js";const a={},h=l("h1",{id:"用户使用协议和法律声明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#用户使用协议和法律声明","aria-hidden":"true"},"#"),t(" 用户使用协议和法律声明")],-1),d=l("h2",{id:"总则",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#总则","aria-hidden":"true"},"#"),t(" 总则")],-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},c=l("ul",null,[l("li",null,[t("请您仔细阅读本用户使用协议的"),l("strong",null,"全部内容"),t(',在您阅读"使用协议"后,若对此用户使用协议中的'),l("strong",null,"任何条款"),t("有异议,请立刻停止使用本团队所开发的任意项目。")]),l("li",null,"如您未满 18 周岁,请在法定监护人陪同下仔细阅读并充分理解本协议,并征得法定监护人的同意后使用本团队所开发的任意项目。"),l("li",null,"若您已安装、使用或在开发时引用本团队所开发的任意项目,表示您已主动阅读(已阅读完毕)并完全同意本使用协议所列明的条款,即已充分理解本协议并承诺作为本协议的一方当事人接受协议、法律声明、隐私政策以及与本团队所开发的任意项目相关的规则、规范、声明、公告、通知等内容的约束。"),l("li",null,'此《用户使用协议》是由用户(以下或称"您")与本团队所开发的任意项目所订立的用户使用协议和法律声明,本协议对用户和本团队均具有法律效力。')],-1),p=l("h2",{id:"项目性质、服务以及有关责任与义务的界定",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目性质、服务以及有关责任与义务的界定","aria-hidden":"true"},"#"),t(" 项目性质、服务以及有关责任与义务的界定")],-1),f=l("li",null,[l("p",null,'一、由于本团队所开发的任意项目,均"开源"、"非经营性质",故本团队可随时执行全权决定:包括但不限于更改"使用协议",修改本团队所开发的任意项目内的任何内容。如"条款"及"作品的内容"有任何变更,我方将在相关的项目展示网站上刊载公告作为通知。经修订的"条款"一经在官方网站上公布后,即自动生效。')],-1),b=l("li",null,[l("p",null,'二、本软件以"学习开发知识"、"积累开发经验"为目的进行开发,所有项目所提供的功能,均"开源"、"非经营性质",如用户对本团队所开发的任意项目的安全性表示不满,请立即卸载/删除/停用,如您仍在正常使用,则表示您认可本团队所开发的任意项目的安全性。')],-1),q={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"},g=n("
  • 四、用户使用本团队所开发的任意项目期间,本团队不做任何不发生如下情况的保证:

    • 因网络状况、通讯线路等任何技术原因而导致用户不能正常使用或更新;
    • 因使用"第三方开发的本软件内插件"、"第三方进行二次编译的本软件的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成负面结果。
  • 五、用户认可本团队所开发的任意项目,除被动接收软件或其他相关项目中的必要的上传报告或有关信息外,所有信息的上传均需要用户的主动触发;

    • 用户认可本团队所开发的任意项目,均完全尊重并保护所有用户的"个人隐私权",项目代码亦完全公开,用户不具有"因隐私权收到侵犯"而对开发团队或团队成员发起控诉的主观理由。
    • 本团队所开发的任意项目不会向第三方共享、转让您的个人信息,除非经过您本人事先授权同意,或者共享、转让的个人信息是去标识化处理后的信息,且共享第三方无法重新识别此类信息的自然人主体。
    • 本团队所开发的任意项目包含到其他站点的链接,当您访问第三方链接时,请认真阅读第三方站点的用户协议和声明,本团队对于第三方站点的内容、隐私条款、使用协议等不负任何责任。
    • 在使用本团队所开发的任意项目时,提交任意资料的过程中,本团队不保证提交的信息保存成功,您需要对您提交的资料做好存储保管。本团队所开发的部分项目为"被授权数据"提供存储,但在存储过程中存在各种不可抗力的因素,本团队无法承诺对用户的存储信息无限期保留,您的重要信息请自行备份。
  • ",2),S=l("h2",{id:"权利和义务",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#权利和义务","aria-hidden":"true"},"#"),t(" 权利和义务")],-1),G=l("li",null,[l("p",null,"六、我方允许任何单位或个人在没有本开发团队授权的情况下,对本团队所开发的任意项目进行的二次开发、功能修改以及复用我方创作的代码进行其他项目的开发,但对其所侵犯我方计算机软件著作权的行为,我方保留追责的权利。"),l("ul",null,[l("li",null,"我开发团队不对任何单位或个人在使用本团队所开发的任意项目的内容进行的公开发布行为(包括但不限于制作视频、发布带有本软件内容的文章、上传至非我开发团队指定的下载网站提供下载等)的内容所致的任意结果进行负责。"),l("li",null,'我开发团队不对使用"第三方开发的可用于本团队所开发的任意项目的附属程序或额外代码"、"第三方进行二次编译的本团队所开发的任意项目的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成的任意结果负责。'),l("li",null,'在此基础上,根据《计算机软件保护条例》第二条与第三条对于"计算机软件"和"文档"的法律定义,本软件开发团队(DGP Studio)保留全部我方开发项目的计算机软件著作权,其包括但不限于项目构建所需的全部信息、全部项目有关的所有文档资料(即用来描述程序的内容、组成、设计、功能规格、开发情况的程序设计说明书、流程图、用户手册等),具体内容以各项目《计算机软件著作权登记证书》的实际内容为准。')])],-1),x=l("li",null,[l("p",null,"七、本团队所开发的任意项目仅作用于合法、合规范围内的学习及研究所用,不得利用本软件系统从事违法活动。"),l("ul",null,[l("li",null,"本团队仅作为项目的开发团队(非法人性质,为自然人组成的团体),对任何使用结果不负任何连带责任,软件以及我方开发的任意项目的使用过程中产生的任何法律后果我们概不负责、不承担任何法律责任。"),l("li",null,'若用户已开始使用本团队所开发的任意项目,即已同意"使用协议",表明本团队已履行完毕"本使用协议第十款"的告知情形。')])],-1),k=l("p",null,"八、所开发项目的著作权。",-1),D=l("li",null,'本软件开发团队对所开发的"Snap.Genshin 软件"、"Snap.Hutao 软件"等作品的软件本身(不包括软件内除功能模块外的显示内容)、上述作品的全部历史版本以及周边网站,以及本团队所开发的任意其他作品,拥有软件内的"各商标的所有权"(引用于网络的图片除外),"著作权"等有关的应有权益。',-1),P=l("li",null,"本团队所开发的任意项目的统计数据全部来源于软件用户主动提交,经过对数据简单地筛选后进行展示,因此本团队所开发的任意项目不对数据的准确性负责,该数据也与我方无关。",-1),E={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},N=l("h2",{id:"其他条款",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#其他条款","aria-hidden":"true"},"#"),t(" 其他条款")],-1),I=n("
  • 九、对于团队所开发项目的"非经营性质"的确定。

    • 本团队所开发的任意项目,均无任何经营性质。

    • 若开发团队的个别或部分成员,在参与开发本团队所开发的任意项目期间,与本团队所开发的任意项目的第三方用户间产生了包括但不限于:赠与、交换、买卖等关系,其所产生的关系与本开发团队无关,此种情形的发生不基于团队开发有关项目这一事实,而是基于其与第三方用户,在发生上述关系的互联网交互位置或现实地点所产生的独立事件,应当以发生上述关系的互联网交互位置的用户使用条款或结合其在现实地点所发生的具体行为来判定此行为的性质。

  • 十、本团队所开发的任意项目(含网站),均以"学习开发知识"、"积累开发经验"为目的进行开发,仅供学习交流,严禁用于商业用途,请您在下载或进行查看学习后的 24 小时内自行删除全部相关信息,若您无视本条要求,本软件开发团队不对"可能产生的版权纠纷、著作权侵权以及民事纠纷等问题"负责。

  • 十一、本协议的成立、生效、履行、解释及争议的解决均应适用中华人民共和国大陆地区法律。倘本协议之任何规定因与中华人民共和国的法律抵触而无效,则这些条款将尽可能接近本协议原条文意旨重新解析,且本协议其它规定仍应具有完整的效力及效果。

  • 十二、本协议签订地点为辽宁省盘锦市辽河油田矿区,在履行本协议中发生纠纷,由双方协商解决,如协商不成,由辽河人民法院管辖,所产生的每阶段费用均由上诉人即时承担。

  • 十三、本协议中的标题(包括副标题)仅为方便及阅读而设,并不影响本协议中任何规定的含义或解释。

  • 十四、您和本开发团队均是独立的主体,在任何情况下本协议不构成本开发团队对用户的任何形式的明示或暗示担保或条件,双方之间亦不构成代理、合伙、合营或雇佣关系。

  • ",6),V={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"};function B(L,C){const e=u("ExternalLinkIcon");return r(),s("div",null,[h,d,l("ul",null,[l("li",null,[t('本"用户使用协议和法律声明"(以下简称"条款"或"使用协议")适用于'),l("a",_,[t("DGP-Studio 开发团队"),o(e)]),t('(以下简称"本团队"或"我方")开发的全部软件作品、各开发项目的官方网站、附属的自媒体账号等。 '),c])]),p,l("ul",null,[f,b,l("li",null,[l("p",null,[t('三、一切因使用本团队所开发的任意项目的内容而导致的"任何意外损失(包括但不限于:软件、硬件、财产以及虚拟物品等)"、"合约毁坏"、"诽谤"、"版权或知识产权侵犯"及其所造成的损失与责任,均为使用者自身对于网络公开的开源软件的使用过程中自身发生的使用行为所引致的"损失与责任",基于全部作品在其开放源代码的位置(即'),l("a",q,[t("Github"),o(e)]),t(")中所声明的"),l("a",m,[t("MIT license"),o(e)]),t('以及本声明所约定的内容,应当认定前述的"损失与责任"与全部项目的有关开发者无责任关联。')])]),g]),S,l("ul",null,[G,x,l("li",null,[k,l("ul",null,[D,P,l("li",null,[t('使用本团队所开发的任意项目的过程中可能会产生拥有原有版权的数据,对于这些数据,本团队所开发的任意项目不拥有它们的所有权,为了避免造成侵权,使用者有义务完全阅读并履行"本使用协议第十条"的内容。本软件内使用的资源(包括但不限于字体、图片、文字等)均来源于互联网的公开信息,如果出现侵权可立即联系'),l("a",E,[t("我方"),o(e)]),t("移除。")])])])]),N,l("ul",null,[I,l("li",null,[l("p",null,[t('十五、本"用户使用协议和法律声明"中,"我方"或称"本开发团队"(区别于"用户"或"您")的实际主体为'),l("a",V,[t("DGP-Studio 开发团队"),o(e)]),t("的团队整体及每个成员个人,即包含前述网站中,"),l("a",v,[t("DGP-Studio 开发团队"),o(e)]),t("的全部成员。")])])])])}const M=i(a,[["render",B],["__file","tos.html.vue"]]);export{M as default}; diff --git a/assets/uninstall.html-08d679ee.js b/assets/uninstall.html-a7db0295.js similarity index 97% rename from assets/uninstall.html-08d679ee.js rename to assets/uninstall.html-a7db0295.js index ddc212429..b4bd86c69 100644 --- a/assets/uninstall.html-08d679ee.js +++ b/assets/uninstall.html-a7db0295.js @@ -1,2 +1,2 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as d,a as e,b as l,d as o,w as r,e as n}from"./app-1a16ab73.js";const u={},_=e("h1",{id:"卸载胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#卸载胡桃工具箱","aria-hidden":"true"},"#"),l(" 卸载胡桃工具箱")],-1),h=e("strong",null,"方法 1",-1),B=e("li",null,[l("打开胡桃,选择 "),e("strong",null,"设置"),l(" 页签")],-1),E=e("strong",null,"删除所有计划任务",-1),m=e("strong",null,"执行",-1),p=n(`
  • 方法 2
    • 执行下方的脚本
      schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
      +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as d,a as e,b as l,d as o,w as r,e as n}from"./app-dddc4fb8.js";const u={},_=e("h1",{id:"卸载胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#卸载胡桃工具箱","aria-hidden":"true"},"#"),l(" 卸载胡桃工具箱")],-1),h=e("strong",null,"方法 1",-1),B=e("li",null,[l("打开胡桃,选择 "),e("strong",null,"设置"),l(" 页签")],-1),E=e("strong",null,"删除所有计划任务",-1),m=e("strong",null,"执行",-1),p=n(`
    • 方法 2
      • 执行下方的脚本
        schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
         
    • 方法 3
      • 打开 Windows 计划任务程序
      • 找到 SnapHutaoDailyNoteRefreshTask 任务并删除
    • 方法 4
      • 升级至1.5.1版本并使用一次实时便笺功能
      • 直接卸载胡桃工具箱
    • `,3),g=n("
    • 卸载软件
      • 打开开始菜单
      • 找到或搜索到胡桃
      • 右键点击胡桃,并选择卸载
    • 清除数据文件夹(如需完全卸载)
      • 打开并删除该文件夹 %userprofile%/Documents/Hutao
    • ",2);function f(A,v){const s=i("RouterLink"),t=i("Badge");return c(),d("div",null,[_,e("ul",null,[e("li",null,[l("清除有关的任务计划 "),e("ul",null,[e("li",null,[l("1.4.15 版本前,若不执行该步骤,胡桃用于获取实时便笺数据的计划任务将不会被删除,会出现"),o(s,{to:"/zh/advanced/FAQ.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%BC%B9%E5%87%BA%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E6%96%B0%E5%BA%94%E7%94%A8%E4%BB%A5%E6%89%93%E5%BC%80%E7%9A%84%E5%AF%B9%E8%AF%9D%E6%A1%86"},{default:r(()=>[l("这个问题")]),_:1})]),e("li",null,[h,l(),o(t,{text:"仅限早于 1.4.15 的版本",type:"tip"}),l(": "),e("ul",null,[B,e("li",null,[l("找到 "),E,l(" 一栏中,点击右侧的 "),m,l(" 按钮 "),o(t,{text:"需要管理员模式",type:"tip"})])])]),p])]),g])])}const w=a(u,[["render",f],["__file","uninstall.html.vue"]]);export{w as default}; diff --git a/assets/uninstall.html-5f140ecf.js b/assets/uninstall.html-f2a93a65.js similarity index 97% rename from assets/uninstall.html-5f140ecf.js rename to assets/uninstall.html-f2a93a65.js index 65b91dd18..e126dc9c6 100644 --- a/assets/uninstall.html-5f140ecf.js +++ b/assets/uninstall.html-f2a93a65.js @@ -1,2 +1,2 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as r,a as e,b as l,d as t,w as u,e as a}from"./app-1a16ab73.js";const c={},h=e("h1",{id:"uninstall-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uninstall-snap-hutao","aria-hidden":"true"},"#"),l(" Uninstall Snap Hutao")],-1),p=e("strong",null,"Method 1",-1),_=e("li",null,"Launch Snap Hutao, and go to settings page",-1),m=e("strong",null,"Delete All Scheduled Task",-1),B=e("strong",null,"Execute",-1),f=a(`
    • Method 2
      • Execute the following PowerShell script
        schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
        +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as r,a as e,b as l,d as t,w as u,e as a}from"./app-dddc4fb8.js";const c={},h=e("h1",{id:"uninstall-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uninstall-snap-hutao","aria-hidden":"true"},"#"),l(" Uninstall Snap Hutao")],-1),p=e("strong",null,"Method 1",-1),_=e("li",null,"Launch Snap Hutao, and go to settings page",-1),m=e("strong",null,"Delete All Scheduled Task",-1),B=e("strong",null,"Execute",-1),f=a(`
      • Method 2
        • Execute the following PowerShell script
          schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
           
      • Method 3
        • Open Windows Scheduled Task Manager
        • Find SnapHutaoDailyNoteRefreshTask task and delete it
      • Method 4
        • Upgrade to1.5.1 version and open Real-time Notes
        • Close software and remove it
      • `,3),g=a("
      • Remove the Software
        • Open Start Menu
        • Find or search Snap Hutao
        • Right click on it, and select Unstall
      • Remove data folder (If you want remove it completely)
        • Open and delete %userprofile%/Documents/Hutao
      • ",2);function E(v,S){const i=n("RouterLink"),o=n("Badge");return d(),r("div",null,[h,e("ul",null,[e("li",null,[l("Clear Real-time Notes Scheduled Task "),e("ul",null,[e("li",null,[l("Before version 1.4.15, if not execute this step, scheduled task used to refresh real-time notes may not be deleted,and you may face "),t(i,{to:"/en/advanced/FAQ.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%BC%B9%E5%87%BA%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E6%96%B0%E5%BA%94%E7%94%A8%E4%BB%A5%E6%89%93%E5%BC%80%E7%9A%84%E5%AF%B9%E8%AF%9D%E6%A1%86"},{default:u(()=>[l("this issue")]),_:1}),e("ul",null,[e("li",null,[p,l(),t(o,{text:"For version <= 1.4.15",type:"tip"}),l(": "),e("ul",null,[_,e("li",null,[l("Find "),m,l(" field, and click on "),B,l(" Button "),t(o,{text:"Requires administrator privileges",type:"tip"})])])])])]),f])]),g])])}const x=s(c,[["render",E],["__file","uninstall.html.vue"]]);export{x as default}; diff --git a/assets/update-log.html-6c5c4cdc.js b/assets/update-log.html-191f389f.js similarity index 99% rename from assets/update-log.html-6c5c4cdc.js rename to assets/update-log.html-191f389f.js index 2632f1339..745596b34 100644 --- a/assets/update-log.html-6c5c4cdc.js +++ b/assets/update-log.html-191f389f.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as u,c as d,a as i,b as e,d as l,w as c,e as n}from"./app-1a16ab73.js";const h={},p=i("h1",{id:"update-logs",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#update-logs","aria-hidden":"true"},"#"),e(" Update Logs")],-1),m={id:"_1-6-4",tabindex:"-1"},_=i("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#",-1),g={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},b=i("li",null,[e("Optimize "),i("ul",null,[i("li",null,"When running program without administrator privilege, features require administrator privilege will have text hints"),i("li",null,"Support of HoYoLAB"),i("li",null,"Localization updates")])],-1),w=n('

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately
        ',2),x={id:"_1-6-2",tabindex:"-1"},v=i("a",{class:"header-anchor",href:"#_1-6-2","aria-hidden":"true"},"#",-1),k=n('
        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        ',8),y=i("li",null,[e("New "),i("ul",null,[i("li",null,"Static image reset method"),i("li",null,"Cookie refresh")])],-1),A=i("li",null,"Fix the failure of clearing scheduled task in some specific situations",-1),I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},z=i("li",null,"Optimize English and Traditional Chinese translations",-1),E=i("li",null,"Add hints when Windows long path limits are triggered",-1),F=i("li",null,"Optimize wake-up for scheduled tasks",-1),S=i("h2",{id:"_1-4-14",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),e(" 1.4.14")],-1),L=i("ul",null,[i("li",null,"Fix issue that new dev plan cannot be added"),i("li",null,"Support English UI"),i("li",null,"Other minor bug fix")],-1),H=i("h2",{id:"_1-4-11",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),e(" 1.4.11")],-1),N=i("ul",null,[i("li",null,"First version on Microsoft Store")],-1);function O(C,B){const o=a("Badge"),t=a("ExternalLinkIcon"),s=a("RouterLink");return u(),d("div",null,[p,i("h2",m,[_,e(" 1.6.4 "),l(o,{text:"latest",type:"tip"})]),i("ul",null,[i("li",null,[e("New "),i("ul",null,[i("li",null,[e("Export wish history data with "),i("a",g,[e("UIGF v2.3"),l(t)]),e(" data format")])])]),i("li",null,[e("Fix "),i("ul",null,[i("li",null,[e("FPS unlocker "),i("a",f,[e("Issue #733"),l(t)])])])]),b]),w,i("h2",x,[v,e(" 1.6.2 "),l(o,{text:"latest",type:"tip"})]),k,i("ul",null,[y,i("li",null,[e("Fix "),i("ul",null,[i("li",null,[e("Fix "),l(s,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:c(()=>[e("#2 31-4302 caused by server switch")]),_:1})]),A])]),i("li",null,[e("Optimization "),i("ul",null,[i("li",null,[e("Optimize Dev Plan UI "),i("a",I,[e("#486"),l(t)])]),z,E,F])])]),S,L,H,N])}const W=r(h,[["render",O],["__file","update-log.html.vue"]]);export{W as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as u,c as d,a as i,b as e,d as l,w as c,e as n}from"./app-dddc4fb8.js";const h={},p=i("h1",{id:"update-logs",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#update-logs","aria-hidden":"true"},"#"),e(" Update Logs")],-1),m={id:"_1-6-4",tabindex:"-1"},_=i("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#",-1),g={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},b=i("li",null,[e("Optimize "),i("ul",null,[i("li",null,"When running program without administrator privilege, features require administrator privilege will have text hints"),i("li",null,"Support of HoYoLAB"),i("li",null,"Localization updates")])],-1),w=n('

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately
        ',2),x={id:"_1-6-2",tabindex:"-1"},v=i("a",{class:"header-anchor",href:"#_1-6-2","aria-hidden":"true"},"#",-1),k=n('
        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        ',8),y=i("li",null,[e("New "),i("ul",null,[i("li",null,"Static image reset method"),i("li",null,"Cookie refresh")])],-1),A=i("li",null,"Fix the failure of clearing scheduled task in some specific situations",-1),I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},z=i("li",null,"Optimize English and Traditional Chinese translations",-1),E=i("li",null,"Add hints when Windows long path limits are triggered",-1),F=i("li",null,"Optimize wake-up for scheduled tasks",-1),S=i("h2",{id:"_1-4-14",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),e(" 1.4.14")],-1),L=i("ul",null,[i("li",null,"Fix issue that new dev plan cannot be added"),i("li",null,"Support English UI"),i("li",null,"Other minor bug fix")],-1),H=i("h2",{id:"_1-4-11",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),e(" 1.4.11")],-1),N=i("ul",null,[i("li",null,"First version on Microsoft Store")],-1);function O(C,B){const o=a("Badge"),t=a("ExternalLinkIcon"),s=a("RouterLink");return u(),d("div",null,[p,i("h2",m,[_,e(" 1.6.4 "),l(o,{text:"latest",type:"tip"})]),i("ul",null,[i("li",null,[e("New "),i("ul",null,[i("li",null,[e("Export wish history data with "),i("a",g,[e("UIGF v2.3"),l(t)]),e(" data format")])])]),i("li",null,[e("Fix "),i("ul",null,[i("li",null,[e("FPS unlocker "),i("a",f,[e("Issue #733"),l(t)])])])]),b]),w,i("h2",x,[v,e(" 1.6.2 "),l(o,{text:"latest",type:"tip"})]),k,i("ul",null,[y,i("li",null,[e("Fix "),i("ul",null,[i("li",null,[e("Fix "),l(s,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:c(()=>[e("#2 31-4302 caused by server switch")]),_:1})]),A])]),i("li",null,[e("Optimization "),i("ul",null,[i("li",null,[e("Optimize Dev Plan UI "),i("a",I,[e("#486"),l(t)])]),z,E,F])])]),S,L,H,N])}const W=r(h,[["render",O],["__file","update-log.html.vue"]]);export{W as default}; diff --git a/assets/update-log.html-c0111bae.js b/assets/update-log.html-ac46e1e5.js similarity index 98% rename from assets/update-log.html-c0111bae.js rename to assets/update-log.html-ac46e1e5.js index 56faf40f2..40507e19f 100644 --- a/assets/update-log.html-c0111bae.js +++ b/assets/update-log.html-ac46e1e5.js @@ -1 +1 @@ -import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as s,a as l,b as i,d as e,w as d,e as h}from"./app-1a16ab73.js";const _={},c=l("h1",{id:"更新日志",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#更新日志","aria-hidden":"true"},"#"),i(" 更新日志")],-1),f={id:"_1-6-4",tabindex:"-1"},p=l("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#",-1),b={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[i("优化 "),l("ul",null,[l("li",null,"在非管理员模式下运行程序时,对管理员模式有要求的功能会有文字提示"),l("li",null,"HoYoLAB 的支持"),l("li",null,"国际化支持")])],-1),g=h('

        1.6.3

        • 新增
          • 首页仪表盘,包含胡桃云帐号、游戏启动器、祈愿记录、成就统计和实时便笺
          • 启用新的信息栏功能将自动隐藏应用内通知
          • 隐藏国服 TapTap 帐号登录的服务器版本
        • 修复
          • 上传深境螺旋数据后无法获得胡桃云奖励的问题
          • HoYoLab 不支持 Facebook 登录的问题
          • HoYoLab 签到问题
          • 获取抽卡记录过程中值为空时会产生的问题
        • 优化
          • 项目重构,软件性能提高 20%
          • 增加支持 WIKI 功能中的本地化翻译
          • 增加支持国际服支付渠道切换
            • 包括 HoYoverse 默认,Epic 和 Google Pay
          • 开启帧率解锁后,可以在游戏启动时修改帧率上限并立即生效

        1.6.2

        • 全新功能
          • 基于胡桃帐号系统的祈愿记录云同步
            • 当前在爱发电打赏用户和测试用户会获得对应时间的云同步权限,已注册用户在上传深渊记录后会获赠 5 天云同步有效期
            • 该功能会在接下来的数个 1.6 版本中持续优化
        • 修复
          • 渠道服帐号的实时便笺无法获取数据的问题
          • HoYoLab 帐号的登录问题
        • 优化
          • 重新设计了静态文件获取的流程

        1.6.0

        • 新增
          • 胡桃帐号的注册和登录的基本功能
          • HoYoLab 帐号的登录并增加其在以下功能的支持
            • 网页登录和 SToken Cookie 登录
            • 深境螺旋记录
            • 每日签到
            • 我的角色
            • 实时便笺
        • 优化
          • 帧数解锁功能性能
          • 多客户端功能
          • 帧数解锁和游戏多开功能现在需要用户在设置中手动解锁高级功能
          • 设置页面布局
          • Windows 10 磁贴图标

        1.5.4

        • 新增
          • 游戏启动器
            • 游戏资源下载
            • 原神游戏进程多开
            • 允许用户在多显示器情况下选择指定显示器启动游戏
          • 使用了全新的图标(更可爱的胡桃)
        • 修复
          • 游戏客户端转换中卡死并无限写入的问题
        • 优化
          • 默认的语言选择方式
          • 允许直接复制设备 ID
          • 设置页面美化

        1.5.1

        • 优化
          • JumpList菜单更换为JumpTask,即使用户关闭最近文件功能也可以使用快速启动菜单了
          • 增加优先度高于系统设置的语言设置选项
          • 增加贡献翻译入口
          • 增加重置图片资源的设置选项
        • 添加
          • 怪物 WIKI
          • 韩语翻译
          • 国际化元数据

        1.4.15

        ',11),k=l("li",null,[i("新增 "),l("ul",null,[l("li",null,"重置图片资源的入口"),l("li",null,"刷新 Cookie 方法")])],-1),E=l("li",null,"修复了部分情况下程序内清除定时任务计划失败的情况",-1),L={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},I=l("li",null,"完善英语和繁体中文翻译",-1),A=l("li",null,"在触发 Windows 长路径限制时增加提示",-1),B=l("li",null,"优化了定时任务的唤醒方式",-1),H=l("h2",{id:"_1-4-14",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),i(" 1.4.14")],-1),v=l("ul",null,[l("li",null,"修复了养成计划无法添加的问题"),l("li",null,"支持英语界面"),l("li",null,"其他的问题修复")],-1),C=l("h2",{id:"_1-4-11",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),i(" 1.4.11")],-1),S=l("ul",null,[l("li",null,"商店初版")],-1);function Y(w,D){const o=a("Badge"),n=a("ExternalLinkIcon"),t=a("RouterLink");return r(),s("div",null,[c,l("h2",f,[p,i(" 1.6.4 "),e(o,{text:"最新版",type:"tip"})]),l("ul",null,[l("li",null,[i("新增 "),l("ul",null,[l("li",null,[i("以 "),l("a",b,[i("UIGF v2.3"),e(n)]),i(" 数据格式导出祈愿记录")])])]),l("li",null,[i("修复 "),l("ul",null,[l("li",null,[i("解锁帧数上限失效的问题 "),l("a",m,[i("Issue #733"),e(n)])])])]),x]),g,l("ul",null,[k,l("li",null,[i("修复 "),l("ul",null,[l("li",null,[i("修复了"),e(t,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:d(()=>[i("#2 服务器切换导致 31-4302 报错")]),_:1})]),E])]),l("li",null,[i("优化 "),l("ul",null,[l("li",null,[i("优化了养成计划界面 "),l("a",L,[i("#486"),e(n)])]),I,A,B])])]),H,v,C,S])}const F=u(_,[["render",Y],["__file","update-log.html.vue"]]);export{F as default}; +import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as s,a as l,b as i,d as e,w as d,e as h}from"./app-dddc4fb8.js";const _={},c=l("h1",{id:"更新日志",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#更新日志","aria-hidden":"true"},"#"),i(" 更新日志")],-1),f={id:"_1-6-4",tabindex:"-1"},p=l("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#",-1),b={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[i("优化 "),l("ul",null,[l("li",null,"在非管理员模式下运行程序时,对管理员模式有要求的功能会有文字提示"),l("li",null,"HoYoLAB 的支持"),l("li",null,"国际化支持")])],-1),g=h('

        1.6.3

        • 新增
          • 首页仪表盘,包含胡桃云帐号、游戏启动器、祈愿记录、成就统计和实时便笺
          • 启用新的信息栏功能将自动隐藏应用内通知
          • 隐藏国服 TapTap 帐号登录的服务器版本
        • 修复
          • 上传深境螺旋数据后无法获得胡桃云奖励的问题
          • HoYoLab 不支持 Facebook 登录的问题
          • HoYoLab 签到问题
          • 获取抽卡记录过程中值为空时会产生的问题
        • 优化
          • 项目重构,软件性能提高 20%
          • 增加支持 WIKI 功能中的本地化翻译
          • 增加支持国际服支付渠道切换
            • 包括 HoYoverse 默认,Epic 和 Google Pay
          • 开启帧率解锁后,可以在游戏启动时修改帧率上限并立即生效

        1.6.2

        • 全新功能
          • 基于胡桃帐号系统的祈愿记录云同步
            • 当前在爱发电打赏用户和测试用户会获得对应时间的云同步权限,已注册用户在上传深渊记录后会获赠 5 天云同步有效期
            • 该功能会在接下来的数个 1.6 版本中持续优化
        • 修复
          • 渠道服帐号的实时便笺无法获取数据的问题
          • HoYoLab 帐号的登录问题
        • 优化
          • 重新设计了静态文件获取的流程

        1.6.0

        • 新增
          • 胡桃帐号的注册和登录的基本功能
          • HoYoLab 帐号的登录并增加其在以下功能的支持
            • 网页登录和 SToken Cookie 登录
            • 深境螺旋记录
            • 每日签到
            • 我的角色
            • 实时便笺
        • 优化
          • 帧数解锁功能性能
          • 多客户端功能
          • 帧数解锁和游戏多开功能现在需要用户在设置中手动解锁高级功能
          • 设置页面布局
          • Windows 10 磁贴图标

        1.5.4

        • 新增
          • 游戏启动器
            • 游戏资源下载
            • 原神游戏进程多开
            • 允许用户在多显示器情况下选择指定显示器启动游戏
          • 使用了全新的图标(更可爱的胡桃)
        • 修复
          • 游戏客户端转换中卡死并无限写入的问题
        • 优化
          • 默认的语言选择方式
          • 允许直接复制设备 ID
          • 设置页面美化

        1.5.1

        • 优化
          • JumpList菜单更换为JumpTask,即使用户关闭最近文件功能也可以使用快速启动菜单了
          • 增加优先度高于系统设置的语言设置选项
          • 增加贡献翻译入口
          • 增加重置图片资源的设置选项
        • 添加
          • 怪物 WIKI
          • 韩语翻译
          • 国际化元数据

        1.4.15

        ',11),k=l("li",null,[i("新增 "),l("ul",null,[l("li",null,"重置图片资源的入口"),l("li",null,"刷新 Cookie 方法")])],-1),E=l("li",null,"修复了部分情况下程序内清除定时任务计划失败的情况",-1),L={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},I=l("li",null,"完善英语和繁体中文翻译",-1),A=l("li",null,"在触发 Windows 长路径限制时增加提示",-1),B=l("li",null,"优化了定时任务的唤醒方式",-1),H=l("h2",{id:"_1-4-14",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),i(" 1.4.14")],-1),v=l("ul",null,[l("li",null,"修复了养成计划无法添加的问题"),l("li",null,"支持英语界面"),l("li",null,"其他的问题修复")],-1),C=l("h2",{id:"_1-4-11",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),i(" 1.4.11")],-1),S=l("ul",null,[l("li",null,"商店初版")],-1);function Y(w,D){const o=a("Badge"),n=a("ExternalLinkIcon"),t=a("RouterLink");return r(),s("div",null,[c,l("h2",f,[p,i(" 1.6.4 "),e(o,{text:"最新版",type:"tip"})]),l("ul",null,[l("li",null,[i("新增 "),l("ul",null,[l("li",null,[i("以 "),l("a",b,[i("UIGF v2.3"),e(n)]),i(" 数据格式导出祈愿记录")])])]),l("li",null,[i("修复 "),l("ul",null,[l("li",null,[i("解锁帧数上限失效的问题 "),l("a",m,[i("Issue #733"),e(n)])])])]),x]),g,l("ul",null,[k,l("li",null,[i("修复 "),l("ul",null,[l("li",null,[i("修复了"),e(t,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:d(()=>[i("#2 服务器切换导致 31-4302 报错")]),_:1})]),E])]),l("li",null,[i("优化 "),l("ul",null,[l("li",null,[i("优化了养成计划界面 "),l("a",L,[i("#486"),e(n)])]),I,A,B])])]),H,v,C,S])}const F=u(_,[["render",Y],["__file","update-log.html.vue"]]);export{F as default}; diff --git a/assets/weapon-wiki.html-facdc2a9.js b/assets/weapon-wiki.html-9ee4af63.js similarity index 95% rename from assets/weapon-wiki.html-facdc2a9.js rename to assets/weapon-wiki.html-9ee4af63.js index c4f93fc4d..146621da1 100644 --- a/assets/weapon-wiki.html-facdc2a9.js +++ b/assets/weapon-wiki.html-9ee4af63.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as e,e as t}from"./app-1a16ab73.js";const a={},o=t('

        武器资料

        weapon-wiki

        武器资料是胡桃工具箱中内置的用于查询各个武器的外观、参数、精炼效果、推荐搭配等数据的 Wiki

        已包含的数据

        • 武器列表
          • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
          • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
        • 数据内容
          • 武器基本信息
            • 突破前后的武器图标对比
            • 对应武器的立绘展示
            • 武器的简介内容
            • 可切换至对应等级的武器各项数值
          • 武器精炼信息
            • 对应精炼阶数的精炼属性
          • 根据胡桃数据库的统计信息而展示的武器使用的相关推荐
        ',5),r=[o];function n(s,c){return l(),e("div",null,r)}const h=i(a,[["render",n],["__file","weapon-wiki.html.vue"]]);export{h as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as e,e as t}from"./app-dddc4fb8.js";const a={},o=t('

        武器资料

        weapon-wiki

        武器资料是胡桃工具箱中内置的用于查询各个武器的外观、参数、精炼效果、推荐搭配等数据的 Wiki

        已包含的数据

        • 武器列表
          • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
          • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
        • 数据内容
          • 武器基本信息
            • 突破前后的武器图标对比
            • 对应武器的立绘展示
            • 武器的简介内容
            • 可切换至对应等级的武器各项数值
          • 武器精炼信息
            • 对应精炼阶数的精炼属性
          • 根据胡桃数据库的统计信息而展示的武器使用的相关推荐
        ',5),r=[o];function n(s,c){return l(),e("div",null,r)}const h=i(a,[["render",n],["__file","weapon-wiki.html.vue"]]);export{h as default}; diff --git a/assets/weapon-wiki.html-8a2211f1.js b/assets/weapon-wiki.html-e83d3d04.js similarity index 95% rename from assets/weapon-wiki.html-8a2211f1.js rename to assets/weapon-wiki.html-e83d3d04.js index 94c626a2f..750f9f97f 100644 --- a/assets/weapon-wiki.html-8a2211f1.js +++ b/assets/weapon-wiki.html-e83d3d04.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as o}from"./app-1a16ab73.js";const n={},l=o('

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's most used by characters data provided by Hutao Database
        ',5),t=[l];function c(d,s){return a(),i("div",null,t)}const p=e(n,[["render",c],["__file","weapon-wiki.html.vue"]]);export{p as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as o}from"./app-dddc4fb8.js";const n={},l=o('

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's most used by characters data provided by Hutao Database
        ',5),t=[l];function c(d,s){return a(),i("div",null,t)}const p=e(n,[["render",c],["__file","weapon-wiki.html.vue"]]);export{p as default}; diff --git a/assets/wish-export.html-0e6f1983.js b/assets/wish-export.html-9ad57251.js similarity index 99% rename from assets/wish-export.html-0e6f1983.js rename to assets/wish-export.html-9ad57251.js index 34d2c1c48..6f524894d 100644 --- a/assets/wish-export.html-0e6f1983.js +++ b/assets/wish-export.html-9ad57251.js @@ -1 +1 @@ -import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as _,a as e,b as o,d as i,w as s,e as n}from"./app-1a16ab73.js";const p={},u=e("h1",{id:"祈愿记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#祈愿记录","aria-hidden":"true"},"#"),o(" 祈愿记录")],-1),f=e("p",null,[o("抽卡是原神的核心玩法之一,无论是出于纪念、炫耀的目的还是认真规划抽取计划,对历史抽卡进行统计分析都是非常重要的。 但是原神官方只为玩家提供了半年的抽卡记录,这是很不友好的("),e("s",null,"但是他们还是统计了你一整年杀了多少提米的鸽子"),o(")。")],-1),x=e("p",null,"因此,我们需要利用这半年的抽卡记录调取窗口,将抽卡记录转移到我们自己手中,这就是胡桃工具箱中祈愿记录导出功能的目的所在。",-1),m=e("strong",null,"祈愿系统与导出原理",-1),b=n('

        祈愿导出

        如上图所示,从胡桃工具箱的祈愿导出功能,你可以清晰地获取到包括:抽卡总数、当前已垫抽数、不同稀有度获取的数量和百分比、 每次五星稀有度获取的抽数以及保底情况。

        原神抽卡记录的延迟性

        胡桃工具箱获取抽卡记录的来源也为米哈游服务器,因此短时间内刚刚结束的抽卡无法被获取。 当你在游戏内抽卡历史记录中看到了最新的一批抽卡记录,则可以在胡桃中获取统计数据。

        视频指南

        对于大多数人而言,遵循本页文档会有更高的效率。

        但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

        ',6),g={class:"hint-container details"},k=e("summary",null,"胡桃工具箱指南 5 - 祈愿记录导出篇",-1),G=e("h2",{id:"获取祈愿数据",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#获取祈愿数据","aria-hidden":"true"},"#"),o(" 获取祈愿数据")],-1),I={id:"利用-stoken-从服务器获取最新的祈愿记录",tabindex:"-1"},B=e("a",{class:"header-anchor",href:"#利用-stoken-从服务器获取最新的祈愿记录","aria-hidden":"true"},"#",-1),U={class:"hint-container info"},y=e("p",{class:"hint-container-title"},"提示",-1),v=e("li",null,"Stoken 刷新方法暂不支持国际服",-1),S=e("ul",null,[e("li",null,"在胡桃工具箱中确保你需要获取记录的米游社帐号已登录"),e("li",null,[o("从左侧菜单栏进入"),e("code",null,"祈愿记录")]),e("li",null,[o("点击右上角的"),e("code",null,"刷新"),o(",并点击"),e("code",null,"Stoken刷新")]),e("li",null,"等待读取完毕,即可查看最新的祈愿记录")],-1),E={id:"从网页缓存获取最新的祈愿记录",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#从网页缓存获取最新的祈愿记录","aria-hidden":"true"},"#",-1),w=n('
        • 从左侧菜单栏进入祈愿记录
        • 启动游戏并登入游戏,打开游戏内的祈愿历史记录
        • 回到胡桃工具箱,点击刷新按钮,在刷新菜单中点击网页缓存刷新

        提示

        若出现网页缓存刷新功能异常的情况:

        • 从胡桃工具箱的设置
        • 删除游戏内网页缓存功能中执行删除操作
        ',2),D={id:"通过输入-url-获取祈愿记录",tabindex:"-1"},N=e("a",{class:"header-anchor",href:"#通过输入-url-获取祈愿记录","aria-hidden":"true"},"#",-1),V=n('
        • 如果你通过其它工具获取到了你祈愿历史记录的 Url,可以选择手动输入Url并根据提示操作
        • 但应注意此类 Url 具有时效性

        对于全量刷新选项的补充说明

        在默认情况下,胡桃工具箱会在匹配到本地已有记录的祈愿 ID 后停止导入。 但如果你希望完整地获取原神服务器中所有的历史记录(即使它已经存在于你的本地祈愿记录中),你可以勾选全量刷新

        不勾选全量刷新不会使你丢失祈愿数据,勾选全量刷新也不会让你的本地记录错误地额外记录一次相同的祈愿数据。

        ',4),z={id:"从其它祈愿导出程序导入祈愿数据",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#从其它祈愿导出程序导入祈愿数据","aria-hidden":"true"},"#",-1),J=n('

        胡桃工具箱支持导入 UIGF 数据格式 的祈愿记录数据[1]

        如果你希望导入这一类数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 点击右上角的导入
        • 选择你的 UIGF Json 数据文件
        • 根据界面确认导入数据

        从 Snap Genshin 转移祈愿记录数据

        如果你希望从 Snap Genshin 中转移祈愿数据至胡桃工具箱,你可以:

        • 升级 Snap Genshin 到最新版本
        • 进入祈愿记录功能
          • 如果你由于无法登录米游社而无法进入 Snap Genshin,可以在胡桃工具箱中登录米游社帐号并复制 Cookie 到 Snap Genshin
        • 点击右上角的功能菜单
        • 通过导出 UIGF Json 文件导出 Json 格式的祈愿记录
        • 在胡桃工具箱中导入该文件
        ',6),L={id:"导出祈愿数据",tabindex:"-1"},R=e("a",{class:"header-anchor",href:"#导出祈愿数据","aria-hidden":"true"},"#",-1),q=n("

        胡桃工具箱支持导出 UIGF数据格式 的 Json 文件格式的祈愿记录数据

        如果你希望导出祈愿数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 选择您要导出的祈愿记录存档
        • 点击导出按钮
          • 在弹出的界面选择您需要将此导出的祈愿记录数据文件存放的位置,并点击导出
        • 导出完成
        ",3),A={id:"祈愿记录云同步",tabindex:"-1"},O=e("a",{class:"header-anchor",href:"#祈愿记录云同步","aria-hidden":"true"},"#",-1),H=n('

        祈愿记录云同步功能基于胡桃云帐号,你需要在设置中注册并登录胡桃帐号以使用该功能

        在胡桃工具箱 1.6.1 版本中,我们推出了祈愿云同步功能。用户可以使用该功能,将本地的祈愿记录上传到胡桃云,避免珍贵的祈愿记录丢失,方便数据在多设备之间转移。

        云同步权限

        由于云同步是一个消耗胡桃服务器资源的功能,故该功能有时间限制。目前,胡桃提供以下几种启用云同步功能的方法:

        1. 在爱发电上打赏胡桃的用户,我们会向与爱发电邮箱帐号相匹配的胡桃帐号自动增加使用时间作为胡桃工具箱开发团队对打赏用户的感谢
        2. 对于所有注册用户,在每一期深渊第一次成功向胡桃数据库上传深境螺旋挑战记录后,会获得 5 天的同步功能使用时间
          • 你可以通过该方法长期地免费使用胡桃云
        3. 为胡桃工具箱开源社区贡献(包括但不限于代码开发、程序设计、本地化翻译)的用户,可以直接联系开发团队添加时长
          • 我们目前正在设计一个完善而自动化的开发者许可证颁发流程,它将会随着胡桃帐号系统的完善而推出

        当你的胡桃帐号云同步权限过期后,你将无法上传或下载数据,但你的数据不会被删除。你可以在恢复权限后重新操作你的云备份数据。 在权限过期时,你仍然可以手动删除你的云端数据。

        上传

        • 在祈愿导出界面,选择你需要同步的祈愿存档
        • 点击右上角的胡桃云按钮
        • 点击上传当前的祈愿存档即可备份当前的存档数据至云端

        下载

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击下载按钮即可下载目标存档的云端数据

        删除

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击删除按钮即可删除目标存档的云端数据

        ',13),Q={class:"footnotes"},T={class:"footnotes-list"},X={id:"footnote1",class:"footnote-item"},j={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},K=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function M(P,W){const a=l("RouterLink"),d=l("BiliBili"),t=l("Badge"),c=l("ExternalLinkIcon");return r(),_("div",null,[u,f,x,e("p",null,[o("有关原神祈愿记录导出的技术原理,你可以参阅我们的"),i(a,{to:"/zh/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[m]),_:1}),o("一文。")]),b,e("details",g,[k,i(d,{bvid:"BV1QR4y1z7bH"})]),G,e("h3",I,[B,o(" 利用 Stoken 从服务器获取最新的祈愿记录 "),i(t,{text:"推荐",type:"tip"})]),e("div",U,[y,e("ul",null,[e("li",null,[o("已登录的米游社帐号是使用 Stoken 刷新方法的前提,你可以参考"),i(a,{to:"/zh/features/mhy-account-switch.html"},{default:s(()=>[o("米游社多帐号切换")]),_:1}),o("一文在胡桃工具箱中登录你的帐号")]),v])]),S,e("h3",E,[F,o(" 从网页缓存获取最新的祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),w,e("h3",D,[N,o(" 通过输入 Url 获取祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),V,e("h3",z,[C,o(" 从其它祈愿导出程序导入祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),J,e("h2",L,[R,o(" 导出祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),q,e("h2",A,[O,o(" 祈愿记录云同步 "),i(t,{text:"测试功能",type:"info"})]),H,e("section",Q,[e("ol",T,[e("li",X,[e("p",null,[o("统一标准化的原神数据格式由 "),e("a",j,[o("UIGF-Org"),i(c)]),o(" 提供 "),K])])])])])}const $=h(p,[["render",M],["__file","wish-export.html.vue"]]);export{$ as default}; +import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as _,a as e,b as o,d as i,w as s,e as n}from"./app-dddc4fb8.js";const p={},u=e("h1",{id:"祈愿记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#祈愿记录","aria-hidden":"true"},"#"),o(" 祈愿记录")],-1),f=e("p",null,[o("抽卡是原神的核心玩法之一,无论是出于纪念、炫耀的目的还是认真规划抽取计划,对历史抽卡进行统计分析都是非常重要的。 但是原神官方只为玩家提供了半年的抽卡记录,这是很不友好的("),e("s",null,"但是他们还是统计了你一整年杀了多少提米的鸽子"),o(")。")],-1),x=e("p",null,"因此,我们需要利用这半年的抽卡记录调取窗口,将抽卡记录转移到我们自己手中,这就是胡桃工具箱中祈愿记录导出功能的目的所在。",-1),m=e("strong",null,"祈愿系统与导出原理",-1),b=n('

        祈愿导出

        如上图所示,从胡桃工具箱的祈愿导出功能,你可以清晰地获取到包括:抽卡总数、当前已垫抽数、不同稀有度获取的数量和百分比、 每次五星稀有度获取的抽数以及保底情况。

        原神抽卡记录的延迟性

        胡桃工具箱获取抽卡记录的来源也为米哈游服务器,因此短时间内刚刚结束的抽卡无法被获取。 当你在游戏内抽卡历史记录中看到了最新的一批抽卡记录,则可以在胡桃中获取统计数据。

        视频指南

        对于大多数人而言,遵循本页文档会有更高的效率。

        但如果你对其中包含的操作不熟悉,也可以回到这里来跟着视频指南操作。

        ',6),g={class:"hint-container details"},k=e("summary",null,"胡桃工具箱指南 5 - 祈愿记录导出篇",-1),G=e("h2",{id:"获取祈愿数据",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#获取祈愿数据","aria-hidden":"true"},"#"),o(" 获取祈愿数据")],-1),I={id:"利用-stoken-从服务器获取最新的祈愿记录",tabindex:"-1"},B=e("a",{class:"header-anchor",href:"#利用-stoken-从服务器获取最新的祈愿记录","aria-hidden":"true"},"#",-1),U={class:"hint-container info"},y=e("p",{class:"hint-container-title"},"提示",-1),v=e("li",null,"Stoken 刷新方法暂不支持国际服",-1),S=e("ul",null,[e("li",null,"在胡桃工具箱中确保你需要获取记录的米游社帐号已登录"),e("li",null,[o("从左侧菜单栏进入"),e("code",null,"祈愿记录")]),e("li",null,[o("点击右上角的"),e("code",null,"刷新"),o(",并点击"),e("code",null,"Stoken刷新")]),e("li",null,"等待读取完毕,即可查看最新的祈愿记录")],-1),E={id:"从网页缓存获取最新的祈愿记录",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#从网页缓存获取最新的祈愿记录","aria-hidden":"true"},"#",-1),w=n('
        • 从左侧菜单栏进入祈愿记录
        • 启动游戏并登入游戏,打开游戏内的祈愿历史记录
        • 回到胡桃工具箱,点击刷新按钮,在刷新菜单中点击网页缓存刷新

        提示

        若出现网页缓存刷新功能异常的情况:

        • 从胡桃工具箱的设置
        • 删除游戏内网页缓存功能中执行删除操作
        ',2),D={id:"通过输入-url-获取祈愿记录",tabindex:"-1"},N=e("a",{class:"header-anchor",href:"#通过输入-url-获取祈愿记录","aria-hidden":"true"},"#",-1),V=n('
        • 如果你通过其它工具获取到了你祈愿历史记录的 Url,可以选择手动输入Url并根据提示操作
        • 但应注意此类 Url 具有时效性

        对于全量刷新选项的补充说明

        在默认情况下,胡桃工具箱会在匹配到本地已有记录的祈愿 ID 后停止导入。 但如果你希望完整地获取原神服务器中所有的历史记录(即使它已经存在于你的本地祈愿记录中),你可以勾选全量刷新

        不勾选全量刷新不会使你丢失祈愿数据,勾选全量刷新也不会让你的本地记录错误地额外记录一次相同的祈愿数据。

        ',4),z={id:"从其它祈愿导出程序导入祈愿数据",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#从其它祈愿导出程序导入祈愿数据","aria-hidden":"true"},"#",-1),J=n('

        胡桃工具箱支持导入 UIGF 数据格式 的祈愿记录数据[1]

        如果你希望导入这一类数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 点击右上角的导入
        • 选择你的 UIGF Json 数据文件
        • 根据界面确认导入数据

        从 Snap Genshin 转移祈愿记录数据

        如果你希望从 Snap Genshin 中转移祈愿数据至胡桃工具箱,你可以:

        • 升级 Snap Genshin 到最新版本
        • 进入祈愿记录功能
          • 如果你由于无法登录米游社而无法进入 Snap Genshin,可以在胡桃工具箱中登录米游社帐号并复制 Cookie 到 Snap Genshin
        • 点击右上角的功能菜单
        • 通过导出 UIGF Json 文件导出 Json 格式的祈愿记录
        • 在胡桃工具箱中导入该文件
        ',6),L={id:"导出祈愿数据",tabindex:"-1"},R=e("a",{class:"header-anchor",href:"#导出祈愿数据","aria-hidden":"true"},"#",-1),q=n("

        胡桃工具箱支持导出 UIGF数据格式 的 Json 文件格式的祈愿记录数据

        如果你希望导出祈愿数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 选择您要导出的祈愿记录存档
        • 点击导出按钮
          • 在弹出的界面选择您需要将此导出的祈愿记录数据文件存放的位置,并点击导出
        • 导出完成
        ",3),A={id:"祈愿记录云同步",tabindex:"-1"},O=e("a",{class:"header-anchor",href:"#祈愿记录云同步","aria-hidden":"true"},"#",-1),H=n('

        祈愿记录云同步功能基于胡桃云帐号,你需要在设置中注册并登录胡桃帐号以使用该功能

        在胡桃工具箱 1.6.1 版本中,我们推出了祈愿云同步功能。用户可以使用该功能,将本地的祈愿记录上传到胡桃云,避免珍贵的祈愿记录丢失,方便数据在多设备之间转移。

        云同步权限

        由于云同步是一个消耗胡桃服务器资源的功能,故该功能有时间限制。目前,胡桃提供以下几种启用云同步功能的方法:

        1. 在爱发电上打赏胡桃的用户,我们会向与爱发电邮箱帐号相匹配的胡桃帐号自动增加使用时间作为胡桃工具箱开发团队对打赏用户的感谢
        2. 对于所有注册用户,在每一期深渊第一次成功向胡桃数据库上传深境螺旋挑战记录后,会获得 5 天的同步功能使用时间
          • 你可以通过该方法长期地免费使用胡桃云
        3. 为胡桃工具箱开源社区贡献(包括但不限于代码开发、程序设计、本地化翻译)的用户,可以直接联系开发团队添加时长
          • 我们目前正在设计一个完善而自动化的开发者许可证颁发流程,它将会随着胡桃帐号系统的完善而推出

        当你的胡桃帐号云同步权限过期后,你将无法上传或下载数据,但你的数据不会被删除。你可以在恢复权限后重新操作你的云备份数据。 在权限过期时,你仍然可以手动删除你的云端数据。

        上传

        • 在祈愿导出界面,选择你需要同步的祈愿存档
        • 点击右上角的胡桃云按钮
        • 点击上传当前的祈愿存档即可备份当前的存档数据至云端

        下载

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击下载按钮即可下载目标存档的云端数据

        删除

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击删除按钮即可删除目标存档的云端数据

        ',13),Q={class:"footnotes"},T={class:"footnotes-list"},X={id:"footnote1",class:"footnote-item"},j={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},K=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function M(P,W){const a=l("RouterLink"),d=l("BiliBili"),t=l("Badge"),c=l("ExternalLinkIcon");return r(),_("div",null,[u,f,x,e("p",null,[o("有关原神祈愿记录导出的技术原理,你可以参阅我们的"),i(a,{to:"/zh/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[m]),_:1}),o("一文。")]),b,e("details",g,[k,i(d,{bvid:"BV1QR4y1z7bH"})]),G,e("h3",I,[B,o(" 利用 Stoken 从服务器获取最新的祈愿记录 "),i(t,{text:"推荐",type:"tip"})]),e("div",U,[y,e("ul",null,[e("li",null,[o("已登录的米游社帐号是使用 Stoken 刷新方法的前提,你可以参考"),i(a,{to:"/zh/features/mhy-account-switch.html"},{default:s(()=>[o("米游社多帐号切换")]),_:1}),o("一文在胡桃工具箱中登录你的帐号")]),v])]),S,e("h3",E,[F,o(" 从网页缓存获取最新的祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),w,e("h3",D,[N,o(" 通过输入 Url 获取祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),V,e("h3",z,[C,o(" 从其它祈愿导出程序导入祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),J,e("h2",L,[R,o(" 导出祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),q,e("h2",A,[O,o(" 祈愿记录云同步 "),i(t,{text:"测试功能",type:"info"})]),H,e("section",Q,[e("ol",T,[e("li",X,[e("p",null,[o("统一标准化的原神数据格式由 "),e("a",j,[o("UIGF-Org"),i(c)]),o(" 提供 "),K])])])])])}const $=h(p,[["render",M],["__file","wish-export.html.vue"]]);export{$ as default}; diff --git a/assets/wish-export.html-8c8f98f3.js b/assets/wish-export.html-b9d2bc5b.js similarity index 99% rename from assets/wish-export.html-8c8f98f3.js rename to assets/wish-export.html-b9d2bc5b.js index b281f3ac6..78d0b2d63 100644 --- a/assets/wish-export.html-8c8f98f3.js +++ b/assets/wish-export.html-b9d2bc5b.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as l,c as d,a as e,b as t,d as o,w as n,e as a}from"./app-1a16ab73.js";const p={},u=e("h1",{id:"wish-history",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#wish-history","aria-hidden":"true"},"#"),t(" Wish History")],-1),f=e("p",null,[t("Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly "),e("s",null,"(although they still keep tracking how many Timmie's pigeons you've killed for the whole year)")],-1),y=e("p",null,"Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.",-1),m=a('

        祈愿导出

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        ',4),_={id:"refresh-with-stoken-cookie",tabindex:"-1"},w=e("a",{class:"header-anchor",href:"#refresh-with-stoken-cookie","aria-hidden":"true"},"#",-1),g={class:"hint-container info"},x=e("p",{class:"hint-container-title"},"Hint",-1),b=e("li",null,[e("strong",null,"Stoken Cookie refresh method does not support global server (HoYoLab)")],-1),S=e("ul",null,[e("li",null,"Make sure the account you want to refresh wish history has been signed in to Snap Hutao"),e("li",null,[t("Switch to "),e("code",null,"Wish History"),t(" feature page in Snap Hutao")]),e("li",null,[t("Click on "),e("code",null,"Refresh"),t(" button and select "),e("code",null,"SToken Refresh")]),e("li",null,"Wait for refresh task to complete")],-1),k={id:"refresh-with-web-cache",tabindex:"-1"},H=e("a",{class:"header-anchor",href:"#refresh-with-web-cache","aria-hidden":"true"},"#",-1),v=a('
        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache
        ',2),I={id:"refresh-with-manually-input-url",tabindex:"-1"},G=e("a",{class:"header-anchor",href:"#refresh-with-manually-input-url","aria-hidden":"true"},"#",-1),R=a('
        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        ',4),W={id:"import-wish-history-data-from-other-applications",tabindex:"-1"},B=e("a",{class:"header-anchor",href:"#import-wish-history-data-from-other-applications","aria-hidden":"true"},"#",-1),F=a('

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import
        ',3),U={id:"export-wish-history-data",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#export-wish-history-data","aria-hidden":"true"},"#",-1),E=a('

        Snap Hutao support exporting wish history data to a Json file written in UIGF data format

        If you need to export the wish history data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Switch to the archive you want to export, and select Export
          • In the pop-up window, confirm your export path
        • Confirm and export data

        ',4),D={class:"footnotes"},L={class:"footnotes-list"},M={id:"footnote1",class:"footnote-item"},T={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},N=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function Y(q,O){const s=r("RouterLink"),i=r("Badge"),h=r("ExternalLinkIcon");return l(),d("div",null,[u,f,y,e("p",null,[t("Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on "),o(s,{to:"/en/advanced/Gacha-system-and-export-principal.html"},{default:n(()=>[t("Gacha System and Export Principles")]),_:1})]),m,e("h3",_,[w,t(" Refresh with Stoken Cookie "),o(i,{text:"Recommend",type:"tip"})]),e("div",g,[x,e("ul",null,[e("li",null,[t("This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to "),o(s,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" to get to know how to login to your MiHoYo BBS account")]),b])]),S,e("h3",k,[H,t(" Refresh with Web Cache "),o(i,{text:"Global Server Supported",type:"tip"})]),v,e("h3",I,[G,t(" Refresh with Manually Input URL "),o(i,{text:"Global Server Supported",type:"tip"})]),R,e("h3",W,[B,t(" Import Wish History Data from Other Applications "),o(i,{text:"UIGF",type:"info"})]),F,e("h2",U,[C,t(" Export Wish History Data "),o(i,{text:"UIGF",type:"info"})]),E,e("section",D,[e("ol",L,[e("li",M,[e("p",null,[t("Unified Standardized GenshinData Format is provided by "),e("a",T,[t("UIGF-Org"),o(h)]),t(),N])])])])])}const z=c(p,[["render",Y],["__file","wish-export.html.vue"]]);export{z as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as l,c as d,a as e,b as t,d as o,w as n,e as a}from"./app-dddc4fb8.js";const p={},u=e("h1",{id:"wish-history",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#wish-history","aria-hidden":"true"},"#"),t(" Wish History")],-1),f=e("p",null,[t("Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly "),e("s",null,"(although they still keep tracking how many Timmie's pigeons you've killed for the whole year)")],-1),y=e("p",null,"Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.",-1),m=a('

        祈愿导出

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        ',4),_={id:"refresh-with-stoken-cookie",tabindex:"-1"},w=e("a",{class:"header-anchor",href:"#refresh-with-stoken-cookie","aria-hidden":"true"},"#",-1),g={class:"hint-container info"},x=e("p",{class:"hint-container-title"},"Hint",-1),b=e("li",null,[e("strong",null,"Stoken Cookie refresh method does not support global server (HoYoLab)")],-1),S=e("ul",null,[e("li",null,"Make sure the account you want to refresh wish history has been signed in to Snap Hutao"),e("li",null,[t("Switch to "),e("code",null,"Wish History"),t(" feature page in Snap Hutao")]),e("li",null,[t("Click on "),e("code",null,"Refresh"),t(" button and select "),e("code",null,"SToken Refresh")]),e("li",null,"Wait for refresh task to complete")],-1),k={id:"refresh-with-web-cache",tabindex:"-1"},H=e("a",{class:"header-anchor",href:"#refresh-with-web-cache","aria-hidden":"true"},"#",-1),v=a('
        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache
        ',2),I={id:"refresh-with-manually-input-url",tabindex:"-1"},G=e("a",{class:"header-anchor",href:"#refresh-with-manually-input-url","aria-hidden":"true"},"#",-1),R=a('
        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        ',4),W={id:"import-wish-history-data-from-other-applications",tabindex:"-1"},B=e("a",{class:"header-anchor",href:"#import-wish-history-data-from-other-applications","aria-hidden":"true"},"#",-1),F=a('

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import
        ',3),U={id:"export-wish-history-data",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#export-wish-history-data","aria-hidden":"true"},"#",-1),E=a('

        Snap Hutao support exporting wish history data to a Json file written in UIGF data format

        If you need to export the wish history data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Switch to the archive you want to export, and select Export
          • In the pop-up window, confirm your export path
        • Confirm and export data

        ',4),D={class:"footnotes"},L={class:"footnotes-list"},M={id:"footnote1",class:"footnote-item"},T={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},N=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function Y(q,O){const s=r("RouterLink"),i=r("Badge"),h=r("ExternalLinkIcon");return l(),d("div",null,[u,f,y,e("p",null,[t("Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on "),o(s,{to:"/en/advanced/Gacha-system-and-export-principal.html"},{default:n(()=>[t("Gacha System and Export Principles")]),_:1})]),m,e("h3",_,[w,t(" Refresh with Stoken Cookie "),o(i,{text:"Recommend",type:"tip"})]),e("div",g,[x,e("ul",null,[e("li",null,[t("This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to "),o(s,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" to get to know how to login to your MiHoYo BBS account")]),b])]),S,e("h3",k,[H,t(" Refresh with Web Cache "),o(i,{text:"Global Server Supported",type:"tip"})]),v,e("h3",I,[G,t(" Refresh with Manually Input URL "),o(i,{text:"Global Server Supported",type:"tip"})]),R,e("h3",W,[B,t(" Import Wish History Data from Other Applications "),o(i,{text:"UIGF",type:"info"})]),F,e("h2",U,[C,t(" Export Wish History Data "),o(i,{text:"UIGF",type:"info"})]),E,e("section",D,[e("ol",L,[e("li",M,[e("p",null,[t("Unified Standardized GenshinData Format is provided by "),e("a",T,[t("UIGF-Org"),o(h)]),t(),N])])])])])}const z=c(p,[["render",Y],["__file","wish-export.html.vue"]]);export{z as default}; diff --git a/en/advanced/FAQ.html b/en/advanced/FAQ.html index 6940ca88e..9fd880db7 100644 --- a/en/advanced/FAQ.html +++ b/en/advanced/FAQ.html @@ -31,12 +31,12 @@ } - +

        FAQ

        DGP-StudioFAQAbout 3 min

        FAQ

        How to create desktop shortcut

        • Use Win+R to start run, in the window input shell:AppsFolder Run
        • In the new pop-up window, find Snap Hutao
        • Right lick on it, and click Create shortcut
        • Confirm the operation and you will get the desktop shortcut

        How to create desktop shortcut with Administrator privilege

        Fundamental principle: Use the following PowerShell scrip can run Snap Hutao with Administrator privilege

        Start-Process shell:AppsFolder\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
         
        • Save Snap Hutao logo to your device
        • In your desktop, select New -> Shortcut
        • In the field of Type the location of the item, input:
        powershell -Command "Start-Process shell:AppsFolder\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
         
        • Name the shortcut as Snap Hutao
        • Confirm the creation, and you will get this shortcut with PowerShell logo
        • Right-click on this shortcut, select Properties
          • Change value of Run to Minimized
          • Select Change Icon, and select the icon you just downloaded
        • Now, you get a shortcut of Snap Hutao with Administrator privilege
          • You can also pin it to task bar or start menu

        How to run Snap Hutao when Windows starts

        This is a workaround solution

        • Create a bat file, content refers to this Issueopen in new window, it allows bat to run Snap Hutao with Administrator privilege
        • Create a Scheduled Task, run the bat when Windows startup, or drag it to Windows start folder

        Use Snap Hutao to quick start the game

        • Config the game launcher in the settings

        • Pin Snap Hutao on taskbar

        • Right click on Snap Hutao and you will see the quick launcher

          quick-start

        • Select Lauch Game, you will be asked which account to start the game

        Use Snap Hutao with Network Proxy

        Refer to HttpRequestException Error (502) document

        Mojibake in Snap Hutao

        • If you are using Windows 10 and see some button are not display properly
          • You can download Segoe Fluent Icons font
          • You need to install it for all users
        • You can find this font from Microsoftopen in new window

        MiHoYo BBS Account often Lose Login Status

        Snap Hutao use saved MiHoYo BBS cookies to maintain login status. If you log out your account in your browser or other device, cookie will become invalid, and Snap Hutao will also be forced to log out, account will be automatically removed.

        This problem may also be caused by network error, you should check this first; If it's not caused by network issue, you can use Refresh Cookie in the account panel; You can also remove your account manually and add it back again.

        Since October 2022, MiYouShe (Chinese BBS) rapidly increased bot detection and may set users' account as under-risk status, this may cause Snap Hutao failed to check validation of the cookie

        Game Account Lose Login Status in the Launcher

        • There are two factors associated with game account login status: network and device ID
        • This issue usually caused by:
          • Change of public IP address
          • Failed saving operation, no real login status been saved (Snap Hutao cannot detect if the status is real valid)
            • Make sure to enter the game after sign in
            • Make sure the game process is gone after closing the game
            • Detect the account again to save your login status

        Snap Hutao Throws Failed to add Scheduled Task Error

        If you are using Administrator privilege to start real-time notes feature, Snap Hutao's scheduled task will be created as Administrator role. When next time edit real-time notes settings without Administrator privilege, the program will have a lack of privilege to edit the settings and throw out this error.

        Run Snap Hutao as Administrator to edit your settings to solve this issue.

        Stuck at Installing Required Framework when Using MSIX Package to Install

        • When user's OS missing required dependency framework, Windows will download and install it automatically. However, if the user disabled Windows Update or have a bad network, the system is unable to process this installation.
          • Make sure Windows Update is enabled; Snap Hutao's update also relies on it
          • You can also download and install the dependency manually

        Unable to Run Snap Hutao as Administrator

        This issue only occurs in Windows 10 older than 22H2 version

        • When user's OS version older than Windows Build 19045 (aka Windows 10 22H2), Snap Hutao is unable to start when running as Administrator
          • This issue comes from Windows kernel, and it's hard to locate, so we suggest you to update your OS to the latest version
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/advanced/Gacha-system-and-export-principal.html b/en/advanced/Gacha-system-and-export-principal.html index 56d2daa12..0e59cc82a 100644 --- a/en/advanced/Gacha-system-and-export-principal.html +++ b/en/advanced/Gacha-system-and-export-principal.html @@ -31,10 +31,10 @@ } - +

        祈愿系统与导出原理

        DGP-StudioFAQAbout 2 min

        祈愿系统与导出原理

        Gacha System and Principal

        胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

        本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

        祈愿的获取

        获取祈愿记录需要请求米哈游的 API

        关于此 API, 有下列几个注意点

        • 通过米哈游服务器的 API,只能查询到过去 6 个月内的祈愿记录
          • 这也是原神客户端中祈愿记录的来源
        • API 存在请求速率限制,过快的请求会导致后续的请求失败,无法正常获取数据

        为了请求此 API,我们需要四个关键参数

        • 目前有下列几种方法可以获取这些参数
          • 遍历 Unity 的日志文件,查找用户打开的祈愿记录 URL
          • 代理本机流量,筛选祈愿记录 URL
          • 查找 CefBrowser 的浏览器缓存,找到祈愿记录 URL
          • 对于包含了 Stoken 的 Cookie,调用 genAuthKey API,获取参数
          • 高级用户手动输入相关 URL

        在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

        祈愿的存储

        获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

        后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

        这样,用户即可长期地保存帐号的完整祈愿记录

        UIGF 格式

        统一可交换祈愿记录标准

        Uniformed Interchangeable GachaLog Format standard

        UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

        标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

        祈愿的导入

        在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

        胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

        (因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

        祈愿的导出

        尚未实现,正在设计 已实装

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/advanced/exceptions.html b/en/advanced/exceptions.html index 92502df7a..3522a694b 100644 --- a/en/advanced/exceptions.html +++ b/en/advanced/exceptions.html @@ -31,10 +31,10 @@ } - +

        Common Program Exceptions

        DGP-StudioFAQAbout 1 min

        Common Program Exceptions

        This document covers solutions of foreseeable client error

        RuntimeEnvironmentException

        • Exception: RuntimeEnvironmentException
          • Hint: Unable to set registry key without enabling long path
        • Issue source: Windows long path limit is set to be limited at 256 characters by default
        • Solution: Download EnableLongPaths.zipopen in new window, unzip it and run .reg file as administrator

        Return Code: -10001

        • This error comes directly from MiHoYo BBS, hints include
          • Return Code: -10001
          • Return Code: -100
        • Issue source
          1. Cookie expired
          2. Network error
          3. System time is not accurate
        • Solution
          1. In the account panel, execute Refresh Cookies
          2. Remove your account and add it again
          3. Sync your system time

        Return Code: 1034 Verification Failed

        • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
        • Solution:
          • Enter Realtime Notes
          • Click on Verify Current User and Role button
          • Follow the instruction in MiHoYo BBS to verify
          • After finishing the verification process, click Complete to close the verification window
          • Now, the account should back to normal; If not, process the step above again

        Tips

        If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

        Note

        • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
        • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

        HttpRequestException Metadata Download Failed

        403 (Forbidden) / 404 (Not Found)

        Solution: Update your Snap Hutao to latest version

        502 (Bad Gateway)

        Associated Issue: https://github.com/DGP-Studio/Snap.Hutao/issues/100open in new window

        This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)

        HttpRequestException

        If you are using proxy software, you may need to turn it off or using TUN mode proxy; otherwise you need to use Windows 8 AppContainer Loopback Utilityopen in new window to remove Windows APP Container Loopback limitsopen in new window.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/advanced/get-stoken-cookie-from-the-third-party.html b/en/advanced/get-stoken-cookie-from-the-third-party.html index 2100a5844..0dd46385e 100644 --- a/en/advanced/get-stoken-cookie-from-the-third-party.html +++ b/en/advanced/get-stoken-cookie-from-the-third-party.html @@ -31,10 +31,10 @@ } - +

        使用第三方工具获取有 Stoken 的 cookie

        DGP-StudioFAQ第三方工具About 2 min

        使用第三方工具获取有 Stoken 的 cookie

        Note

        • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
        • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

        Android

        Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

        GetToken 开源项目

        • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
          • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
          • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
            • 你需要卸载官方版米游社以安装该版本的米游社
        • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
        • 在右上角点击形如 🔑 形状的按钮
        • 点击勾选 Stoken 选项
        • 点击复制登录信息
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录

        iOS

        iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

        • 从 App Store 下载 Streamopen in new window
        • 对域名 api-takumi.mihoyo.com 进行抓包分析
        • 找到并复制带有 Stoken 的数据
          • 形如stuid=****;stoken=v2****;mid=****;
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/advanced/index.html b/en/advanced/index.html index 7c5ba7bd4..39deda6d6 100644 --- a/en/advanced/index.html +++ b/en/advanced/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/advanced/known-issue.html b/en/advanced/known-issue.html index c2f67dd42..8a61c9d73 100644 --- a/en/advanced/known-issue.html +++ b/en/advanced/known-issue.html @@ -31,10 +31,10 @@ } - +

        Known Issue

        DGP-StudioFAQLess than 1 minute

        Known Issue

        This document records known issues that need to be fixed.

        Game Throw Data Exception Error when Enabling Multi-Client Feature

        The issue occurs at early May 2023, and caused by MiHoYo's anti-cheat module update. Disable the multi-client and restart the game to fix it.

        This issue is planned to be fixed in the following versions.

        Snap Hutao No Response or Cash when Using Real-time Notes

        A current local database issue will cause Snap Hutao to no response or even crash. This issue is planned to be fixed in the next version, you may also track this issue in GitHubopen in new window

        Game Quick Launch Failure

        In the current version, a known issue will cause JumpList game quick start launcher fail to open the window. This issue will be fixed in the next patch.

        Frequent 1034 Verification Error from Real-time Notes

        This issue is caused by change of anti-bot program in Miyoushe, and will cause Real-time Notes data refresh failure. User can fix this issue temporarily by manual verification.

        This issue will be fixed in the future.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/advanced/uninstall.html b/en/advanced/uninstall.html index c288ef851..17436fc9b 100644 --- a/en/advanced/uninstall.html +++ b/en/advanced/uninstall.html @@ -31,11 +31,11 @@ } - +

        Uninstall Snap Hutao

        DGP-StudioFAQLess than 1 minute

        Uninstall Snap Hutao

        • Clear Real-time Notes Scheduled Task
          • Before version 1.4.15, if not execute this step, scheduled task used to refresh real-time notes may not be deleted,and you may face this issue
            • Method 1 For version <= 1.4.15
              • Launch Snap Hutao, and go to settings page
              • Find Delete All Scheduled Task field, and click on Execute Button Requires administrator privileges
          • Method 2
            • Execute the following PowerShell script
              schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
               
          • Method 3
            • Open Windows Scheduled Task Manager
            • Find SnapHutaoDailyNoteRefreshTask task and delete it
          • Method 4
            • Upgrade to1.5.1 version and open Real-time Notes
            • Close software and remove it
        • Remove the Software
          • Open Start Menu
          • Find or search Snap Hutao
          • Right click on it, and select Unstall
        • Remove data folder (If you want remove it completely)
          • Open and delete %userprofile%/Documents/Hutao
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/community.html b/en/community.html index 48d188236..d78f32391 100644 --- a/en/community.html +++ b/en/community.html @@ -31,10 +31,10 @@ } - +

        Join Community

        DGP-StudioAnnouncementLess than 1 minute

        Join Community

        As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        GitHub Discussion

        Snap.Hutao Discussionopen in new window

        QQ Group (CN)

        Discord

        Invite link:https://discord.gg/Yb8bykUKpopen in new window

        - + diff --git a/en/development/index.html b/en/development/index.html index e6c34ed08..a6d08c2fe 100644 --- a/en/development/index.html +++ b/en/development/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/development/platform.html b/en/development/platform.html index 743065b8e..d0d098385 100644 --- a/en/development/platform.html +++ b/en/development/platform.html @@ -31,10 +31,10 @@ } - +

        Hutao Open Platform

        DGP-Studioopen sourcedevelopmentAbout 1 min

        Hutao Open Platform

        The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.

        Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.

        Hutao API & Hutao Cloud Open-source Developer's License

        Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.

        Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.

        Developers can apply for access by submitting their information through the Hutao API Open Platform at https://homa.snapgenshin.com/open in new window

        Enka API with China Acceleration

        Enka Networkopen in new window is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.

        To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the My Characters feature and established a proxy server.

        If you are a developer of open-source Genshin Impact tools and require this functionality, you can fill out the formopen in new window to apply for the usage of our maintained proxy service.

        UIGF Interchangeable Game Data Format

        Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the Uniformed Interchangeable GachaLog Format Standard (UIGF)open in new window.

        Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the UIGF organizationopen in new window. Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/features/achievements.html b/en/features/achievements.html index 530ea309a..721b2e975 100644 --- a/en/features/achievements.html +++ b/en/features/achievements.html @@ -31,10 +31,10 @@ } - +

        Achievement Management

        DGP-StudioFeatureTutorialLess than 1 minute

        Achievement Management

        Snap Hutao offers local achievement management feature, users can view and manage status of achievement

        • At first time use, you will follow the instruction to create an archive and name it
        • After that, you are still able to make new archives by click on Create New Archive for other game accounts

        Achievement Import

        • Snap Hutao is using Uniformed Interchangeable Achievement Format Standaropen in new window to store user's achievement data
          • This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as Achievement exporter
        • You can click on Import at top right menu on Achievement Management page, and select file import to load UIAF formatted data

        Achievement Tools We Recommend

        - + diff --git a/en/features/character-data.html b/en/features/character-data.html index 229f09d93..096eeccdf 100644 --- a/en/features/character-data.html +++ b/en/features/character-data.html @@ -31,10 +31,10 @@ } - +

        My Characters

        DGP-StudioFeatureTutorialAbout 2 min

        My Characters

        Info

        This features required sign in to MiHoYo BBS account, please refer to MiHoYo BBS Account Switch document for sign in tutorial

        My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

        属性统计示例图

        Sync Character Data

        Sync from Enka API

        Synchronous Feature

        • Enka API sync data from characters displayed in the in-game character showcase

          • Data includes Artifacts detail data, weapon detail data, talent data
          • Character costume
          • This sync method only support 8 characters at a time
        • In the game, put characters that you need detailed data into the showcase
          • The character showcase allows up to 8 characters at the same time
        • You need to wait for data sync to complete after editing the showcase configuration
          • You may need up to 5 minutes after enable the showcase or re-config the showcase
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from Enka API

        Sync from MiHoYo BBS - My Characters

        Synchronous Feature

        • Data in this sync method comes from My Characters feature in MiHoYo official BSS

          • This method does not contain any artifacts data
          • This method can sync all characters data at a time
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from MiHoYo BBS My Characters

        Sync from MiHoYo BBS - Development Plan

        Synchronous Feature

        • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

          • This sync method contains talent level data
          • This sync method can sync all characters data at a time
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from MiHoYo BBS Developement Plan

        Add Selected Character to Development Plan

        • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
        • Click on Development Plan and enter target level
          • Synchronized data of the character will be pre-filled into current level, and you can change the target level

        rolescal

        • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

        image

        • For tutorial of Dev Plan feature, please refer to Dev Plan document

        Export as Image

        • In My Characters page, you can select a character and then click Export as Image button to create image with your character's data, this will help you to share your character's data
        • The exported image is stored in your clipboard, and you can paste it wherever you need
        • A sample exported image is shown below

        sample-output-image

        - + diff --git a/en/features/character-wiki.html b/en/features/character-wiki.html index dc16d8951..73cf649aa 100644 --- a/en/features/character-wiki.html +++ b/en/features/character-wiki.html @@ -31,10 +31,10 @@ } - +

        Character WIKI

        DGP-StudioFeatureTutorialLess than 1 minute

        Character WIKI

        characters-wiki

        Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

        Included Data

        • Character list
          • Use the icon above the list, you can change the view between list and grid
          • Click on character's icon or title, and you will be directed to its WIKI page
        • Character information
          • Character information
            • Introduction of the character
            • Numerical attributes value at each level
            • Attributes
        • Talent
          • Introduction
          • Numerical talent value at each level
        • Constellation
        • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
        • Other information
          • Character tachie
          • Special food
          • Costume
          • Character stories

        Add to Dev Plan

        • At character WIKI page, you can select character and click on Dev Plan on the top right to add it to your Dev Plan
          • The new plan will set the base level as 1
          • If you want to make new Dev Plan based on character you already have, you can try My Character feature
        - + diff --git a/en/features/dashboard.html b/en/features/dashboard.html index c9be69a73..9d9950e47 100644 --- a/en/features/dashboard.html +++ b/en/features/dashboard.html @@ -31,10 +31,10 @@ } - +

        Home Dashboard

        DGP-StudioFeatureTutorialLess than 1 minute

        Home Dashboard

        Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

        Personal gaming data dashboard includes:

        • Game launcher
          • You can select your account and start the game from dashboard
        • Wish history
          • Game UID and progress bar styled pity count will be display in the dashboard
          • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
        • Achievement statistics
          • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
          • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
        • Real-time Notes
          • Real-time notes data will be displayed on home dashboard
          • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
        - + diff --git a/en/features/develop-plan.html b/en/features/develop-plan.html index 482db8112..992c89d10 100644 --- a/en/features/develop-plan.html +++ b/en/features/develop-plan.html @@ -31,10 +31,10 @@ } - +

        Development Plan

        DGP-Studio功能教程About 2 min

        Development Plan

        dev-plan

        Info

        Dev Plan is under redesigning, the document will be translated after the refinement.

        添加养成目标进入材料清单

        基于 WIKI 资料添加

        • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
        • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
        • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
          • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

        基于玩家数据添加

        • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
        • 在选中角色后,点击右上角的养成计算按钮
        • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
          • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
          • 请参考My Characters文档以获取更多信息

        背包物品

        • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
        • 点击"背包物品"功能栏
        • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
        • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
          • 此处可勾选"绑定当前选中的账号角色"
          • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
        • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
          • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
        • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
          • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除

        功能说明

        此功能尚在完善阶段,若您有建设性的建议,或发现了显著的问题,请按此页面直接向我们反馈,感谢您的贡献!

        - + diff --git a/en/features/game-launcher.html b/en/features/game-launcher.html index b9c66bf80..360723161 100644 --- a/en/features/game-launcher.html +++ b/en/features/game-launcher.html @@ -31,10 +31,10 @@ } - +

        Game Launcher

        DGP-StudioFeatureTutorialAbout 3 min

        Game Launcher

        • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
        • Click on the Game Launcher on the sidebar to get into game launcher's page
          • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
            • When choosing the game path, noticed that you should choose game program instead of launcher program
              • Such as $\Genshin Impact\Genshin Impact Game\YuanShen.exe and $\Genshin Impact\Genshin Impact Game\Genshin Impact.exe
              • Official launcher program is usually $\Genshin Impact\launcher.exe
        • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
          • Launcher options is explained in the document below

        Server Switch

        Privilege Notice

        1. You need to run Snap Hutao as administrator to use this feature
        2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files
        • Enter Game Launcher page

        • In the General - Server field, select the server you want

          • Current available serves options include:
          OptionServer
          CNMainland China server
          BiliBiliChinese server with BiliBili account system
          Global DefaultHoYoVerse servers
          Global EpicHoYoVerse servers with Epic Store payment gateway
          Global GoogleHoYoVerse servers with Google Pay payment gateway
        • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

        Game Account Switch

        Tips

        1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
        2. Game account switch feature currently only supporting official CN server
        CNBiliBiliGlobal
        Save Login StatusSupportedSupportedSupported
        Switch AccountSupportedNot SupportedTheoretically Supported
        We need community's support for thisopen in new window
        1. Enter Game Launcher page
        2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
        3. In this pop-up window, enter an archive name for this account and click Confirm
        4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
          • Each saved account are selectable
          • On the right side, there are three buttons, they are:
            • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
            • Rename, rename current account archive name
            • Delete, delete current account archive

        Appearance

        Note

        • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

          • Suggest to use Borderless or Fullscreen mode if you faced same problem
          • The problem is caused by failure of game embedded browser cannot run
        • Enter Game Launcher page
        • In the Appearance category, there are 6 available options:
          • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
          • Fullscreen, the game display mode is set to fullscreen
          • Borderless, the game display mode is set to borderless
          • Width, game window width, such as 1920
          • Height, game window height, such as 1080
          • Display, users with multiple displays can use this option to set which display to run the game

        Advanced Features

        Warning

        • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
        • You need to enable advanced features in Snap Hutao's settings page

        Unlock Frame Rate Limit

        Warning

        • The Unlocker projectopen in new window only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the user agreement on your own.
        • Run Snap Hutao as administrator

        • Enter Game Launcher page

        • At the bottom of the page, you can find Unlock Frame Rate Limit option

          • Trigger the switch to enable or disable this feature
          • In the Set Frame Rate Limit field, you can adjust the limit freely
        • Fact that may cause failure in unlocking frame rate limit:

          • Snap Hutao process is not kept in the background
          • V-Sync is not set to off in the game
          • Max Framerate limit is not changed in your graphic card settings
          • Power Saving mode is not disabled in power settings
          • Your graphic card is not powerful enough

        Multi-Client

        Warning

        Multiple instances of the game client is a far more dangerous feature compared to unlocking the framerate limit. You should personally or invite a technically knowledgeable professional to review the code and make your own judgment on whether to use this feature.

        Using this feature may cause the anti-cheat system in Genshin Impact to fail to load, and the game client will report this situation to miHoYo's servers.

        1. Run Snap Hutao as administrator
        2. Enter Game Launcher page
        3. At the bottom of the page, enable Multi-Client option
        4. Click Launch button on the top-right of the window
        5. Wait for 12 seconds before entering the game (open the gate)
        6. Repeat step 4 and 5 to launch next client instance
        - + diff --git a/en/features/hutao-API.html b/en/features/hutao-API.html index ef3ced4b3..6db442a9e 100644 --- a/en/features/hutao-API.html +++ b/en/features/hutao-API.html @@ -31,10 +31,10 @@ } - +

        Hutao Database / Abyss Record

        DGP-StudioFeatureTutorialAbout 2 min

        Hutao Database / Abyss Record

        Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

        • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
        • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
          • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records

        character-usage-rate

        View Abyss Stats

        Data Scope Limitation

        All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

        Stats Data Refresh Cycle

        1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
          • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
        2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
        • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
        • Click Character Usage tab to view character usage rate statistics
          • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
        • Click Character Appearance tab to view character appearance rate statistics
          • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
        • Click Teams tab to view teams appearance time statistics
          • Team appearance is the appearance time rank of different characters team combination
        • Click Character Constellation tab to view character constellation statistics [3]
          • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

        Upload Abyss Data

        Use Snap Hutao Client

        • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
        • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
        • Click Upload Data to upload your Spiral Abyss records
          • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

        Use Browser

        Info

        This method does not support HoYoLab

        • Open our JavaScript file, copy the entire content
        • Create new bookmark in your browser
          • Fill with a suitable name
          • in the URL field, fill with script you just copied add-bookmark
        • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
        • Wait for a moment, and you will see data upload request window
        • After confirm it, the browser will upload your abyss record, do not turn off your browser
        • You will receive a notification when your data is submitted

        1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

        2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

        3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

        4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

        - + diff --git a/en/features/hutao-settings.html b/en/features/hutao-settings.html index bb2de61f2..20f66e335 100644 --- a/en/features/hutao-settings.html +++ b/en/features/hutao-settings.html @@ -31,10 +31,10 @@ } - +

        Software Settings

        DGP-StudioFeatureTutorialAbout 2 min

        Software Settings

        Info

        • The following feature tutorials are introduced in-program order.

        About Snap Hutao

        This part has the following information:

        Snap Hutao Account Beta

        Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

        Appearance

        • Language

          • Snap Hutao will following system language setting by default
          • You can force to change to another language in the settings page
        • Backdrop Material

          • In this option, you can change the backdrop material of the software to
            • Acrylic
            • Mica (Windows 11 only)
            • MicaAlt (Windows 11 only)
          • The setting will take effect immediately

        @slidestart auto

        Windows 10 Acrylic

        win10-Acrylic


        Windows 11 Acrylic

        win11-Acrylic


        Windows 11 Mica

        win11-Mica


        Windows 11 MicaAlt

        win11-MicaAlt

        @slideend

        Wish History

        • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

        Game

        • Game Path

          • In this field, you can modify or set your game path for Snap Hutao
          • When setting the game path, you should select game program instead of launcher program
            • Such as $\Genshin Impact\Genshin Impact Game\YuanShen.exe
        • Delete Game Embedded Browser Web Cache

          • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
          • Click on this field to execute the operation

        Storage

        • Open Data Folder

          • Click this field to open data folder that contains user data, log, and metadata
        • Change Data Directory

          • This field allows you to change the data directory to path you want
        • Open Cache Folder

          • Click this field will open cache folder that saves image assets used by Snap Hutao
        • Reset Image Resource

          • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

        MiHoYo BBS/HoYoLab Daily Check-in

        Tips

        Daily Check-in feature in Snap Hutao is mainly used to check account login status

        • How to use
          • First, login to your MiHoYo BBS/HoYoLab account and select it
          • Click on the field
          • Then Snap Hutao will pop up the check-in page and you can check-in manually
        • Interface when this feature is working: Daily check in

        Dangerous Features

        - + diff --git a/en/features/index.html b/en/features/index.html index 623d6b842..45617093f 100644 --- a/en/features/index.html +++ b/en/features/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/features/mhy-account-switch.html b/en/features/mhy-account-switch.html index 668333dca..face50d01 100644 --- a/en/features/mhy-account-switch.html +++ b/en/features/mhy-account-switch.html @@ -31,10 +31,10 @@ } - +

        MiHoYo BBS Account Switch

        DGP-StudioFeatureTutorialAbout 1 min

        MiHoYo BBS Account Switch

        Tips

        There are two types of MiHoYo BBS, MiYouShe and HoYoLab. MiYouShe refers to Mainland China version, HoYoLab refers to global version, both of them are accepted by Snap Hutao

        • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
        • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
          • If your account name shows like user_123456789, then it means the account is not initial yet

        多帐号管理样图

        • At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLab account:

        • Click on Web Login

          • In the pop-up build-in browser, login with your account
          • Click I'm logged in button on the top right, after you have logged into your account
          • Then your account will be added to Snap Hutao, the browser will close automatically
        • Alternatively, you can enter your MiHoYo BBS cookie list by click on Input Manually button

        • After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it

        • You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there

        Security Tips

        • Stoken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
        • You can copy accounts' cookie with Stoken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have Stoken cookie
        • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
        - + diff --git a/en/features/real-time-notes.html b/en/features/real-time-notes.html index 5a367299e..031604e3b 100644 --- a/en/features/real-time-notes.html +++ b/en/features/real-time-notes.html @@ -31,10 +31,10 @@ } - +

        Real-time Notes

        DGP-StudioFeatureTutorialAbout 1 min

        Real-time Notes

        Info

        This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check MiHoYo BBS Account Switch for more information.

        live-data-tracking

        Add Role

        • Click on Add Role button
        • In the pop-up menu, find the UID you want to add, and click on the add button to its right
        • Now, the game UID character's Real-time Notes should be displayed in the page
          • The Real-time Notes is set to refresh timely
            • You can click on the Notification Settings on the top right to manage it
            • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
          • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

        Global Notification Settings

        • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
          • Refresh rate
          • Do not disturb setting
          • Prioritized notification
            • This prevent Snap Hutao's notification being closed automatically

        Independent Settings for Accounts

        • Snap Hutao allows different settings on each Real-time Notes account
        • Hover the cursor over the form of Real-time Notes account that needs to set
        • Click on the setting button on it, and you can modify these settings:
          • Original Resin threshold value
          • Realm Currency threshold value
          • Parametric Transformer notification
          • Daily Commission notification
          • Expeditions notification
          • Display in the main page (feature coming soon)
        • Click on Save and you can save the settings

        Delete Daily-Notes Account

        • Hover the cursor over the form of Real-time Notes account that needs to delete
        • Clock on the remove button on it, and you can remove the corresponding account
        - + diff --git a/en/features/weapon-wiki.html b/en/features/weapon-wiki.html index 00a72ff9c..ccd409ec3 100644 --- a/en/features/weapon-wiki.html +++ b/en/features/weapon-wiki.html @@ -31,10 +31,10 @@ } - +

        Weapon WIKI

        DGP-StudioFeatureTutorialLess than 1 minute

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's most used by characters data provided by Hutao Database
        - + diff --git a/en/features/wish-export.html b/en/features/wish-export.html index 7435afa11..eb15d9157 100644 --- a/en/features/wish-export.html +++ b/en/features/wish-export.html @@ -31,10 +31,10 @@ } - +

        Wish History

        DGP-StudioFeatureTutorialAbout 2 min

        Wish History

        Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly (although they still keep tracking how many Timmie's pigeons you've killed for the whole year)

        Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.

        Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on Gacha System and Export Principles

        祈愿导出

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        Hint

        • This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to MiHoYo BBS Account Switch to get to know how to login to your MiHoYo BBS account
        • Stoken Cookie refresh method does not support global server (HoYoLab)
        • Make sure the account you want to refresh wish history has been signed in to Snap Hutao
        • Switch to Wish History feature page in Snap Hutao
        • Click on Refresh button and select SToken Refresh
        • Wait for refresh task to complete

        Refresh with Web Cache Global Server Supported

        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache

        Refresh with Manually Input URL Global Server Supported

        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        Import Wish History Data from Other Applications UIGF

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import

        Export Wish History Data UIGF

        Snap Hutao support exporting wish history data to a Json file written in UIGF data format

        If you need to export the wish history data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Switch to the archive you want to export, and select Export
          • In the pop-up window, confirm your export path
        • Confirm and export data

        1. Unified Standardized GenshinData Format is provided by UIGF-Orgopen in new window ↩︎

        - + diff --git a/en/i18n.html b/en/i18n.html index 7057d940c..a56696222 100644 --- a/en/i18n.html +++ b/en/i18n.html @@ -31,10 +31,10 @@ } - +

        Localization

        DGP-StudioAnnouncementi18nLess than 1 minute

        Localization

        Localization Process

        Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

        • Snap Hutao
            • Process: Crowdin
        • Snao Hutao Docs
          • Process:

        Engage our Localization

        • Snap Hutao
          • We created an issue thread named [Hoyolab] on GitHub: Globalization support Issueopen in new window
            • We will update our process in this thread
            • You can declare your localization engagement in the thread, and we will provide the necessary support
              • We also welcome PR directly
          • You can provide your translation at translate.hut.aoopen in new window
        • Snap Hutao Docs
          • The developer team is maintaining Chinese documents and working on English documents
          • You can clone the docs repositoryopen in new window, translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository
          • If you are adding a new language, you can copy the entire en folder and rename it with ISO 639-1 language codeopen in new window
            • For example jp as Japanese
            • Do not translate based on Chinese docs (zh) as there are some content only specific useful for Chinese users; they are not useful for international users.
        - + diff --git a/en/index.html b/en/index.html index 1831203a1..67bc30af4 100644 --- a/en/index.html +++ b/en/index.html @@ -31,10 +31,10 @@ } - +
        Snap Hutao

        Snap Hutao

        Multifunctional open-source Genshin Utility

        DownloadQuick StartDocumentProject

        Better than Snap.Genshin

        Snap.Hutao has more extensive data support and better client performance while inheriting all Snap Genshin functionality

        Real-time Notes

        Don't be trapped by Mobile Application. Receive your Genshin real-time notes notification on your desktop with native Windows notification

        Spiral Abyss Record

        Get the personal Spiral Abyss records, including statistics and detailed data, permanently save past Spiral Abyss challenges on your device

        Multi-Account Switch

        Snap.Hutao supports multiple MiHoYo BBS accounts to stay logged in and create separate profiles for each account in each function, so players can easily manage their multiple accounts

        Wish History Record

        Capture your wish history from your game log, export them to your local device, with the support of unlimited account data archives

        Achievement

        Achievement statistics feature allows players to export achievement data and keep statistics outside the game; based on achievement splitting, players can manage milestones for hidden achievements

        Advanced Game Launcher

        With the advanced launcher in Snap.Hutao, players can easily switch their Genshin accounts, switch servers, modify game window settings and further explore more advanced features

        Hutao Database

        Check out the details of community's current Spiral Abyss teaming, weapon matching, and artifact set matching; share your own Spiral Abyss lineup configuration

        My Characters

        View detailed data about the player's character, including level, constellations, weapons, talents, artifact set, etc.; automatically calculate artifact set score

        Character Wiki

        Check the character's numerical information; talent and constellations; training materials; character's background story and other information; get the most weapons and artifact set matching scheme among players through the Hutao database

        Weapon Wiki

        Check weapon values and stories; get the most character matching data among players through the Hutao database

        Development Calculator

        Make implementable character development plans based on your actual situation; support multiple accounts, multiple plan lists, and backpack item records

        Contribute

        Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.

        You can make contribution by the following ways:

        1. Make Pull Requests to our codeopen in new window
        2. Translate the project for a better localization
        3. Update documentopen in new window

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        Service Used

        Snap Hutao is currently using software from the following service providers.

        Deploys by NetlifyCrowdin | Agile localization for tech companies
        - + diff --git a/en/menu.html b/en/menu.html index 0006af3ee..82511fb46 100644 --- a/en/menu.html +++ b/en/menu.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/project.html b/en/project.html index 9abf78932..ffd959406 100644 --- a/en/project.html +++ b/en/project.html @@ -31,10 +31,10 @@ } - +

        Project

        DGP-Studio公告Less than 1 minute

        Project

        Snap Hutao is an MIT-licensed open-source project that provides a Genshin Impact Toolset on Windows, aiming to provide a better experience on PC gaming. It makes undestructive feature expansions on desktops by making features that Genshin Impact provides only on mobile applications.

        Feature Migration

        Snap Hutao project was originally from the Snap Genshin project. Currently, we are still migrating features.

        Documents will be provided on this website for all migrated features. The migration process is shown below:

          • Will be integrated to Dev Plan feature
          • Will be integrated to Dev Plan feature

        New features

        The following features are planned to add when the project was established.

        - + diff --git a/en/quick-start.html b/en/quick-start.html index 529e49f57..892b38c34 100644 --- a/en/quick-start.html +++ b/en/quick-start.html @@ -31,10 +31,10 @@ } - +

        Quick Start

        DGP-StudioFeatureTutorialAbout 2 min

        Quick Start

        Tips

        If you download and use Snap Hutao,you are agree to our terms of service

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        Video Tutorial

        For most people, follow the instruction on this page is more effiency.

        However, if you are not familiar with the operation mentioned below, you can come back the follow the video tutorial.

        Snap Hutao Tutorial - Microsoft Store Installation (zh-CN)

        Minimum System Requirements

        RequirementAttribute
        Minimum Required OSWindows 10 Build 19045 (22H2) [1]
        Recommended OSWindows 11 Build 22621 (22H2)
        Optional ComponentsWebView2 Runtime

        Download Snap Hutao

        Whatever installation method you used, package source and registration are always handled by Microsoft Store.

        Microsoft Store Link:Snap Hutao

        On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.

        Upgrade to MS Store Version from Sideload Versions

        • Uninstall the sideload version with our uninstallation instruction document
          • You data will not lose as long as you don't delete data directory manually
        • Follow the method above to install the Microsoft Store version application

        Update Snap Hutao

        You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.

        • Launch Microsoft Store
        • Click on Library in the bottom left to see all apps you have installed
        • Click Get updates on the top right and your application will be updated

        If you still don't receive the update, you may enter the Snap Hutao detail page in Microsoft Store, to allow the store to fetch the latest metadata.

        Installing WebView2 Runtime

        WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

        At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


        1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

        - + diff --git a/en/rss.xml b/en/rss.xml index 016857034..40cf6fed6 100644 --- a/en/rss.xml +++ b/en/rss.xml @@ -6,8 +6,8 @@ https://hut.ao/en/ Super utilitarian Genshin Impact Tool en-US - Mon, 05 Jun 2023 02:20:24 GMT - Mon, 05 Jun 2023 02:20:24 GMT + Tue, 06 Jun 2023 13:35:15 GMT + Tue, 06 Jun 2023 13:35:15 GMT vuepress-plugin-feed2 https://validator.w3.org/feed/docs/rss2.html open source diff --git a/en/side-load.html b/en/side-load.html index 9a359b179..9a5b43606 100644 --- a/en/side-load.html +++ b/en/side-load.html @@ -31,10 +31,10 @@ } - +

        DGP-StudioLess than 1 minute

        侧载安装

        通用安装方式

        • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
        • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
        • 安装完毕,胡桃将出现在您的开始菜单

        小白级安装方式

        • 解压已下载的安装包
        • 运行 Snap.Hutao.Installer.exe
          • 该程序将执行上述通用安装方式的命令
        • 安装完毕,胡桃将出现在您的开始菜单

        升级胡桃工具箱

        • 解压你下载的最新版本压缩包
        • 重复 安装胡桃工具箱 的步骤
        • 若您安装失败或出现异常情况,可参考如下步骤
          • 先卸载已经安装的胡桃工具箱
          • 重复 安装胡桃工具箱 的步骤
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/star-request.html b/en/star-request.html index 2107541ff..c0ef87c01 100644 --- a/en/star-request.html +++ b/en/star-request.html @@ -31,10 +31,10 @@ } - +

        DGP-StudioLess than 1 minute

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/statements/bug-report.html b/en/statements/bug-report.html index 1107803e4..8e1439e46 100644 --- a/en/statements/bug-report.html +++ b/en/statements/bug-report.html @@ -31,10 +31,10 @@ } - +

        Submit Bug Report

        DGP-StudioAnnouncementLess than 1 minute

        Submit Bug Report

        opened-issue closed-issue

        • You can submit bug reports when you find reproducible issue that cannbot be fixed by youself
        • When submitting the issue, you should describe the problem in as much detail as you can.Screenshots of error should be attached if you have.This is help us to identify the issue faster.
        • If you are able to fix the issue from code, you are also welcome to make PRs directly.

        Client Issue

        Request New or Update Document

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/statements/index.html b/en/statements/index.html index 31e6ccae3d..02b5404ac 100644 --- a/en/statements/index.html +++ b/en/statements/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/statements/privacy-notice.html b/en/statements/privacy-notice.html index 5d413cb6d..e3bbb785b 100644 --- a/en/statements/privacy-notice.html +++ b/en/statements/privacy-notice.html @@ -31,10 +31,10 @@ } - +

        User Data and Privacy Notice

        DGP-StudioAnnouncementLess than 1 minute

        User Data and Privacy Notice

        Personal Information

        The nature of Snap Hutao project states it does not collect any personal information data.

        Regular Data Usage

        Snap Hutao respects the privacy of users, and we're currently using data as described below:

        • Once using Snap Hutao,the database file in the data directory

          • Store
            • MiHoYo BBS and HoYoLab cookie
            • Snap Hutao program settings
            • All other user data
        • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

        • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

          • Upload data to Hutao API, including
            • User's in-game UID
            • User's Abyss record
            • User's character information including artifact and weapon data
        • After using Real-time Notes features

          • Create a Windows scheduled task to fetch data timely
        • After using server switch feature in Game Laucher, in Snap Hutao's data directory

          • Store game files for server switch usage
        • After using Hutao Account features, Hutao Account system server will

          • Store
            • User registered email address
            • Encrypted password
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/en/statements/tos.html b/en/statements/tos.html index 30d4339d5..50ff9b750 100644 --- a/en/statements/tos.html +++ b/en/statements/tos.html @@ -31,10 +31,10 @@ } - +

        User Agreement and Legal Disclaime

        DGP-StudioAnnouncementAbout 6 min

        User Agreement and Legal Disclaime

        Info

        This page of document was original written in Simplified Chinese. It's translated by AI-driven translate software, and still under review. If there is any conflict between the content of the document on this page and the original document, please refer to the original document.

        General Provisions

        • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
          • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
          • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
          • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
          • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

        Nature of the Project, Services, and Definition of Responsibilities and Obligations

        1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

        2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

        3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

        4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

          • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
          • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
        5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

          • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
          • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
          • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
          • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

        Rights and Obligations

        1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

          • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
          • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
          • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
        2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

          • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
          • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
        3. Copyright of the developed projects.

          • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
          • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
          • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.

        Other Terms

        1. Determination of "Non-Business Nature" of Projects Developed by the Team.

          • Any project developed by the team has no business nature.
          • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
        2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

        3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

        4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

        5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

        6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

        7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

        Last update:
        Contributors: Masterain,Mr.Hope
        - + diff --git a/en/statements/update-log.html b/en/statements/update-log.html index fcf564503..28600b196 100644 --- a/en/statements/update-log.html +++ b/en/statements/update-log.html @@ -31,10 +31,10 @@ } - +

        Update Logs

        DGP-StudioAnnouncementAbout 2 min

        Update Logs

        1.6.4 latest

        • New
        • Fix
        • Optimize
          • When running program without administrator privilege, features require administrator privilege will have text hints
          • Support of HoYoLAB
          • Localization updates

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately

        1.6.2 latest

        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        • New
          • Static image reset method
          • Cookie refresh
        • Fix
        • Optimization
          • Optimize Dev Plan UI #486open in new window
          • Optimize English and Traditional Chinese translations
          • Add hints when Windows long path limits are triggered
          • Optimize wake-up for scheduled tasks

        1.4.14

        • Fix issue that new dev plan cannot be added
        • Support English UI
        • Other minor bug fix

        1.4.11

        • First version on Microsoft Store
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/index.html b/index.html index 1ca0a53e1..655f440b2 100644 --- a/index.html +++ b/index.html @@ -31,10 +31,10 @@ } - +

        Home

        DGP-StudioLess than 1 minute

        Redirecting to the correct locale...

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.5
        - + diff --git a/rss.xml b/rss.xml index bf2553825..f760a714b 100644 --- a/rss.xml +++ b/rss.xml @@ -6,8 +6,8 @@ https://hut.ao/ en-US - Mon, 05 Jun 2023 02:20:24 GMT - Mon, 05 Jun 2023 02:20:24 GMT + Tue, 06 Jun 2023 13:35:15 GMT + Tue, 06 Jun 2023 13:35:15 GMT vuepress-plugin-feed2 https://validator.w3.org/feed/docs/rss2.html diff --git a/service-worker.js b/service-worker.js index 7d97351a8..ff8e58118 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let e,s={};const a=(a,i)=>(a=new URL(a+".js",i).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(i,c)=>{const d=e||("document"in self?document.currentScript.src:"")||location.href;if(s[d])return;let r={};const t=e=>a(e,d),f={module:{uri:d},exports:r,require:t};s[d]=Promise.all(i.map((e=>f[e]||t(e)))).then((e=>(c(...e),r)))}}define(["./workbox-cc9d59eb"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"assets/404.html-392add74.js",revision:"9bb763c4c841ee09970e5cdeb67eb6ce"},{url:"assets/404.html-55d1fae4.js",revision:"fcbaf403b414d3b16235adb418ed8924"},{url:"assets/achievements.html-0f803c5c.js",revision:"a2ac799d3578f48aca834a986e3b917c"},{url:"assets/achievements.html-193e97c2.js",revision:"e6363027c22ed7414bd4e5c2c8f99fea"},{url:"assets/achievements.html-7e466c8a.js",revision:"38d58fb41bb5c2f37650175b1f136f2a"},{url:"assets/achievements.html-c513ff85.js",revision:"13257bfad14af1e5690c6d22726e7986"},{url:"assets/app-1a16ab73.js",revision:"ebfb1ad5060565d578c2cd33b7ffa1d0"},{url:"assets/bug-report.html-310e0a0e.js",revision:"7c5815f154709a89a466e552be4829dc"},{url:"assets/bug-report.html-4e9d3984.js",revision:"b5a7581c7b405c25b12161a867bb8a2d"},{url:"assets/bug-report.html-7d6347dc.js",revision:"930a43e6c54abe3cfd5752aef2830955"},{url:"assets/bug-report.html-be008402.js",revision:"abf7a78f0ac7aa1be94d5c6cbe93a779"},{url:"assets/character-data.html-a8002393.js",revision:"2254e17d350c40120ae8d189e7df1cb4"},{url:"assets/character-data.html-c6df149c.js",revision:"f54e5b22810c49fbdb5385cd1bacdddc"},{url:"assets/character-data.html-d19c231c.js",revision:"242f391edb9a6cd8acf12141cef45385"},{url:"assets/character-data.html-e1b06baf.js",revision:"3814fb4f045a914c8e43aaacabae58d9"},{url:"assets/character-wiki.html-47702f57.js",revision:"b4760002d1579c1b0a7ffada4283143f"},{url:"assets/character-wiki.html-6f6ce2c3.js",revision:"7a2ea3fd8c7dd73fb1b1be46970c3a42"},{url:"assets/character-wiki.html-a47450c4.js",revision:"66f55d6ee410d58ad5c14f8c0eb705d7"},{url:"assets/character-wiki.html-eaa1cab6.js",revision:"e8b4026cd99f10140aee0ce8d198baf2"},{url:"assets/community.html-5ef2320d.js",revision:"647985158e8f2878209a70fbfc05c94c"},{url:"assets/community.html-77c874f1.js",revision:"80385e26f23e97b5719d3404dfbb7434"},{url:"assets/community.html-8264ee0b.js",revision:"e9ee1ce788ea63a9685db2bf0f1bb561"},{url:"assets/community.html-9c40a227.js",revision:"0d9c41c19e11c637ce88503501117a70"},{url:"assets/component-f5334886.js",revision:"d78b09e5457eb2af82be35cd5b697538"},{url:"assets/dashboard.html-1af9e950.js",revision:"0f07c8cb8dbdd2f68c882de35b615bc2"},{url:"assets/dashboard.html-22f8c199.js",revision:"fad5e19f66a4a3d3f59e9f7d08403d59"},{url:"assets/dashboard.html-2499d39c.js",revision:"3c27a70183e9922586ca23705be64128"},{url:"assets/dashboard.html-edf5d612.js",revision:"8c7ba16404b7d0af8da201524dcc5f90"},{url:"assets/develop-plan.html-6e34fa5d.js",revision:"3b32de3c97f7b1dff3b874951310dafa"},{url:"assets/develop-plan.html-a870290b.js",revision:"1e830251f967557f0da931f9c8217b2c"},{url:"assets/develop-plan.html-b8a06082.js",revision:"f9548d8eaa2b77265d42772eb948f104"},{url:"assets/develop-plan.html-ee596474.js",revision:"5fe253aeb0b7fb7626677f2dad92d1ef"},{url:"assets/docsearch-1d421ddb.js",revision:"582ce23a3b7a09735ae2e462904b2e3a"},{url:"assets/exceptions.html-0b83e1ba.js",revision:"f01b23c2cb544a4bc1e32f006528f5e6"},{url:"assets/exceptions.html-28bfe411.js",revision:"f11cad710c3a72813227f4fb84fa3f06"},{url:"assets/exceptions.html-44fb45f0.js",revision:"a1e9a6acb15a92d57d899f192fc00ad8"},{url:"assets/exceptions.html-8157d8c2.js",revision:"7754ffd0bf01f4d3058f9b5ef33abae4"},{url:"assets/FAQ.html-5ad59832.js",revision:"105d2cd8f9ad1ef3c1a3a8a11926b73a"},{url:"assets/FAQ.html-66aa7aa0.js",revision:"75f61c9ef43bf6599fa34f7555b783d2"},{url:"assets/FAQ.html-77b73d8a.js",revision:"5f8536f9094b1fc106a9a9b9c53b0116"},{url:"assets/FAQ.html-d6fcc8da.js",revision:"868527bf6635cd1bc2e6d7dc63a5e661"},{url:"assets/Gacha-system-and-export-principal.html-35e3a9ed.js",revision:"3c3638cd085125cce959f5e7ebeef47c"},{url:"assets/Gacha-system-and-export-principal.html-83eada9b.js",revision:"2311b1684e782f1bd33a43e7a1f48748"},{url:"assets/Gacha-system-and-export-principal.html-cf17a2c3.js",revision:"eecbaf6026c57f9c740c930e5d69c6ea"},{url:"assets/Gacha-system-and-export-principal.html-e5e06d6b.js",revision:"2311b1684e782f1bd33a43e7a1f48748"},{url:"assets/game-launcher.html-2f704534.js",revision:"2acd0549caa8fcd668a351e09a0bb9d9"},{url:"assets/game-launcher.html-69f961e4.js",revision:"4487a2843502a9a0bcf1ce754eb08cf3"},{url:"assets/game-launcher.html-73a05aec.js",revision:"d58458894e81aa3441d2eb6dd5f4f0e4"},{url:"assets/game-launcher.html-d7fe4a18.js",revision:"dd23b3227981340087b22714ecc8b427"},{url:"assets/get-stoken-cookie-from-the-third-party.html-7c0dd482.js",revision:"49984ee127d6f7b192a8ecd02a6cf5b0"},{url:"assets/get-stoken-cookie-from-the-third-party.html-a4274fa1.js",revision:"06b896c9ca11d40d6529e58f6be784f6"},{url:"assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js",revision:"deea5313a5ce087dd326a1e7566a21a8"},{url:"assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js",revision:"d45c9547e7b7e0e7e3f4e6064d259c3e"},{url:"assets/hutao-API.html-238785b2.js",revision:"5d598650629fc3a791aa56f22d89949f"},{url:"assets/hutao-API.html-85c59718.js",revision:"e8e622cc08c4d2c10a277ec9d3522984"},{url:"assets/hutao-API.html-cef8eefd.js",revision:"7d5c7035c763842a59516927435a16a7"},{url:"assets/hutao-API.html-f49eaf10.js",revision:"c6d787c20eac6fd22e1b5e5769264b17"},{url:"assets/hutao-settings.html-2b8d08a8.js",revision:"4b8a46de6b4f547813085033f5fa93e9"},{url:"assets/hutao-settings.html-4c5f1089.js",revision:"8318ec71a83b0301776bf57c68789768"},{url:"assets/hutao-settings.html-912ef253.js",revision:"9ea4dac748e8cf9e42eedd24dd13d469"},{url:"assets/hutao-settings.html-ef1abfbf.js",revision:"ddc0ff2936c92cc611b383fb220e3ef6"},{url:"assets/i18n.html-5fe8fe46.js",revision:"264355f7d45903e4eda0d77e4b7f6379"},{url:"assets/i18n.html-97547831.js",revision:"58c3f95f811971b5ba4a482dd59275b1"},{url:"assets/i18n.html-ce4441c1.js",revision:"768561dba6699f54184996383b1d90c4"},{url:"assets/i18n.html-d18b79eb.js",revision:"7e41d56063ae867172f4a8c25091d99d"},{url:"assets/index-d20b7d60.js",revision:"b9928e9aef81ab1d6d1efd40dcabbde1"},{url:"assets/index-e32a7948.js",revision:"46a193641571106d3b7b43f9bc2a2735"},{url:"assets/index.html-00dbcbea.js",revision:"d210a3ce6137937431084074f6f939ce"},{url:"assets/index.html-03a53c22.js",revision:"8154c9e0182da5c159c8323bf8cae5dd"},{url:"assets/index.html-20c8279c.js",revision:"b18e11fcfbde80295ae23690f908b046"},{url:"assets/index.html-3508ae45.js",revision:"db2f373063282d146f0911aaff2db3d7"},{url:"assets/index.html-3b8b0cf1.js",revision:"660443f27fef4a11a5ae0ada17547918"},{url:"assets/index.html-62b6158d.js",revision:"356ee0c4228da555cf4f4ba153b11ded"},{url:"assets/index.html-75933301.js",revision:"8cab336214a624b17cc2e48e05290a0a"},{url:"assets/index.html-7e4d27d7.js",revision:"b0dd8ba036725e3587f7a2176eb12eb6"},{url:"assets/index.html-81ae5447.js",revision:"3f1a3b276b71e6901ccb12a175832ec0"},{url:"assets/index.html-86b28290.js",revision:"bfabaf9e2d3ea388c4082de25b9d702e"},{url:"assets/index.html-95fa6e78.js",revision:"d62238b3f6ba7fd83b839f40a26a3a06"},{url:"assets/index.html-a28dd6fb.js",revision:"235a1fbacba5795ae9677c7df136342e"},{url:"assets/index.html-a2f7c506.js",revision:"5d01547723aebb08a4133a0b98e91c80"},{url:"assets/index.html-a856e4a5.js",revision:"ab31e269be2120a831cf8e8a93d73ebe"},{url:"assets/index.html-b2cf2c28.js",revision:"6abb654b8301097b7281bddab396b8c3"},{url:"assets/index.html-c6a3007c.js",revision:"6c9970a9bf258751bde92db440b091a0"},{url:"assets/index.html-c943e40a.js",revision:"1513c4e9f05d366715dfce2a3f109b6e"},{url:"assets/index.html-cdb106dd.js",revision:"7c46c0cddb4d42d35e1e04ba3e3c6ce8"},{url:"assets/index.html-d6e83c3d.js",revision:"13968c17652c04898d776da5ad28dfd2"},{url:"assets/index.html-ead0711a.js",revision:"de8de7dab77f3d8beb7480ed2831da3a"},{url:"assets/index.html-f454d95a.js",revision:"7c29c2a556d56800be5c02060ff9f2f8"},{url:"assets/index.html-f78206be.js",revision:"74e992174bca22a9d3ad730428e9006b"},{url:"assets/known-issue.html-511bf0e2.js",revision:"2c6190d749b672cac821275e4e4797bd"},{url:"assets/known-issue.html-83423385.js",revision:"0de7bbdf52e6831fa1935a936c091e83"},{url:"assets/known-issue.html-dd2d4e95.js",revision:"0f1b6bf93269006beeba2354a1f682c6"},{url:"assets/known-issue.html-e05471ea.js",revision:"05c4937cb6f3e9065b3a419c0f87dfc5"},{url:"assets/menu.html-26e19633.js",revision:"34fffcbaabd99270b419ef17543cc3c3"},{url:"assets/menu.html-4da31906.js",revision:"eb6130f4f24c2569dab7efd960cd3a89"},{url:"assets/menu.html-68335df6.js",revision:"d79f120d3345a72ee8d61ed02b90378f"},{url:"assets/menu.html-965d73a2.js",revision:"5399ca8d6222a3674948e587c3fe4164"},{url:"assets/mhy-account-switch.html-466b8430.js",revision:"60d59c88201cce3d9afeae7191113eb8"},{url:"assets/mhy-account-switch.html-60e9ae96.js",revision:"d4727212b5000bbf00db788abbf91ad9"},{url:"assets/mhy-account-switch.html-d18a8f83.js",revision:"9ae7862a248d06f12ecf91e3a9285ee8"},{url:"assets/mhy-account-switch.html-e7ebd02a.js",revision:"2e8614fc463066cb249d484ba57be7a4"},{url:"assets/photoswipe.esm-2450701e.js",revision:"55b8097e827163367e1bb02833c0acec"},{url:"assets/platform.html-1b433c3a.js",revision:"e444d9e4888255c03ae1bf0872ee3896"},{url:"assets/platform.html-49d33fba.js",revision:"05173a0920002e9dc32b4fafcdde9ca7"},{url:"assets/platform.html-d1e289f7.js",revision:"52f30b1101a7c8a7f4c69cfb2bd84c53"},{url:"assets/platform.html-edbc69ea.js",revision:"f8b61ad5d0be0a40f2a6a5601d08c9f8"},{url:"assets/plugin-vue_export-helper-c27b6911.js",revision:"25e3a5dcaf00fb2b1ba0c8ecea6d2560"},{url:"assets/privacy-notice.html-09b28c46.js",revision:"8d86defeb2ffb2bbd2ab027fec4f9d49"},{url:"assets/privacy-notice.html-43cfb1bb.js",revision:"9be956a558889716e99868524e59c7ec"},{url:"assets/privacy-notice.html-a6ebdd0b.js",revision:"f7cd61402645d8e9313a9af06df5a5ed"},{url:"assets/privacy-notice.html-dd02ae9b.js",revision:"59c79c37e11a65e07d7f848a8a3bfdd2"},{url:"assets/project.html-0bc86b04.js",revision:"6f945cbc1ff7247c44241775f7e1ad4d"},{url:"assets/project.html-41f89b8c.js",revision:"b246e924371a91d70a305078ce6b9156"},{url:"assets/project.html-bb79e8cb.js",revision:"4d6a61ed525a436112ccc2ea157799f2"},{url:"assets/project.html-e96a464c.js",revision:"330d9b45e33693425ad0d5e719efd571"},{url:"assets/quick-start.html-6fea300a.js",revision:"47591c3a02f9db6f4a37f550bcf803a6"},{url:"assets/quick-start.html-a1f49e05.js",revision:"64c665a21edaa64cb268ad0d2e83b27b"},{url:"assets/quick-start.html-d52f76e6.js",revision:"ed5f81dc0039d1b07dc59b2aba763c29"},{url:"assets/quick-start.html-f98b97d0.js",revision:"b5db3d02b454719ab24314acfd0a9229"},{url:"assets/real-time-notes.html-007137ef.js",revision:"880fd34450f89543ee25db38507bc3e5"},{url:"assets/real-time-notes.html-485bd43b.js",revision:"884c66ac9381707e2aaf4628a916816a"},{url:"assets/real-time-notes.html-4ffa95f3.js",revision:"8c07d8cf042ce5f82e4413f1fe850581"},{url:"assets/real-time-notes.html-5c1061b7.js",revision:"7c692f9b5ccd124f3d521924f2014380"},{url:"assets/side-load.html-70ce2289.js",revision:"c91347f55238d0ed74031df7402ca0a9"},{url:"assets/side-load.html-9cc44de3.js",revision:"b9588a8824b262e5f4c9f9a04f2b5f22"},{url:"assets/side-load.html-a906d0ea.js",revision:"c91347f55238d0ed74031df7402ca0a9"},{url:"assets/side-load.html-e04e7234.js",revision:"010f1b65a4e1468a0ee25d71827ce299"},{url:"assets/star-request.html-2ad37f25.js",revision:"19ad6f641682199034539ee6494e764e"},{url:"assets/star-request.html-4cb88d32.js",revision:"9a2c74d42fd22a93ed691e07eeefde02"},{url:"assets/star-request.html-9743779e.js",revision:"fb5b269c2d81213157f0e2d36303897e"},{url:"assets/star-request.html-a806e1e3.js",revision:"ecdee1a9f120c469476bfb0ca6107920"},{url:"assets/style-0ffdefae.css",revision:"f0ecc447db4dc229cc2422625590c6e8"},{url:"assets/style-e9220a04.js",revision:"b40fc755bce11d2ee5ec6b814c802a65"},{url:"assets/symposium1.html-4e5cad0b.js",revision:"d3373281946ee24b18be4bba5c34cc72"},{url:"assets/symposium1.html-fcc754a5.js",revision:"ee5fa52dc6077cac042b0b51cafa5e7c"},{url:"assets/symposium2.html-a3e8732e.js",revision:"cc676f42577c10fbab8d06581e636203"},{url:"assets/symposium2.html-f0280800.js",revision:"50b99173532a5452dd7f6cbbd98e349b"},{url:"assets/tos.html-09235935.js",revision:"a4db382bafa2e5c697ab410898692754"},{url:"assets/tos.html-1d3cfa11.js",revision:"553acfbf7408a1880e3da4da260db303"},{url:"assets/tos.html-2697c794.js",revision:"33bebab8b98ef06466117d15c4bb90fa"},{url:"assets/tos.html-c988e41e.js",revision:"90628a9d58b890ea2eea8827c002c458"},{url:"assets/uninstall.html-08d679ee.js",revision:"571378dc8821d370e603a25f5789bac4"},{url:"assets/uninstall.html-5f140ecf.js",revision:"8729152f610a7b3dee10ddcea166542b"},{url:"assets/uninstall.html-e98d2832.js",revision:"3f53fc617a33113c342de94e2c4b875c"},{url:"assets/uninstall.html-f3e75a7a.js",revision:"571bc3e5d2eb1134737ba9132bbef16d"},{url:"assets/update-log.html-2a70e7c3.js",revision:"0723f31ca0bfeb8a0f148759181ce779"},{url:"assets/update-log.html-60a35ed5.js",revision:"e5cb5c0114b8838f58e97ab13e99d065"},{url:"assets/update-log.html-6c5c4cdc.js",revision:"6cc40cdb2e977f509713c9639240435b"},{url:"assets/update-log.html-c0111bae.js",revision:"991a035091e205371ebaf5ccf5675901"},{url:"assets/waline-meta-a31b78ed.js",revision:"4003eee21f800e7d4662bda5f1875047"},{url:"assets/weapon-wiki.html-38a68cbb.js",revision:"dd8f6ad83d6297598e821737dc045545"},{url:"assets/weapon-wiki.html-5722a870.js",revision:"cc2cc392a122b9ebc57366c0fe755464"},{url:"assets/weapon-wiki.html-8a2211f1.js",revision:"44e260e7c38d9737ef7b5295d6d16ebd"},{url:"assets/weapon-wiki.html-facdc2a9.js",revision:"f1dc4cb726cc5a697800ee40ce4d141a"},{url:"assets/wish-export.html-0e6f1983.js",revision:"ad4b7a893fca1cb9b4f79fc62b4169cb"},{url:"assets/wish-export.html-4db41232.js",revision:"4d035fa976338d5ce1278a0b5b3d0470"},{url:"assets/wish-export.html-8c8f98f3.js",revision:"2d3ce85c06faddb47877d18ae4b765e0"},{url:"assets/wish-export.html-e367596f.js",revision:"0538df7a95bd1e92ce85ccedbc8c0119"},{url:"fontlist/demo.css",revision:"c470b271d96640b2d527d864d838d550"},{url:"fontlist/iconfont.css",revision:"47f9418c83e516e2f92fffa11e06ff9f"},{url:"fontlist/iconfont.js",revision:"787c135beed0ae93c145ae2de3cbfefe"},{url:"fontlist/iconfont.ttf",revision:"6d90ead1de012ad82077c2a898dcc136"},{url:"fontlist/iconfont.woff",revision:"c50542a321198d3a49a56ba9f50923f6"},{url:"fontlist/iconfont.woff2",revision:"a917e0d0985aaabe49b9bd5ad48bd270"},{url:"upload-abyss-data.js",revision:"e3c5df0c4de06f2bd47d19d95f478c8e"},{url:"index.html",revision:"f75ff6d7a7b7a450278ed5ba9dd1ceca"},{url:"404.html",revision:"7e18ed07538a56387d89190757f424d9"},{url:"images/202209/Achievements.png",revision:"067cff70d53656b2e3e878df949823f6"},{url:"images/202209/HeroImageLogo.png",revision:"fb8507e3eaccbd6408874dcf10973d62"},{url:"images/202209/IndexIconAchievements.png",revision:"ea409f5a87b1c7666121ead606e323ef"},{url:"images/202209/IndexIconCharacters.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202209/IndexIconMihoyoBBS.png",revision:"b9c679888c01a50e6b126f9dae0d50d1"},{url:"images/202209/IndexIconWeapons.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202209/IndexIconWish.png",revision:"0b4e790c4cb1eeba7473ad8e1b14ac23"},{url:"images/202209/SGLogoUpgrade64.png",revision:"1b95d8969049e0b31c0d89eeface0b89"},{url:"images/202209/wish-export.png",revision:"ef07fa6499c22d00c78dc182ad3cbab5"},{url:"images/202210/1.1.7-Update-Error-Fix.png",revision:"1f1958198ca4510713648cff6c43fcd5"},{url:"images/202210/1.1.7-Update-Error.png",revision:"3e04317e974e1cec550096b7ea88d708"},{url:"images/202210/account-upgrade.png",revision:"52b1c5695109142c9496bb6e14a9c2d1"},{url:"images/202210/HttpRequestException.jpg",revision:"878a57ab9fe5de6b774d7e91776987ab"},{url:"images/202210/hutao-api-submit.png",revision:"6a201ae85f470f3bb70e868137524830"},{url:"images/202210/hutao-api.png",revision:"5bd260fe9b5c18a41765c1126cfd91ff"},{url:"images/202210/hutao-login.png",revision:"21af43587bacf56bf40cadc884381c49"},{url:"images/202211/character-data-display.png",revision:"0cd41e7a02ee864ff12f0f69c926b79f"},{url:"images/202211/character-data-logo.png",revision:"04cc28833ed4c2108ba215fbc33325bf"},{url:"images/202211/character-wiki-logo.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202211/character-wiki.png",revision:"002ee49f019709942ae1b3dc541d05e4"},{url:"images/202211/game-launcher-logo.png",revision:"a5a5d6d5a09926689f8a61db4b24c2df"},{url:"images/202211/hutao-api-logo.png",revision:"feb8ae3e6c4099e0b7804e3d7ebda7c2"},{url:"images/202211/wish-export.png",revision:"c695c558c514d9aa0d3903d5c41f63b9"},{url:"images/202301/achievement.png",revision:"42fd361ea1336daf7cd33bf187e62fa2"},{url:"images/202301/dev-plan-logo.png",revision:"5d69e71ecd6e1b553395e2306fff5f34"},{url:"images/202301/live-stat-tracking-logo.png",revision:"23a418c1d29dbbf0142085f2e8ad464d"},{url:"images/202301/spiral-abyss-record-logo.png",revision:"6d213b91803137c600bb27b973a7ee25"},{url:"images/202301/weapon-wiki-logo.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"pwa-icon/chrome-144.png",revision:"24dd1f208ca63bef5c104659ae25c0e8"},{url:"pwa-icon/chrome-192.png",revision:"984b2a8dfd5dfb1cecfb73bc940bf070"},{url:"pwa-icon/chrome-48.png",revision:"a424e2c1b597db8e320cb3184c78ae23"},{url:"pwa-icon/chrome-512.png",revision:"06ecfca5b4c625d580608e04850f9f29"},{url:"pwa-icon/chrome-72.png",revision:"b9c2449570f275fd5dd34b887aa04697"},{url:"pwa-icon/chrome-96.png",revision:"64e04325061a5fa6de31f4b52bb7498f"}],{}),e.cleanupOutdatedCaches()})); +if(!self.define){let e,s={};const a=(a,i)=>(a=new URL(a+".js",i).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(i,c)=>{const d=e||("document"in self?document.currentScript.src:"")||location.href;if(s[d])return;let r={};const t=e=>a(e,d),f={module:{uri:d},exports:r,require:t};s[d]=Promise.all(i.map((e=>f[e]||t(e)))).then((e=>(c(...e),r)))}}define(["./workbox-cc9d59eb"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"assets/404.html-392add74.js",revision:"9bb763c4c841ee09970e5cdeb67eb6ce"},{url:"assets/404.html-d1c4e391.js",revision:"1e04ecc6de9e08849b63bb3a52a707d3"},{url:"assets/achievements.html-111df6f1.js",revision:"cd16ee917485a365c33af54aecbcb665"},{url:"assets/achievements.html-7e466c8a.js",revision:"38d58fb41bb5c2f37650175b1f136f2a"},{url:"assets/achievements.html-9522b5f8.js",revision:"2b96b0be1fda9aca42579d222becda5a"},{url:"assets/achievements.html-c513ff85.js",revision:"13257bfad14af1e5690c6d22726e7986"},{url:"assets/app-dddc4fb8.js",revision:"b6eb596015bf4ee40008f8825b1d3dd2"},{url:"assets/bug-report.html-4e9d3984.js",revision:"b5a7581c7b405c25b12161a867bb8a2d"},{url:"assets/bug-report.html-a5769e9d.js",revision:"f31b647e646f17becdec17eaf6886c9e"},{url:"assets/bug-report.html-be008402.js",revision:"abf7a78f0ac7aa1be94d5c6cbe93a779"},{url:"assets/bug-report.html-c921e978.js",revision:"fb265c6edef93fcd2426430df9f1d4aa"},{url:"assets/character-data.html-37eb819e.js",revision:"3e5b569274862284c047f18ec908841b"},{url:"assets/character-data.html-a8002393.js",revision:"2254e17d350c40120ae8d189e7df1cb4"},{url:"assets/character-data.html-bcb1d08c.js",revision:"db4689f23536bd666f3fffdceb2f5a6e"},{url:"assets/character-data.html-d19c231c.js",revision:"242f391edb9a6cd8acf12141cef45385"},{url:"assets/character-wiki.html-05003755.js",revision:"ab52b322ed26a90820f8f108704122bb"},{url:"assets/character-wiki.html-47702f57.js",revision:"b4760002d1579c1b0a7ffada4283143f"},{url:"assets/character-wiki.html-6f6ce2c3.js",revision:"7a2ea3fd8c7dd73fb1b1be46970c3a42"},{url:"assets/character-wiki.html-bff675d5.js",revision:"50874c928f91842cc937aa04116068fd"},{url:"assets/community.html-38c7becc.js",revision:"84d7a3611cff3b914e16743cfede8143"},{url:"assets/community.html-5d989c81.js",revision:"18bf908184bfc9210c4ab9b6c9dabbf1"},{url:"assets/community.html-77c874f1.js",revision:"80385e26f23e97b5719d3404dfbb7434"},{url:"assets/community.html-8264ee0b.js",revision:"e9ee1ce788ea63a9685db2bf0f1bb561"},{url:"assets/component-0205f978.js",revision:"c38646165227e365b8737fb783b2c900"},{url:"assets/dashboard.html-22f8c199.js",revision:"fad5e19f66a4a3d3f59e9f7d08403d59"},{url:"assets/dashboard.html-2499d39c.js",revision:"3c27a70183e9922586ca23705be64128"},{url:"assets/dashboard.html-98b51e54.js",revision:"7d1d51e36a4d440bc6e0b84283ef77a9"},{url:"assets/dashboard.html-a23f348c.js",revision:"c919eaa0d80a984d66646113b5550c21"},{url:"assets/develop-plan.html-6e34fa5d.js",revision:"3b32de3c97f7b1dff3b874951310dafa"},{url:"assets/develop-plan.html-a870290b.js",revision:"1e830251f967557f0da931f9c8217b2c"},{url:"assets/develop-plan.html-e7652959.js",revision:"e98ff1ca7f1019c27baef566d27c1a26"},{url:"assets/develop-plan.html-e7866253.js",revision:"c4e78a95901b820c9e76815abc987241"},{url:"assets/docsearch-1d421ddb.js",revision:"582ce23a3b7a09735ae2e462904b2e3a"},{url:"assets/exceptions.html-44b0164a.js",revision:"5643b2ce6615a5a46f608c3749d52d4c"},{url:"assets/exceptions.html-44fb45f0.js",revision:"a1e9a6acb15a92d57d899f192fc00ad8"},{url:"assets/exceptions.html-8157d8c2.js",revision:"7754ffd0bf01f4d3058f9b5ef33abae4"},{url:"assets/exceptions.html-ef765121.js",revision:"beaab0bf557279326b74d06f90af1899"},{url:"assets/FAQ.html-20216826.js",revision:"0116e4a52aceee7b00598ee061f77144"},{url:"assets/FAQ.html-77b73d8a.js",revision:"5f8536f9094b1fc106a9a9b9c53b0116"},{url:"assets/FAQ.html-c926dafc.js",revision:"a1c612751fbc25e213758ddafcebf920"},{url:"assets/FAQ.html-d6fcc8da.js",revision:"868527bf6635cd1bc2e6d7dc63a5e661"},{url:"assets/Gacha-system-and-export-principal.html-35e3a9ed.js",revision:"3c3638cd085125cce959f5e7ebeef47c"},{url:"assets/Gacha-system-and-export-principal.html-ad2b3c2d.js",revision:"3c3294da7820cf857f3680309a46200b"},{url:"assets/Gacha-system-and-export-principal.html-cf17a2c3.js",revision:"eecbaf6026c57f9c740c930e5d69c6ea"},{url:"assets/Gacha-system-and-export-principal.html-eff6c983.js",revision:"3c3294da7820cf857f3680309a46200b"},{url:"assets/game-launcher.html-0c7b2319.js",revision:"22d181909eb2a3d69b31c2e579e0c207"},{url:"assets/game-launcher.html-2f704534.js",revision:"2acd0549caa8fcd668a351e09a0bb9d9"},{url:"assets/game-launcher.html-56b7cc24.js",revision:"7e5030254ad7f950babfbb439bd3413d"},{url:"assets/game-launcher.html-d7fe4a18.js",revision:"dd23b3227981340087b22714ecc8b427"},{url:"assets/get-stoken-cookie-from-the-third-party.html-7c0dd482.js",revision:"49984ee127d6f7b192a8ecd02a6cf5b0"},{url:"assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js",revision:"c7f16efc787ee3a73d4ddfbf92025584"},{url:"assets/get-stoken-cookie-from-the-third-party.html-a4274fa1.js",revision:"06b896c9ca11d40d6529e58f6be784f6"},{url:"assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js",revision:"e2b749b5020a696067a244090949a17f"},{url:"assets/hutao-API.html-238785b2.js",revision:"5d598650629fc3a791aa56f22d89949f"},{url:"assets/hutao-API.html-6a0f3bd7.js",revision:"1955d3c2191cdd139c524c60cc81b944"},{url:"assets/hutao-API.html-861299fa.js",revision:"e22a16d62726bee9818bde67266bb158"},{url:"assets/hutao-API.html-f49eaf10.js",revision:"c6d787c20eac6fd22e1b5e5769264b17"},{url:"assets/hutao-settings.html-4c5f1089.js",revision:"8318ec71a83b0301776bf57c68789768"},{url:"assets/hutao-settings.html-67e3962d.js",revision:"1dbfcd08fcc8f63c16a27eb36d1929db"},{url:"assets/hutao-settings.html-912ef253.js",revision:"9ea4dac748e8cf9e42eedd24dd13d469"},{url:"assets/hutao-settings.html-ec4d694d.js",revision:"6729a0c2257feb5c5d89f29e4e6aee94"},{url:"assets/i18n.html-2617d448.js",revision:"b73013881af3ae93ef2ac13cdb701882"},{url:"assets/i18n.html-5a20b497.js",revision:"173deeed764420a6250e7c3b787c60a0"},{url:"assets/i18n.html-5fe8fe46.js",revision:"264355f7d45903e4eda0d77e4b7f6379"},{url:"assets/i18n.html-ce4441c1.js",revision:"768561dba6699f54184996383b1d90c4"},{url:"assets/index-d20b7d60.js",revision:"b9928e9aef81ab1d6d1efd40dcabbde1"},{url:"assets/index-e32a7948.js",revision:"46a193641571106d3b7b43f9bc2a2735"},{url:"assets/index.html-00dbcbea.js",revision:"d210a3ce6137937431084074f6f939ce"},{url:"assets/index.html-20c8279c.js",revision:"b18e11fcfbde80295ae23690f908b046"},{url:"assets/index.html-30bc5ccf.js",revision:"a680c10a5696857968eddd76f52e4956"},{url:"assets/index.html-3b8b0cf1.js",revision:"660443f27fef4a11a5ae0ada17547918"},{url:"assets/index.html-3f0b9626.js",revision:"66051e808bb91a9e905be842f0a339d1"},{url:"assets/index.html-3ff3e6c5.js",revision:"bbd6c2f2af10beba68b1f22c72547b58"},{url:"assets/index.html-62b6158d.js",revision:"356ee0c4228da555cf4f4ba153b11ded"},{url:"assets/index.html-62cd4613.js",revision:"20c1d5df42a2298d720e69f6e23fead4"},{url:"assets/index.html-686501f4.js",revision:"588453247102137f6869ef2d8908bffb"},{url:"assets/index.html-6d28017a.js",revision:"021c1408e35cb804d78cee1d0d1e2f29"},{url:"assets/index.html-75933301.js",revision:"8cab336214a624b17cc2e48e05290a0a"},{url:"assets/index.html-7e4d27d7.js",revision:"b0dd8ba036725e3587f7a2176eb12eb6"},{url:"assets/index.html-8057fd2e.js",revision:"957806feaedad5cdb7d82062725ffcae"},{url:"assets/index.html-a5685402.js",revision:"9f3d9c80708f1b78232a786743bf2601"},{url:"assets/index.html-af8a954b.js",revision:"925357aa36438ff8fc4243b2c3bea8e2"},{url:"assets/index.html-b2cf2c28.js",revision:"6abb654b8301097b7281bddab396b8c3"},{url:"assets/index.html-c943e40a.js",revision:"1513c4e9f05d366715dfce2a3f109b6e"},{url:"assets/index.html-d6e83c3d.js",revision:"13968c17652c04898d776da5ad28dfd2"},{url:"assets/index.html-df914bf0.js",revision:"5505d7ac01bb903c3e8cc0ab0bdc7ff2"},{url:"assets/index.html-ead0711a.js",revision:"de8de7dab77f3d8beb7480ed2831da3a"},{url:"assets/index.html-f78206be.js",revision:"74e992174bca22a9d3ad730428e9006b"},{url:"assets/index.html-fcaf2f1e.js",revision:"dd626151477ff60672c54035df1b6ac3"},{url:"assets/known-issue.html-511bf0e2.js",revision:"2c6190d749b672cac821275e4e4797bd"},{url:"assets/known-issue.html-dfcd3928.js",revision:"bcb2741960f7fd8113697a831abb2db8"},{url:"assets/known-issue.html-eb48207a.js",revision:"af80e8ee8b1bef5600c5922b45e8ee47"},{url:"assets/known-issue.html-f9e5e987.js",revision:"de7119db874a60fd077c99ff07bd16e0"},{url:"assets/menu.html-26e19633.js",revision:"34fffcbaabd99270b419ef17543cc3c3"},{url:"assets/menu.html-663862c5.js",revision:"f41d30dad57e74b5c9d884c1e246b060"},{url:"assets/menu.html-68335df6.js",revision:"d79f120d3345a72ee8d61ed02b90378f"},{url:"assets/menu.html-f061a795.js",revision:"06a719d37d4b48364c29fdda78eabf71"},{url:"assets/mhy-account-switch.html-2d99275b.js",revision:"99dc5c8d384d3b0e52987bd2675523ac"},{url:"assets/mhy-account-switch.html-4fecf81c.js",revision:"e840201159e6aabcd44923d06b89326f"},{url:"assets/mhy-account-switch.html-60e9ae96.js",revision:"d4727212b5000bbf00db788abbf91ad9"},{url:"assets/mhy-account-switch.html-e7ebd02a.js",revision:"2e8614fc463066cb249d484ba57be7a4"},{url:"assets/photoswipe.esm-2450701e.js",revision:"55b8097e827163367e1bb02833c0acec"},{url:"assets/platform.html-1b433c3a.js",revision:"e444d9e4888255c03ae1bf0872ee3896"},{url:"assets/platform.html-311d9f9f.js",revision:"aab93b1c8a91bf3d767f07b9beb8e58e"},{url:"assets/platform.html-49d33fba.js",revision:"05173a0920002e9dc32b4fafcdde9ca7"},{url:"assets/platform.html-9c25e1ff.js",revision:"a9d0e7fdbb172569e0a1279b77198df2"},{url:"assets/plugin-vue_export-helper-c27b6911.js",revision:"25e3a5dcaf00fb2b1ba0c8ecea6d2560"},{url:"assets/privacy-notice.html-09b28c46.js",revision:"8d86defeb2ffb2bbd2ab027fec4f9d49"},{url:"assets/privacy-notice.html-43cfb1bb.js",revision:"9be956a558889716e99868524e59c7ec"},{url:"assets/privacy-notice.html-516ff78b.js",revision:"cbff1d9a75d24bf4bc51fb04025c644e"},{url:"assets/privacy-notice.html-91f130c3.js",revision:"bb2c5f63a75b8f961493d511957be0e8"},{url:"assets/project.html-001b8361.js",revision:"e8360a85b02f4fa33cb48139672b5cd4"},{url:"assets/project.html-41f89b8c.js",revision:"b246e924371a91d70a305078ce6b9156"},{url:"assets/project.html-d2f367cd.js",revision:"7f323f1836d2501dda01a5c52cfbcb25"},{url:"assets/project.html-e96a464c.js",revision:"330d9b45e33693425ad0d5e719efd571"},{url:"assets/quick-start.html-144d2db4.js",revision:"7b70a51489c98ba769975b220bc01110"},{url:"assets/quick-start.html-6fea300a.js",revision:"47591c3a02f9db6f4a37f550bcf803a6"},{url:"assets/quick-start.html-a1f49e05.js",revision:"64c665a21edaa64cb268ad0d2e83b27b"},{url:"assets/quick-start.html-d7922d91.js",revision:"66710dd584b756bd4f15a1544f7655f4"},{url:"assets/real-time-notes.html-007137ef.js",revision:"880fd34450f89543ee25db38507bc3e5"},{url:"assets/real-time-notes.html-4ffa95f3.js",revision:"8c07d8cf042ce5f82e4413f1fe850581"},{url:"assets/real-time-notes.html-76828791.js",revision:"c2fb341c3550594cc8eb9f089e1f5760"},{url:"assets/real-time-notes.html-bcb443a3.js",revision:"946b97ad860a1884daad9ce54df33023"},{url:"assets/side-load.html-14a04174.js",revision:"373a0c1fa35cae1cfd75108c548729c6"},{url:"assets/side-load.html-9b18c97a.js",revision:"373a0c1fa35cae1cfd75108c548729c6"},{url:"assets/side-load.html-9cc44de3.js",revision:"b9588a8824b262e5f4c9f9a04f2b5f22"},{url:"assets/side-load.html-e04e7234.js",revision:"010f1b65a4e1468a0ee25d71827ce299"},{url:"assets/star-request.html-219d2341.js",revision:"1547fddfbee9d8827f9ef4878817094d"},{url:"assets/star-request.html-2ad37f25.js",revision:"19ad6f641682199034539ee6494e764e"},{url:"assets/star-request.html-4cb88d32.js",revision:"9a2c74d42fd22a93ed691e07eeefde02"},{url:"assets/star-request.html-e3f26991.js",revision:"d2dc04efdf51a0dc7626f6dba00d798f"},{url:"assets/style-0ffdefae.css",revision:"f0ecc447db4dc229cc2422625590c6e8"},{url:"assets/style-e9220a04.js",revision:"b40fc755bce11d2ee5ec6b814c802a65"},{url:"assets/symposium1.html-be2a8ae0.js",revision:"dc89df27e920c168fbc8a83387519f3f"},{url:"assets/symposium1.html-fcc754a5.js",revision:"ee5fa52dc6077cac042b0b51cafa5e7c"},{url:"assets/symposium2.html-998a2702.js",revision:"e56bc0c958c6c451838176d0a74ffb89"},{url:"assets/symposium2.html-f0280800.js",revision:"50b99173532a5452dd7f6cbbd98e349b"},{url:"assets/tos.html-09235935.js",revision:"a4db382bafa2e5c697ab410898692754"},{url:"assets/tos.html-2697c794.js",revision:"33bebab8b98ef06466117d15c4bb90fa"},{url:"assets/tos.html-6bddfc88.js",revision:"5d2dda60e4fd92934e17afb725f226de"},{url:"assets/tos.html-afbf6e1f.js",revision:"eb97eebe322f9e29a638ee65f6eabe93"},{url:"assets/uninstall.html-a7db0295.js",revision:"cce9e4b1538c48e1af0ef7aedf0010a1"},{url:"assets/uninstall.html-e98d2832.js",revision:"3f53fc617a33113c342de94e2c4b875c"},{url:"assets/uninstall.html-f2a93a65.js",revision:"35047d46a639c803769a030fe18993db"},{url:"assets/uninstall.html-f3e75a7a.js",revision:"571bc3e5d2eb1134737ba9132bbef16d"},{url:"assets/update-log.html-191f389f.js",revision:"6df961e306f57982a7dd013ad6a115f3"},{url:"assets/update-log.html-2a70e7c3.js",revision:"0723f31ca0bfeb8a0f148759181ce779"},{url:"assets/update-log.html-60a35ed5.js",revision:"e5cb5c0114b8838f58e97ab13e99d065"},{url:"assets/update-log.html-ac46e1e5.js",revision:"de60cd47f5855de8bd173b1f7d52e158"},{url:"assets/waline-meta-a31b78ed.js",revision:"4003eee21f800e7d4662bda5f1875047"},{url:"assets/weapon-wiki.html-38a68cbb.js",revision:"dd8f6ad83d6297598e821737dc045545"},{url:"assets/weapon-wiki.html-5722a870.js",revision:"cc2cc392a122b9ebc57366c0fe755464"},{url:"assets/weapon-wiki.html-9ee4af63.js",revision:"60fb41330a8dae96349f416304d9cdd7"},{url:"assets/weapon-wiki.html-e83d3d04.js",revision:"d50d866038ced74b089dcb8046d7d785"},{url:"assets/wish-export.html-4db41232.js",revision:"4d035fa976338d5ce1278a0b5b3d0470"},{url:"assets/wish-export.html-9ad57251.js",revision:"56243573bba1504c7fafe7925937a619"},{url:"assets/wish-export.html-b9d2bc5b.js",revision:"b903ebf96878ea60e05b7bdc92c40090"},{url:"assets/wish-export.html-e367596f.js",revision:"0538df7a95bd1e92ce85ccedbc8c0119"},{url:"fontlist/demo.css",revision:"c470b271d96640b2d527d864d838d550"},{url:"fontlist/iconfont.css",revision:"47f9418c83e516e2f92fffa11e06ff9f"},{url:"fontlist/iconfont.js",revision:"787c135beed0ae93c145ae2de3cbfefe"},{url:"fontlist/iconfont.ttf",revision:"6d90ead1de012ad82077c2a898dcc136"},{url:"fontlist/iconfont.woff",revision:"c50542a321198d3a49a56ba9f50923f6"},{url:"fontlist/iconfont.woff2",revision:"a917e0d0985aaabe49b9bd5ad48bd270"},{url:"upload-abyss-data.js",revision:"e3c5df0c4de06f2bd47d19d95f478c8e"},{url:"index.html",revision:"139bbfdef5f2752d1a80479003ebac22"},{url:"404.html",revision:"4cc89d90134eb9535d8bfaf44446b1c1"},{url:"images/202209/Achievements.png",revision:"067cff70d53656b2e3e878df949823f6"},{url:"images/202209/HeroImageLogo.png",revision:"fb8507e3eaccbd6408874dcf10973d62"},{url:"images/202209/IndexIconAchievements.png",revision:"ea409f5a87b1c7666121ead606e323ef"},{url:"images/202209/IndexIconCharacters.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202209/IndexIconMihoyoBBS.png",revision:"b9c679888c01a50e6b126f9dae0d50d1"},{url:"images/202209/IndexIconWeapons.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202209/IndexIconWish.png",revision:"0b4e790c4cb1eeba7473ad8e1b14ac23"},{url:"images/202209/SGLogoUpgrade64.png",revision:"1b95d8969049e0b31c0d89eeface0b89"},{url:"images/202209/wish-export.png",revision:"ef07fa6499c22d00c78dc182ad3cbab5"},{url:"images/202210/1.1.7-Update-Error-Fix.png",revision:"1f1958198ca4510713648cff6c43fcd5"},{url:"images/202210/1.1.7-Update-Error.png",revision:"3e04317e974e1cec550096b7ea88d708"},{url:"images/202210/account-upgrade.png",revision:"52b1c5695109142c9496bb6e14a9c2d1"},{url:"images/202210/HttpRequestException.jpg",revision:"878a57ab9fe5de6b774d7e91776987ab"},{url:"images/202210/hutao-api-submit.png",revision:"6a201ae85f470f3bb70e868137524830"},{url:"images/202210/hutao-api.png",revision:"5bd260fe9b5c18a41765c1126cfd91ff"},{url:"images/202210/hutao-login.png",revision:"21af43587bacf56bf40cadc884381c49"},{url:"images/202211/character-data-display.png",revision:"0cd41e7a02ee864ff12f0f69c926b79f"},{url:"images/202211/character-data-logo.png",revision:"04cc28833ed4c2108ba215fbc33325bf"},{url:"images/202211/character-wiki-logo.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202211/character-wiki.png",revision:"002ee49f019709942ae1b3dc541d05e4"},{url:"images/202211/game-launcher-logo.png",revision:"a5a5d6d5a09926689f8a61db4b24c2df"},{url:"images/202211/hutao-api-logo.png",revision:"feb8ae3e6c4099e0b7804e3d7ebda7c2"},{url:"images/202211/wish-export.png",revision:"c695c558c514d9aa0d3903d5c41f63b9"},{url:"images/202301/achievement.png",revision:"42fd361ea1336daf7cd33bf187e62fa2"},{url:"images/202301/dev-plan-logo.png",revision:"5d69e71ecd6e1b553395e2306fff5f34"},{url:"images/202301/live-stat-tracking-logo.png",revision:"23a418c1d29dbbf0142085f2e8ad464d"},{url:"images/202301/spiral-abyss-record-logo.png",revision:"6d213b91803137c600bb27b973a7ee25"},{url:"images/202301/weapon-wiki-logo.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"pwa-icon/chrome-144.png",revision:"24dd1f208ca63bef5c104659ae25c0e8"},{url:"pwa-icon/chrome-192.png",revision:"984b2a8dfd5dfb1cecfb73bc940bf070"},{url:"pwa-icon/chrome-48.png",revision:"a424e2c1b597db8e320cb3184c78ae23"},{url:"pwa-icon/chrome-512.png",revision:"06ecfca5b4c625d580608e04850f9f29"},{url:"pwa-icon/chrome-72.png",revision:"b9c2449570f275fd5dd34b887aa04697"},{url:"pwa-icon/chrome-96.png",revision:"64e04325061a5fa6de31f4b52bb7498f"}],{}),e.cleanupOutdatedCaches()})); //# sourceMappingURL=service-worker.js.map diff --git a/service-worker.js.map b/service-worker.js.map index 8eba8aaff..e7d36abfa 100644 --- a/service-worker.js.map +++ b/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/4216df27e5523f0c2023fd4fc29c3f72/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-core@6.5.4/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@6.5.4/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@6.5.4/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/404.html-392add74.js\",\n \"revision\": \"9bb763c4c841ee09970e5cdeb67eb6ce\"\n },\n {\n \"url\": \"assets/404.html-55d1fae4.js\",\n \"revision\": \"fcbaf403b414d3b16235adb418ed8924\"\n },\n {\n \"url\": \"assets/achievements.html-0f803c5c.js\",\n \"revision\": \"a2ac799d3578f48aca834a986e3b917c\"\n },\n {\n \"url\": \"assets/achievements.html-193e97c2.js\",\n \"revision\": \"e6363027c22ed7414bd4e5c2c8f99fea\"\n },\n {\n \"url\": \"assets/achievements.html-7e466c8a.js\",\n \"revision\": \"38d58fb41bb5c2f37650175b1f136f2a\"\n },\n {\n \"url\": \"assets/achievements.html-c513ff85.js\",\n \"revision\": \"13257bfad14af1e5690c6d22726e7986\"\n },\n {\n \"url\": \"assets/app-1a16ab73.js\",\n \"revision\": \"ebfb1ad5060565d578c2cd33b7ffa1d0\"\n },\n {\n \"url\": \"assets/bug-report.html-310e0a0e.js\",\n \"revision\": \"7c5815f154709a89a466e552be4829dc\"\n },\n {\n \"url\": \"assets/bug-report.html-4e9d3984.js\",\n \"revision\": \"b5a7581c7b405c25b12161a867bb8a2d\"\n },\n {\n \"url\": \"assets/bug-report.html-7d6347dc.js\",\n \"revision\": \"930a43e6c54abe3cfd5752aef2830955\"\n },\n {\n \"url\": \"assets/bug-report.html-be008402.js\",\n \"revision\": \"abf7a78f0ac7aa1be94d5c6cbe93a779\"\n },\n {\n \"url\": \"assets/character-data.html-a8002393.js\",\n \"revision\": \"2254e17d350c40120ae8d189e7df1cb4\"\n },\n {\n \"url\": \"assets/character-data.html-c6df149c.js\",\n \"revision\": \"f54e5b22810c49fbdb5385cd1bacdddc\"\n },\n {\n \"url\": \"assets/character-data.html-d19c231c.js\",\n \"revision\": \"242f391edb9a6cd8acf12141cef45385\"\n },\n {\n \"url\": \"assets/character-data.html-e1b06baf.js\",\n \"revision\": \"3814fb4f045a914c8e43aaacabae58d9\"\n },\n {\n \"url\": \"assets/character-wiki.html-47702f57.js\",\n \"revision\": \"b4760002d1579c1b0a7ffada4283143f\"\n },\n {\n \"url\": \"assets/character-wiki.html-6f6ce2c3.js\",\n \"revision\": \"7a2ea3fd8c7dd73fb1b1be46970c3a42\"\n },\n {\n \"url\": \"assets/character-wiki.html-a47450c4.js\",\n \"revision\": \"66f55d6ee410d58ad5c14f8c0eb705d7\"\n },\n {\n \"url\": \"assets/character-wiki.html-eaa1cab6.js\",\n \"revision\": \"e8b4026cd99f10140aee0ce8d198baf2\"\n },\n {\n \"url\": \"assets/community.html-5ef2320d.js\",\n \"revision\": \"647985158e8f2878209a70fbfc05c94c\"\n },\n {\n \"url\": \"assets/community.html-77c874f1.js\",\n \"revision\": \"80385e26f23e97b5719d3404dfbb7434\"\n },\n {\n \"url\": \"assets/community.html-8264ee0b.js\",\n \"revision\": \"e9ee1ce788ea63a9685db2bf0f1bb561\"\n },\n {\n \"url\": \"assets/community.html-9c40a227.js\",\n \"revision\": \"0d9c41c19e11c637ce88503501117a70\"\n },\n {\n \"url\": \"assets/component-f5334886.js\",\n \"revision\": \"d78b09e5457eb2af82be35cd5b697538\"\n },\n {\n \"url\": \"assets/dashboard.html-1af9e950.js\",\n \"revision\": \"0f07c8cb8dbdd2f68c882de35b615bc2\"\n },\n {\n \"url\": \"assets/dashboard.html-22f8c199.js\",\n \"revision\": \"fad5e19f66a4a3d3f59e9f7d08403d59\"\n },\n {\n \"url\": \"assets/dashboard.html-2499d39c.js\",\n \"revision\": \"3c27a70183e9922586ca23705be64128\"\n },\n {\n \"url\": \"assets/dashboard.html-edf5d612.js\",\n \"revision\": \"8c7ba16404b7d0af8da201524dcc5f90\"\n },\n {\n \"url\": \"assets/develop-plan.html-6e34fa5d.js\",\n \"revision\": \"3b32de3c97f7b1dff3b874951310dafa\"\n },\n {\n \"url\": \"assets/develop-plan.html-a870290b.js\",\n \"revision\": \"1e830251f967557f0da931f9c8217b2c\"\n },\n {\n \"url\": \"assets/develop-plan.html-b8a06082.js\",\n \"revision\": \"f9548d8eaa2b77265d42772eb948f104\"\n },\n {\n \"url\": \"assets/develop-plan.html-ee596474.js\",\n \"revision\": \"5fe253aeb0b7fb7626677f2dad92d1ef\"\n },\n {\n \"url\": \"assets/docsearch-1d421ddb.js\",\n \"revision\": \"582ce23a3b7a09735ae2e462904b2e3a\"\n },\n {\n \"url\": \"assets/exceptions.html-0b83e1ba.js\",\n \"revision\": \"f01b23c2cb544a4bc1e32f006528f5e6\"\n },\n {\n \"url\": \"assets/exceptions.html-28bfe411.js\",\n \"revision\": \"f11cad710c3a72813227f4fb84fa3f06\"\n },\n {\n \"url\": \"assets/exceptions.html-44fb45f0.js\",\n \"revision\": \"a1e9a6acb15a92d57d899f192fc00ad8\"\n },\n {\n \"url\": \"assets/exceptions.html-8157d8c2.js\",\n \"revision\": \"7754ffd0bf01f4d3058f9b5ef33abae4\"\n },\n {\n \"url\": \"assets/FAQ.html-5ad59832.js\",\n \"revision\": \"105d2cd8f9ad1ef3c1a3a8a11926b73a\"\n },\n {\n \"url\": \"assets/FAQ.html-66aa7aa0.js\",\n \"revision\": \"75f61c9ef43bf6599fa34f7555b783d2\"\n },\n {\n \"url\": \"assets/FAQ.html-77b73d8a.js\",\n \"revision\": \"5f8536f9094b1fc106a9a9b9c53b0116\"\n },\n {\n \"url\": \"assets/FAQ.html-d6fcc8da.js\",\n \"revision\": \"868527bf6635cd1bc2e6d7dc63a5e661\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-35e3a9ed.js\",\n \"revision\": \"3c3638cd085125cce959f5e7ebeef47c\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-83eada9b.js\",\n \"revision\": \"2311b1684e782f1bd33a43e7a1f48748\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-cf17a2c3.js\",\n \"revision\": \"eecbaf6026c57f9c740c930e5d69c6ea\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-e5e06d6b.js\",\n \"revision\": \"2311b1684e782f1bd33a43e7a1f48748\"\n },\n {\n \"url\": \"assets/game-launcher.html-2f704534.js\",\n \"revision\": \"2acd0549caa8fcd668a351e09a0bb9d9\"\n },\n {\n \"url\": \"assets/game-launcher.html-69f961e4.js\",\n \"revision\": \"4487a2843502a9a0bcf1ce754eb08cf3\"\n },\n {\n \"url\": \"assets/game-launcher.html-73a05aec.js\",\n \"revision\": \"d58458894e81aa3441d2eb6dd5f4f0e4\"\n },\n {\n \"url\": \"assets/game-launcher.html-d7fe4a18.js\",\n \"revision\": \"dd23b3227981340087b22714ecc8b427\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-7c0dd482.js\",\n \"revision\": \"49984ee127d6f7b192a8ecd02a6cf5b0\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-a4274fa1.js\",\n \"revision\": \"06b896c9ca11d40d6529e58f6be784f6\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-ae6a95a9.js\",\n \"revision\": \"deea5313a5ce087dd326a1e7566a21a8\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-ec2799b4.js\",\n \"revision\": \"d45c9547e7b7e0e7e3f4e6064d259c3e\"\n },\n {\n \"url\": \"assets/hutao-API.html-238785b2.js\",\n \"revision\": \"5d598650629fc3a791aa56f22d89949f\"\n },\n {\n \"url\": \"assets/hutao-API.html-85c59718.js\",\n \"revision\": \"e8e622cc08c4d2c10a277ec9d3522984\"\n },\n {\n \"url\": \"assets/hutao-API.html-cef8eefd.js\",\n \"revision\": \"7d5c7035c763842a59516927435a16a7\"\n },\n {\n \"url\": \"assets/hutao-API.html-f49eaf10.js\",\n \"revision\": \"c6d787c20eac6fd22e1b5e5769264b17\"\n },\n {\n \"url\": \"assets/hutao-settings.html-2b8d08a8.js\",\n \"revision\": \"4b8a46de6b4f547813085033f5fa93e9\"\n },\n {\n \"url\": \"assets/hutao-settings.html-4c5f1089.js\",\n \"revision\": \"8318ec71a83b0301776bf57c68789768\"\n },\n {\n \"url\": \"assets/hutao-settings.html-912ef253.js\",\n \"revision\": \"9ea4dac748e8cf9e42eedd24dd13d469\"\n },\n {\n \"url\": \"assets/hutao-settings.html-ef1abfbf.js\",\n \"revision\": \"ddc0ff2936c92cc611b383fb220e3ef6\"\n },\n {\n \"url\": \"assets/i18n.html-5fe8fe46.js\",\n \"revision\": \"264355f7d45903e4eda0d77e4b7f6379\"\n },\n {\n \"url\": \"assets/i18n.html-97547831.js\",\n \"revision\": \"58c3f95f811971b5ba4a482dd59275b1\"\n },\n {\n \"url\": \"assets/i18n.html-ce4441c1.js\",\n \"revision\": \"768561dba6699f54184996383b1d90c4\"\n },\n {\n \"url\": \"assets/i18n.html-d18b79eb.js\",\n \"revision\": \"7e41d56063ae867172f4a8c25091d99d\"\n },\n {\n \"url\": \"assets/index-d20b7d60.js\",\n \"revision\": \"b9928e9aef81ab1d6d1efd40dcabbde1\"\n },\n {\n \"url\": \"assets/index-e32a7948.js\",\n \"revision\": \"46a193641571106d3b7b43f9bc2a2735\"\n },\n {\n \"url\": \"assets/index.html-00dbcbea.js\",\n \"revision\": \"d210a3ce6137937431084074f6f939ce\"\n },\n {\n \"url\": \"assets/index.html-03a53c22.js\",\n \"revision\": \"8154c9e0182da5c159c8323bf8cae5dd\"\n },\n {\n \"url\": \"assets/index.html-20c8279c.js\",\n \"revision\": \"b18e11fcfbde80295ae23690f908b046\"\n },\n {\n \"url\": \"assets/index.html-3508ae45.js\",\n \"revision\": \"db2f373063282d146f0911aaff2db3d7\"\n },\n {\n \"url\": \"assets/index.html-3b8b0cf1.js\",\n \"revision\": \"660443f27fef4a11a5ae0ada17547918\"\n },\n {\n \"url\": \"assets/index.html-62b6158d.js\",\n \"revision\": \"356ee0c4228da555cf4f4ba153b11ded\"\n },\n {\n \"url\": \"assets/index.html-75933301.js\",\n \"revision\": \"8cab336214a624b17cc2e48e05290a0a\"\n },\n {\n \"url\": \"assets/index.html-7e4d27d7.js\",\n \"revision\": \"b0dd8ba036725e3587f7a2176eb12eb6\"\n },\n {\n \"url\": \"assets/index.html-81ae5447.js\",\n \"revision\": \"3f1a3b276b71e6901ccb12a175832ec0\"\n },\n {\n \"url\": \"assets/index.html-86b28290.js\",\n \"revision\": \"bfabaf9e2d3ea388c4082de25b9d702e\"\n },\n {\n \"url\": \"assets/index.html-95fa6e78.js\",\n \"revision\": \"d62238b3f6ba7fd83b839f40a26a3a06\"\n },\n {\n \"url\": \"assets/index.html-a28dd6fb.js\",\n \"revision\": \"235a1fbacba5795ae9677c7df136342e\"\n },\n {\n \"url\": \"assets/index.html-a2f7c506.js\",\n \"revision\": \"5d01547723aebb08a4133a0b98e91c80\"\n },\n {\n \"url\": \"assets/index.html-a856e4a5.js\",\n \"revision\": \"ab31e269be2120a831cf8e8a93d73ebe\"\n },\n {\n \"url\": \"assets/index.html-b2cf2c28.js\",\n \"revision\": \"6abb654b8301097b7281bddab396b8c3\"\n },\n {\n \"url\": \"assets/index.html-c6a3007c.js\",\n \"revision\": \"6c9970a9bf258751bde92db440b091a0\"\n },\n {\n \"url\": \"assets/index.html-c943e40a.js\",\n \"revision\": \"1513c4e9f05d366715dfce2a3f109b6e\"\n },\n {\n \"url\": \"assets/index.html-cdb106dd.js\",\n \"revision\": \"7c46c0cddb4d42d35e1e04ba3e3c6ce8\"\n },\n {\n \"url\": \"assets/index.html-d6e83c3d.js\",\n \"revision\": \"13968c17652c04898d776da5ad28dfd2\"\n },\n {\n \"url\": \"assets/index.html-ead0711a.js\",\n \"revision\": \"de8de7dab77f3d8beb7480ed2831da3a\"\n },\n {\n \"url\": \"assets/index.html-f454d95a.js\",\n \"revision\": \"7c29c2a556d56800be5c02060ff9f2f8\"\n },\n {\n \"url\": \"assets/index.html-f78206be.js\",\n \"revision\": \"74e992174bca22a9d3ad730428e9006b\"\n },\n {\n \"url\": \"assets/known-issue.html-511bf0e2.js\",\n \"revision\": \"2c6190d749b672cac821275e4e4797bd\"\n },\n {\n \"url\": \"assets/known-issue.html-83423385.js\",\n \"revision\": \"0de7bbdf52e6831fa1935a936c091e83\"\n },\n {\n \"url\": \"assets/known-issue.html-dd2d4e95.js\",\n \"revision\": \"0f1b6bf93269006beeba2354a1f682c6\"\n },\n {\n \"url\": \"assets/known-issue.html-e05471ea.js\",\n \"revision\": \"05c4937cb6f3e9065b3a419c0f87dfc5\"\n },\n {\n \"url\": \"assets/menu.html-26e19633.js\",\n \"revision\": \"34fffcbaabd99270b419ef17543cc3c3\"\n },\n {\n \"url\": \"assets/menu.html-4da31906.js\",\n \"revision\": \"eb6130f4f24c2569dab7efd960cd3a89\"\n },\n {\n \"url\": \"assets/menu.html-68335df6.js\",\n \"revision\": \"d79f120d3345a72ee8d61ed02b90378f\"\n },\n {\n \"url\": \"assets/menu.html-965d73a2.js\",\n \"revision\": \"5399ca8d6222a3674948e587c3fe4164\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-466b8430.js\",\n \"revision\": \"60d59c88201cce3d9afeae7191113eb8\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-60e9ae96.js\",\n \"revision\": \"d4727212b5000bbf00db788abbf91ad9\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-d18a8f83.js\",\n \"revision\": \"9ae7862a248d06f12ecf91e3a9285ee8\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-e7ebd02a.js\",\n \"revision\": \"2e8614fc463066cb249d484ba57be7a4\"\n },\n {\n \"url\": \"assets/photoswipe.esm-2450701e.js\",\n \"revision\": \"55b8097e827163367e1bb02833c0acec\"\n },\n {\n \"url\": \"assets/platform.html-1b433c3a.js\",\n \"revision\": \"e444d9e4888255c03ae1bf0872ee3896\"\n },\n {\n \"url\": \"assets/platform.html-49d33fba.js\",\n \"revision\": \"05173a0920002e9dc32b4fafcdde9ca7\"\n },\n {\n \"url\": \"assets/platform.html-d1e289f7.js\",\n \"revision\": \"52f30b1101a7c8a7f4c69cfb2bd84c53\"\n },\n {\n \"url\": \"assets/platform.html-edbc69ea.js\",\n \"revision\": \"f8b61ad5d0be0a40f2a6a5601d08c9f8\"\n },\n {\n \"url\": \"assets/plugin-vue_export-helper-c27b6911.js\",\n \"revision\": \"25e3a5dcaf00fb2b1ba0c8ecea6d2560\"\n },\n {\n \"url\": \"assets/privacy-notice.html-09b28c46.js\",\n \"revision\": \"8d86defeb2ffb2bbd2ab027fec4f9d49\"\n },\n {\n \"url\": \"assets/privacy-notice.html-43cfb1bb.js\",\n \"revision\": \"9be956a558889716e99868524e59c7ec\"\n },\n {\n \"url\": \"assets/privacy-notice.html-a6ebdd0b.js\",\n \"revision\": \"f7cd61402645d8e9313a9af06df5a5ed\"\n },\n {\n \"url\": \"assets/privacy-notice.html-dd02ae9b.js\",\n \"revision\": \"59c79c37e11a65e07d7f848a8a3bfdd2\"\n },\n {\n \"url\": \"assets/project.html-0bc86b04.js\",\n \"revision\": \"6f945cbc1ff7247c44241775f7e1ad4d\"\n },\n {\n \"url\": \"assets/project.html-41f89b8c.js\",\n \"revision\": \"b246e924371a91d70a305078ce6b9156\"\n },\n {\n \"url\": \"assets/project.html-bb79e8cb.js\",\n \"revision\": \"4d6a61ed525a436112ccc2ea157799f2\"\n },\n {\n \"url\": \"assets/project.html-e96a464c.js\",\n \"revision\": \"330d9b45e33693425ad0d5e719efd571\"\n },\n {\n \"url\": \"assets/quick-start.html-6fea300a.js\",\n \"revision\": \"47591c3a02f9db6f4a37f550bcf803a6\"\n },\n {\n \"url\": \"assets/quick-start.html-a1f49e05.js\",\n \"revision\": \"64c665a21edaa64cb268ad0d2e83b27b\"\n },\n {\n \"url\": \"assets/quick-start.html-d52f76e6.js\",\n \"revision\": \"ed5f81dc0039d1b07dc59b2aba763c29\"\n },\n {\n \"url\": \"assets/quick-start.html-f98b97d0.js\",\n \"revision\": \"b5db3d02b454719ab24314acfd0a9229\"\n },\n {\n \"url\": \"assets/real-time-notes.html-007137ef.js\",\n \"revision\": \"880fd34450f89543ee25db38507bc3e5\"\n },\n {\n \"url\": \"assets/real-time-notes.html-485bd43b.js\",\n \"revision\": \"884c66ac9381707e2aaf4628a916816a\"\n },\n {\n \"url\": \"assets/real-time-notes.html-4ffa95f3.js\",\n \"revision\": \"8c07d8cf042ce5f82e4413f1fe850581\"\n },\n {\n \"url\": \"assets/real-time-notes.html-5c1061b7.js\",\n \"revision\": \"7c692f9b5ccd124f3d521924f2014380\"\n },\n {\n \"url\": \"assets/side-load.html-70ce2289.js\",\n \"revision\": \"c91347f55238d0ed74031df7402ca0a9\"\n },\n {\n \"url\": \"assets/side-load.html-9cc44de3.js\",\n \"revision\": \"b9588a8824b262e5f4c9f9a04f2b5f22\"\n },\n {\n \"url\": \"assets/side-load.html-a906d0ea.js\",\n \"revision\": \"c91347f55238d0ed74031df7402ca0a9\"\n },\n {\n \"url\": \"assets/side-load.html-e04e7234.js\",\n \"revision\": \"010f1b65a4e1468a0ee25d71827ce299\"\n },\n {\n \"url\": \"assets/star-request.html-2ad37f25.js\",\n \"revision\": \"19ad6f641682199034539ee6494e764e\"\n },\n {\n \"url\": \"assets/star-request.html-4cb88d32.js\",\n \"revision\": \"9a2c74d42fd22a93ed691e07eeefde02\"\n },\n {\n \"url\": \"assets/star-request.html-9743779e.js\",\n \"revision\": \"fb5b269c2d81213157f0e2d36303897e\"\n },\n {\n \"url\": \"assets/star-request.html-a806e1e3.js\",\n \"revision\": \"ecdee1a9f120c469476bfb0ca6107920\"\n },\n {\n \"url\": \"assets/style-0ffdefae.css\",\n \"revision\": \"f0ecc447db4dc229cc2422625590c6e8\"\n },\n {\n \"url\": \"assets/style-e9220a04.js\",\n \"revision\": \"b40fc755bce11d2ee5ec6b814c802a65\"\n },\n {\n \"url\": \"assets/symposium1.html-4e5cad0b.js\",\n \"revision\": \"d3373281946ee24b18be4bba5c34cc72\"\n },\n {\n \"url\": \"assets/symposium1.html-fcc754a5.js\",\n \"revision\": \"ee5fa52dc6077cac042b0b51cafa5e7c\"\n },\n {\n \"url\": \"assets/symposium2.html-a3e8732e.js\",\n \"revision\": \"cc676f42577c10fbab8d06581e636203\"\n },\n {\n \"url\": \"assets/symposium2.html-f0280800.js\",\n \"revision\": \"50b99173532a5452dd7f6cbbd98e349b\"\n },\n {\n \"url\": \"assets/tos.html-09235935.js\",\n \"revision\": \"a4db382bafa2e5c697ab410898692754\"\n },\n {\n \"url\": \"assets/tos.html-1d3cfa11.js\",\n \"revision\": \"553acfbf7408a1880e3da4da260db303\"\n },\n {\n \"url\": \"assets/tos.html-2697c794.js\",\n \"revision\": \"33bebab8b98ef06466117d15c4bb90fa\"\n },\n {\n \"url\": \"assets/tos.html-c988e41e.js\",\n \"revision\": \"90628a9d58b890ea2eea8827c002c458\"\n },\n {\n \"url\": \"assets/uninstall.html-08d679ee.js\",\n \"revision\": \"571378dc8821d370e603a25f5789bac4\"\n },\n {\n \"url\": \"assets/uninstall.html-5f140ecf.js\",\n \"revision\": \"8729152f610a7b3dee10ddcea166542b\"\n },\n {\n \"url\": \"assets/uninstall.html-e98d2832.js\",\n \"revision\": \"3f53fc617a33113c342de94e2c4b875c\"\n },\n {\n \"url\": \"assets/uninstall.html-f3e75a7a.js\",\n \"revision\": \"571bc3e5d2eb1134737ba9132bbef16d\"\n },\n {\n \"url\": \"assets/update-log.html-2a70e7c3.js\",\n \"revision\": \"0723f31ca0bfeb8a0f148759181ce779\"\n },\n {\n \"url\": \"assets/update-log.html-60a35ed5.js\",\n \"revision\": \"e5cb5c0114b8838f58e97ab13e99d065\"\n },\n {\n \"url\": \"assets/update-log.html-6c5c4cdc.js\",\n \"revision\": \"6cc40cdb2e977f509713c9639240435b\"\n },\n {\n \"url\": \"assets/update-log.html-c0111bae.js\",\n \"revision\": \"991a035091e205371ebaf5ccf5675901\"\n },\n {\n \"url\": \"assets/waline-meta-a31b78ed.js\",\n \"revision\": \"4003eee21f800e7d4662bda5f1875047\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-38a68cbb.js\",\n \"revision\": \"dd8f6ad83d6297598e821737dc045545\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-5722a870.js\",\n \"revision\": \"cc2cc392a122b9ebc57366c0fe755464\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-8a2211f1.js\",\n \"revision\": \"44e260e7c38d9737ef7b5295d6d16ebd\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-facdc2a9.js\",\n \"revision\": \"f1dc4cb726cc5a697800ee40ce4d141a\"\n },\n {\n \"url\": \"assets/wish-export.html-0e6f1983.js\",\n \"revision\": \"ad4b7a893fca1cb9b4f79fc62b4169cb\"\n },\n {\n \"url\": \"assets/wish-export.html-4db41232.js\",\n \"revision\": \"4d035fa976338d5ce1278a0b5b3d0470\"\n },\n {\n \"url\": \"assets/wish-export.html-8c8f98f3.js\",\n \"revision\": \"2d3ce85c06faddb47877d18ae4b765e0\"\n },\n {\n \"url\": \"assets/wish-export.html-e367596f.js\",\n \"revision\": \"0538df7a95bd1e92ce85ccedbc8c0119\"\n },\n {\n \"url\": \"fontlist/demo.css\",\n \"revision\": \"c470b271d96640b2d527d864d838d550\"\n },\n {\n \"url\": \"fontlist/iconfont.css\",\n \"revision\": \"47f9418c83e516e2f92fffa11e06ff9f\"\n },\n {\n \"url\": \"fontlist/iconfont.js\",\n \"revision\": \"787c135beed0ae93c145ae2de3cbfefe\"\n },\n {\n \"url\": \"fontlist/iconfont.ttf\",\n \"revision\": \"6d90ead1de012ad82077c2a898dcc136\"\n },\n {\n \"url\": \"fontlist/iconfont.woff\",\n \"revision\": \"c50542a321198d3a49a56ba9f50923f6\"\n },\n {\n \"url\": \"fontlist/iconfont.woff2\",\n \"revision\": \"a917e0d0985aaabe49b9bd5ad48bd270\"\n },\n {\n \"url\": \"upload-abyss-data.js\",\n \"revision\": \"e3c5df0c4de06f2bd47d19d95f478c8e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"f75ff6d7a7b7a450278ed5ba9dd1ceca\"\n },\n {\n \"url\": \"404.html\",\n \"revision\": \"7e18ed07538a56387d89190757f424d9\"\n },\n {\n \"url\": \"images/202209/Achievements.png\",\n \"revision\": \"067cff70d53656b2e3e878df949823f6\"\n },\n {\n \"url\": \"images/202209/HeroImageLogo.png\",\n \"revision\": \"fb8507e3eaccbd6408874dcf10973d62\"\n },\n {\n \"url\": \"images/202209/IndexIconAchievements.png\",\n \"revision\": \"ea409f5a87b1c7666121ead606e323ef\"\n },\n {\n \"url\": \"images/202209/IndexIconCharacters.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202209/IndexIconMihoyoBBS.png\",\n \"revision\": \"b9c679888c01a50e6b126f9dae0d50d1\"\n },\n {\n \"url\": \"images/202209/IndexIconWeapons.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202209/IndexIconWish.png\",\n \"revision\": \"0b4e790c4cb1eeba7473ad8e1b14ac23\"\n },\n {\n \"url\": \"images/202209/SGLogoUpgrade64.png\",\n \"revision\": \"1b95d8969049e0b31c0d89eeface0b89\"\n },\n {\n \"url\": \"images/202209/wish-export.png\",\n \"revision\": \"ef07fa6499c22d00c78dc182ad3cbab5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error-Fix.png\",\n \"revision\": \"1f1958198ca4510713648cff6c43fcd5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error.png\",\n \"revision\": \"3e04317e974e1cec550096b7ea88d708\"\n },\n {\n \"url\": \"images/202210/account-upgrade.png\",\n \"revision\": \"52b1c5695109142c9496bb6e14a9c2d1\"\n },\n {\n \"url\": \"images/202210/HttpRequestException.jpg\",\n \"revision\": \"878a57ab9fe5de6b774d7e91776987ab\"\n },\n {\n \"url\": \"images/202210/hutao-api-submit.png\",\n \"revision\": \"6a201ae85f470f3bb70e868137524830\"\n },\n {\n \"url\": \"images/202210/hutao-api.png\",\n \"revision\": \"5bd260fe9b5c18a41765c1126cfd91ff\"\n },\n {\n \"url\": \"images/202210/hutao-login.png\",\n \"revision\": \"21af43587bacf56bf40cadc884381c49\"\n },\n {\n \"url\": \"images/202211/character-data-display.png\",\n \"revision\": \"0cd41e7a02ee864ff12f0f69c926b79f\"\n },\n {\n \"url\": \"images/202211/character-data-logo.png\",\n \"revision\": \"04cc28833ed4c2108ba215fbc33325bf\"\n },\n {\n \"url\": \"images/202211/character-wiki-logo.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202211/character-wiki.png\",\n \"revision\": \"002ee49f019709942ae1b3dc541d05e4\"\n },\n {\n \"url\": \"images/202211/game-launcher-logo.png\",\n \"revision\": \"a5a5d6d5a09926689f8a61db4b24c2df\"\n },\n {\n \"url\": \"images/202211/hutao-api-logo.png\",\n \"revision\": \"feb8ae3e6c4099e0b7804e3d7ebda7c2\"\n },\n {\n \"url\": \"images/202211/wish-export.png\",\n \"revision\": \"c695c558c514d9aa0d3903d5c41f63b9\"\n },\n {\n \"url\": \"images/202301/achievement.png\",\n \"revision\": \"42fd361ea1336daf7cd33bf187e62fa2\"\n },\n {\n \"url\": \"images/202301/dev-plan-logo.png\",\n \"revision\": \"5d69e71ecd6e1b553395e2306fff5f34\"\n },\n {\n \"url\": \"images/202301/live-stat-tracking-logo.png\",\n \"revision\": \"23a418c1d29dbbf0142085f2e8ad464d\"\n },\n {\n \"url\": \"images/202301/spiral-abyss-record-logo.png\",\n \"revision\": \"6d213b91803137c600bb27b973a7ee25\"\n },\n {\n \"url\": \"images/202301/weapon-wiki-logo.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"pwa-icon/chrome-144.png\",\n \"revision\": \"24dd1f208ca63bef5c104659ae25c0e8\"\n },\n {\n \"url\": \"pwa-icon/chrome-192.png\",\n \"revision\": \"984b2a8dfd5dfb1cecfb73bc940bf070\"\n },\n {\n \"url\": \"pwa-icon/chrome-48.png\",\n \"revision\": \"a424e2c1b597db8e320cb3184c78ae23\"\n },\n {\n \"url\": \"pwa-icon/chrome-512.png\",\n \"revision\": \"06ecfca5b4c625d580608e04850f9f29\"\n },\n {\n \"url\": \"pwa-icon/chrome-72.png\",\n \"revision\": \"b9c2449570f275fd5dd34b887aa04697\"\n },\n {\n \"url\": \"pwa-icon/chrome-96.png\",\n \"revision\": \"64e04325061a5fa6de31f4b52bb7498f\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches"],"mappings":"0nBAqBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAGFC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/c14bd5e52fea2d95a5dc3ec88f3bc44c/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-core@6.5.4/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@6.5.4/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@6.5.4/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/404.html-392add74.js\",\n \"revision\": \"9bb763c4c841ee09970e5cdeb67eb6ce\"\n },\n {\n \"url\": \"assets/404.html-d1c4e391.js\",\n \"revision\": \"1e04ecc6de9e08849b63bb3a52a707d3\"\n },\n {\n \"url\": \"assets/achievements.html-111df6f1.js\",\n \"revision\": \"cd16ee917485a365c33af54aecbcb665\"\n },\n {\n \"url\": \"assets/achievements.html-7e466c8a.js\",\n \"revision\": \"38d58fb41bb5c2f37650175b1f136f2a\"\n },\n {\n \"url\": \"assets/achievements.html-9522b5f8.js\",\n \"revision\": \"2b96b0be1fda9aca42579d222becda5a\"\n },\n {\n \"url\": \"assets/achievements.html-c513ff85.js\",\n \"revision\": \"13257bfad14af1e5690c6d22726e7986\"\n },\n {\n \"url\": \"assets/app-dddc4fb8.js\",\n \"revision\": \"b6eb596015bf4ee40008f8825b1d3dd2\"\n },\n {\n \"url\": \"assets/bug-report.html-4e9d3984.js\",\n \"revision\": \"b5a7581c7b405c25b12161a867bb8a2d\"\n },\n {\n \"url\": \"assets/bug-report.html-a5769e9d.js\",\n \"revision\": \"f31b647e646f17becdec17eaf6886c9e\"\n },\n {\n \"url\": \"assets/bug-report.html-be008402.js\",\n \"revision\": \"abf7a78f0ac7aa1be94d5c6cbe93a779\"\n },\n {\n \"url\": \"assets/bug-report.html-c921e978.js\",\n \"revision\": \"fb265c6edef93fcd2426430df9f1d4aa\"\n },\n {\n \"url\": \"assets/character-data.html-37eb819e.js\",\n \"revision\": \"3e5b569274862284c047f18ec908841b\"\n },\n {\n \"url\": \"assets/character-data.html-a8002393.js\",\n \"revision\": \"2254e17d350c40120ae8d189e7df1cb4\"\n },\n {\n \"url\": \"assets/character-data.html-bcb1d08c.js\",\n \"revision\": \"db4689f23536bd666f3fffdceb2f5a6e\"\n },\n {\n \"url\": \"assets/character-data.html-d19c231c.js\",\n \"revision\": \"242f391edb9a6cd8acf12141cef45385\"\n },\n {\n \"url\": \"assets/character-wiki.html-05003755.js\",\n \"revision\": \"ab52b322ed26a90820f8f108704122bb\"\n },\n {\n \"url\": \"assets/character-wiki.html-47702f57.js\",\n \"revision\": \"b4760002d1579c1b0a7ffada4283143f\"\n },\n {\n \"url\": \"assets/character-wiki.html-6f6ce2c3.js\",\n \"revision\": \"7a2ea3fd8c7dd73fb1b1be46970c3a42\"\n },\n {\n \"url\": \"assets/character-wiki.html-bff675d5.js\",\n \"revision\": \"50874c928f91842cc937aa04116068fd\"\n },\n {\n \"url\": \"assets/community.html-38c7becc.js\",\n \"revision\": \"84d7a3611cff3b914e16743cfede8143\"\n },\n {\n \"url\": \"assets/community.html-5d989c81.js\",\n \"revision\": \"18bf908184bfc9210c4ab9b6c9dabbf1\"\n },\n {\n \"url\": \"assets/community.html-77c874f1.js\",\n \"revision\": \"80385e26f23e97b5719d3404dfbb7434\"\n },\n {\n \"url\": \"assets/community.html-8264ee0b.js\",\n \"revision\": \"e9ee1ce788ea63a9685db2bf0f1bb561\"\n },\n {\n \"url\": \"assets/component-0205f978.js\",\n \"revision\": \"c38646165227e365b8737fb783b2c900\"\n },\n {\n \"url\": \"assets/dashboard.html-22f8c199.js\",\n \"revision\": \"fad5e19f66a4a3d3f59e9f7d08403d59\"\n },\n {\n \"url\": \"assets/dashboard.html-2499d39c.js\",\n \"revision\": \"3c27a70183e9922586ca23705be64128\"\n },\n {\n \"url\": \"assets/dashboard.html-98b51e54.js\",\n \"revision\": \"7d1d51e36a4d440bc6e0b84283ef77a9\"\n },\n {\n \"url\": \"assets/dashboard.html-a23f348c.js\",\n \"revision\": \"c919eaa0d80a984d66646113b5550c21\"\n },\n {\n \"url\": \"assets/develop-plan.html-6e34fa5d.js\",\n \"revision\": \"3b32de3c97f7b1dff3b874951310dafa\"\n },\n {\n \"url\": \"assets/develop-plan.html-a870290b.js\",\n \"revision\": \"1e830251f967557f0da931f9c8217b2c\"\n },\n {\n \"url\": \"assets/develop-plan.html-e7652959.js\",\n \"revision\": \"e98ff1ca7f1019c27baef566d27c1a26\"\n },\n {\n \"url\": \"assets/develop-plan.html-e7866253.js\",\n \"revision\": \"c4e78a95901b820c9e76815abc987241\"\n },\n {\n \"url\": \"assets/docsearch-1d421ddb.js\",\n \"revision\": \"582ce23a3b7a09735ae2e462904b2e3a\"\n },\n {\n \"url\": \"assets/exceptions.html-44b0164a.js\",\n \"revision\": \"5643b2ce6615a5a46f608c3749d52d4c\"\n },\n {\n \"url\": \"assets/exceptions.html-44fb45f0.js\",\n \"revision\": \"a1e9a6acb15a92d57d899f192fc00ad8\"\n },\n {\n \"url\": \"assets/exceptions.html-8157d8c2.js\",\n \"revision\": \"7754ffd0bf01f4d3058f9b5ef33abae4\"\n },\n {\n \"url\": \"assets/exceptions.html-ef765121.js\",\n \"revision\": \"beaab0bf557279326b74d06f90af1899\"\n },\n {\n \"url\": \"assets/FAQ.html-20216826.js\",\n \"revision\": \"0116e4a52aceee7b00598ee061f77144\"\n },\n {\n \"url\": \"assets/FAQ.html-77b73d8a.js\",\n \"revision\": \"5f8536f9094b1fc106a9a9b9c53b0116\"\n },\n {\n \"url\": \"assets/FAQ.html-c926dafc.js\",\n \"revision\": \"a1c612751fbc25e213758ddafcebf920\"\n },\n {\n \"url\": \"assets/FAQ.html-d6fcc8da.js\",\n \"revision\": \"868527bf6635cd1bc2e6d7dc63a5e661\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-35e3a9ed.js\",\n \"revision\": \"3c3638cd085125cce959f5e7ebeef47c\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-ad2b3c2d.js\",\n \"revision\": \"3c3294da7820cf857f3680309a46200b\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-cf17a2c3.js\",\n \"revision\": \"eecbaf6026c57f9c740c930e5d69c6ea\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-eff6c983.js\",\n \"revision\": \"3c3294da7820cf857f3680309a46200b\"\n },\n {\n \"url\": \"assets/game-launcher.html-0c7b2319.js\",\n \"revision\": \"22d181909eb2a3d69b31c2e579e0c207\"\n },\n {\n \"url\": \"assets/game-launcher.html-2f704534.js\",\n \"revision\": \"2acd0549caa8fcd668a351e09a0bb9d9\"\n },\n {\n \"url\": \"assets/game-launcher.html-56b7cc24.js\",\n \"revision\": \"7e5030254ad7f950babfbb439bd3413d\"\n },\n {\n \"url\": \"assets/game-launcher.html-d7fe4a18.js\",\n \"revision\": \"dd23b3227981340087b22714ecc8b427\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-7c0dd482.js\",\n \"revision\": \"49984ee127d6f7b192a8ecd02a6cf5b0\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-8094a1b4.js\",\n \"revision\": \"c7f16efc787ee3a73d4ddfbf92025584\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-a4274fa1.js\",\n \"revision\": \"06b896c9ca11d40d6529e58f6be784f6\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-dcfed3ca.js\",\n \"revision\": \"e2b749b5020a696067a244090949a17f\"\n },\n {\n \"url\": \"assets/hutao-API.html-238785b2.js\",\n \"revision\": \"5d598650629fc3a791aa56f22d89949f\"\n },\n {\n \"url\": \"assets/hutao-API.html-6a0f3bd7.js\",\n \"revision\": \"1955d3c2191cdd139c524c60cc81b944\"\n },\n {\n \"url\": \"assets/hutao-API.html-861299fa.js\",\n \"revision\": \"e22a16d62726bee9818bde67266bb158\"\n },\n {\n \"url\": \"assets/hutao-API.html-f49eaf10.js\",\n \"revision\": \"c6d787c20eac6fd22e1b5e5769264b17\"\n },\n {\n \"url\": \"assets/hutao-settings.html-4c5f1089.js\",\n \"revision\": \"8318ec71a83b0301776bf57c68789768\"\n },\n {\n \"url\": \"assets/hutao-settings.html-67e3962d.js\",\n \"revision\": \"1dbfcd08fcc8f63c16a27eb36d1929db\"\n },\n {\n \"url\": \"assets/hutao-settings.html-912ef253.js\",\n \"revision\": \"9ea4dac748e8cf9e42eedd24dd13d469\"\n },\n {\n \"url\": \"assets/hutao-settings.html-ec4d694d.js\",\n \"revision\": \"6729a0c2257feb5c5d89f29e4e6aee94\"\n },\n {\n \"url\": \"assets/i18n.html-2617d448.js\",\n \"revision\": \"b73013881af3ae93ef2ac13cdb701882\"\n },\n {\n \"url\": \"assets/i18n.html-5a20b497.js\",\n \"revision\": \"173deeed764420a6250e7c3b787c60a0\"\n },\n {\n \"url\": \"assets/i18n.html-5fe8fe46.js\",\n \"revision\": \"264355f7d45903e4eda0d77e4b7f6379\"\n },\n {\n \"url\": \"assets/i18n.html-ce4441c1.js\",\n \"revision\": \"768561dba6699f54184996383b1d90c4\"\n },\n {\n \"url\": \"assets/index-d20b7d60.js\",\n \"revision\": \"b9928e9aef81ab1d6d1efd40dcabbde1\"\n },\n {\n \"url\": \"assets/index-e32a7948.js\",\n \"revision\": \"46a193641571106d3b7b43f9bc2a2735\"\n },\n {\n \"url\": \"assets/index.html-00dbcbea.js\",\n \"revision\": \"d210a3ce6137937431084074f6f939ce\"\n },\n {\n \"url\": \"assets/index.html-20c8279c.js\",\n \"revision\": \"b18e11fcfbde80295ae23690f908b046\"\n },\n {\n \"url\": \"assets/index.html-30bc5ccf.js\",\n \"revision\": \"a680c10a5696857968eddd76f52e4956\"\n },\n {\n \"url\": \"assets/index.html-3b8b0cf1.js\",\n \"revision\": \"660443f27fef4a11a5ae0ada17547918\"\n },\n {\n \"url\": \"assets/index.html-3f0b9626.js\",\n \"revision\": \"66051e808bb91a9e905be842f0a339d1\"\n },\n {\n \"url\": \"assets/index.html-3ff3e6c5.js\",\n \"revision\": \"bbd6c2f2af10beba68b1f22c72547b58\"\n },\n {\n \"url\": \"assets/index.html-62b6158d.js\",\n \"revision\": \"356ee0c4228da555cf4f4ba153b11ded\"\n },\n {\n \"url\": \"assets/index.html-62cd4613.js\",\n \"revision\": \"20c1d5df42a2298d720e69f6e23fead4\"\n },\n {\n \"url\": \"assets/index.html-686501f4.js\",\n \"revision\": \"588453247102137f6869ef2d8908bffb\"\n },\n {\n \"url\": \"assets/index.html-6d28017a.js\",\n \"revision\": \"021c1408e35cb804d78cee1d0d1e2f29\"\n },\n {\n \"url\": \"assets/index.html-75933301.js\",\n \"revision\": \"8cab336214a624b17cc2e48e05290a0a\"\n },\n {\n \"url\": \"assets/index.html-7e4d27d7.js\",\n \"revision\": \"b0dd8ba036725e3587f7a2176eb12eb6\"\n },\n {\n \"url\": \"assets/index.html-8057fd2e.js\",\n \"revision\": \"957806feaedad5cdb7d82062725ffcae\"\n },\n {\n \"url\": \"assets/index.html-a5685402.js\",\n \"revision\": \"9f3d9c80708f1b78232a786743bf2601\"\n },\n {\n \"url\": \"assets/index.html-af8a954b.js\",\n \"revision\": \"925357aa36438ff8fc4243b2c3bea8e2\"\n },\n {\n \"url\": \"assets/index.html-b2cf2c28.js\",\n \"revision\": \"6abb654b8301097b7281bddab396b8c3\"\n },\n {\n \"url\": \"assets/index.html-c943e40a.js\",\n \"revision\": \"1513c4e9f05d366715dfce2a3f109b6e\"\n },\n {\n \"url\": \"assets/index.html-d6e83c3d.js\",\n \"revision\": \"13968c17652c04898d776da5ad28dfd2\"\n },\n {\n \"url\": \"assets/index.html-df914bf0.js\",\n \"revision\": \"5505d7ac01bb903c3e8cc0ab0bdc7ff2\"\n },\n {\n \"url\": \"assets/index.html-ead0711a.js\",\n \"revision\": \"de8de7dab77f3d8beb7480ed2831da3a\"\n },\n {\n \"url\": \"assets/index.html-f78206be.js\",\n \"revision\": \"74e992174bca22a9d3ad730428e9006b\"\n },\n {\n \"url\": \"assets/index.html-fcaf2f1e.js\",\n \"revision\": \"dd626151477ff60672c54035df1b6ac3\"\n },\n {\n \"url\": \"assets/known-issue.html-511bf0e2.js\",\n \"revision\": \"2c6190d749b672cac821275e4e4797bd\"\n },\n {\n \"url\": \"assets/known-issue.html-dfcd3928.js\",\n \"revision\": \"bcb2741960f7fd8113697a831abb2db8\"\n },\n {\n \"url\": \"assets/known-issue.html-eb48207a.js\",\n \"revision\": \"af80e8ee8b1bef5600c5922b45e8ee47\"\n },\n {\n \"url\": \"assets/known-issue.html-f9e5e987.js\",\n \"revision\": \"de7119db874a60fd077c99ff07bd16e0\"\n },\n {\n \"url\": \"assets/menu.html-26e19633.js\",\n \"revision\": \"34fffcbaabd99270b419ef17543cc3c3\"\n },\n {\n \"url\": \"assets/menu.html-663862c5.js\",\n \"revision\": \"f41d30dad57e74b5c9d884c1e246b060\"\n },\n {\n \"url\": \"assets/menu.html-68335df6.js\",\n \"revision\": \"d79f120d3345a72ee8d61ed02b90378f\"\n },\n {\n \"url\": \"assets/menu.html-f061a795.js\",\n \"revision\": \"06a719d37d4b48364c29fdda78eabf71\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-2d99275b.js\",\n \"revision\": \"99dc5c8d384d3b0e52987bd2675523ac\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-4fecf81c.js\",\n \"revision\": \"e840201159e6aabcd44923d06b89326f\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-60e9ae96.js\",\n \"revision\": \"d4727212b5000bbf00db788abbf91ad9\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-e7ebd02a.js\",\n \"revision\": \"2e8614fc463066cb249d484ba57be7a4\"\n },\n {\n \"url\": \"assets/photoswipe.esm-2450701e.js\",\n \"revision\": \"55b8097e827163367e1bb02833c0acec\"\n },\n {\n \"url\": \"assets/platform.html-1b433c3a.js\",\n \"revision\": \"e444d9e4888255c03ae1bf0872ee3896\"\n },\n {\n \"url\": \"assets/platform.html-311d9f9f.js\",\n \"revision\": \"aab93b1c8a91bf3d767f07b9beb8e58e\"\n },\n {\n \"url\": \"assets/platform.html-49d33fba.js\",\n \"revision\": \"05173a0920002e9dc32b4fafcdde9ca7\"\n },\n {\n \"url\": \"assets/platform.html-9c25e1ff.js\",\n \"revision\": \"a9d0e7fdbb172569e0a1279b77198df2\"\n },\n {\n \"url\": \"assets/plugin-vue_export-helper-c27b6911.js\",\n \"revision\": \"25e3a5dcaf00fb2b1ba0c8ecea6d2560\"\n },\n {\n \"url\": \"assets/privacy-notice.html-09b28c46.js\",\n \"revision\": \"8d86defeb2ffb2bbd2ab027fec4f9d49\"\n },\n {\n \"url\": \"assets/privacy-notice.html-43cfb1bb.js\",\n \"revision\": \"9be956a558889716e99868524e59c7ec\"\n },\n {\n \"url\": \"assets/privacy-notice.html-516ff78b.js\",\n \"revision\": \"cbff1d9a75d24bf4bc51fb04025c644e\"\n },\n {\n \"url\": \"assets/privacy-notice.html-91f130c3.js\",\n \"revision\": \"bb2c5f63a75b8f961493d511957be0e8\"\n },\n {\n \"url\": \"assets/project.html-001b8361.js\",\n \"revision\": \"e8360a85b02f4fa33cb48139672b5cd4\"\n },\n {\n \"url\": \"assets/project.html-41f89b8c.js\",\n \"revision\": \"b246e924371a91d70a305078ce6b9156\"\n },\n {\n \"url\": \"assets/project.html-d2f367cd.js\",\n \"revision\": \"7f323f1836d2501dda01a5c52cfbcb25\"\n },\n {\n \"url\": \"assets/project.html-e96a464c.js\",\n \"revision\": \"330d9b45e33693425ad0d5e719efd571\"\n },\n {\n \"url\": \"assets/quick-start.html-144d2db4.js\",\n \"revision\": \"7b70a51489c98ba769975b220bc01110\"\n },\n {\n \"url\": \"assets/quick-start.html-6fea300a.js\",\n \"revision\": \"47591c3a02f9db6f4a37f550bcf803a6\"\n },\n {\n \"url\": \"assets/quick-start.html-a1f49e05.js\",\n \"revision\": \"64c665a21edaa64cb268ad0d2e83b27b\"\n },\n {\n \"url\": \"assets/quick-start.html-d7922d91.js\",\n \"revision\": \"66710dd584b756bd4f15a1544f7655f4\"\n },\n {\n \"url\": \"assets/real-time-notes.html-007137ef.js\",\n \"revision\": \"880fd34450f89543ee25db38507bc3e5\"\n },\n {\n \"url\": \"assets/real-time-notes.html-4ffa95f3.js\",\n \"revision\": \"8c07d8cf042ce5f82e4413f1fe850581\"\n },\n {\n \"url\": \"assets/real-time-notes.html-76828791.js\",\n \"revision\": \"c2fb341c3550594cc8eb9f089e1f5760\"\n },\n {\n \"url\": \"assets/real-time-notes.html-bcb443a3.js\",\n \"revision\": \"946b97ad860a1884daad9ce54df33023\"\n },\n {\n \"url\": \"assets/side-load.html-14a04174.js\",\n \"revision\": \"373a0c1fa35cae1cfd75108c548729c6\"\n },\n {\n \"url\": \"assets/side-load.html-9b18c97a.js\",\n \"revision\": \"373a0c1fa35cae1cfd75108c548729c6\"\n },\n {\n \"url\": \"assets/side-load.html-9cc44de3.js\",\n \"revision\": \"b9588a8824b262e5f4c9f9a04f2b5f22\"\n },\n {\n \"url\": \"assets/side-load.html-e04e7234.js\",\n \"revision\": \"010f1b65a4e1468a0ee25d71827ce299\"\n },\n {\n \"url\": \"assets/star-request.html-219d2341.js\",\n \"revision\": \"1547fddfbee9d8827f9ef4878817094d\"\n },\n {\n \"url\": \"assets/star-request.html-2ad37f25.js\",\n \"revision\": \"19ad6f641682199034539ee6494e764e\"\n },\n {\n \"url\": \"assets/star-request.html-4cb88d32.js\",\n \"revision\": \"9a2c74d42fd22a93ed691e07eeefde02\"\n },\n {\n \"url\": \"assets/star-request.html-e3f26991.js\",\n \"revision\": \"d2dc04efdf51a0dc7626f6dba00d798f\"\n },\n {\n \"url\": \"assets/style-0ffdefae.css\",\n \"revision\": \"f0ecc447db4dc229cc2422625590c6e8\"\n },\n {\n \"url\": \"assets/style-e9220a04.js\",\n \"revision\": \"b40fc755bce11d2ee5ec6b814c802a65\"\n },\n {\n \"url\": \"assets/symposium1.html-be2a8ae0.js\",\n \"revision\": \"dc89df27e920c168fbc8a83387519f3f\"\n },\n {\n \"url\": \"assets/symposium1.html-fcc754a5.js\",\n \"revision\": \"ee5fa52dc6077cac042b0b51cafa5e7c\"\n },\n {\n \"url\": \"assets/symposium2.html-998a2702.js\",\n \"revision\": \"e56bc0c958c6c451838176d0a74ffb89\"\n },\n {\n \"url\": \"assets/symposium2.html-f0280800.js\",\n \"revision\": \"50b99173532a5452dd7f6cbbd98e349b\"\n },\n {\n \"url\": \"assets/tos.html-09235935.js\",\n \"revision\": \"a4db382bafa2e5c697ab410898692754\"\n },\n {\n \"url\": \"assets/tos.html-2697c794.js\",\n \"revision\": \"33bebab8b98ef06466117d15c4bb90fa\"\n },\n {\n \"url\": \"assets/tos.html-6bddfc88.js\",\n \"revision\": \"5d2dda60e4fd92934e17afb725f226de\"\n },\n {\n \"url\": \"assets/tos.html-afbf6e1f.js\",\n \"revision\": \"eb97eebe322f9e29a638ee65f6eabe93\"\n },\n {\n \"url\": \"assets/uninstall.html-a7db0295.js\",\n \"revision\": \"cce9e4b1538c48e1af0ef7aedf0010a1\"\n },\n {\n \"url\": \"assets/uninstall.html-e98d2832.js\",\n \"revision\": \"3f53fc617a33113c342de94e2c4b875c\"\n },\n {\n \"url\": \"assets/uninstall.html-f2a93a65.js\",\n \"revision\": \"35047d46a639c803769a030fe18993db\"\n },\n {\n \"url\": \"assets/uninstall.html-f3e75a7a.js\",\n \"revision\": \"571bc3e5d2eb1134737ba9132bbef16d\"\n },\n {\n \"url\": \"assets/update-log.html-191f389f.js\",\n \"revision\": \"6df961e306f57982a7dd013ad6a115f3\"\n },\n {\n \"url\": \"assets/update-log.html-2a70e7c3.js\",\n \"revision\": \"0723f31ca0bfeb8a0f148759181ce779\"\n },\n {\n \"url\": \"assets/update-log.html-60a35ed5.js\",\n \"revision\": \"e5cb5c0114b8838f58e97ab13e99d065\"\n },\n {\n \"url\": \"assets/update-log.html-ac46e1e5.js\",\n \"revision\": \"de60cd47f5855de8bd173b1f7d52e158\"\n },\n {\n \"url\": \"assets/waline-meta-a31b78ed.js\",\n \"revision\": \"4003eee21f800e7d4662bda5f1875047\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-38a68cbb.js\",\n \"revision\": \"dd8f6ad83d6297598e821737dc045545\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-5722a870.js\",\n \"revision\": \"cc2cc392a122b9ebc57366c0fe755464\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-9ee4af63.js\",\n \"revision\": \"60fb41330a8dae96349f416304d9cdd7\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-e83d3d04.js\",\n \"revision\": \"d50d866038ced74b089dcb8046d7d785\"\n },\n {\n \"url\": \"assets/wish-export.html-4db41232.js\",\n \"revision\": \"4d035fa976338d5ce1278a0b5b3d0470\"\n },\n {\n \"url\": \"assets/wish-export.html-9ad57251.js\",\n \"revision\": \"56243573bba1504c7fafe7925937a619\"\n },\n {\n \"url\": \"assets/wish-export.html-b9d2bc5b.js\",\n \"revision\": \"b903ebf96878ea60e05b7bdc92c40090\"\n },\n {\n \"url\": \"assets/wish-export.html-e367596f.js\",\n \"revision\": \"0538df7a95bd1e92ce85ccedbc8c0119\"\n },\n {\n \"url\": \"fontlist/demo.css\",\n \"revision\": \"c470b271d96640b2d527d864d838d550\"\n },\n {\n \"url\": \"fontlist/iconfont.css\",\n \"revision\": \"47f9418c83e516e2f92fffa11e06ff9f\"\n },\n {\n \"url\": \"fontlist/iconfont.js\",\n \"revision\": \"787c135beed0ae93c145ae2de3cbfefe\"\n },\n {\n \"url\": \"fontlist/iconfont.ttf\",\n \"revision\": \"6d90ead1de012ad82077c2a898dcc136\"\n },\n {\n \"url\": \"fontlist/iconfont.woff\",\n \"revision\": \"c50542a321198d3a49a56ba9f50923f6\"\n },\n {\n \"url\": \"fontlist/iconfont.woff2\",\n \"revision\": \"a917e0d0985aaabe49b9bd5ad48bd270\"\n },\n {\n \"url\": \"upload-abyss-data.js\",\n \"revision\": \"e3c5df0c4de06f2bd47d19d95f478c8e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"139bbfdef5f2752d1a80479003ebac22\"\n },\n {\n \"url\": \"404.html\",\n \"revision\": \"4cc89d90134eb9535d8bfaf44446b1c1\"\n },\n {\n \"url\": \"images/202209/Achievements.png\",\n \"revision\": \"067cff70d53656b2e3e878df949823f6\"\n },\n {\n \"url\": \"images/202209/HeroImageLogo.png\",\n \"revision\": \"fb8507e3eaccbd6408874dcf10973d62\"\n },\n {\n \"url\": \"images/202209/IndexIconAchievements.png\",\n \"revision\": \"ea409f5a87b1c7666121ead606e323ef\"\n },\n {\n \"url\": \"images/202209/IndexIconCharacters.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202209/IndexIconMihoyoBBS.png\",\n \"revision\": \"b9c679888c01a50e6b126f9dae0d50d1\"\n },\n {\n \"url\": \"images/202209/IndexIconWeapons.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202209/IndexIconWish.png\",\n \"revision\": \"0b4e790c4cb1eeba7473ad8e1b14ac23\"\n },\n {\n \"url\": \"images/202209/SGLogoUpgrade64.png\",\n \"revision\": \"1b95d8969049e0b31c0d89eeface0b89\"\n },\n {\n \"url\": \"images/202209/wish-export.png\",\n \"revision\": \"ef07fa6499c22d00c78dc182ad3cbab5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error-Fix.png\",\n \"revision\": \"1f1958198ca4510713648cff6c43fcd5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error.png\",\n \"revision\": \"3e04317e974e1cec550096b7ea88d708\"\n },\n {\n \"url\": \"images/202210/account-upgrade.png\",\n \"revision\": \"52b1c5695109142c9496bb6e14a9c2d1\"\n },\n {\n \"url\": \"images/202210/HttpRequestException.jpg\",\n \"revision\": \"878a57ab9fe5de6b774d7e91776987ab\"\n },\n {\n \"url\": \"images/202210/hutao-api-submit.png\",\n \"revision\": \"6a201ae85f470f3bb70e868137524830\"\n },\n {\n \"url\": \"images/202210/hutao-api.png\",\n \"revision\": \"5bd260fe9b5c18a41765c1126cfd91ff\"\n },\n {\n \"url\": \"images/202210/hutao-login.png\",\n \"revision\": \"21af43587bacf56bf40cadc884381c49\"\n },\n {\n \"url\": \"images/202211/character-data-display.png\",\n \"revision\": \"0cd41e7a02ee864ff12f0f69c926b79f\"\n },\n {\n \"url\": \"images/202211/character-data-logo.png\",\n \"revision\": \"04cc28833ed4c2108ba215fbc33325bf\"\n },\n {\n \"url\": \"images/202211/character-wiki-logo.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202211/character-wiki.png\",\n \"revision\": \"002ee49f019709942ae1b3dc541d05e4\"\n },\n {\n \"url\": \"images/202211/game-launcher-logo.png\",\n \"revision\": \"a5a5d6d5a09926689f8a61db4b24c2df\"\n },\n {\n \"url\": \"images/202211/hutao-api-logo.png\",\n \"revision\": \"feb8ae3e6c4099e0b7804e3d7ebda7c2\"\n },\n {\n \"url\": \"images/202211/wish-export.png\",\n \"revision\": \"c695c558c514d9aa0d3903d5c41f63b9\"\n },\n {\n \"url\": \"images/202301/achievement.png\",\n \"revision\": \"42fd361ea1336daf7cd33bf187e62fa2\"\n },\n {\n \"url\": \"images/202301/dev-plan-logo.png\",\n \"revision\": \"5d69e71ecd6e1b553395e2306fff5f34\"\n },\n {\n \"url\": \"images/202301/live-stat-tracking-logo.png\",\n \"revision\": \"23a418c1d29dbbf0142085f2e8ad464d\"\n },\n {\n \"url\": \"images/202301/spiral-abyss-record-logo.png\",\n \"revision\": \"6d213b91803137c600bb27b973a7ee25\"\n },\n {\n \"url\": \"images/202301/weapon-wiki-logo.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"pwa-icon/chrome-144.png\",\n \"revision\": \"24dd1f208ca63bef5c104659ae25c0e8\"\n },\n {\n \"url\": \"pwa-icon/chrome-192.png\",\n \"revision\": \"984b2a8dfd5dfb1cecfb73bc940bf070\"\n },\n {\n \"url\": \"pwa-icon/chrome-48.png\",\n \"revision\": \"a424e2c1b597db8e320cb3184c78ae23\"\n },\n {\n \"url\": \"pwa-icon/chrome-512.png\",\n \"revision\": \"06ecfca5b4c625d580608e04850f9f29\"\n },\n {\n \"url\": \"pwa-icon/chrome-72.png\",\n \"revision\": \"b9c2449570f275fd5dd34b887aa04697\"\n },\n {\n \"url\": \"pwa-icon/chrome-96.png\",\n \"revision\": \"64e04325061a5fa6de31f4b52bb7498f\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches"],"mappings":"0nBAqBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAGFC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index a5675ef27..4ccfae596 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,3 +1,3 @@ -https://hut.ao/en/2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/community.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/i18n.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/project.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/quick-start.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/side-load.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/star-request.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/zh/2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/community.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/i18n.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/project.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/quick-start.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/side-load.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/star-request.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/en/advanced/FAQ.html2023-05-09T07:15:54.000Zweeklyhttps://hut.ao/en/advanced/Gacha-system-and-export-principal.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/advanced/exceptions.html2023-05-14T07:02:32.000Zweeklyhttps://hut.ao/en/advanced/get-stoken-cookie-from-the-third-party.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/advanced/known-issue.html2023-05-29T09:46:47.000Zweeklyhttps://hut.ao/en/advanced/uninstall.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/development/2023-06-03T00:06:23.000Zweeklyhttps://hut.ao/en/development/platform.html2023-06-03T00:06:23.000Zweeklyhttps://hut.ao/en/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/features/achievements.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/character-data.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/character-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/dashboard.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/develop-plan.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/game-launcher.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/hutao-API.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/hutao-settings.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/mhy-account-switch.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/real-time-notes.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/weapon-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/wish-export.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/statements/bug-report.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/privacy-notice.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/tos.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/update-log.html2023-05-28T01:19:16.000Zweeklyhttps://hut.ao/zh/advanced/FAQ.html2023-05-24T04:47:23.000Zweeklyhttps://hut.ao/zh/advanced/Gacha-system-and-export-principal.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/advanced/exceptions.html2023-05-14T07:02:32.000Zweeklyhttps://hut.ao/zh/advanced/get-stoken-cookie-from-the-third-party.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/advanced/known-issue.html2023-06-04T07:20:04.000Zweeklyhttps://hut.ao/zh/advanced/uninstall.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/development/2023-06-02T03:35:43.000Zweeklyhttps://hut.ao/zh/development/platform.html2023-06-02T03:35:43.000Zweeklyhttps://hut.ao/zh/development/symposium1.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/development/symposium2.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/features/achievements.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/character-data.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/character-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/dashboard.html2023-05-13T01:37:45.000Zweeklyhttps://hut.ao/zh/features/develop-plan.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/game-launcher.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/hutao-API.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/hutao-settings.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/mhy-account-switch.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/real-time-notes.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/zh/features/weapon-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/wish-export.html2023-06-05T02:19:16.000Zweeklyhttps://hut.ao/zh/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/statements/bug-report.html2023-05-24T03:37:28.000Zweeklyhttps://hut.ao/zh/statements/privacy-notice.html2023-05-24T04:47:23.000Zweeklyhttps://hut.ao/zh/statements/tos.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/statements/update-log.html2023-05-28T01:19:16.000Zweeklyhttps://hut.ao/weekly \ No newline at end of file +https://hut.ao/en/2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/community.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/i18n.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/project.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/quick-start.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/side-load.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/star-request.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/zh/2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/community.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/i18n.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/project.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/quick-start.html2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/side-load.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/star-request.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/en/advanced/FAQ.html2023-05-09T07:15:54.000Zweeklyhttps://hut.ao/en/advanced/Gacha-system-and-export-principal.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/advanced/exceptions.html2023-05-14T07:02:32.000Zweeklyhttps://hut.ao/en/advanced/get-stoken-cookie-from-the-third-party.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/advanced/known-issue.html2023-05-29T09:46:47.000Zweeklyhttps://hut.ao/en/advanced/uninstall.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/development/2023-06-03T00:06:23.000Zweeklyhttps://hut.ao/en/development/platform.html2023-06-03T00:06:23.000Zweeklyhttps://hut.ao/en/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/features/achievements.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/character-data.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/character-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/dashboard.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/develop-plan.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/game-launcher.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/hutao-API.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/hutao-settings.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/mhy-account-switch.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/real-time-notes.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/en/features/weapon-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/features/wish-export.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/en/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/statements/bug-report.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/privacy-notice.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/tos.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/statements/update-log.html2023-05-28T01:19:16.000Zweeklyhttps://hut.ao/zh/advanced/FAQ.html2023-05-24T04:47:23.000Zweeklyhttps://hut.ao/zh/advanced/Gacha-system-and-export-principal.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/advanced/exceptions.html2023-05-14T07:02:32.000Zweeklyhttps://hut.ao/zh/advanced/get-stoken-cookie-from-the-third-party.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/advanced/known-issue.html2023-06-06T13:34:07.000Zweeklyhttps://hut.ao/zh/advanced/uninstall.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/development/2023-06-02T03:35:43.000Zweeklyhttps://hut.ao/zh/development/platform.html2023-06-02T03:35:43.000Zweeklyhttps://hut.ao/zh/development/symposium1.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/development/symposium2.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/features/achievements.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/character-data.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/character-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/dashboard.html2023-05-13T01:37:45.000Zweeklyhttps://hut.ao/zh/features/develop-plan.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/game-launcher.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/hutao-API.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/hutao-settings.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/mhy-account-switch.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/real-time-notes.html2023-05-14T07:02:59.000Zweeklyhttps://hut.ao/zh/features/weapon-wiki.html2023-05-13T01:38:15.000Zweeklyhttps://hut.ao/zh/features/wish-export.html2023-06-05T02:19:16.000Zweeklyhttps://hut.ao/zh/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/statements/bug-report.html2023-05-24T03:37:28.000Zweeklyhttps://hut.ao/zh/statements/privacy-notice.html2023-05-24T04:47:23.000Zweeklyhttps://hut.ao/zh/statements/tos.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/statements/update-log.html2023-05-28T01:19:16.000Zweeklyhttps://hut.ao/weekly \ No newline at end of file diff --git a/zh/advanced/FAQ.html b/zh/advanced/FAQ.html index 9914f0f1a..f142f9ef9 100644 --- a/zh/advanced/FAQ.html +++ b/zh/advanced/FAQ.html @@ -31,12 +31,12 @@ } - +

        常见问题

        DGP-StudioFAQ大约 5 分钟

        常见问题

        如何创建胡桃的桌面快捷方式

        • Win+R 呼出运行窗口,在窗口中输入shell:AppsFolderRun
        • Windows 会弹出应用程序目录,找到胡桃工具箱
        • 右键,点击创建快捷方式
        • 根据提示操作你就可以获得一个桌面快捷方式了

        如何添加一个默认以管理员方式运行的快捷方式

        基本原理:使用下方的 PowerShell 脚本可以以管理员方式运行胡桃

        Start-Process shell:AppsFolder\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
         
        • 保存胡桃工具箱的 Logo 资源
        • 在桌面点击右键,选择新建 -> 快捷方式
        • 请键入对象的位置中直接输入:
          powershell -Command "Start-Process shell:AppsFolder\60568DGPStudio.SnapHutao_ebfp3nyc27j86!App -verb runas
         
        • 将快捷方式命名为你需要的名称,比如Snap Hutao
        • 确认创建,此时你会在桌面得到一个有 PowerShell 图标的快捷方式
        • 右键该快捷方式,点击属性
          • 运行方式修改为最小化
          • 点击更改图标,选择浏览,并选中刚刚下载的图标
        • 这样你就获得了胡桃工具箱的桌面快捷方式,并且运行它将直接以管理员模式运行
          • 你也可以将固定到任务栏或磁贴区

        如何让胡桃工具箱开机自动启动

        • 请参考如下思路
          • 可以自行创建一个批处理文件,内容参考此 issueopen in new window中,令胡桃以管理员模式直接运行的命令。
          • 设置一个计划任务程序令上述批处理文件开机自启,或将上述批处理文件加入启动项
        • 或有其他令胡桃工具箱可开机自启的思路,可自行探索

        如何通过胡桃工具箱快速地启动游戏

        • 在主程序中正确设置高级启动器功能

        • 将胡桃工具箱在系统中固定在快速启动栏中

        • 在快速启动栏中右键胡桃应用程序

          quick-start

        • 选择启动游戏即可

        如何通过网络代理使用胡桃工具箱

        参考 HttpRequestException 错误 文档

        为什么程序会出现乱码现象

        • 当用户在 Windows 10 下使用胡桃且发现有乱码情况时:
          • 可以下载 Segoe Fluent Icons字体
          • 安装时选择为系统所有用户安装,即可解决问题
        • 您可以从 微软官方open in new window下载到该字体文件

        为什么会弹出需要使用新应用以打开的对话框

        uninstall-error

        如在卸载胡桃工具箱后出现如上图所示的需要使用新应用以打开此 hutao 链接,说明没有按文档要求在卸载前清除实时便笺定时任务。 请根据文档在设置中清除定时任务后再卸载胡桃工具箱。

        为什么米游社帐号登录状态经常失效,添加的帐号消失

        • 我们通过储存帐号的米游社 Cookie 来维持登录状态。
        • 但是当用户在浏览器或其它设备上注销帐号后, 维持登录状态的 Cookie 将失效
        • 这会导致胡桃工具箱上的米游社帐号在启动后被自动移除。
        • 此情况也可能因为网络连接问题导致无法检查 Cookie 有效性,故出现此情况后请优先重启胡桃工具箱。
        • 自 2022 年 10 月起,米游社极大地提高了账号被判定为有风险的概率,账号有风险时亦会令 Cookie 无法被识别为有效状态
        • 自 1.4.15 版本起,你可以通过在帐号面板中刷新 Cookie 来刷新登录状态

        为什么游戏登录状态会失效,导致切换帐号功能无效

        • 保存游戏登录状态的要素有两个:网络环境和设备 ID
        • 导致该问题的常见原因是:
          • 网络环境频繁变换,如公网 IP 更换
          • 操作失误,导致实际上根本没有保存登录状态(空的登录状态无法避免被胡桃识别)
            • 确认你的帐号已登录后,进入游戏
            • 关闭游戏后,确定游戏进程已关闭
            • 再次进行帐号检测,来添加登录状态

        为什么程序会提示注册计划任务失败

        使用管理员模式使用一次实时便笺后,胡桃的任务计划会被以管理员权限创建。当再次以非管理员模式启动胡桃时,程序在修改计划任务时会缺少权限。 继续使用管理员模式即可解决该问题。

        使用 MSIX 安装包安装时进度卡在正在安装所需框架

        • 当用户系统缺少必要依赖环境时,系统会自动安装所需依赖。若用户禁用了 Windows Update 组件或网络条件差时,系统无法完成该步骤。

        无法使用管理员模式启动胡桃工具箱

        该问题仅存在于 Windows 10 低于 22H2 的版本中

        • 当用户系统版本低于 Windows Build 19045(即 Windows 10 22H2 版本)时,可能无法通过管理员模式启动胡桃工具箱
          • 该问题属于 Windows 内核级别问题,难以判断具体来源,故建议用户升级至 Windows 10 最新版本
        - + diff --git a/zh/advanced/Gacha-system-and-export-principal.html b/zh/advanced/Gacha-system-and-export-principal.html index e81faa637..13e165c54 100644 --- a/zh/advanced/Gacha-system-and-export-principal.html +++ b/zh/advanced/Gacha-system-and-export-principal.html @@ -31,10 +31,10 @@ } - +

        祈愿系统与导出原理

        DGP-StudioFAQ大约 2 分钟

        祈愿系统与导出原理

        Gacha System and Principal

        胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

        本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

        祈愿的获取

        获取祈愿记录需要请求米哈游的 API

        关于此 API, 有下列几个注意点

        • 通过米哈游服务器的 API,只能查询到过去 6 个月内的祈愿记录
          • 这也是原神客户端中祈愿记录的来源
        • API 存在请求速率限制,过快的请求会导致后续的请求失败,无法正常获取数据

        为了请求此 API,我们需要四个关键参数

        • 目前有下列几种方法可以获取这些参数
          • 遍历 Unity 的日志文件,查找用户打开的祈愿记录 URL
          • 代理本机流量,筛选祈愿记录 URL
          • 查找 CefBrowser 的浏览器缓存,找到祈愿记录 URL
          • 对于包含了 Stoken 的 Cookie,调用 genAuthKey API,获取参数
          • 高级用户手动输入相关 URL

        在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

        祈愿的存储

        获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

        后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

        这样,用户即可长期地保存帐号的完整祈愿记录

        UIGF 格式

        统一可交换祈愿记录标准

        Uniformed Interchangeable GachaLog Format standard

        UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

        标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

        祈愿的导入

        在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

        胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

        (因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

        祈愿的导出

        尚未实现,正在设计 已实装

        评论
        • 按正序
        • 按倒序
        • 按热度
        Powered by Waline v2.15.5
        - + diff --git a/zh/advanced/exceptions.html b/zh/advanced/exceptions.html index 4f24b0547..656016257 100644 --- a/zh/advanced/exceptions.html +++ b/zh/advanced/exceptions.html @@ -31,10 +31,10 @@ } - +

        常见的程序异常

        DGP-StudioFAQ大约 3 分钟

        常见的程序异常

        该文档包含由用户端错误造成的问题

        RuntimeEnvironmentException

        • 异常:RuntimeEnvironmentException
          • 提示:未开启长路径功能,无法设置注册表键值
        • 问题来源:没有解除 Windows 目录长度限制
        • 解决方案:下载 EnableLongPaths.zipopen in new window 后解压,以管理员身份运行解压后的 .reg 文件

        Return Code: -10001

        • 该异常实际上来源于米游社的返回信息,包括:
          • Return Code: -10001
          • Return Code: -100
        • 问题来源:
          1. Cookie 过期或网络异常
          2. 系统时间错误
        • 解决方案:
          1. 在帐号面板中,点击刷新 Cookie
          2. 删除帐号后重新添加米游社帐号
          3. 在系统设置中启用自动同步时间并立刻同步时间

        状态:1034 验证失败

        • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
        • 解决方式:
          • 进入 实时便笺 功能
          • 点击右上角的 验证当前用户与角色按钮
          • 根据米游社提示进行验证
          • 完成验证后点击完成
          • 此时,风控应当已被解除;若没有,可继续执行上述操作

        提示

        • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

        注意

        • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
        • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

        HttpRequestException 元数据校验文件下载失败

        403 (Forbidden)/ 404 (NOT FOUND)

        解决方案:更新胡桃工具箱至最新版本open in new window

        502 (Bad Gateway)

        相关 Issue: https://github.com/DGP-Studio/Snap.Hutao/issues/100open in new window

        当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 HttpRequestException 错误。

        HttpRequestException

        当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。

        如果系统代理是你的网络必须选项,请关闭系统代理而使用 TUN 模式代理;或者也可以通过 Windows 8 AppContainer Loopback Utilityopen in new window 解除 Windows APP Container Loopback 的限制open in new window

        653366069 请求异常

        • 网络请求错误,请求异常前程序会说明具体哪一个功能的网络请求失败。
          • 如果仅是偶尔出现的问题,你可以考虑忽略该错误
          • 如果持续该错误,请检查本地网络到目标服务器的连接是否正常
        评论
        • 按正序
        • 按倒序
        • 按热度
        Powered by Waline v2.15.5
        - + diff --git a/zh/advanced/get-stoken-cookie-from-the-third-party.html b/zh/advanced/get-stoken-cookie-from-the-third-party.html index 47fa63064..e089c013c 100644 --- a/zh/advanced/get-stoken-cookie-from-the-third-party.html +++ b/zh/advanced/get-stoken-cookie-from-the-third-party.html @@ -31,10 +31,10 @@ } - +

        使用第三方工具获取有 Stoken 的 cookie

        DGP-StudioFAQ第三方工具大约 2 分钟

        使用第三方工具获取有 Stoken 的 cookie

        注意

        • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
        • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

        Android

        Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

        GetToken 开源项目

        • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
          • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
          • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
            • 你需要卸载官方版米游社以安装该版本的米游社
        • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
        • 在右上角点击形如 🔑 形状的按钮
        • 点击勾选 Stoken 选项
        • 点击复制登录信息
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录

        iOS

        iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

        • 从 App Store 下载 Streamopen in new window
        • 对域名 api-takumi.mihoyo.com 进行抓包分析
        • 找到并复制带有 Stoken 的数据
          • 形如stuid=****;stoken=v2****;mid=****;
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录
        评论
        • 按正序
        • 按倒序
        • 按热度
        Powered by Waline v2.15.5
        - + diff --git a/zh/advanced/index.html b/zh/advanced/index.html index 2d18efa18..63eb779f6 100644 --- a/zh/advanced/index.html +++ b/zh/advanced/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/zh/advanced/known-issue.html b/zh/advanced/known-issue.html index 2a3256154..774fe671e 100644 --- a/zh/advanced/known-issue.html +++ b/zh/advanced/known-issue.html @@ -5,7 +5,7 @@ - 已知问题 | 胡桃工具箱 + 已知问题 | 胡桃工具箱