From fabc351e92605f91b27006109025b9072f1a15e4 Mon Sep 17 00:00:00 2001 From: LIlGG Date: Mon, 29 Sep 2025 03:02:50 +0000 Subject: [PATCH] deploy: a47590fe234deb8bef268dd012f1baa1d4239257 --- .nojekyll | 0 upage/404-page.html | 30 ++++ upage/404.html | 16 ++ upage/assets/css/styles.8ea0c4aa.css | 1 + ...logo1-1386f1c258d3fbea23bf307a876eb1f0.png | Bin 0 -> 25592 bytes ...logo2-abbb5d69e50c2c31dde19e2c0daef32a.png | Bin 0 -> 26507 bytes upage/assets/js/003b49f9.69070d1e.js | 1 + upage/assets/js/13d3c590.eb8971d6.js | 1 + upage/assets/js/14eb3368.dcc639fc.js | 1 + upage/assets/js/17896441.d46dfadf.js | 1 + upage/assets/js/1ec2c777.9bb5192e.js | 1 + upage/assets/js/221e29db.d52ad40d.js | 1 + upage/assets/js/2ccc2e53.0ce41deb.js | 1 + upage/assets/js/2f401bd1.fa1b7d98.js | 1 + upage/assets/js/315f1747.3cb56dff.js | 1 + upage/assets/js/5e95c892.191c849f.js | 1 + upage/assets/js/6115a388.f2e4d1a7.js | 1 + upage/assets/js/68f842ca.c586b730.js | 1 + upage/assets/js/6c46c4d6.b5a952fa.js | 1 + upage/assets/js/710eb747.ea4f2e89.js | 1 + upage/assets/js/778fc58b.c1379a0f.js | 1 + upage/assets/js/7e9a7b3c.ceb49ea1.js | 1 + upage/assets/js/803.72810d70.js | 1 + upage/assets/js/86585ddf.38132d93.js | 1 + upage/assets/js/931f8773.34a6d928.js | 1 + upage/assets/js/a5796a8c.b65dd1b0.js | 1 + upage/assets/js/a7bd4aaa.81f5341b.js | 1 + upage/assets/js/a94703ab.9e1bcbc8.js | 1 + upage/assets/js/aba21aa0.4fc1e48c.js | 1 + upage/assets/js/bb48f956.ec46aa8f.js | 1 + upage/assets/js/cc946c3e.9152aa25.js | 1 + upage/assets/js/cea871c7.3d7577e3.js | 1 + upage/assets/js/d6dcccef.ca4f4ffd.js | 1 + upage/assets/js/main.648541e0.js | 2 + upage/assets/js/main.648541e0.js.LICENSE.txt | 51 +++++++ upage/assets/js/runtime~main.8350f77c.js | 1 + upage/configuration.html | 111 ++++++++++++++ upage/contributing.html | 33 ++++ upage/contributing/code-of-conduct.html | 44 ++++++ upage/contributing/code-standards.html | 121 +++++++++++++++ upage/contributing/development-setup.html | 78 ++++++++++ upage/contributing/ways-to-contribute.html | 91 +++++++++++ upage/contributing/workflow.html | 142 +++++++++++++++++ upage/deployment-guide.html | 16 ++ upage/deployment/docker-compose.html | 62 ++++++++ upage/deployment/docker.html | 62 ++++++++ upage/deployment/logto.html | 88 +++++++++++ upage/deployment/others.html | 25 +++ upage/deployment/source.html | 89 +++++++++++ upage/faq.html | 144 ++++++++++++++++++ upage/img/logo.svg | 4 + upage/img/logo1.png | Bin 0 -> 25592 bytes upage/img/logo2.png | Bin 0 -> 26507 bytes upage/img/logo3.png | Bin 0 -> 26274 bytes upage/index.html | 36 +++++ upage/quick-start.html | 62 ++++++++ upage/sitemap.xml | 1 + upage/user-guide.html | 16 ++ upage/user-guide/basics.html | 19 +++ 59 files changed, 1372 insertions(+) create mode 100644 .nojekyll create mode 100644 upage/404-page.html create mode 100644 upage/404.html create mode 100644 upage/assets/css/styles.8ea0c4aa.css create mode 100644 upage/assets/images/logo1-1386f1c258d3fbea23bf307a876eb1f0.png create mode 100644 upage/assets/images/logo2-abbb5d69e50c2c31dde19e2c0daef32a.png create mode 100644 upage/assets/js/003b49f9.69070d1e.js create mode 100644 upage/assets/js/13d3c590.eb8971d6.js create mode 100644 upage/assets/js/14eb3368.dcc639fc.js create mode 100644 upage/assets/js/17896441.d46dfadf.js create mode 100644 upage/assets/js/1ec2c777.9bb5192e.js create mode 100644 upage/assets/js/221e29db.d52ad40d.js create mode 100644 upage/assets/js/2ccc2e53.0ce41deb.js create mode 100644 upage/assets/js/2f401bd1.fa1b7d98.js create mode 100644 upage/assets/js/315f1747.3cb56dff.js create mode 100644 upage/assets/js/5e95c892.191c849f.js create mode 100644 upage/assets/js/6115a388.f2e4d1a7.js create mode 100644 upage/assets/js/68f842ca.c586b730.js create mode 100644 upage/assets/js/6c46c4d6.b5a952fa.js create mode 100644 upage/assets/js/710eb747.ea4f2e89.js create mode 100644 upage/assets/js/778fc58b.c1379a0f.js create mode 100644 upage/assets/js/7e9a7b3c.ceb49ea1.js create mode 100644 upage/assets/js/803.72810d70.js create mode 100644 upage/assets/js/86585ddf.38132d93.js create mode 100644 upage/assets/js/931f8773.34a6d928.js create mode 100644 upage/assets/js/a5796a8c.b65dd1b0.js create mode 100644 upage/assets/js/a7bd4aaa.81f5341b.js create mode 100644 upage/assets/js/a94703ab.9e1bcbc8.js create mode 100644 upage/assets/js/aba21aa0.4fc1e48c.js create mode 100644 upage/assets/js/bb48f956.ec46aa8f.js create mode 100644 upage/assets/js/cc946c3e.9152aa25.js create mode 100644 upage/assets/js/cea871c7.3d7577e3.js create mode 100644 upage/assets/js/d6dcccef.ca4f4ffd.js create mode 100644 upage/assets/js/main.648541e0.js create mode 100644 upage/assets/js/main.648541e0.js.LICENSE.txt create mode 100644 upage/assets/js/runtime~main.8350f77c.js create mode 100644 upage/configuration.html create mode 100644 upage/contributing.html create mode 100644 upage/contributing/code-of-conduct.html create mode 100644 upage/contributing/code-standards.html create mode 100644 upage/contributing/development-setup.html create mode 100644 upage/contributing/ways-to-contribute.html create mode 100644 upage/contributing/workflow.html create mode 100644 upage/deployment-guide.html create mode 100644 upage/deployment/docker-compose.html create mode 100644 upage/deployment/docker.html create mode 100644 upage/deployment/logto.html create mode 100644 upage/deployment/others.html create mode 100644 upage/deployment/source.html create mode 100644 upage/faq.html create mode 100644 upage/img/logo.svg create mode 100644 upage/img/logo1.png create mode 100644 upage/img/logo2.png create mode 100644 upage/img/logo3.png create mode 100644 upage/index.html create mode 100644 upage/quick-start.html create mode 100644 upage/sitemap.xml create mode 100644 upage/user-guide.html create mode 100644 upage/user-guide/basics.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/upage/404-page.html b/upage/404-page.html new file mode 100644 index 0000000..12be88c --- /dev/null +++ b/upage/404-page.html @@ -0,0 +1,30 @@ + + + + + +页面未找到 | UPage 文档 + + + + + + + +
跳到主要内容

页面未找到

+

很抱歉,您访问的页面不存在。

+

可能的原因

+
    +
  • 链接已过期或被移除
  • +
  • URL 输入错误
  • +
  • 页面正在建设中
  • +
+

您可以尝试

+ +

如果您认为这是一个错误,请提交问题告诉我们。

+ + \ No newline at end of file diff --git a/upage/404.html b/upage/404.html new file mode 100644 index 0000000..62e35c2 --- /dev/null +++ b/upage/404.html @@ -0,0 +1,16 @@ + + + + + +UPage 文档 + + + + + + + +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

+ + \ No newline at end of file diff --git a/upage/assets/css/styles.8ea0c4aa.css b/upage/assets/css/styles.8ea0c4aa.css new file mode 100644 index 0000000..c2de828 --- /dev/null +++ b/upage/assets/css/styles.8ea0c4aa.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_BQDk,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_JFll,.details_jyK0>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#3f51b5;--ifm-color-primary-dark:#3949a3;--ifm-color-primary-darker:#36459a;--ifm-color-primary-darkest:#2c397f;--ifm-color-primary-light:#4c5ec1;--ifm-color-primary-lighter:#5566c4;--ifm-color-primary-lightest:#707ecd;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_IcUU,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_UWpn .wordWrapButtonIcon_nOMk{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_lTaP,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_qYSH:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Wij8 article>:first-child,.docItemContainer_Wij8 header+*,.footer__item{margin-top:0}.admonitionContent__UXo>:last-child,.cardContainer_zBBp :last-child,.collapsibleContent_tEVE p:last-child,.details_jyK0>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_Y7Kq,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_jyK0[data-collapsed=false].isBrowser_Yxpi>summary:before,.details_jyK0[open]:not(.isBrowser_Yxpi)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_rRZH,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.docCardListItem_Fg5r>*,.navbar__logo img,body,html{height:100%}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_JFll>li)>.containsTaskList_JFll{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#7986cb;--ifm-color-primary-dark:#6271c2;--ifm-color-primary-darker:#5767be;--ifm-color-primary-darkest:#3f50a8;--ifm-color-primary-light:#909bd4;--ifm-color-primary-lighter:#9ba5d8;--ifm-color-primary-lightest:#bcc2e5;--docusaurus-highlighted-code-line-bg:#0000004d}.api-key-highlight{color:#e53935;font-weight:700}.base-url-highlight{color:#2196f3;font-weight:700}[data-theme=dark] .api-key-highlight{color:#ff7961}[data-theme=dark] .base-url-highlight{color:#64b5f6}.theme-logo{display:inline-block;position:relative}.theme-logo img{content:url(/upage/assets/images/logo1-1386f1c258d3fbea23bf307a876eb1f0.png)}[data-theme=dark] .theme-logo img{content:url(/upage/assets/images/logo2-abbb5d69e50c2c31dde19e2c0daef32a.png)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_Yovm,.navbarSearchContainer_GyVn:empty,.sidebarLogo_Fyyx,.themedComponent_PxYp,.toggleIcon_KZAc,html[data-announcement-bar-initially-dismissed=true] .announcementBar_BnIX{display:none}.skipToContent_SnWU{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_SnWU:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_geUY{line-height:0;padding:0}.content_ZBlz{font-size:85%;padding:5px 0;text-align:center}.content_ZBlz a{color:inherit;text-decoration:underline}.announcementBar_BnIX{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_fyty{flex:0 0 10px}.announcementBarClose_GM5r{align-self:stretch;flex:0 0 30px}.toggle_crTl{height:2rem;width:2rem}.toggleButton_BQDk{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_BQDk:hover{background:var(--ifm-color-emphasis-200)}[data-theme-choice=dark] .darkToggleIcon_fJCx,[data-theme-choice=light] .lightToggleIcon_LT1z,[data-theme-choice=system] .systemToggleIcon_m6ZP,[data-theme=dark] .themedComponent--dark_P6BI,[data-theme=light] .themedComponent--light_BsnN,html:not([data-theme]) .themedComponent--light_BsnN{display:initial}.toggleButtonDisabled_lECB{cursor:not-allowed}.darkNavbarColorModeToggle_wvlR:hover{background:var(--ifm-color-gray-800)}.tag_gRSs{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_gRSs:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_VjY2{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_bNVn{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_bNVn:after,.tagWithCount_bNVn:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_bNVn:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_bNVn:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_bNVn span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_F_l0{display:inline}.tag_SPZH{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit__ZHw{margin-right:.3em;vertical-align:sub}.lastUpdated_CpfT{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_wmrO{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_wmrO:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_lsSG:after,.tocCollapsibleExpanded_JaTG{transform:none}.tocCollapsible_S5VF{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_LYt9>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_LYt9 ul li{margin:.4rem .8rem}.tocCollapsibleContent_LYt9 a{display:block}.tableOfContents_dKl6{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_nMBz{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_nMBz:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_hmls{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PNlv{display:none;margin:0}.categoryLinkLabel_rUKM,.linkLabel_fmgc{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.iconExternalLink_xtnk{margin-left:.3rem}.dropdownNavbarItemMobile_SUUz{cursor:pointer}.iconLanguage_mN5x{margin-right:5px;vertical-align:text-bottom}.navbarHideable_JpBT{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_I0BD{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_nlDk{color:red;white-space:pre-wrap}.errorBoundaryFallback_JeCu{color:red;padding:.55rem}.buttonGroup_bOYb button,.codeBlockContainer_tLQ_{background:var(--prism-background-color);color:var(--prism-color)}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_jF0C{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_jF0C:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.linkLabel_fmgc{line-clamp:2;-webkit-line-clamp:2}.categoryLink__DnE{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_rUKM{flex:1;line-clamp:2;-webkit-line-clamp:2}.docMainContainer_WqOS,.docRoot_iPwj{display:flex;width:100%}.docsWrapper_G3eT{display:flex;flex:1 0 auto}.anchorWithStickyNavbar_hmm4,.footnoteRefStickyNavbar_wDdy{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_Y4uQ,.footnoteRefHideOnScrollNavbar__Xuc{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);user-select:none}.hash-link:before{content:"#"}.mainWrapper_fO6_{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_zBBp{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_zBBp:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_QeHy{font-size:1.2rem}.cardDescription_WUjq{font-size:.8rem}.docCardListItem_Fg5r{margin-bottom:2rem}.codeBlockContainer_tLQ_{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlock_HMKa{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockLines_tPUF{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_Llg4{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_ouMN{counter-increment:a;display:table-row}.codeLineNumber_qYSH{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_qYSH:before{content:counter(a);opacity:.4}.codeLineContent__EUc{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_S6Nt{opacity:1!important}.copyButtonIcons_mNdj{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_eK7n,.copyButtonSuccessIcon_xUys{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_xUys{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_S6Nt .copyButtonIcon_eK7n{opacity:0;transform:scale(.33)}.copyButtonCopied_S6Nt .copyButtonSuccessIcon_xUys{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_nOMk{height:1.2rem;width:1.2rem}.buttonGroup_bOYb{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_bOYb button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_bOYb button:focus-visible,.buttonGroup_bOYb button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_bOYb button{opacity:.4}.codeBlockContent_HMSW{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_E7Db{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_E7Db+.codeBlockContent_HMSW .codeBlock_il6i{border-top-left-radius:0;border-top-right-radius:0}.details_jyK0{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_jyK0>summary{cursor:pointer;padding-left:1rem;position:relative}.details_jyK0>summary::-webkit-details-marker{display:none}.details_jyK0>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_tEVE{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_ACKm{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_CXlF{height:auto}.admonition_CpQR{margin-bottom:1em}.admonitionHeading_lTaP{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_lTaP:not(:last-child){margin-bottom:.3rem}.admonitionHeading_lTaP code{text-transform:none}.admonitionIcon_Sec2{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Sec2 svg{display:inline-block;fill:var(--ifm-alert-foreground-color);height:1.6em;width:1.6em}.breadcrumbHomeIcon_xzA8{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_dPwh{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_j6zI{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PNlv,.expandButton_TkcU{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_GM5r,.announcementBarPlaceholder_fyty{flex-basis:50px}.lastUpdated_CpfT{text-align:right}.tocMobile_gigA{display:none}.collapseSidebarButton_PNlv{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_nTam{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_xmcp,[dir=rtl] .collapseSidebarButtonIcon_nTam{transform:rotate(0)}.collapseSidebarButton_PNlv:focus,.collapseSidebarButton_PNlv:hover,.expandButton_TkcU:focus,.expandButton_TkcU:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.navbarSearchContainer_GyVn{padding:0 var(--ifm-navbar-item-padding-horizontal)}.menuHtmlItem_H9EF{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_EjuG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_EjuG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_byXC{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_xcav{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_XurE{padding-top:0}.sidebarHidden_GYeC{opacity:0;visibility:hidden}.sidebarLogo_Fyyx{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_Fyyx img{height:2rem;margin-right:.5rem}.expandButton_TkcU{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_xmcp{transform:rotate(180deg)}.docSidebarContainer_Yovm{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_X9Jj{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_e1um{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_WqOS{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_OVMN{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_oz8P{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_s9lu,.generatedIndexPage_B26y{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_eWi8,.footer__link-separator,.navbar__item,.tableOfContents_dKl6{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_pl5C{padding:0 .3rem}.navbarSearchContainer_GyVn{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (hover:hover){.backToTopButton_nMBz:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_BnIX,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_gigA{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_tPUF{white-space:pre-wrap}} \ No newline at end of file diff --git a/upage/assets/images/logo1-1386f1c258d3fbea23bf307a876eb1f0.png b/upage/assets/images/logo1-1386f1c258d3fbea23bf307a876eb1f0.png new file mode 100644 index 0000000000000000000000000000000000000000..ae107db82401883e23c1e7a217d4bfe676ea0e9b GIT binary patch literal 25592 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 literal 0 HcmV?d00001 diff --git a/upage/assets/images/logo2-abbb5d69e50c2c31dde19e2c0daef32a.png b/upage/assets/images/logo2-abbb5d69e50c2c31dde19e2c0daef32a.png new file mode 100644 index 0000000000000000000000000000000000000000..665811da998fad0a4853f7ee81745c4b43755507 GIT binary patch literal 26507 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 LGCx^lfD8UFlwPYw literal 0 HcmV?d00001 diff --git a/upage/assets/js/003b49f9.69070d1e.js b/upage/assets/js/003b49f9.69070d1e.js new file mode 100644 index 0000000..673cac1 --- /dev/null +++ b/upage/assets/js/003b49f9.69070d1e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[506],{6255:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"contributing/code-of-conduct","title":"\u884c\u4e3a\u51c6\u5219","description":"UPage \u9879\u76ee\u81f4\u529b\u4e8e\u4e3a\u6240\u6709\u8d21\u732e\u8005\u548c\u53c2\u4e0e\u8005\u63d0\u4f9b\u4e00\u4e2a\u53cb\u597d\u3001\u5b89\u5168\u548c\u5305\u5bb9\u7684\u73af\u5883\u3002\u6211\u4eec\u5e0c\u671b\u6bcf\u4e2a\u4eba\u90fd\u80fd\u591f\u5728\u6ca1\u6709\u9a9a\u6270\u548c\u6b67\u89c6\u7684\u60c5\u51b5\u4e0b\u53c2\u4e0e\u9879\u76ee\u3002","source":"@site/content/contributing/code-of-conduct.md","sourceDirName":"contributing","slug":"/contributing/code-of-conduct","permalink":"/upage/contributing/code-of-conduct","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/code-of-conduct.md","tags":[],"version":"current","frontMatter":{"id":"code-of-conduct","title":"\u884c\u4e3a\u51c6\u5219"},"sidebar":"tutorialSidebar","previous":{"title":"\u8d21\u732e\u6307\u5357","permalink":"/upage/contributing"},"next":{"title":"\u8d21\u732e\u65b9\u5f0f","permalink":"/upage/contributing/ways-to-contribute"}}');var c=t(6106),r=t(8784);const o={id:"code-of-conduct",title:"\u884c\u4e3a\u51c6\u5219"},s="\u884c\u4e3a\u51c6\u5219",l={},d=[{value:"\u6211\u4eec\u7684\u6807\u51c6",id:"\u6211\u4eec\u7684\u6807\u51c6",level:2},{value:"\u4e0d\u53ef\u63a5\u53d7\u7684\u884c\u4e3a",id:"\u4e0d\u53ef\u63a5\u53d7\u7684\u884c\u4e3a",level:2},{value:"\u8d23\u4efb",id:"\u8d23\u4efb",level:2},{value:"\u8303\u56f4",id:"\u8303\u56f4",level:2},{value:"\u53cd\u9988",id:"\u53cd\u9988",level:2},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:2}];function u(n){const e={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...n.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(e.header,{children:(0,c.jsx)(e.h1,{id:"\u884c\u4e3a\u51c6\u5219",children:"\u884c\u4e3a\u51c6\u5219"})}),"\n",(0,c.jsx)(e.p,{children:"UPage \u9879\u76ee\u81f4\u529b\u4e8e\u4e3a\u6240\u6709\u8d21\u732e\u8005\u548c\u53c2\u4e0e\u8005\u63d0\u4f9b\u4e00\u4e2a\u53cb\u597d\u3001\u5b89\u5168\u548c\u5305\u5bb9\u7684\u73af\u5883\u3002\u6211\u4eec\u5e0c\u671b\u6bcf\u4e2a\u4eba\u90fd\u80fd\u591f\u5728\u6ca1\u6709\u9a9a\u6270\u548c\u6b67\u89c6\u7684\u60c5\u51b5\u4e0b\u53c2\u4e0e\u9879\u76ee\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u6211\u4eec\u7684\u6807\u51c6",children:"\u6211\u4eec\u7684\u6807\u51c6"}),"\n",(0,c.jsx)(e.p,{children:"\u53c2\u4e0e UPage \u9879\u76ee\u7684\u6240\u6709\u8d21\u732e\u8005\u90fd\u5e94\u9075\u5faa\u4ee5\u4e0b\u884c\u4e3a\u51c6\u5219\uff1a"}),"\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.strong,{children:"\u5c0a\u91cd\u6240\u6709\u53c2\u4e0e\u8005"}),"\uff0c\u65e0\u8bba\u5176\u80cc\u666f\u3001\u7ecf\u9a8c\u6216\u89c2\u70b9"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.strong,{children:"\u63a5\u53d7\u5efa\u8bbe\u6027\u7684\u6279\u8bc4\u548c\u53cd\u9988"}),"\uff0c\u5e76\u4ee5\u4e13\u4e1a\u548c\u5c0a\u91cd\u7684\u65b9\u5f0f\u56de\u5e94"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.strong,{children:"\u4e13\u6ce8\u4e8e\u5bf9\u793e\u533a\u6700\u6709\u5229\u7684\u4e8b\u60c5"}),"\uff0c\u8003\u8651\u9879\u76ee\u548c\u7528\u6237\u7684\u957f\u671f\u5229\u76ca"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.strong,{children:"\u5c55\u73b0\u540c\u7406\u5fc3\u548c\u5584\u610f"}),"\uff0c\u7406\u89e3\u4ed6\u4eba\u7684\u89c2\u70b9\u548c\u7acb\u573a"]}),"\n"]}),"\n",(0,c.jsx)(e.h2,{id:"\u4e0d\u53ef\u63a5\u53d7\u7684\u884c\u4e3a",children:"\u4e0d\u53ef\u63a5\u53d7\u7684\u884c\u4e3a"}),"\n",(0,c.jsx)(e.p,{children:"\u4ee5\u4e0b\u884c\u4e3a\u88ab\u89c6\u4e3a\u4e0d\u53ef\u63a5\u53d7\uff1a"}),"\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsx)(e.li,{children:"\u4f7f\u7528\u6027\u6697\u793a\u7684\u8bed\u8a00\u6216\u56fe\u50cf"}),"\n",(0,c.jsx)(e.li,{children:"\u4eba\u8eab\u653b\u51fb\u3001\u4fae\u8fb1\u6216\u8d2c\u4f4e\u6027\u8bc4\u8bba"}),"\n",(0,c.jsx)(e.li,{children:"\u516c\u5f00\u6216\u79c1\u4e0b\u7684\u9a9a\u6270"}),"\n",(0,c.jsx)(e.li,{children:"\u672a\u7ecf\u660e\u786e\u8bb8\u53ef\u53d1\u5e03\u4ed6\u4eba\u7684\u79c1\u4eba\u4fe1\u606f"}),"\n",(0,c.jsx)(e.li,{children:"\u4efb\u4f55\u5176\u4ed6\u53ef\u80fd\u88ab\u5408\u7406\u8ba4\u4e3a\u4e0d\u9002\u5f53\u6216\u5192\u72af\u7684\u884c\u4e3a"}),"\n"]}),"\n",(0,c.jsx)(e.h2,{id:"\u8d23\u4efb",children:"\u8d23\u4efb"}),"\n",(0,c.jsx)(e.p,{children:"\u9879\u76ee\u7ef4\u62a4\u8005\u6709\u8d23\u4efb\u660e\u786e\u884c\u4e3a\u6807\u51c6\uff0c\u5e76\u5bf9\u4efb\u4f55\u4e0d\u53ef\u63a5\u53d7\u884c\u4e3a\u91c7\u53d6\u9002\u5f53\u548c\u516c\u6b63\u7684\u7ea0\u6b63\u63aa\u65bd\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u9879\u76ee\u7ef4\u62a4\u8005\u6709\u6743\u548c\u8d23\u4efb\u5220\u9664\u3001\u7f16\u8f91\u6216\u62d2\u7edd\u4e0e\u672c\u884c\u4e3a\u51c6\u5219\u4e0d\u7b26\u7684\u8bc4\u8bba\u3001\u63d0\u4ea4\u3001\u4ee3\u7801\u3001\u95ee\u9898\u548c\u5176\u4ed6\u8d21\u732e\uff0c\u5e76\u5728\u9002\u5f53\u65f6\u6682\u65f6\u6216\u6c38\u4e45\u7981\u6b62\u4efb\u4f55\u8d21\u732e\u8005\u53c2\u4e0e\u9879\u76ee\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u8303\u56f4",children:"\u8303\u56f4"}),"\n",(0,c.jsx)(e.p,{children:"\u672c\u884c\u4e3a\u51c6\u5219\u9002\u7528\u4e8e\u6240\u6709\u9879\u76ee\u7a7a\u95f4\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e GitHub \u4ed3\u5e93\u3001\u95ee\u9898\u8ddf\u8e2a\u5668\u3001\u8ba8\u8bba\u533a\u3001\u793e\u4ea4\u5a92\u4f53\u548c\u516c\u5171\u6d3b\u52a8\u3002\u5b83\u4e5f\u9002\u7528\u4e8e\u4e2a\u4eba\u5728\u4ee3\u8868\u9879\u76ee\u6216\u5176\u793e\u533a\u65f6\u7684\u884c\u4e3a\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u53cd\u9988",children:"\u53cd\u9988"}),"\n",(0,c.jsxs)(e.p,{children:["\u5982\u679c\u60a8\u9047\u5230\u6ee5\u7528\u3001\u9a9a\u6270\u6216\u5176\u4ed6\u4e0d\u53ef\u63a5\u53d7\u7684\u884c\u4e3a\uff0c\u8bf7\u901a\u8fc7 ",(0,c.jsx)(e.a,{href:"https://github.com/halo-dev/upage/issues",children:"GitHub Issues"})," \u6216\u76f4\u63a5\u8054\u7cfb\u9879\u76ee\u7ef4\u62a4\u8005\u62a5\u544a\u3002"]}),"\n",(0,c.jsx)(e.p,{children:"\u6240\u6709\u6295\u8bc9\u5c06\u88ab\u5ba1\u67e5\u548c\u8c03\u67e5\uff0c\u5e76\u5c06\u5bfc\u81f4\u88ab\u8ba4\u4e3a\u5fc5\u8981\u548c\u9002\u5f53\u7684\u56de\u5e94\u3002\u9879\u76ee\u7ef4\u62a4\u8005\u6709\u4e49\u52a1\u5bf9\u62a5\u544a\u4e8b\u4ef6\u7684\u4eba\u4fdd\u5bc6\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u53c2\u8003",children:"\u53c2\u8003"}),"\n",(0,c.jsxs)(e.p,{children:["\u672c\u884c\u4e3a\u51c6\u5219\u6539\u7f16\u81ea ",(0,c.jsx)(e.a,{href:"https://www.contributor-covenant.org",children:"Contributor Covenant"}),"\uff0c\u7248\u672c 2.0\uff0c\u53ef\u5728 ",(0,c.jsx)(e.a,{href:"https://www.contributor-covenant.org/version/2/0/code_of_conduct.html",children:"https://www.contributor-covenant.org/version/2/0/code_of_conduct.html"})," \u67e5\u9605\u3002"]})]})}function h(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,c.jsx)(e,{...n,children:(0,c.jsx)(u,{...n})}):u(n)}},8784:(n,e,t)=>{t.d(e,{R:()=>o,x:()=>s});var i=t(7378);const c={},r=i.createContext(c);function o(n){const e=i.useContext(r);return i.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(c):n.components||c:o(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/13d3c590.eb8971d6.js b/upage/assets/js/13d3c590.eb8971d6.js new file mode 100644 index 0000000..23ed1f2 --- /dev/null +++ b/upage/assets/js/13d3c590.eb8971d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[151],{3717:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>a});const l=JSON.parse('{"id":"contributing/development-setup","title":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e","description":"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u8bbe\u7f6e UPage \u7684\u672c\u5730\u5f00\u53d1\u73af\u5883\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u5f00\u59cb\u8d21\u732e\u4ee3\u7801\u3002","source":"@site/content/contributing/development-setup.md","sourceDirName":"contributing","slug":"/contributing/development-setup","permalink":"/upage/contributing/development-setup","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/development-setup.md","tags":[],"version":"current","frontMatter":{"id":"development-setup","title":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e"},"sidebar":"tutorialSidebar","previous":{"title":"\u8d21\u732e\u65b9\u5f0f","permalink":"/upage/contributing/ways-to-contribute"},"next":{"title":"\u4ee3\u7801\u89c4\u8303","permalink":"/upage/contributing/code-standards"}}');var i=s(6106),d=s(8784);const r={id:"development-setup",title:"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e"},c="\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e",t={},a=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u5b89\u88c5 Node.js",id:"\u5b89\u88c5-nodejs",level:3},{value:"\u5b89\u88c5 pnpm",id:"\u5b89\u88c5-pnpm",level:3},{value:"\u514b\u9686\u4ed3\u5e93",id:"\u514b\u9686\u4ed3\u5e93",level:2},{value:"\u5b89\u88c5\u4f9d\u8d56",id:"\u5b89\u88c5\u4f9d\u8d56",level:2},{value:"\u751f\u6210 Prisma \u5ba2\u6237\u7aef",id:"\u751f\u6210-prisma-\u5ba2\u6237\u7aef",level:2},{value:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",level:2},{value:"\u542f\u7528 Logto \u8ba4\u8bc1\uff08\u53ef\u9009\uff09",id:"\u542f\u7528-logto-\u8ba4\u8bc1\u53ef\u9009",level:2},{value:"\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668",id:"\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668",level:2},{value:"\u6784\u5efa\u9879\u76ee",id:"\u6784\u5efa\u9879\u76ee",level:2},{value:"\u8fd0\u884c\u6d4b\u8bd5",id:"\u8fd0\u884c\u6d4b\u8bd5",level:2},{value:"\u6587\u6863\u5f00\u53d1",id:"\u6587\u6863\u5f00\u53d1",level:2},{value:"\u5e38\u89c1\u95ee\u9898\u89e3\u51b3",id:"\u5e38\u89c1\u95ee\u9898\u89e3\u51b3",level:2},{value:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",id:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",level:3},{value:"\u5f00\u53d1\u670d\u52a1\u5668\u542f\u52a8\u5931\u8d25",id:"\u5f00\u53d1\u670d\u52a1\u5668\u542f\u52a8\u5931\u8d25",level:3},{value:"\u5176\u4ed6\u95ee\u9898",id:"\u5176\u4ed6\u95ee\u9898",level:3}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e",children:"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e"})}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u8bbe\u7f6e UPage \u7684\u672c\u5730\u5f00\u53d1\u73af\u5883\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u5f00\u59cb\u8d21\u732e\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,i.jsx)(n.p,{children:"\u5f00\u59cb\u5f00\u53d1 UPage \u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Node.js"}),": 18.18.0 \u6216\u66f4\u9ad8\u7248\u672c"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"pnpm"}),": 9.4.0 \u6216\u66f4\u9ad8\u7248\u672c"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Git"}),": \u6700\u65b0\u7248\u672c"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5b89\u88c5-nodejs",children:"\u5b89\u88c5 Node.js"}),"\n",(0,i.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u4ece ",(0,i.jsx)(n.a,{href:"https://nodejs.org/",children:"Node.js \u5b98\u7f51"})," \u4e0b\u8f7d\u5e76\u5b89\u88c5 Node.js\uff0c\u6216\u4f7f\u7528\u7248\u672c\u7ba1\u7406\u5de5\u5177\u5982 ",(0,i.jsx)(n.a,{href:"https://github.com/nvm-sh/nvm",children:"nvm"}),"\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u4f7f\u7528 nvm \u5b89\u88c5 Node.js\nnvm install 18.18.0\nnvm use 18.18.0\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u5b89\u88c5-pnpm",children:"\u5b89\u88c5 pnpm"}),"\n",(0,i.jsx)(n.p,{children:"\u5b89\u88c5 pnpm \u7684\u6700\u7b80\u5355\u65b9\u6cd5\u662f\u901a\u8fc7 npm\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install -g pnpm@9.4.0\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u6216\u8005\u6309\u7167 ",(0,i.jsx)(n.a,{href:"https://pnpm.io/installation",children:"pnpm \u5b98\u65b9\u6587\u6863"})," \u7684\u8bf4\u660e\u8fdb\u884c\u5b89\u88c5\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u514b\u9686\u4ed3\u5e93",children:"\u514b\u9686\u4ed3\u5e93"}),"\n",(0,i.jsxs)(n.p,{children:["\u9996\u5148\uff0c",(0,i.jsx)(n.a,{href:"https://github.com/halo-dev/upage/fork",children:"fork UPage \u4ed3\u5e93"}),"\u5230\u60a8\u7684 GitHub \u8d26\u6237\uff0c\u7136\u540e\u5c06\u5176\u514b\u9686\u5230\u672c\u5730\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u514b\u9686\u60a8 fork \u7684\u4ed3\u5e93\ngit clone https://github.com/YOUR-USERNAME/upage.git\n\n# \u8fdb\u5165\u9879\u76ee\u76ee\u5f55\ncd upage\n\n# \u6dfb\u52a0\u4e0a\u6e38\u4ed3\u5e93\ngit remote add upstream https://github.com/halo-dev/upage.git\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u5b89\u88c5\u4f9d\u8d56",children:"\u5b89\u88c5\u4f9d\u8d56"}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528 pnpm \u5b89\u88c5\u9879\u76ee\u4f9d\u8d56\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm install\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u751f\u6210-prisma-\u5ba2\u6237\u7aef",children:"\u751f\u6210 Prisma \u5ba2\u6237\u7aef"}),"\n",(0,i.jsx)(n.p,{children:"UPage \u4f7f\u7528 Prisma \u4f5c\u4e3a\u6570\u636e\u5e93 ORM\uff0c\u56e0\u6b64\u9700\u8981\u751f\u6210 Prisma \u5ba2\u6237\u7aef\u3002"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm setup\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",children:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u62f7\u8d1d ",(0,i.jsx)(n.code,{children:".env.example"})," \u6587\u4ef6\uff0c\u521b\u5efa ",(0,i.jsx)(n.code,{children:".env"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cp .env.example .env\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u6309\u7167",(0,i.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u7684\u8bf4\u660e\u4fee\u6539 ",(0,i.jsx)(n.code,{children:".env"})," \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u542f\u7528-logto-\u8ba4\u8bc1\u53ef\u9009",children:"\u542f\u7528 Logto \u8ba4\u8bc1\uff08\u53ef\u9009\uff09"}),"\n",(0,i.jsxs)(n.p,{children:["UPage \u9ed8\u8ba4\u4ec5\u652f\u6301\u5355\u4e00\u7528\u6237\u533f\u540d\u8bbf\u95ee\uff0c\u5982\u679c\u60a8\u60f3\u8981\u5f00\u53d1\u7528\u6237\u8ba4\u8bc1\u529f\u80fd\uff0c\u53ef\u4ee5\u6309\u7167",(0,i.jsx)(n.a,{href:"../deployment/logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u7684\u8bf4\u660e\u914d\u7f6e Logto \u8ba4\u8bc1\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668",children:"\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668"}),"\n",(0,i.jsx)(n.p,{children:"\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668\uff0c\u8fd9\u5c06\u5141\u8bb8\u60a8\u5728\u672c\u5730\u9884\u89c8\u548c\u6d4b\u8bd5\u60a8\u7684\u66f4\u6539\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm dev\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u6b64\u547d\u4ee4\u4f1a\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7 ",(0,i.jsx)(n.code,{children:"http://localhost:5173"})," \u8bbf\u95ee\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u6784\u5efa\u9879\u76ee",children:"\u6784\u5efa\u9879\u76ee"}),"\n",(0,i.jsx)(n.p,{children:"\u8981\u6784\u5efa\u751f\u4ea7\u7248\u672c\u7684\u9879\u76ee\uff0c\u8fd0\u884c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm build\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9884\u89c8\u751f\u4ea7\u7248\u672c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm preview\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u9884\u751f\u4ea7\u7248\u672c\u9879\u76ee\u8fd0\u884c\u5728 ",(0,i.jsx)(n.code,{children:"http://localhost:3000"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u8fd0\u884c\u6d4b\u8bd5",children:"\u8fd0\u884c\u6d4b\u8bd5"}),"\n",(0,i.jsx)(n.p,{children:"\u8fd0\u884c\u9879\u76ee\u7684\u6d4b\u8bd5\u5957\u4ef6\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm test\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u6587\u6863\u5f00\u53d1",children:"\u6587\u6863\u5f00\u53d1"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u60a8\u60f3\u8981\u4fee\u6539\u6216\u9884\u89c8\u6587\u6863\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u542f\u52a8\u6587\u6863\u5f00\u53d1\u670d\u52a1\u5668\npnpm docs:start\n\n# \u6784\u5efa\u6587\u6863\npnpm docs:build\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u6587\u6863\u5f00\u53d1\u670d\u52a1\u5668\u9ed8\u8ba4\u5728 ",(0,i.jsx)(n.code,{children:"http://localhost:3000"})," \u8fd0\u884c\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u5e38\u89c1\u95ee\u9898\u89e3\u51b3",children:"\u5e38\u89c1\u95ee\u9898\u89e3\u51b3"}),"\n",(0,i.jsx)(n.h3,{id:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",children:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u60a8\u5728\u5b89\u88c5\u4f9d\u8d56\u65f6\u9047\u5230\u95ee\u9898\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4ee5\u4e0b\u89e3\u51b3\u65b9\u6848\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u6e05\u9664 pnpm \u7f13\u5b58\npnpm store prune\n\n# \u91cd\u65b0\u5b89\u88c5\u4f9d\u8d56\npnpm install --force\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u5f00\u53d1\u670d\u52a1\u5668\u542f\u52a8\u5931\u8d25",children:"\u5f00\u53d1\u670d\u52a1\u5668\u542f\u52a8\u5931\u8d25"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u5f00\u53d1\u670d\u52a1\u5668\u65e0\u6cd5\u542f\u52a8\uff0c\u8bf7\u68c0\u67e5\uff1a"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u7aef\u53e3 5173 \u662f\u5426\u88ab\u5176\u4ed6\u5e94\u7528\u5360\u7528"}),"\n",(0,i.jsx)(n.li,{children:"Node.js \u7248\u672c\u662f\u5426\u7b26\u5408\u8981\u6c42"}),"\n",(0,i.jsx)(n.li,{children:"\u662f\u5426\u6240\u6709\u4f9d\u8d56\u90fd\u5df2\u6b63\u786e\u5b89\u88c5"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u60a8\u53ef\u4ee5\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u7aef\u53e3\u542f\u52a8\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm dev --port 5174\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u5176\u4ed6\u95ee\u9898",children:"\u5176\u4ed6\u95ee\u9898"}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u60a8\u9047\u5230\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u67e5\u770b\u9879\u76ee\u7684 ",(0,i.jsx)(n.a,{href:"/upage/faq",children:"\u5e38\u89c1\u95ee\u9898"})," \u6216\u5728 ",(0,i.jsx)(n.a,{href:"https://github.com/halo-dev/upage/issues",children:"GitHub Issues"})," \u4e2d\u641c\u7d22\u76f8\u5173\u95ee\u9898\u3002\u5982\u679c\u6ca1\u6709\u627e\u5230\u89e3\u51b3\u65b9\u6848\uff0c\u8bf7\u521b\u5efa\u65b0\u7684 issue\u3002"]})]})}function p(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8784:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>c});var l=s(7378);const i={},d=l.createContext(i);function r(e){const n=l.useContext(d);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),l.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/14eb3368.dcc639fc.js b/upage/assets/js/14eb3368.dcc639fc.js new file mode 100644 index 0000000..d9c1be7 --- /dev/null +++ b/upage/assets/js/14eb3368.dcc639fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[969],{1612:(e,s,n)=>{n.d(s,{A:()=>p});n(7378);var t=n(3372),r=n(321),a=n(9205),i=n(929),c=n(8884),l=n(2811),o=n(2752),d=n(5647),u=n(6106);const m={unreleased:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const s=m[e.versionMetadata.banner];return(0,u.jsx)(s,{...e})}function b({versionLabel:e,to:s,onClick:n}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(a.A,{to:s,onClick:n,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x({className:e,versionMetadata:s}){const{siteConfig:{title:n}}=(0,r.A)(),{pluginId:a}=(0,c.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,o.g1)(a),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,c.HW)(a),x=d??(p=m).docs.find(e=>e.id===p.mainDocId);var p;return(0,u.jsxs)("div",{className:(0,t.A)(e,l.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:n,versionMetadata:s})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:m.label,to:x.path,onClick:()=>i(m.name)})})]})}function p({className:e}){const s=(0,d.r)();return s.banner?(0,u.jsx)(x,{className:e,versionMetadata:s}):null}},2590:(e,s,n)=>{n.d(s,{A:()=>l});n(7378);var t=n(3372),r=n(929),a=n(9205),i=n(6106);function c(e){const{permalink:s,title:n,subLabel:r,isNext:c}=e;return(0,i.jsxs)(a.A,{className:(0,t.A)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:s,children:[r&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function l(e){const{className:s,previous:n,next:a}=e;return(0,i.jsxs)("nav",{className:(0,t.A)(s,"pagination-nav"),"aria-label":(0,r.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,i.jsx)(c,{...n,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),a&&(0,i.jsx)(c,{...a,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4549:(e,s,n)=>{n.r(s),n.d(s,{default:()=>D});var t=n(7378),r=n(496),a=n(379),i=n(4082),c=n(3372),l=n(9205),o=n(321);const d=["zero","one","two","few","many","other"];function u(e){return d.filter(s=>e.includes(s))}const m={locale:"en",pluralForms:u(["one","other"]),select:e=>1===e?"one":"other"};function h(){const{i18n:{currentLocale:e}}=(0,o.A)();return(0,t.useMemo)(()=>{try{return function(e){const s=new Intl.PluralRules(e);return{locale:e,pluralForms:u(s.resolvedOptions().pluralCategories),select:e=>s.select(e)}}(e)}catch(s){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${s.message}\n`),m}},[e])}function b(){const e=h();return{selectMessage:(s,n)=>function(e,s,n){const t=e.split("|");if(1===t.length)return t[0];t.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${t.length}: ${e}`);const r=n.select(s),a=n.pluralForms.indexOf(r);return t[Math.min(a,t.length-1)]}(n,s,e)}}var x=n(8715),p=n(929),g=n(3873);const v={cardContainer:"cardContainer_zBBp",cardTitle:"cardTitle_QeHy",cardDescription:"cardDescription_WUjq"};var f=n(6106);function j({className:e,href:s,children:n}){return(0,f.jsx)(l.A,{href:s,className:(0,c.A)("card padding--lg",v.cardContainer,e),children:n})}function A({className:e,href:s,icon:n,title:t,description:r}){return(0,f.jsxs)(j,{href:s,className:e,children:[(0,f.jsxs)(g.A,{as:"h2",className:(0,c.A)("text--truncate",v.cardTitle),title:t,children:[n," ",t]}),r&&(0,f.jsx)("p",{className:(0,c.A)("text--truncate",v.cardDescription),title:r,children:r})]})}function N({item:e}){const s=(0,a.Nr)(e),n=function(){const{selectMessage:e}=b();return s=>e(s,(0,p.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:s}))}();return s?(0,f.jsx)(A,{className:e.className,href:s,icon:"\ud83d\uddc3\ufe0f",title:e.label,description:e.description??n(e.items.length)}):null}function L({item:e}){const s=(0,x.A)(e.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,a.cC)(e.docId??void 0);return(0,f.jsx)(A,{className:e.className,href:e.href,icon:s,title:e.label,description:e.description??n?.description})}function _({item:e}){switch(e.type){case"link":return(0,f.jsx)(L,{item:e});case"category":return(0,f.jsx)(N,{item:e});default:throw new Error(`unknown item type ${JSON.stringify(e)}`)}}const T={docCardListItem:"docCardListItem_Fg5r"};function y({className:e}){const s=(0,a.a4)();return(0,f.jsx)(I,{items:s,className:e})}function k({item:e}){return(0,f.jsx)("article",{className:(0,c.A)(T.docCardListItem,"col col--6"),children:(0,f.jsx)(_,{item:e})})}function I(e){const{items:s,className:n}=e;if(!s)return(0,f.jsx)(y,{...e});const t=(0,a.d1)(s);return(0,f.jsx)("section",{className:(0,c.A)("row",n),children:t.map((e,s)=>(0,f.jsx)(k,{item:e},s))})}var w=n(2590),C=n(1612),F=n(7053),M=n(9012);const V={generatedIndexPage:"generatedIndexPage_B26y",title:"title_j6zI"};function $({categoryGeneratedIndex:e}){return(0,f.jsx)(r.be,{title:e.title,description:e.description,keywords:e.keywords,image:(0,i.Ay)(e.image)})}function B({categoryGeneratedIndex:e}){const s=(0,a.$S)();return(0,f.jsxs)("div",{className:V.generatedIndexPage,children:[(0,f.jsx)(C.A,{}),(0,f.jsx)(M.A,{}),(0,f.jsx)(F.A,{}),(0,f.jsxs)("header",{children:[(0,f.jsx)(g.A,{as:"h1",className:V.title,children:e.title}),e.description&&(0,f.jsx)("p",{children:e.description})]}),(0,f.jsx)("article",{className:"margin-top--lg",children:(0,f.jsx)(I,{items:s.items,className:V.list})}),(0,f.jsx)("footer",{className:"margin-top--md",children:(0,f.jsx)(w.A,{previous:e.navigation.previous,next:e.navigation.next})})]})}function D(e){return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)($,{...e}),(0,f.jsx)(B,{...e})]})}},7053:(e,s,n)=>{n.d(s,{A:()=>l});n(7378);var t=n(3372),r=n(929),a=n(2811),i=n(5647),c=n(6106);function l({className:e}){const s=(0,i.r)();return s.badge?(0,c.jsx)("span",{className:(0,t.A)(e,a.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(r.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},9012:(e,s,n)=>{n.d(s,{A:()=>j});n(7378);var t=n(3372),r=n(2811),a=n(379),i=n(1709),c=n(9205),l=n(929),o=n(4082),d=n(6106);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_xzA8"};function h(){const e=(0,o.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.A,{"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var b=n(8955),x=n(321);function p(e){const s=function({breadcrumbs:e}){const{siteConfig:s}=(0,x.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${s.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(b.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(s)})})}const g={breadcrumbsContainer:"breadcrumbsContainer_dPwh"};function v({children:e,href:s,isLast:n}){const t="breadcrumbs__link";return n?(0,d.jsx)("span",{className:t,children:e}):s?(0,d.jsx)(c.A,{className:t,href:s,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:t,children:e})}function f({children:e,active:s}){return(0,d.jsx)("li",{className:(0,t.A)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:e})}function j(){const e=(0,a.OF)(),s=(0,i.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,t.A)(r.G.docs.docBreadcrumbs,g.breadcrumbsContainer),"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[s&&(0,d.jsx)(h,{}),e.map((s,n)=>{const t=n===e.length-1,r="category"===s.type&&s.linkUnlisted?void 0:s.href;return(0,d.jsx)(f,{active:t,children:(0,d.jsx)(v,{href:r,isLast:t,children:s.label})},n)})]})})]}):null}}}]); \ No newline at end of file diff --git a/upage/assets/js/17896441.d46dfadf.js b/upage/assets/js/17896441.d46dfadf.js new file mode 100644 index 0000000..9f821c1 --- /dev/null +++ b/upage/assets/js/17896441.d46dfadf.js @@ -0,0 +1 @@ +(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[401],{1357:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,i]=t;if(s&&i){s=parseInt(s),i=parseInt(i);const e=s{"use strict";n.d(t,{A:()=>x});n(7378);var s=n(3372),a=n(321),i=n(9205),r=n(929),o=n(8884),c=n(2811),l=n(2752),d=n(5647),u=n(6106);const m={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,u.jsx)(r.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,u.jsx)(r.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function f({versionLabel:e,to:t,onClick:n}){return(0,u.jsx)(r.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.A,{to:t,onClick:n,children:(0,u.jsx)(r.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function p({className:e,versionMetadata:t}){const{siteConfig:{title:n}}=(0,a.A)(),{pluginId:i}=(0,o.vT)({failfast:!0}),{savePreferredVersionName:r}=(0,l.g1)(i),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,o.HW)(i),p=d??(x=m).docs.find(e=>e.id===x.mainDocId);var x;return(0,u.jsxs)("div",{className:(0,s.A)(e,c.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:n,versionMetadata:t})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(f,{versionLabel:m.label,to:p.path,onClick:()=>r(m.name)})})]})}function x({className:e}){const t=(0,d.r)();return t.banner?(0,u.jsx)(p,{className:e,versionMetadata:t}):null}},2590:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(7378);var s=n(3372),a=n(929),i=n(9205),r=n(6106);function o(e){const{permalink:t,title:n,subLabel:a,isNext:o}=e;return(0,r.jsxs)(i.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,r.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{className:t,previous:n,next:i}=e;return(0,r.jsxs)("nav",{className:(0,s.A)(t,"pagination-nav"),"aria-label":(0,a.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,r.jsx)(o,{...n,subLabel:(0,r.jsx)(a.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),i&&(0,r.jsx)(o,{...i,subLabel:(0,r.jsx)(a.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},7053:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(7378);var s=n(3372),a=n(929),i=n(2811),r=n(5647),o=n(6106);function c({className:e}){const t=(0,r.r)();return t.badge?(0,o.jsx)("span",{className:(0,s.A)(e,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}},7826:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>hn});var s=n(7378),a=n(496),i=n(9328),r=n(6106);const o=s.createContext(null);function c({children:e,content:t}){const n=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(t);return(0,r.jsx)(o.Provider,{value:n,children:e})}function l(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=l();return(0,r.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(3372),m=n(5185),h=n(2590);function f(){const{metadata:e}=l();return(0,r.jsx)(h.A,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var p=n(1612),x=n(7053),g=n(2811),b=n(929),j=n(9205);const v={tag:"tag_gRSs",tagRegular:"tagRegular_VjY2",tagWithCount:"tagWithCount_bNVn"};function N({permalink:e,label:t,count:n,description:s}){return(0,r.jsxs)(j.A,{rel:"tag",href:e,title:s,className:(0,u.A)(v.tag,n?v.tagWithCount:v.tagRegular),children:[t,n&&(0,r.jsx)("span",{children:n})]})}const A={tags:"tags_F_l0",tag:"tag_SPZH"};function C({tags:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("b",{children:(0,r.jsx)(b.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,r.jsx)("ul",{className:(0,u.A)(A.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,r.jsx)("li",{className:A.tag,children:(0,r.jsx)(N,{...e})},e.permalink))})]})}const y={iconEdit:"iconEdit__ZHw"};function L({className:e,...t}){return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(y.iconEdit,e),"aria-hidden":"true",...t,children:(0,r.jsx)("g",{children:(0,r.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function k({editUrl:e}){return(0,r.jsxs)(j.A,{to:e,className:g.G.common.editThisPage,children:[(0,r.jsx)(L,{}),(0,r.jsx)(b.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var _=n(321);function w(e={}){const{i18n:{currentLocale:t}}=(0,_.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,_.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function T({lastUpdatedAt:e}){const t=new Date(e),n=w({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,r.jsx)(b.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,r.jsx)("b",{children:(0,r.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function B({lastUpdatedBy:e}){return(0,r.jsx)(b.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,r.jsx)("b",{children:e})},children:" by {user}"})}function H({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,r.jsxs)("span",{className:g.G.common.lastUpdated,children:[(0,r.jsx)(b.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,r.jsx)(T,{lastUpdatedAt:e}):"",byUser:t?(0,r.jsx)(B,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const E={lastUpdated:"lastUpdated_CpfT"};function M({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s}){return(0,r.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,r.jsx)("div",{className:"col",children:t&&(0,r.jsx)(k,{editUrl:t})}),(0,r.jsx)("div",{className:(0,u.A)("col",E.lastUpdated),children:(n||s)&&(0,r.jsx)(H,{lastUpdatedAt:n,lastUpdatedBy:s})})]})}function I(){const{metadata:e}=l(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(t||n||s);return i||o?(0,r.jsxs)("footer",{className:(0,u.A)(g.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,r.jsx)("div",{className:(0,u.A)("row margin-top--sm",g.G.docs.docFooterTagsRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(C,{tags:a})})}),o&&(0,r.jsx)(M,{className:(0,u.A)("margin-top--sm",g.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var S=n(5074),U=n(5794);function V(e){const t=e.map(e=>({...e,parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t});const s=[];return t.forEach(e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)}),s}function R({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return e.flatMap(e=>{const s=R({toc:e.children,minHeadingLevel:t,maxHeadingLevel:n});return function(e){return e.level>=t&&e.level<=n}(e)?[{...e,children:s}]:s})}function O(e){const t=e.getBoundingClientRect();return t.top===t.bottom?O(e.parentNode):t}function z(e,{anchorTopOffset:t}){const n=e.find(e=>O(e).top>=t);if(n){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}function W(e){const t=(0,s.useRef)(void 0),n=D();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:r}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:t}){const n=[];for(let s=e;s<=t;s+=1)n.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=z(o,{anchorTopOffset:n.current}),l=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===l)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,n])}function P({toc:e,className:t,linkClassName:n,isChild:s}){return e.length?(0,r.jsx)("ul",{className:s?void 0:t,children:e.map(e=>(0,r.jsxs)("li",{children:[(0,r.jsx)(j.A,{to:`#${e.id}`,className:n??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,r.jsx)(P,{isChild:!0,toc:e.children,className:t,linkClassName:n})]},e.id))}):null}const F=s.memo(P);function G({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o,...c}){const l=(0,U.p)(),d=i??l.tableOfContents.minHeadingLevel,u=o??l.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,s.useMemo)(()=>R({toc:V(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:e,minHeadingLevel:d,maxHeadingLevel:u});return W((0,s.useMemo)(()=>{if(n&&a)return{linkClassName:n,linkActiveClassName:a,minHeadingLevel:d,maxHeadingLevel:u}},[n,a,d,u])),(0,r.jsx)(F,{toc:m,className:t,linkClassName:n,...c})}const $={tocCollapsibleButton:"tocCollapsibleButton_wmrO",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_lsSG"};function q({collapsed:e,...t}){return(0,r.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",$.tocCollapsibleButton,!e&&$.tocCollapsibleButtonExpanded,t.className),children:(0,r.jsx)(b.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const Y={tocCollapsible:"tocCollapsible_S5VF",tocCollapsibleContent:"tocCollapsibleContent_LYt9",tocCollapsibleExpanded:"tocCollapsibleExpanded_JaTG"};function K({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,S.u)({initialState:!0});return(0,r.jsxs)("div",{className:(0,u.A)(Y.tocCollapsible,!a&&Y.tocCollapsibleExpanded,t),children:[(0,r.jsx)(q,{collapsed:a,onClick:i}),(0,r.jsx)(S.N,{lazy:!0,className:Y.tocCollapsibleContent,collapsed:a,children:(0,r.jsx)(G,{toc:e,minHeadingLevel:n,maxHeadingLevel:s})})]})}const Z={tocMobile:"tocMobile_gigA"};function J(){const{toc:e,frontMatter:t}=l();return(0,r.jsx)(K,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(g.G.docs.docTocMobile,Z.tocMobile)})}const X={tableOfContents:"tableOfContents_dKl6",docItemContainer:"docItemContainer_pl5C"},Q="table-of-contents__link toc-highlight",ee="table-of-contents__link--active";function te({className:e,...t}){return(0,r.jsx)("div",{className:(0,u.A)(X.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(G,{...t,linkClassName:Q,linkActiveClassName:ee})})}function ne(){const{toc:e,frontMatter:t}=l();return(0,r.jsx)(te,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.G.docs.docTocDesktop})}var se=n(3873),ae=n(8784),ie=n(8955),re=n(3724),oe=n(6289);function ce(){const{prism:e}=(0,U.p)(),{colorMode:t}=(0,oe.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var le=n(1357),de=n.n(le);const ue=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,he={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},fe={...he,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},pe=Object.keys(he);function xe(e,t){const n=e.map(e=>{const{start:n,end:s}=fe[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function ge({showLineNumbers:e,metastring:t}){return"boolean"==typeof e?e?1:void 0:"number"==typeof e?e:function(e){const t=e?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(t){if(t.startsWith("showLineNumbers=")){const e=t.replace("showLineNumbers=","");return parseInt(e,10)}return 1}}(t)}function be(e,t){const{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return xe(["js","jsBlock"],t);case"jsx":case"tsx":return xe(["js","jsBlock","jsx"],t);case"html":return xe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return xe(["bash"],t);case"markdown":case"md":return xe(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return xe(["tex"],t);case"lua":case"haskell":return xe(["lua"],t);case"sql":return xe(["lua","jsBlock"],t);case"wasm":return xe(["wasm"],t);case"vb":case"vba":case"visual-basic":return xe(["vb","rem"],t);case"vbnet":return xe(["vbnet","rem"],t);case"batch":return xe(["rem"],t);case"basic":return xe(["rem","f90"],t);case"fsharp":return xe(["js","ml"],t);case"ocaml":case"sml":return xe(["ml"],t);case"fortran":return xe(["f90"],t);case"cobol":return xe(["cobol"],t);default:return xe(pe,t)}}(n,s),i=e.split(/\r?\n/),r=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),o=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),l=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let u=0;u<i.length;){const e=i[u].match(a);if(!e){u+=1;continue}const t=e.slice(1).find(e=>void 0!==e);o[t]?r[o[t]].range+=`${u},`:c[t]?r[c[t]].start=u:l[t]&&(r[l[t]].range+=`${r[l[t]].start}-${u-1},`),i.splice(u,1)}const d={};return Object.entries(r).forEach(([e,{range:t}])=>{de()(t).forEach(t=>{d[t]??=[],d[t].push(e)})}),{code:i.join("\n"),lineClassNames:d}}function je(e,t){const n=e.replace(/\r?\n$/,"");return function(e,{metastring:t,magicComments:n}){if(t&&me.test(t)){const s=t.match(me).groups.range;if(0===n.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const a=n[0].className,i=de()(s).filter(e=>e>0).map(e=>[e-1,[a]]);return{lineClassNames:Object.fromEntries(i),code:e}}return null}(n,{...t})??be(n,{...t})}function ve(e){const t=function(e){return t=e.language??function(e){if(!e)return;const t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(e.className)??e.defaultLanguage,t?.toLowerCase()??"text";var t}({language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}),{lineClassNames:n,code:s}=je(e.code,{metastring:e.metastring,magicComments:e.magicComments,language:t}),a=function({className:e,language:t}){return(0,u.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:t}),i=(r=e.metastring,(r?.match(ue)?.groups.title??"")||e.title);var r;const o=ge({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:s,className:a,language:t,title:i,lineNumbersStart:o,lineClassNames:n}}const Ne=(0,s.createContext)(null);function Ae({metadata:e,wordWrap:t,children:n}){const a=(0,s.useMemo)(()=>({metadata:e,wordWrap:t}),[e,t]);return(0,r.jsx)(Ne.Provider,{value:a,children:n})}function Ce(){const e=(0,s.useContext)(Ne);if(null===e)throw new i.dV("CodeBlockContextProvider");return e}const ye="codeBlockContainer_tLQ_";function Le({as:e,...t}){const n=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,s])=>{const a=t[e];a&&"string"==typeof s&&(n[a]=s)}),n}(ce());return(0,r.jsx)(e,{...t,style:n,className:(0,u.A)(t.className,ye,g.G.common.codeBlock)})}const ke="codeBlock_HMKa",_e="codeBlockStandalone_Y7Kq",we="codeBlockLines_tPUF",Te="codeBlockLinesWithNumbering_Llg4";function Be({children:e,className:t}){return(0,r.jsx)(Le,{as:"pre",tabIndex:0,className:(0,u.A)(_e,"thin-scrollbar",t),children:(0,r.jsx)("code",{className:we,children:e})})}const He={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ee(e,t){const[n,a]=(0,s.useState)(),r=(0,s.useCallback)(()=>{a(e.current?.closest("[role=tabpanel][hidden]"))},[e,a]);(0,s.useEffect)(()=>{r()},[r]),function(e,t,n=He){const a=(0,i._q)(t),r=(0,i.Be)(n);(0,s.useEffect)(()=>{const t=new MutationObserver(a);return e&&t.observe(e,r),()=>t.disconnect()},[e,a,r])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function Me({children:e}){return e}var Ie=n(8876);function Se({line:e,token:t,...n}){return(0,r.jsx)("span",{...n})}const Ue="codeLine_ouMN",Ve="codeLineNumber_qYSH",Re="codeLineContent__EUc";function Oe({line:e,classNames:t,showLineNumbers:n,getLineProps:s,getTokenProps:a}){const i=function(e){const t=1===e.length&&"\n"===e[0].content?e[0]:void 0;return t?[{...t,content:""}]:e}(e),o=s({line:i,className:(0,u.A)(t,n&&Ue)}),c=i.map((e,t)=>{const n=a({token:e});return(0,r.jsx)(Se,{...n,line:i,token:e,children:n.children},t)});return(0,r.jsxs)("span",{...o,children:[n?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:Ve}),(0,r.jsx)("span",{className:Re,children:c})]}):c,(0,r.jsx)("br",{})]})}const ze=s.forwardRef((e,t)=>(0,r.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,u.A)(e.className,ke,"thin-scrollbar")}));function De(e){const{metadata:t}=Ce();return(0,r.jsx)("code",{...e,className:(0,u.A)(e.className,we,void 0!==t.lineNumbersStart&&Te),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:"line-count "+(t.lineNumbersStart-1)}})}function We({className:e}){const{metadata:t,wordWrap:n}=Ce(),s=ce(),{code:a,language:i,lineNumbersStart:o,lineClassNames:c}=t;return(0,r.jsx)(Ie.f4,{theme:s,code:a,language:i,children:({className:t,style:s,tokens:a,getLineProps:i,getTokenProps:l})=>(0,r.jsx)(ze,{ref:n.codeBlockRef,className:(0,u.A)(e,t),style:s,children:(0,r.jsx)(De,{children:a.map((e,t)=>(0,r.jsx)(Oe,{line:e,getLineProps:i,getTokenProps:l,classNames:c[t],showLineNumbers:void 0!==o},t))})})})}function Pe({children:e,fallback:t}){return(0,re.A)()?(0,r.jsx)(r.Fragment,{children:e?.()}):t??null}function Fe({className:e,...t}){return(0,r.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",e)})}function Ge(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function $e(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const qe={copyButtonCopied:"copyButtonCopied_S6Nt",copyButtonIcons:"copyButtonIcons_mNdj",copyButtonIcon:"copyButtonIcon_eK7n",copyButtonSuccessIcon:"copyButtonSuccessIcon_xUys"};function Ye(e){return e?(0,b.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"})}function Ke({className:e}){const{copyCode:t,isCopied:n}=function(){const{metadata:{code:e}}=Ce(),[t,n]=(0,s.useState)(!1),a=(0,s.useRef)(void 0),i=(0,s.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{n(!0),a.current=window.setTimeout(()=>{n(!1)},1e3)})},[e]);return(0,s.useEffect)(()=>()=>window.clearTimeout(a.current),[]),{copyCode:i,isCopied:t}}();return(0,r.jsx)(Fe,{"aria-label":Ye(n),title:(0,b.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)(e,qe.copyButton,n&&qe.copyButtonCopied),onClick:t,children:(0,r.jsxs)("span",{className:qe.copyButtonIcons,"aria-hidden":"true",children:[(0,r.jsx)(Ge,{className:qe.copyButtonIcon}),(0,r.jsx)($e,{className:qe.copyButtonSuccessIcon})]})})}function Ze(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const Je="wordWrapButtonIcon_nOMk",Xe="wordWrapButtonEnabled_UWpn";function Qe({className:e}){const{wordWrap:t}=Ce();if(!(t.isEnabled||t.isCodeScrollable))return!1;const n=(0,b.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,r.jsx)(Fe,{onClick:()=>t.toggle(),className:(0,u.A)(e,t.isEnabled&&Xe),"aria-label":n,title:n,children:(0,r.jsx)(Ze,{className:Je,"aria-hidden":"true"})})}const et="buttonGroup_bOYb";function tt({className:e}){return(0,r.jsx)(Pe,{children:()=>(0,r.jsxs)("div",{className:(0,u.A)(e,et),children:[(0,r.jsx)(Qe,{}),(0,r.jsx)(Ke,{})]})})}const nt="codeBlockContent_HMSW",st="codeBlockTitle_E7Db";function at({className:e}){const{metadata:t}=Ce();return(0,r.jsxs)(Le,{as:"div",className:(0,u.A)(e,t.className),children:[t.title&&(0,r.jsx)("div",{className:st,children:(0,r.jsx)(Me,{children:t.title})}),(0,r.jsxs)("div",{className:nt,children:[(0,r.jsx)(We,{}),(0,r.jsx)(tt,{})]})]})}function it(e){const t=function(e){const{prism:t}=(0,U.p)();return ve({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),i=(0,s.useRef)(null),r=(0,s.useCallback)(()=>{const n=i.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[i,e]),o=(0,s.useCallback)(()=>{const{scrollWidth:e,clientWidth:t}=i.current,n=e>t||i.current.querySelector("code").hasAttribute("style");a(n)},[i]);return Ee(i,o),(0,s.useEffect)(()=>{o()},[e,o]),(0,s.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:n,toggle:r}}();return(0,r.jsx)(Ae,{metadata:t,wordWrap:n,children:(0,r.jsx)(at,{})})}function rt({children:e,...t}){const n=(0,re.A)(),a=function(e){return s.Children.toArray(e).some(e=>(0,s.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e}(e),i="string"==typeof a?it:Be;return(0,r.jsx)(i,{...t,children:a},String(n))}function ot(e){return(0,r.jsx)("code",{...e})}const ct="footnoteRefStickyNavbar_wDdy",lt="footnoteRefHideOnScrollNavbar__Xuc";function dt(e){const{navbar:{hideOnScroll:t}}=(0,U.p)();return(0,r.jsx)(j.A,{...e,className:(0,u.A)(t?lt:ct,e.className)})}var ut=n(9106);const mt="details_jyK0",ht="isBrowser_Yxpi",ft="collapsibleContent_tEVE";function pt(e){return!!e&&("SUMMARY"===e.tagName||pt(e.parentElement))}function xt(e,t){return!!e&&(e===t||xt(e.parentElement,t))}function gt({summary:e,children:t,...n}){(0,ut.A)().collectAnchor(n.id);const a=(0,re.A)(),i=(0,s.useRef)(null),{collapsed:o,setCollapsed:c}=(0,S.u)({initialState:!n.open}),[l,d]=(0,s.useState)(n.open),m=s.isValidElement(e)?e:(0,r.jsx)("summary",{children:e??"Details"});return(0,r.jsxs)("details",{...n,ref:i,open:l,"data-collapsed":o,className:(0,u.A)(mt,a&&ht,n.className),onMouseDown:e=>{pt(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;pt(t)&&xt(t,i.current)&&(e.preventDefault(),o?(c(!1),d(!0)):c(!0))},children:[m,(0,r.jsx)(S.N,{lazy:!1,collapsed:o,onCollapseTransitionEnd:e=>{c(e),d(!e)},children:(0,r.jsx)("div",{className:ft,children:t})})]})}const bt="details_ACKm";function jt({...e}){return(0,r.jsx)(gt,{...e,className:(0,u.A)("alert alert--info",bt,e.className)})}function vt(e){const t=s.Children.toArray(e.children),n=t.find(e=>s.isValidElement(e)&&"summary"===e.type),a=(0,r.jsx)(r.Fragment,{children:t.filter(e=>e!==n)});return(0,r.jsx)(jt,{...e,summary:n,children:a})}function Nt(e){return(0,r.jsx)(se.A,{...e})}const At="containsTaskList_JFll";function Ct(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&At)}const yt="img_CXlF";function Lt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),a=t.filter(e=>e!==n),i=n?.props.children;return{mdxAdmonitionTitle:i,rest:a.length>0?(0,r.jsx)(r.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const kt="admonition_CpQR",_t="admonitionHeading_lTaP",wt="admonitionIcon_Sec2",Tt="admonitionContent__UXo";function Bt({type:e,className:t,children:n}){return(0,r.jsx)("div",{className:(0,u.A)(g.G.common.admonition,g.G.common.admonitionType(e),kt,t),children:n})}function Ht({icon:e,title:t}){return(0,r.jsxs)("div",{className:_t,children:[(0,r.jsx)("span",{className:wt,children:e}),t]})}function Et({children:e}){return e?(0,r.jsx)("div",{className:Tt,children:e}):null}function Mt(e){const{type:t,icon:n,title:s,children:a,className:i}=e;return(0,r.jsxs)(Bt,{type:t,className:i,children:[s||n?(0,r.jsx)(Ht,{title:s,icon:n}):null,(0,r.jsx)(Et,{children:a})]})}function It(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const St={icon:(0,r.jsx)(It,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function Ut(e){return(0,r.jsx)(Mt,{...St,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function Vt(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const Rt={icon:(0,r.jsx)(Vt,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function Ot(e){return(0,r.jsx)(Mt,{...Rt,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function zt(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const Dt={icon:(0,r.jsx)(zt,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function Wt(e){return(0,r.jsx)(Mt,{...Dt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function Pt(e){return(0,r.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const Ft={icon:(0,r.jsx)(Pt,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function Gt(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const $t={icon:(0,r.jsx)(Gt,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const qt={icon:(0,r.jsx)(Pt,{}),title:(0,r.jsx)(b.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const Yt={...{note:Ut,tip:Ot,info:Wt,warning:function(e){return(0,r.jsx)(Mt,{...Ft,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,r.jsx)(Mt,{...$t,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,r.jsx)(Ut,{title:"secondary",...e}),important:e=>(0,r.jsx)(Wt,{title:"important",...e}),success:e=>(0,r.jsx)(Ot,{title:"success",...e}),caution:function(e){return(0,r.jsx)(Mt,{...qt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function Kt(e){const t=Lt(e),n=(s=t.type,Yt[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),Yt.info));var s;return(0,r.jsx)(n,{...t})}var Zt=n(4169);const Jt={Head:ie.A,details:vt,Details:vt,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))}(e)?(0,r.jsx)(ot,{...e}):(0,r.jsx)(rt,{...e})},a:function(e){return function(e){return!0===e["data-footnote-ref"]}(e)?(0,r.jsx)(dt,{...e}):(0,r.jsx)(j.A,{...e})},pre:function(e){return(0,r.jsx)(r.Fragment,{children:e.children})},ul:function(e){return(0,r.jsx)("ul",{...e,className:Ct(e.className)})},li:function(e){return(0,ut.A)().collectAnchor(e.id),(0,r.jsx)("li",{...e})},img:function(e){return(0,r.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,yt))});var t},h1:e=>(0,r.jsx)(Nt,{as:"h1",...e}),h2:e=>(0,r.jsx)(Nt,{as:"h2",...e}),h3:e=>(0,r.jsx)(Nt,{as:"h3",...e}),h4:e=>(0,r.jsx)(Nt,{as:"h4",...e}),h5:e=>(0,r.jsx)(Nt,{as:"h5",...e}),h6:e=>(0,r.jsx)(Nt,{as:"h6",...e}),admonition:Kt,mermaid:Zt.A};function Xt({children:e}){return(0,r.jsx)(ae.x,{components:Jt,children:e})}function Qt({children:e}){const t=function(){const{metadata:e,frontMatter:t,contentTitle:n}=l();return t.hide_title||void 0!==n?null:e.title}();return(0,r.jsxs)("div",{className:(0,u.A)(g.G.docs.docMarkdown,"markdown"),children:[t&&(0,r.jsx)("header",{children:(0,r.jsx)(se.A,{as:"h1",children:t})}),(0,r.jsx)(Xt,{children:e})]})}var en=n(9012);function tn(){return(0,r.jsx)(b.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function nn(){return(0,r.jsx)(b.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function sn(){return(0,r.jsx)(ie.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function an(){return(0,r.jsx)(b.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function rn(){return(0,r.jsx)(b.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function on({className:e}){return(0,r.jsx)(Kt,{type:"caution",title:(0,r.jsx)(an,{}),className:(0,u.A)(e,g.G.common.draftBanner),children:(0,r.jsx)(rn,{})})}function cn({className:e}){return(0,r.jsx)(Kt,{type:"caution",title:(0,r.jsx)(tn,{}),className:(0,u.A)(e,g.G.common.unlistedBanner),children:(0,r.jsx)(nn,{})})}function ln(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(sn,{}),(0,r.jsx)(cn,{...e})]})}function dn({metadata:e}){const{unlisted:t,frontMatter:n}=e;return(0,r.jsxs)(r.Fragment,{children:[(t||n.unlisted)&&(0,r.jsx)(ln,{}),n.draft&&(0,r.jsx)(on,{})]})}const un={docItemContainer:"docItemContainer_Wij8",docItemCol:"docItemCol_s9lu"};function mn({children:e}){const t=function(){const{frontMatter:e,toc:t}=l(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,r.jsx)(J,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,r.jsx)(ne,{})}}(),{metadata:n}=l();return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&un.docItemCol),children:[(0,r.jsx)(dn,{metadata:n}),(0,r.jsx)(p.A,{}),(0,r.jsxs)("div",{className:un.docItemContainer,children:[(0,r.jsxs)("article",{children:[(0,r.jsx)(en.A,{}),(0,r.jsx)(x.A,{}),t.mobile,(0,r.jsx)(Qt,{children:e}),(0,r.jsx)(I,{})]}),(0,r.jsx)(f,{})]})]}),t.desktop&&(0,r.jsx)("div",{className:"col col--3",children:t.desktop})]})}function hn(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,r.jsx)(c,{content:e.content,children:(0,r.jsxs)(a.e3,{className:t,children:[(0,r.jsx)(d,{}),(0,r.jsx)(mn,{children:(0,r.jsx)(n,{})})]})})}},8784:(e,t,n)=>{"use strict";n.d(t,{R:()=>r,x:()=>o});var s=n(7378);const a={},i=s.createContext(a);function r(e){const t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:t},e.children)}},9012:(e,t,n)=>{"use strict";n.d(t,{A:()=>v});n(7378);var s=n(3372),a=n(2811),i=n(379),r=n(1709),o=n(9205),c=n(929),l=n(4082),d=n(6106);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_xzA8"};function h(){const e=(0,l.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(o.A,{"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var f=n(8955),p=n(321);function x(e){const t=function({breadcrumbs:e}){const{siteConfig:t}=(0,p.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${t.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(f.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}const g={breadcrumbsContainer:"breadcrumbsContainer_dPwh"};function b({children:e,href:t,isLast:n}){const s="breadcrumbs__link";return n?(0,d.jsx)("span",{className:s,children:e}):t?(0,d.jsx)(o.A,{className:s,href:t,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:s,children:e})}function j({children:e,active:t}){return(0,d.jsx)("li",{className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:e})}function v(){const e=(0,i.OF)(),t=(0,r.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,s.A)(a.G.docs.docBreadcrumbs,g.breadcrumbsContainer),"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[t&&(0,d.jsx)(h,{}),e.map((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(j,{active:s,children:(0,d.jsx)(b,{href:a,isLast:s,children:t.label})},n)})]})})]}):null}}}]); \ No newline at end of file diff --git a/upage/assets/js/1ec2c777.9bb5192e.js b/upage/assets/js/1ec2c777.9bb5192e.js new file mode 100644 index 0000000..fdbb5c5 --- /dev/null +++ b/upage/assets/js/1ec2c777.9bb5192e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[154],{8784:(n,e,i)=>{i.d(e,{R:()=>d,x:()=>r});var s=i(7378);const l={},c=s.createContext(l);function d(n){const e=s.useContext(c);return s.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function r(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:d(n.components),s.createElement(c.Provider,{value:e},n.children)}},8958:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>h,contentTitle:()=>r,default:()=>x,frontMatter:()=>d,metadata:()=>s,toc:()=>t});const s=JSON.parse('{"id":"contributing/code-standards","title":"\u4ee3\u7801\u89c4\u8303","description":"UPage \u9879\u76ee\u9075\u5faa\u4e25\u683c\u7684\u4ee3\u7801\u89c4\u8303\u548c\u6700\u4f73\u5b9e\u8df5\uff0c\u4ee5\u786e\u4fdd\u4ee3\u7801\u8d28\u91cf\u548c\u4e00\u81f4\u6027\u3002\u672c\u6587\u6863\u6982\u8ff0\u4e86\u8fd9\u4e9b\u89c4\u8303\uff0c\u6240\u6709\u8d21\u732e\u8005\u5728\u63d0\u4ea4\u4ee3\u7801\u524d\u5e94\u786e\u4fdd\u9075\u5faa\u8fd9\u4e9b\u89c4\u8303\u3002","source":"@site/content/contributing/code-standards.md","sourceDirName":"contributing","slug":"/contributing/code-standards","permalink":"/upage/contributing/code-standards","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/code-standards.md","tags":[],"version":"current","frontMatter":{"id":"code-standards","title":"\u4ee3\u7801\u89c4\u8303"},"sidebar":"tutorialSidebar","previous":{"title":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e","permalink":"/upage/contributing/development-setup"},"next":{"title":"\u5de5\u4f5c\u6d41\u7a0b","permalink":"/upage/contributing/workflow"}}');var l=i(6106),c=i(8784);const d={id:"code-standards",title:"\u4ee3\u7801\u89c4\u8303"},r="\u4ee3\u7801\u89c4\u8303",h={},t=[{value:"JavaScript/TypeScript \u89c4\u8303",id:"javascripttypescript-\u89c4\u8303",level:2},{value:"\u4ee3\u7801\u68c0\u67e5",id:"\u4ee3\u7801\u68c0\u67e5",level:3},{value:"\u81ea\u52a8\u4fee\u590d",id:"\u81ea\u52a8\u4fee\u590d",level:3},{value:"\u4e3b\u8981\u89c4\u8303",id:"\u4e3b\u8981\u89c4\u8303",level:3},{value:"Git \u63d0\u4ea4\u89c4\u8303",id:"git-\u63d0\u4ea4\u89c4\u8303",level:2},{value:"\u7c7b\u578b (Type)",id:"\u7c7b\u578b-type",level:3},{value:"\u8303\u56f4 (Scope)",id:"\u8303\u56f4-scope",level:3},{value:"\u63cf\u8ff0 (Description)",id:"\u63cf\u8ff0-description",level:3},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:3},{value:"CSS/SCSS \u89c4\u8303",id:"cssscss-\u89c4\u8303",level:2},{value:"\u547d\u540d\u7ea6\u5b9a",id:"\u547d\u540d\u7ea6\u5b9a",level:3},{value:"\u7ec4\u7ec7\u7ed3\u6784",id:"\u7ec4\u7ec7\u7ed3\u6784",level:3},{value:"\u53ef\u8bbf\u95ee\u6027\u6807\u51c6",id:"\u53ef\u8bbf\u95ee\u6027\u6807\u51c6",level:2},{value:"\u6d4b\u8bd5\u89c4\u8303",id:"\u6d4b\u8bd5\u89c4\u8303",level:2},{value:"\u6027\u80fd\u8003\u8651",id:"\u6027\u80fd\u8003\u8651",level:2},{value:"\u5b89\u5168\u6700\u4f73\u5b9e\u8df5",id:"\u5b89\u5168\u6700\u4f73\u5b9e\u8df5",level:2}];function o(n){const e={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.header,{children:(0,l.jsx)(e.h1,{id:"\u4ee3\u7801\u89c4\u8303",children:"\u4ee3\u7801\u89c4\u8303"})}),"\n",(0,l.jsx)(e.p,{children:"UPage \u9879\u76ee\u9075\u5faa\u4e25\u683c\u7684\u4ee3\u7801\u89c4\u8303\u548c\u6700\u4f73\u5b9e\u8df5\uff0c\u4ee5\u786e\u4fdd\u4ee3\u7801\u8d28\u91cf\u548c\u4e00\u81f4\u6027\u3002\u672c\u6587\u6863\u6982\u8ff0\u4e86\u8fd9\u4e9b\u89c4\u8303\uff0c\u6240\u6709\u8d21\u732e\u8005\u5728\u63d0\u4ea4\u4ee3\u7801\u524d\u5e94\u786e\u4fdd\u9075\u5faa\u8fd9\u4e9b\u89c4\u8303\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"javascripttypescript-\u89c4\u8303",children:"JavaScript/TypeScript \u89c4\u8303"}),"\n",(0,l.jsxs)(e.p,{children:["UPage \u4f7f\u7528 ",(0,l.jsx)(e.a,{href:"https://biomejs.dev/",children:"Biome"})," \u8fdb\u884c\u4ee3\u7801\u683c\u5f0f\u5316\u548c linting\u3002Biome \u662f\u4e00\u4e2a\u5feb\u901f\u7684\u4ee3\u7801\u683c\u5f0f\u5316\u5de5\u5177\u548c linter\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u4fdd\u6301\u4ee3\u7801\u98ce\u683c\u7684\u4e00\u81f4\u6027\u3002"]}),"\n",(0,l.jsx)(e.h3,{id:"\u4ee3\u7801\u68c0\u67e5",children:"\u4ee3\u7801\u68c0\u67e5"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u63d0\u4ea4\u4ee3\u7801\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u4ee3\u7801\u7b26\u5408\u9879\u76ee\u7684\u4ee3\u7801\u89c4\u8303\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-bash",children:"pnpm check\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u81ea\u52a8\u4fee\u590d",children:"\u81ea\u52a8\u4fee\u590d"}),"\n",(0,l.jsx)(e.p,{children:"\u60a8\u4e5f\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u81ea\u52a8\u4fee\u590d\u683c\u5f0f\u95ee\u9898\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-bash",children:"pnpm check --write\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u4e3b\u8981\u89c4\u8303",children:"\u4e3b\u8981\u89c4\u8303"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u7f29\u8fdb"}),": \u4f7f\u7528 2 \u4e2a\u7a7a\u683c"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u5206\u53f7"}),": \u5fc5\u987b\u4f7f\u7528\u5206\u53f7"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u5f15\u53f7"}),": \u4f7f\u7528\u5355\u5f15\u53f7"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u547d\u540d\u7ea6\u5b9a"}),":","\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u53d8\u91cf\u548c\u51fd\u6570\u4f7f\u7528 camelCase"}),"\n",(0,l.jsx)(e.li,{children:"\u7c7b\u548c\u63a5\u53e3\u4f7f\u7528 PascalCase"}),"\n",(0,l.jsx)(e.li,{children:"\u5e38\u91cf\u4f7f\u7528 UPPER_SNAKE_CASE"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u7c7b\u578b\u6ce8\u89e3"}),": \u5c3d\u53ef\u80fd\u4f7f\u7528\u7c7b\u578b\u6ce8\u89e3\u63d0\u9ad8\u4ee3\u7801\u53ef\u8bfb\u6027\u548c\u7c7b\u578b\u5b89\u5168\u6027"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u6ce8\u91ca"}),": \u5bf9\u590d\u6742\u903b\u8f91\u548c\u516c\u5171 API \u6dfb\u52a0\u9002\u5f53\u7684\u6ce8\u91ca"]}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"git-\u63d0\u4ea4\u89c4\u8303",children:"Git \u63d0\u4ea4\u89c4\u8303"}),"\n",(0,l.jsxs)(e.p,{children:["\u6211\u4eec\u4f7f\u7528 ",(0,l.jsx)(e.a,{href:"https://www.conventionalcommits.org/",children:"Conventional Commits"})," \u89c4\u8303\u6765\u683c\u5f0f\u5316 Git \u63d0\u4ea4\u4fe1\u606f\u3002\u63d0\u4ea4\u4fe1\u606f\u5e94\u9075\u5faa\u4ee5\u4e0b\u683c\u5f0f\uff1a"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"<type>(<scope>): <description>\n\n[optional body]\n\n[optional footer(s)]\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u7c7b\u578b-type",children:"\u7c7b\u578b (Type)"}),"\n",(0,l.jsx)(e.p,{children:"\u63d0\u4ea4\u7c7b\u578b\u5fc5\u987b\u662f\u4ee5\u4e0b\u4e4b\u4e00\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"feat"}),": \u65b0\u529f\u80fd"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"fix"}),": \u4fee\u590d bug"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"docs"}),": \u6587\u6863\u66f4\u65b0"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"style"}),": \u4ee3\u7801\u98ce\u683c\u66f4\u6539\uff08\u4e0d\u5f71\u54cd\u4ee3\u7801\u529f\u80fd\uff09"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"refactor"}),": \u4ee3\u7801\u91cd\u6784\uff08\u65e2\u4e0d\u662f\u65b0\u529f\u80fd\uff0c\u4e5f\u4e0d\u662f\u4fee\u590d bug\uff09"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"perf"}),": \u6027\u80fd\u4f18\u5316"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"test"}),": \u6dfb\u52a0\u6216\u4fee\u6539\u6d4b\u8bd5"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"chore"}),": \u6784\u5efa\u8fc7\u7a0b\u6216\u8f85\u52a9\u5de5\u5177\u7684\u53d8\u52a8"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"ci"}),": CI \u914d\u7f6e\u6587\u4ef6\u548c\u811a\u672c\u7684\u66f4\u6539"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"revert"}),": \u56de\u6eda\u4e4b\u524d\u7684\u63d0\u4ea4"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u8303\u56f4-scope",children:"\u8303\u56f4 (Scope)"}),"\n",(0,l.jsx)(e.p,{children:"\u8303\u56f4\u662f\u53ef\u9009\u7684\uff0c\u7528\u4e8e\u6307\u5b9a\u66f4\u6539\u7684\u8303\u56f4\uff08\u4f8b\u5982\u7ec4\u4ef6\u6216\u6587\u4ef6\u540d\uff09\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"\u63cf\u8ff0-description",children:"\u63cf\u8ff0 (Description)"}),"\n",(0,l.jsx)(e.p,{children:"\u63cf\u8ff0\u662f\u5bf9\u66f4\u6539\u7684\u7b80\u77ed\u6458\u8981\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:'\u4f7f\u7528\u73b0\u5728\u65f6\u6001\uff08"change"\uff0c\u800c\u4e0d\u662f"changed"\u6216"changes"\uff09'}),"\n",(0,l.jsx)(e.li,{children:"\u4e0d\u8981\u9996\u5b57\u6bcd\u5927\u5199"}),"\n",(0,l.jsx)(e.li,{children:"\u4e0d\u8981\u4ee5\u53e5\u53f7\u7ed3\u5c3e"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"feat(editor): \u6dfb\u52a0\u62d6\u62fd\u8c03\u6574\u7ec4\u4ef6\u5927\u5c0f\u529f\u80fd\n\n\u6dfb\u52a0\u4e86\u4e00\u4e2a\u65b0\u7684\u62d6\u62fd\u53e5\u67c4\uff0c\u5141\u8bb8\u7528\u6237\u76f4\u63a5\u8c03\u6574\u7ec4\u4ef6\u7684\u5927\u5c0f\u3002\n\u540c\u65f6\u4f18\u5316\u4e86\u8c03\u6574\u8fc7\u7a0b\u4e2d\u7684\u6027\u80fd\u3002\n\nCloses #123\n"})}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"fix: \u4fee\u590d\u7528\u6237\u8ba4\u8bc1\u5931\u8d25\u95ee\u9898\n\n\u4fee\u590d\u4e86\u5f53\u7528\u6237\u51ed\u8bc1\u5305\u542b\u7279\u6b8a\u5b57\u7b26\u65f6\u8ba4\u8bc1\u5931\u8d25\u7684\u95ee\u9898\u3002\n\nFixes #456\n"})}),"\n",(0,l.jsx)(e.h2,{id:"cssscss-\u89c4\u8303",children:"CSS/SCSS \u89c4\u8303"}),"\n",(0,l.jsx)(e.p,{children:"UPage \u4f7f\u7528 SCSS \u548c CSS Modules \u6765\u7ec4\u7ec7\u6837\u5f0f\u4ee3\u7801\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"\u547d\u540d\u7ea6\u5b9a",children:"\u547d\u540d\u7ea6\u5b9a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528 kebab-case \u547d\u540d CSS \u7c7b\u548c ID"}),"\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528\u6709\u610f\u4e49\u7684\u540d\u79f0\uff0c\u907f\u514d\u8fc7\u4e8e\u7b80\u77ed\u6216\u62bd\u8c61\u7684\u540d\u79f0"}),"\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528 BEM\uff08Block Element Modifier\uff09\u547d\u540d\u65b9\u6cd5\u8bba"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u7ec4\u7ec7\u7ed3\u6784",children:"\u7ec4\u7ec7\u7ed3\u6784"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:["\u5c06\u5168\u5c40\u6837\u5f0f\u653e\u5728 ",(0,l.jsx)(e.code,{children:"app/styles"})," \u76ee\u5f55\u4e0b"]}),"\n",(0,l.jsxs)(e.li,{children:["\u5c06\u7ec4\u4ef6\u7279\u5b9a\u6837\u5f0f\u653e\u5728\u7ec4\u4ef6\u540c\u7ea7\u76ee\u5f55\u4e0b\u7684 ",(0,l.jsx)(e.code,{children:".scss"})," \u6216 ",(0,l.jsx)(e.code,{children:".module.scss"})," \u6587\u4ef6\u4e2d"]}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u53ef\u8bbf\u95ee\u6027\u6807\u51c6",children:"\u53ef\u8bbf\u95ee\u6027\u6807\u51c6"}),"\n",(0,l.jsxs)(e.p,{children:["UPage \u81f4\u529b\u4e8e\u521b\u5efa\u53ef\u8bbf\u95ee\u7684 Web \u5e94\u7528\u7a0b\u5e8f\u3002\u6240\u6709\u8d21\u732e\u7684\u4ee3\u7801\u5e94\u9075\u5faa ",(0,l.jsx)(e.a,{href:"https://www.w3.org/WAI/WCAG21/quickref/",children:"WCAG 2.1 AA"})," \u6807\u51c6\u3002"]}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u786e\u4fdd\u9002\u5f53\u7684\u989c\u8272\u5bf9\u6bd4\u5ea6"}),"\n",(0,l.jsx)(e.li,{children:"\u63d0\u4f9b\u66ff\u4ee3\u6587\u672c\u548c ARIA \u6807\u7b7e"}),"\n",(0,l.jsx)(e.li,{children:"\u786e\u4fdd\u952e\u76d8\u5bfc\u822a\u529f\u80fd"}),"\n",(0,l.jsx)(e.li,{children:"\u652f\u6301\u5c4f\u5e55\u9605\u8bfb\u5668"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u6d4b\u8bd5\u89c4\u8303",children:"\u6d4b\u8bd5\u89c4\u8303"}),"\n",(0,l.jsx)(e.p,{children:"\u6240\u6709\u65b0\u529f\u80fd\u548c bug \u4fee\u590d\u5e94\u5305\u542b\u9002\u5f53\u7684\u6d4b\u8bd5\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u5355\u5143\u6d4b\u8bd5"}),": \u6d4b\u8bd5\u5355\u4e2a\u51fd\u6570\u548c\u7ec4\u4ef6"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u96c6\u6210\u6d4b\u8bd5"}),": \u6d4b\u8bd5\u591a\u4e2a\u7ec4\u4ef6\u6216\u529f\u80fd\u7684\u4ea4\u4e92"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u7aef\u5230\u7aef\u6d4b\u8bd5"}),": \u6d4b\u8bd5\u5b8c\u6574\u7684\u7528\u6237\u6d41\u7a0b"]}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u6d4b\u8bd5\u5e94\u8be5\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u8986\u76d6\u6b63\u5e38\u548c\u8fb9\u7f18\u60c5\u51b5"}),"\n",(0,l.jsx)(e.li,{children:"\u6e05\u6670\u63cf\u8ff0\u6d4b\u8bd5\u7684\u76ee\u7684"}),"\n",(0,l.jsx)(e.li,{children:"\u4fdd\u6301\u72ec\u7acb\u6027\uff0c\u4e0d\u4f9d\u8d56\u4e8e\u5176\u4ed6\u6d4b\u8bd5\u7684\u72b6\u6001"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u6027\u80fd\u8003\u8651",children:"\u6027\u80fd\u8003\u8651"}),"\n",(0,l.jsx)(e.p,{children:"\u8d21\u732e\u7684\u4ee3\u7801\u5e94\u8003\u8651\u6027\u80fd\u5f71\u54cd\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u91cd\u65b0\u6e32\u67d3"}),"\n",(0,l.jsx)(e.li,{children:"\u4f18\u5316\u5927\u578b\u5217\u8868\u548c\u8868\u683c"}),"\n",(0,l.jsx)(e.li,{children:"\u61d2\u52a0\u8f7d\u5927\u578b\u8d44\u6e90"}),"\n",(0,l.jsx)(e.li,{children:"\u51cf\u5c11\u7f51\u7edc\u8bf7\u6c42"}),"\n",(0,l.jsx)(e.li,{children:"\u4f18\u5316\u6253\u5305\u5927\u5c0f"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u5b89\u5168\u6700\u4f73\u5b9e\u8df5",children:"\u5b89\u5168\u6700\u4f73\u5b9e\u8df5"}),"\n",(0,l.jsx)(e.p,{children:"\u6240\u6709\u4ee3\u7801\u5e94\u9075\u5faa\u5b89\u5168\u6700\u4f73\u5b9e\u8df5\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u9632\u6b62 XSS \u653b\u51fb"}),"\n",(0,l.jsx)(e.li,{children:"\u907f\u514d SQL \u6ce8\u5165"}),"\n",(0,l.jsx)(e.li,{children:"\u6b63\u786e\u5904\u7406\u7528\u6237\u8f93\u5165"}),"\n",(0,l.jsx)(e.li,{children:"\u4fdd\u62a4\u654f\u611f\u6570\u636e"}),"\n",(0,l.jsx)(e.li,{children:"\u5b9e\u65bd\u9002\u5f53\u7684\u8bbf\u95ee\u63a7\u5236"}),"\n"]})]})}function x(n={}){const{wrapper:e}={...(0,c.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(o,{...n})}):o(n)}}}]); \ No newline at end of file diff --git a/upage/assets/js/221e29db.d52ad40d.js b/upage/assets/js/221e29db.d52ad40d.js new file mode 100644 index 0000000..5c25257 --- /dev/null +++ b/upage/assets/js/221e29db.d52ad40d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[940],{3679:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"deployment/others","title":"\u5176\u4ed6\u914d\u7f6e","description":"\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u90e8\u7f72 UPage \u65f6\u7684\u4e00\u4e9b\u5176\u4ed6\u914d\u7f6e\u9009\u9879\u548c\u6700\u4f73\u5b9e\u8df5\u3002","source":"@site/content/deployment/others.md","sourceDirName":"deployment","slug":"/deployment/others","permalink":"/upage/deployment/others","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/others.md","tags":[],"version":"current","frontMatter":{"id":"others","title":"\u5176\u4ed6\u914d\u7f6e"},"sidebar":"tutorialSidebar","previous":{"title":"Logto \u8ba4\u8bc1\u96c6\u6210","permalink":"/upage/deployment/logto"},"next":{"title":"\u914d\u7f6e\u53c2\u8003","permalink":"/upage/configuration"}}');var o=t(6106),s=t(8784);const a={id:"others",title:"\u5176\u4ed6\u914d\u7f6e"},d="\u5176\u4ed6\u914d\u7f6e",i={},c=[{value:"\u4f7f\u7528 Nginx \u53cd\u5411\u4ee3\u7406",id:"\u4f7f\u7528-nginx-\u53cd\u5411\u4ee3\u7406",level:2},{value:"\u914d\u7f6e HTTPS",id:"\u914d\u7f6e-https",level:2},{value:"\u6570\u636e\u5907\u4efd",id:"\u6570\u636e\u5907\u4efd",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u5176\u4ed6\u914d\u7f6e",children:"\u5176\u4ed6\u914d\u7f6e"})}),"\n",(0,o.jsx)(n.p,{children:"\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u90e8\u7f72 UPage \u65f6\u7684\u4e00\u4e9b\u5176\u4ed6\u914d\u7f6e\u9009\u9879\u548c\u6700\u4f73\u5b9e\u8df5\u3002"}),"\n",(0,o.jsx)(n.h2,{id:"\u4f7f\u7528-nginx-\u53cd\u5411\u4ee3\u7406",children:"\u4f7f\u7528 Nginx \u53cd\u5411\u4ee3\u7406"}),"\n",(0,o.jsx)(n.p,{children:"\u5982\u679c\u60a8\u9700\u8981\u4f7f\u7528 Nginx \u4f5c\u4e3a\u53cd\u5411\u4ee3\u7406\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u914d\u7f6e\uff1a"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-nginx",children:"server {\n listen 80;\n server_name your-domain.com;\n\n location / {\n proxy_pass http://localhost:3000;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"\u914d\u7f6e-https",children:"\u914d\u7f6e HTTPS"}),"\n",(0,o.jsx)(n.p,{children:"\u5efa\u8bae\u4f7f\u7528 Nginx \u6216\u5176\u4ed6\u53cd\u5411\u4ee3\u7406\u6765\u5904\u7406 HTTPS \u8bf7\u6c42\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528 Let's Encrypt \u83b7\u53d6\u514d\u8d39\u7684 SSL \u8bc1\u4e66\u3002"}),"\n",(0,o.jsx)(n.h2,{id:"\u6570\u636e\u5907\u4efd",children:"\u6570\u636e\u5907\u4efd"}),"\n",(0,o.jsxs)(n.p,{children:["UPage \u7684\u6570\u636e\u5b58\u50a8\u5728\u6302\u8f7d\u7684 ",(0,o.jsx)(n.code,{children:"data"})," \u76ee\u5f55\u4e2d\uff0c\u60a8\u53ef\u4ee5\u5b9a\u671f\u5907\u4efd\u8be5\u76ee\u5f55\u6765\u4fdd\u62a4\u60a8\u7684\u6570\u636e\uff1a"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"# \u5907\u4efd\u6570\u636e\u76ee\u5f55\ntar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./upage/data\n"})})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8784:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>d});var r=t(7378);const o={},s=r.createContext(o);function a(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/2ccc2e53.0ce41deb.js b/upage/assets/js/2ccc2e53.0ce41deb.js new file mode 100644 index 0000000..dd5fa7e --- /dev/null +++ b/upage/assets/js/2ccc2e53.0ce41deb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[183],{3856:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>t,frontMatter:()=>s,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"faq","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u6587\u6863\u6574\u7406\u4e86\u4f7f\u7528 UPage \u65f6\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u89e3\u51b3\u53ef\u80fd\u9047\u5230\u7684\u95ee\u9898\u3002","source":"@site/content/faq.md","sourceDirName":".","slug":"/faq","permalink":"/upage/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/faq.md","tags":[],"version":"current","frontMatter":{"id":"faq","title":"\u5e38\u89c1\u95ee\u9898"},"sidebar":"tutorialSidebar","previous":{"title":"\u5de5\u4f5c\u6d41\u7a0b","permalink":"/upage/contributing/workflow"}}');var d=l(6106),a=l(8784);const s={id:"faq",title:"\u5e38\u89c1\u95ee\u9898"},r="\u5e38\u89c1\u95ee\u9898",c={},h=[{value:"\u57fa\u672c\u95ee\u9898",id:"\u57fa\u672c\u95ee\u9898",level:2},{value:"UPage \u662f\u4ec0\u4e48\uff1f",id:"upage-\u662f\u4ec0\u4e48",level:3},{value:"UPage \u9002\u5408\u54ea\u4e9b\u7528\u6237\uff1f",id:"upage-\u9002\u5408\u54ea\u4e9b\u7528\u6237",level:3},{value:"UPage \u662f\u5f00\u6e90\u7684\u5417\uff1f",id:"upage-\u662f\u5f00\u6e90\u7684\u5417",level:3},{value:"\u5b89\u88c5\u548c\u90e8\u7f72",id:"\u5b89\u88c5\u548c\u90e8\u7f72",level:2},{value:"\u5982\u4f55\u5b89\u88c5 UPage\uff1f",id:"\u5982\u4f55\u5b89\u88c5-upage",level:3},{value:"UPage \u7684\u7cfb\u7edf\u8981\u6c42\u662f\u4ec0\u4e48\uff1f",id:"upage-\u7684\u7cfb\u7edf\u8981\u6c42\u662f\u4ec0\u4e48",level:3},{value:"\u5982\u4f55\u66f4\u65b0 UPage\uff1f",id:"\u5982\u4f55\u66f4\u65b0-upage",level:3},{value:"AI \u96c6\u6210",id:"ai-\u96c6\u6210",level:2},{value:"UPage \u652f\u6301\u54ea\u4e9b AI \u63d0\u4f9b\u5546\uff1f",id:"upage-\u652f\u6301\u54ea\u4e9b-ai-\u63d0\u4f9b\u5546",level:3},{value:"\u5982\u4f55\u914d\u7f6e AI \u63d0\u4f9b\u5546\uff1f",id:"\u5982\u4f55\u914d\u7f6e-ai-\u63d0\u4f9b\u5546",level:3},{value:"\u4f7f\u7528 AI \u751f\u6210\u9875\u9762\u9700\u8981\u591a\u5c11 token\uff1f",id:"\u4f7f\u7528-ai-\u751f\u6210\u9875\u9762\u9700\u8981\u591a\u5c11-token",level:3},{value:"\u5982\u4f55\u4f18\u5316 AI \u63d0\u793a\u4ee5\u83b7\u5f97\u66f4\u597d\u7684\u7ed3\u679c\uff1f",id:"\u5982\u4f55\u4f18\u5316-ai-\u63d0\u793a\u4ee5\u83b7\u5f97\u66f4\u597d\u7684\u7ed3\u679c",level:3},{value:"\u4f7f\u7528\u95ee\u9898",id:"\u4f7f\u7528\u95ee\u9898",level:2},{value:"\u5982\u4f55\u7f16\u8f91 AI \u751f\u6210\u7684\u9875\u9762\uff1f",id:"\u5982\u4f55\u7f16\u8f91-ai-\u751f\u6210\u7684\u9875\u9762",level:3},{value:"UPage \u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\u5417\uff1f",id:"upage-\u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\u5417",level:3},{value:"\u6570\u636e\u548c\u5b89\u5168",id:"\u6570\u636e\u548c\u5b89\u5168",level:2},{value:"UPage \u5982\u4f55\u5b58\u50a8\u6570\u636e\uff1f",id:"upage-\u5982\u4f55\u5b58\u50a8\u6570\u636e",level:3},{value:"\u5982\u4f55\u5907\u4efd UPage \u6570\u636e\uff1f",id:"\u5982\u4f55\u5907\u4efd-upage-\u6570\u636e",level:3},{value:"UPage \u5982\u4f55\u5904\u7406\u7528\u6237\u9690\u79c1\uff1f",id:"upage-\u5982\u4f55\u5904\u7406\u7528\u6237\u9690\u79c1",level:3},{value:"\u5982\u4f55\u914d\u7f6e UPage \u7684\u591a\u7528\u6237\uff1f",id:"\u5982\u4f55\u914d\u7f6e-upage-\u7684\u591a\u7528\u6237",level:3},{value:"\u6545\u969c\u6392\u9664",id:"\u6545\u969c\u6392\u9664",level:2},{value:"\u9875\u9762\u751f\u6210\u5931\u8d25\u600e\u4e48\u529e\uff1f",id:"\u9875\u9762\u751f\u6210\u5931\u8d25\u600e\u4e48\u529e",level:3},{value:"\u5982\u4f55\u67e5\u770b\u7cfb\u7edf\u65e5\u5fd7\uff1f",id:"\u5982\u4f55\u67e5\u770b\u7cfb\u7edf\u65e5\u5fd7",level:3},{value:"\u5982\u4f55\u89e3\u51b3\u6570\u636e\u5e93\u9519\u8bef\uff1f",id:"\u5982\u4f55\u89e3\u51b3\u6570\u636e\u5e93\u9519\u8bef",level:3},{value:"\u5bb9\u5668\u65e0\u6cd5\u542f\u52a8\u600e\u4e48\u529e\uff1f",id:"\u5bb9\u5668\u65e0\u6cd5\u542f\u52a8\u600e\u4e48\u529e",level:3},{value:"\u9ad8\u7ea7\u95ee\u9898",id:"\u9ad8\u7ea7\u95ee\u9898",level:2},{value:"UPage \u652f\u6301\u63d2\u4ef6\u7cfb\u7edf\u5417\uff1f",id:"upage-\u652f\u6301\u63d2\u4ef6\u7cfb\u7edf\u5417",level:3},{value:"\u5982\u4f55\u4e0e\u73b0\u6709\u7cfb\u7edf\u96c6\u6210\uff1f",id:"\u5982\u4f55\u4e0e\u73b0\u6709\u7cfb\u7edf\u96c6\u6210",level:3}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"\u5e38\u89c1\u95ee\u9898",children:"\u5e38\u89c1\u95ee\u9898"})}),"\n",(0,d.jsx)(n.p,{children:"\u672c\u6587\u6863\u6574\u7406\u4e86\u4f7f\u7528 UPage \u65f6\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u89e3\u51b3\u53ef\u80fd\u9047\u5230\u7684\u95ee\u9898\u3002"}),"\n",(0,d.jsx)(n.h2,{id:"\u57fa\u672c\u95ee\u9898",children:"\u57fa\u672c\u95ee\u9898"}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u662f\u4ec0\u4e48",children:"UPage \u662f\u4ec0\u4e48\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u662f\u4e00\u6b3e\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0\uff0c\u652f\u6301\u591a\u79cd AI \u63d0\u4f9b\u5546\u96c6\u6210\uff0c\u57fa\u4e8e\u81ea\u7136\u8bed\u8a00\u5feb\u901f\u5b9e\u73b0\u5b9a\u5236\u5316\u7f51\u9875\u3002\u5b83\u5141\u8bb8\u7528\u6237\u901a\u8fc7\u7b80\u5355\u7684\u6587\u5b57\u63cf\u8ff0\u751f\u6210\u5b8c\u6574\u7684\u7f51\u9875\uff0c\u5e76\u63d0\u4f9b\u53ef\u89c6\u5316\u7f16\u8f91\u5de5\u5177\u8fdb\u884c\u8fdb\u4e00\u6b65\u5b9a\u5236\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u9002\u5408\u54ea\u4e9b\u7528\u6237",children:"UPage \u9002\u5408\u54ea\u4e9b\u7528\u6237\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u9002\u5408\u5404\u7c7b\u9700\u8981\u5feb\u901f\u521b\u5efa\u7f51\u9875\u7684\u7528\u6237\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"\u5f00\u53d1\u8005\uff1a\u5feb\u901f\u521b\u5efa\u539f\u578b\u548c\u6f14\u793a\u9875\u9762"}),"\n",(0,d.jsx)(n.li,{children:"\u8bbe\u8ba1\u5e08\uff1a\u5c06\u8bbe\u8ba1\u7406\u5ff5\u8f6c\u5316\u4e3a\u5b9e\u9645\u7f51\u9875"}),"\n",(0,d.jsx)(n.li,{children:"\u5185\u5bb9\u521b\u4f5c\u8005\uff1a\u521b\u5efa\u5c55\u793a\u5185\u5bb9\u7684\u7f51\u9875"}),"\n",(0,d.jsx)(n.li,{children:"\u8425\u9500\u4eba\u5458\uff1a\u5236\u4f5c\u8425\u9500\u7740\u9646\u9875"}),"\n",(0,d.jsx)(n.li,{children:"\u5c0f\u4f01\u4e1a\u4e3b\uff1a\u521b\u5efa\u4f01\u4e1a\u7f51\u7ad9\u548c\u4ea7\u54c1\u5c55\u793a\u9875\u9762"}),"\n",(0,d.jsx)(n.li,{children:"\u6559\u80b2\u5de5\u4f5c\u8005\uff1a\u5236\u4f5c\u6559\u5b66\u8d44\u6e90\u548c\u8bfe\u7a0b\u9875\u9762"}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u662f\u5f00\u6e90\u7684\u5417",children:"UPage \u662f\u5f00\u6e90\u7684\u5417\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["\u662f\u7684\uff0cUPage \u662f\u4e00\u4e2a\u5f00\u6e90\u9879\u76ee\uff0c\u91c7\u7528 ",(0,d.jsx)(n.a,{href:"https://github.com/halo-dev/upage/blob/main/LICENSE.txt",children:"\u57fa\u4e8e GPLv3 \u7684\u8865\u5145\u534f\u8bae\u8bb8\u53ef\u8bc1"}),"\u3002\u60a8\u53ef\u4ee5\u5728 ",(0,d.jsx)(n.a,{href:"https://github.com/halo-dev/upage",children:"GitHub"})," \u4e0a\u67e5\u770b\u6e90\u4ee3\u7801\uff0c\u4e5f\u53ef\u4ee5\u53c2\u4e0e\u9879\u76ee\u5f00\u53d1\u548c\u6539\u8fdb\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u5b89\u88c5\u548c\u90e8\u7f72",children:"\u5b89\u88c5\u548c\u90e8\u7f72"}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u5b89\u88c5-upage",children:"\u5982\u4f55\u5b89\u88c5 UPage\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u63d0\u4f9b\u591a\u79cd\u5b89\u88c5\u65b9\u5f0f\uff0c\u6700\u7b80\u5355\u7684\u65b9\u6cd5\u662f\u4f7f\u7528 Docker\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"docker run -d \\\n --name upage \\\n --restart unless-stopped \\\n -p 3000:3000 \\\n -e LLM_PROVIDER=OpenAILike \\\n -e PROVIDER_BASE_URL=your-openai-like-api-base-url \\\n -e PROVIDER_API_KEY=your-openai-like-api-key \\\n -e LLM_DEFAULT_MODEL=your-default-model \\\n -e LLM_MINOR_MODEL=your-minor-model \\\n -v ./data:/app/data \\\n -v ./logs:/app/logs \\\n -v ./storage:/app/storage \\\n halo-dev/upage:latest\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u8be6\u7ec6\u7684\u5b89\u88c5\u8bf4\u660e\u8bf7\u53c2\u8003",(0,d.jsx)(n.a,{href:"./quick-start",children:"\u5feb\u901f\u5f00\u59cb"}),"\u6587\u6863\u3002"]}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u7684\u7cfb\u7edf\u8981\u6c42\u662f\u4ec0\u4e48",children:"UPage \u7684\u7cfb\u7edf\u8981\u6c42\u662f\u4ec0\u4e48\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u7684\u6700\u4f4e\u7cfb\u7edf\u8981\u6c42\uff1a"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"Docker 20.10.0 \u6216\u66f4\u9ad8\u7248\u672c\uff08\u5982\u679c\u4f7f\u7528 Docker \u90e8\u7f72\uff09"}),"\n",(0,d.jsx)(n.li,{children:"Node.js 18.18.0 \u6216\u66f4\u9ad8\u7248\u672c\uff08\u5982\u679c\u6e90\u7801\u90e8\u7f72\uff09"}),"\n",(0,d.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u5185\u5b58"}),"\n",(0,d.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,d.jsx)(n.li,{children:"\u4e92\u8054\u7f51\u8fde\u63a5\uff08\u7528\u4e8e\u8bbf\u95ee AI API\uff09"}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u66f4\u65b0-upage",children:"\u5982\u4f55\u66f4\u65b0 UPage\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c\u4f7f\u7528 Docker \u90e8\u7f72\uff0c\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u66f4\u65b0 UPage\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# \u62c9\u53d6\u6700\u65b0\u955c\u50cf\ndocker pull halo-dev/upage:latest\n\n# \u505c\u6b62\u5e76\u5220\u9664\u65e7\u5bb9\u5668\ndocker stop upage\ndocker rm upage\n\n# \u4f7f\u7528\u65b0\u955c\u50cf\u542f\u52a8\u5bb9\u5668\uff08\u4f7f\u7528\u4e0e\u4e4b\u524d\u76f8\u540c\u7684\u73af\u5883\u53d8\u91cf\u548c\u6302\u8f7d\uff09\ndocker run -d \\\n --name upage \\\n --restart unless-stopped \\\n -p 3000:3000 \\\n ... # \u5176\u4ed6\u73af\u5883\u53d8\u91cf\u548c\u6302\u8f7d\n halo-dev/upage:latest\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c\u4f7f\u7528 Docker Compose\uff0c\u5219\u53ef\u4ee5\u6267\u884c\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"docker-compose pull\ndocker-compose down\ndocker-compose up -d\n"})}),"\n",(0,d.jsx)(n.h2,{id:"ai-\u96c6\u6210",children:"AI \u96c6\u6210"}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u652f\u6301\u54ea\u4e9b-ai-\u63d0\u4f9b\u5546",children:"UPage \u652f\u6301\u54ea\u4e9b AI \u63d0\u4f9b\u5546\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u652f\u6301\u591a\u79cd AI \u63d0\u4f9b\u5546\uff0c\u5305\u62ec\uff1a"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"DeepSeek\uff08DeepSeek-Chat\u3001DeepSeek-Reasoner\uff09"}),"\n",(0,d.jsx)(n.li,{children:"OpenAI\uff08GPT-4o\u3001GPT-5 \u7b49\uff09"}),"\n",(0,d.jsx)(n.li,{children:"Anthropic Claude"}),"\n",(0,d.jsx)(n.li,{children:"Google Gemini"}),"\n",(0,d.jsx)(n.li,{children:"\u517c\u5bb9 OpenAI \u63a5\u53e3\u7684\u670d\u52a1\uff08\u5982 Azure OpenAI\u3001\u667a\u8c31 AI \u7b49\uff09"}),"\n",(0,d.jsx)(n.li,{children:"Ollama\uff08\u672c\u5730\u90e8\u7f72\u7684\u5f00\u6e90\u6a21\u578b\uff09"}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["\u6240\u6709\u652f\u6301\u7684 AI \u63d0\u4f9b\u5546\u8bf7\u53c2\u8003",(0,d.jsx)(n.a,{href:"./configuration#ai-%E6%8F%90%E4%BE%9B%E5%95%86%E9%85%8D%E7%BD%AE",children:"\u914d\u7f6e\u53c2\u8003- AI \u63d0\u4f9b\u5546\u914d\u7f6e"}),"\u6587\u6863\u3002"]}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u914d\u7f6e-ai-\u63d0\u4f9b\u5546",children:"\u5982\u4f55\u914d\u7f6e AI \u63d0\u4f9b\u5546\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u914d\u7f6e AI \u63d0\u4f9b\u5546\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# OpenAI\n-e LLM_PROVIDER=OpenAI \\\n-e PROVIDER_API_KEY=your-openai-api-key \\\n-e LLM_DEFAULT_MODEL=gpt-4-turbo \\\n-e LLM_MINOR_MODEL=gpt-3.5-turbo\n\n# Anthropic Claude\n-e LLM_PROVIDER=Anthropic \\\n-e PROVIDER_API_KEY=your-anthropic-api-key \\\n-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \\\n-e LLM_MINOR_MODEL=claude-3-haiku-20240307\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u8be6\u7ec6\u7684\u914d\u7f6e\u9009\u9879\u8bf7\u53c2\u8003",(0,d.jsx)(n.a,{href:"./configuration#ai-%E6%8F%90%E4%BE%9B%E5%95%86%E9%85%8D%E7%BD%AE",children:"\u914d\u7f6e\u53c2\u8003 - AI \u63d0\u4f9b\u5546\u914d\u7f6e"}),"\u6587\u6863\u3002"]}),"\n",(0,d.jsx)(n.h3,{id:"\u4f7f\u7528-ai-\u751f\u6210\u9875\u9762\u9700\u8981\u591a\u5c11-token",children:"\u4f7f\u7528 AI \u751f\u6210\u9875\u9762\u9700\u8981\u591a\u5c11 token\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u751f\u6210\u4e00\u4e2a\u6807\u51c6\u9875\u9762\u901a\u5e38\u9700\u8981 2,000-10,000 \u4e2a token\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u9875\u9762\u7684\u590d\u6742\u5ea6\u548c\u5185\u5bb9\u91cf\u3002\u590d\u6742\u7684\u9875\u9762\u53ef\u80fd\u9700\u8981\u66f4\u591a token\u3002UPage \u4f1a\u5c3d\u53ef\u80fd\u4f18\u5316 prompt\uff0c\u5c3d\u91cf\u51cf\u5c11 token \u6d88\u8017\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u4f18\u5316-ai-\u63d0\u793a\u4ee5\u83b7\u5f97\u66f4\u597d\u7684\u7ed3\u679c",children:"\u5982\u4f55\u4f18\u5316 AI \u63d0\u793a\u4ee5\u83b7\u5f97\u66f4\u597d\u7684\u7ed3\u679c\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u6709\u6548\u7684 AI \u63d0\u793a\u5e94\u8be5\uff1a"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"\u660e\u786e\u6307\u5b9a\u9875\u9762\u7c7b\u578b\u548c\u76ee\u7684"}),"\n",(0,d.jsx)(n.li,{children:"\u5217\u51fa\u6240\u9700\u7684\u4e3b\u8981\u7ec4\u4ef6\u548c\u5185\u5bb9"}),"\n",(0,d.jsx)(n.li,{children:"\u63cf\u8ff0\u8bbe\u8ba1\u98ce\u683c\u548c\u5e03\u5c40\u504f\u597d"}),"\n",(0,d.jsx)(n.li,{children:"\u63d0\u4f9b\u5177\u4f53\u7684\u5185\u5bb9\u793a\u4f8b\u6216\u8981\u6c42"}),"\n",(0,d.jsx)(n.li,{children:"\u4f7f\u7528\u6e05\u6670\u3001\u5177\u4f53\u7684\u8bed\u8a00"}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:"\u4f8b\u5982\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"\u521b\u5efa\u4e00\u4e2a\u73b0\u4ee3\u98ce\u683c\u7684\u4ea7\u54c1\u767b\u5f55\u9875\u9762\uff0c\u7528\u4e8e\u5c55\u793a\u6211\u4eec\u7684\u667a\u80fd\u624b\u8868\u4ea7\u54c1\u3002\u9875\u9762\u5e94\u5305\u542b\uff1a\n1. \u9876\u90e8\u5bfc\u822a\u680f\uff0c\u5e26\u6709\u54c1\u724c\u6807\u5fd7\u548c\u83dc\u5355\n2. \u9192\u76ee\u7684\u6807\u9898\u548c\u526f\u6807\u9898\uff0c\u5f3a\u8c03\u4ea7\u54c1\u7684\u4e3b\u8981\u5356\u70b9\n3. \u4ea7\u54c1\u56fe\u7247\u5c55\u793a\u533a\uff0c\u5305\u542b\u81f3\u5c113\u5f20\u4e0d\u540c\u89d2\u5ea6\u7684\u4ea7\u54c1\u56fe\n...\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u4f60\u53ef\u4ee5\u4f7f\u7528 UPage \u7684\u4f18\u5316\u63d0\u793a\u529f\u80fd\u6765\u4f18\u5316\u60a8\u7684\u63d0\u793a\u3002"}),"\n",(0,d.jsx)(n.h2,{id:"\u4f7f\u7528\u95ee\u9898",children:"\u4f7f\u7528\u95ee\u9898"}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u7f16\u8f91-ai-\u751f\u6210\u7684\u9875\u9762",children:"\u5982\u4f55\u7f16\u8f91 AI \u751f\u6210\u7684\u9875\u9762\uff1f"}),"\n",(0,d.jsxs)(n.ol,{children:["\n",(0,d.jsx)(n.li,{children:"\u5728\u9875\u9762\u5217\u8868\u4e2d\u9009\u62e9\u8981\u7f16\u8f91\u7684\u9875\u9762"}),"\n",(0,d.jsx)(n.li,{children:"\u4f7f\u7528\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u70b9\u51fb\u8981\u4fee\u6539\u7684\u9875\u9762\u5143\u7d20"}),"\n",(0,d.jsx)(n.li,{children:"\u5bf9\u4e8e\u6587\u672c\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u76f4\u63a5\u8f93\u5165\u6587\u672c\u8fdb\u884c\u4fee\u6539"}),"\n",(0,d.jsx)(n.li,{children:"\u5bf9\u4e8e\u56fe\u7247\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u70b9\u51fb\u4e0a\u4f20\u56fe\u7247\u8fdb\u884c\u66ff\u6362"}),"\n",(0,d.jsx)(n.li,{children:"\u4f7f\u7528\u5f39\u51fa\u7684\u5c5e\u6027\u9762\u677f\u4fee\u6539\u7ec4\u4ef6\u5c5e\u6027\u548c\u6837\u5f0f"}),"\n",(0,d.jsx)(n.li,{children:"\u4e5f\u53ef\u4ee5\u4f7f\u7528 AI \u8f85\u52a9\u529f\u80fd\u8fdb\u884c\u5c40\u90e8\u6216\u6574\u4f53\u8c03\u6574"}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\u5417",children:"UPage \u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\u5417\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u662f\u7684\uff0cUPage \u751f\u6210\u7684\u9875\u9762\u9ed8\u8ba4\u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\uff0c\u53ef\u4ee5\u81ea\u52a8\u9002\u5e94\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\u3002\u60a8\u53ef\u4ee5\u5728\u7f16\u8f91\u5668\u4e2d\u9884\u89c8\u9875\u9762\u5728\u4e0d\u540c\u8bbe\u5907\u4e0a\u7684\u663e\u793a\u6548\u679c\uff0c\u5e76\u8fdb\u884c\u9488\u5bf9\u6027\u8c03\u6574\u3002\u5982\u679c\u751f\u6210\u7684\u9875\u9762\u4e0d\u7b26\u5408\u60a8\u7684\u9884\u671f\uff0c\u60a8\u53ef\u4ee5\u5c1d\u8bd5\u4f7f\u7528 AI \u8f85\u52a9\u8c03\u6574\u3002"}),"\n",(0,d.jsx)(n.h2,{id:"\u6570\u636e\u548c\u5b89\u5168",children:"\u6570\u636e\u548c\u5b89\u5168"}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u5982\u4f55\u5b58\u50a8\u6570\u636e",children:"UPage \u5982\u4f55\u5b58\u50a8\u6570\u636e\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["UPage \u4f7f\u7528 SQLite \u6570\u636e\u5e93\u5b58\u50a8\u9875\u9762\u6570\u636e\u548c\u7528\u6237\u914d\u7f6e\uff0c\u5b58\u50a8\u5728\u6302\u8f7d\u7684 ",(0,d.jsx)(n.code,{children:"data"})," \u76ee\u5f55\u4e2d\u3002\u4e0a\u4f20\u7684\u6587\u4ef6\u548c\u8d44\u6e90\u5b58\u50a8\u5728\u6302\u8f7d\u7684 ",(0,d.jsx)(n.code,{children:"storage"})," \u76ee\u5f55\u4e2d\u3002\u65e5\u5fd7\u6587\u4ef6\u5b58\u50a8\u5728\u6302\u8f7d\u7684 ",(0,d.jsx)(n.code,{children:"logs"})," \u76ee\u5f55\u4e2d\u3002"]}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u5907\u4efd-upage-\u6570\u636e",children:"\u5982\u4f55\u5907\u4efd UPage \u6570\u636e\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u5907\u4efd UPage \u6570\u636e\u7684\u6700\u7b80\u5355\u65b9\u6cd5\u662f\u5907\u4efd\u6302\u8f7d\u7684\u6570\u636e\u76ee\u5f55\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# \u5907\u4efd\u6570\u636e\u76ee\u5f55\ntar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./data\n\n# \u5907\u4efd\u5b58\u50a8\u76ee\u5f55\ntar -czf upage-storage-backup-$(date +%Y%m%d).tar.gz ./storage\n"})}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u5982\u4f55\u5904\u7406\u7528\u6237\u9690\u79c1",children:"UPage \u5982\u4f55\u5904\u7406\u7528\u6237\u9690\u79c1\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u672c\u8eab\u4e0d\u4f1a\u6536\u96c6\u6216\u4f20\u8f93\u7528\u6237\u6570\u636e\uff0c\u9664\u975e\u660e\u786e\u914d\u7f6e\u3002\u5f53\u4f7f\u7528 AI \u529f\u80fd\u65f6\uff0c\u9875\u9762\u5185\u5bb9\u4f1a\u53d1\u9001\u5230\u914d\u7f6e\u7684 AI \u63d0\u4f9b\u5546\u8fdb\u884c\u5904\u7406\u3002\u8bf7\u786e\u4fdd\u60a8\u4f7f\u7528\u7684 AI \u63d0\u4f9b\u5546\u7b26\u5408\u60a8\u7684\u9690\u79c1\u8981\u6c42\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u914d\u7f6e-upage-\u7684\u591a\u7528\u6237",children:"\u5982\u4f55\u914d\u7f6e UPage \u7684\u591a\u7528\u6237\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["UPage \u652f\u6301\u901a\u8fc7 Logto \u8fdb\u884c\u7528\u6237\u8ba4\u8bc1\u548c\u8bbf\u95ee\u63a7\u5236\u3002\u8be6\u7ec6\u914d\u7f6e\u8bf7\u53c2\u8003",(0,d.jsx)(n.a,{href:"deployment/logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u6587\u6863\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u6545\u969c\u6392\u9664",children:"\u6545\u969c\u6392\u9664"}),"\n",(0,d.jsx)(n.h3,{id:"\u9875\u9762\u751f\u6210\u5931\u8d25\u600e\u4e48\u529e",children:"\u9875\u9762\u751f\u6210\u5931\u8d25\u600e\u4e48\u529e\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c\u9875\u9762\u751f\u6210\u5931\u8d25\uff0c\u53ef\u80fd\u7684\u539f\u56e0\u548c\u89e3\u51b3\u65b9\u6cd5\uff1a"}),"\n",(0,d.jsxs)(n.ol,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"AI API \u8fde\u63a5\u95ee\u9898"}),"\uff1a\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u548c API \u5bc6\u94a5\u662f\u5426\u6b63\u786e"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u63d0\u793a\u8fc7\u4e8e\u590d\u6742"}),"\uff1a\u5c1d\u8bd5\u7b80\u5316\u9875\u9762\u63cf\u8ff0\uff0c\u5206\u6b65\u9aa4\u751f\u6210"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"token \u9650\u5236"}),"\uff1a\u68c0\u67e5\u662f\u5426\u8fbe\u5230 AI \u63d0\u4f9b\u5546\u7684 token \u9650\u5236"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u6a21\u578b\u4e0d\u652f\u6301"}),"\uff1a\u5c1d\u8bd5\u4f7f\u7528\u66f4\u5f3a\u5927\u7684\u6a21\u578b\u6216\u4e0d\u540c\u7684 AI \u63d0\u4f9b\u5546"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u751f\u6210\u5185\u5bb9\u8d85\u8fc7\u9650\u5236"}),"\uff1aUPage \u9ed8\u8ba4\u9650\u5236\u5355\u6b21\u56de\u7b54\u4e0d\u8d85\u8fc7 3 \u6b21 Token \u4e0a\u9650\uff0c\u60a8\u53ef\u4ee5\u5c1d\u8bd5\u5206\u6b65\u9aa4\u751f\u6210"]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u67e5\u770b\u7cfb\u7edf\u65e5\u5fd7",children:"\u5982\u4f55\u67e5\u770b\u7cfb\u7edf\u65e5\u5fd7\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cUPage \u4f1a\u5c06\u65e5\u5fd7\u4fdd\u5b58\u5728\u6302\u8f7d\u7684 ",(0,d.jsx)(n.code,{children:"logs"})," \u76ee\u5f55\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u67e5\u770b\u7cfb\u7edf\u65e5\u5fd7\uff1a"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# \u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\ndocker logs upage\n\n# \u67e5\u770b\u9519\u8bef\u65e5\u5fd7\u6587\u4ef6\ncat logs/error-*.log\n\n# \u67e5\u770b\u6240\u6709\u65e5\u5fd7\u6587\u4ef6\ncat logs/combined-*.log\n"})}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u89e3\u51b3\u6570\u636e\u5e93\u9519\u8bef",children:"\u5982\u4f55\u89e3\u51b3\u6570\u636e\u5e93\u9519\u8bef\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c\u9047\u5230\u6570\u636e\u5e93\u76f8\u5173\u9519\u8bef\uff0c\u53ef\u4ee5\u5c1d\u8bd5\uff1a"}),"\n",(0,d.jsxs)(n.ol,{children:["\n",(0,d.jsxs)(n.li,{children:["\u68c0\u67e5\u6570\u636e\u76ee\u5f55\u7684\u6743\u9650\uff1a",(0,d.jsx)(n.code,{children:"chmod -R 755 ./data"})]}),"\n",(0,d.jsxs)(n.li,{children:["\u5907\u4efd\u5e76\u91cd\u65b0\u521d\u59cb\u5316\u6570\u636e\u5e93\uff1a","\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# \u5907\u4efd\u5f53\u524d\u6570\u636e\u5e93\ncp ./data/upage.db ./data/upage.db.bak\n\n# \u5220\u9664\u5e76\u91cd\u65b0\u521d\u59cb\u5316\nrm ./data/upage.db\ndocker restart upage\n"})}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"\u5bb9\u5668\u65e0\u6cd5\u542f\u52a8\u600e\u4e48\u529e",children:"\u5bb9\u5668\u65e0\u6cd5\u542f\u52a8\u600e\u4e48\u529e\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c Docker \u5bb9\u5668\u65e0\u6cd5\u542f\u52a8\uff0c\u53ef\u4ee5\u5c1d\u8bd5\uff1a"}),"\n",(0,d.jsxs)(n.ol,{children:["\n",(0,d.jsxs)(n.li,{children:["\u68c0\u67e5\u65e5\u5fd7\uff1a",(0,d.jsx)(n.code,{children:"docker logs upage"})]}),"\n",(0,d.jsx)(n.li,{children:"\u9a8c\u8bc1\u73af\u5883\u53d8\u91cf\uff1a\u786e\u4fdd\u6240\u6709\u5fc5\u9700\u7684\u73af\u5883\u53d8\u91cf\u90fd\u5df2\u6b63\u786e\u8bbe\u7f6e"}),"\n",(0,d.jsx)(n.li,{children:"\u68c0\u67e5\u78c1\u76d8\u7a7a\u95f4\uff1a\u786e\u4fdd\u6709\u8db3\u591f\u7684\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,d.jsx)(n.li,{children:"\u68c0\u67e5\u7aef\u53e3\u51b2\u7a81\uff1a\u786e\u4fdd\u7aef\u53e3 3000 \u6ca1\u6709\u88ab\u5176\u4ed6\u670d\u52a1\u5360\u7528"}),"\n",(0,d.jsx)(n.li,{children:"\u68c0\u67e5\u6587\u4ef6\u6743\u9650\uff1a\u786e\u4fdd\u6302\u8f7d\u7684\u76ee\u5f55\u5177\u6709\u6b63\u786e\u7684\u6743\u9650"}),"\n"]}),"\n",(0,d.jsx)(n.h2,{id:"\u9ad8\u7ea7\u95ee\u9898",children:"\u9ad8\u7ea7\u95ee\u9898"}),"\n",(0,d.jsx)(n.h3,{id:"upage-\u652f\u6301\u63d2\u4ef6\u7cfb\u7edf\u5417",children:"UPage \u652f\u6301\u63d2\u4ef6\u7cfb\u7edf\u5417\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u4e0d\u63d0\u4f9b\u6b63\u5f0f\u7684\u63d2\u4ef6\u7cfb\u7edf\uff0c\u4f46\u4f5c\u4e3a\u5f00\u6e90\u9879\u76ee\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7 fork \u4ee3\u7801\u5e93\u5e76\u8fdb\u884c\u4fee\u6539\u6765\u6269\u5c55\u529f\u80fd\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"\u5982\u4f55\u4e0e\u73b0\u6709\u7cfb\u7edf\u96c6\u6210",children:"\u5982\u4f55\u4e0e\u73b0\u6709\u7cfb\u7edf\u96c6\u6210\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"UPage \u63d0\u4f9b\u591a\u79cd\u96c6\u6210\u65b9\u5f0f\uff1a"}),"\n",(0,d.jsxs)(n.ol,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"API \u96c6\u6210"}),"\uff1a\u4f7f\u7528 UPage API \u4e0e\u5176\u4ed6\u7cfb\u7edf\u4ea4\u4e92"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u5bfc\u51fa\u96c6\u6210"}),"\uff1a\u4e0b\u8f7d\u9875\u9762\u6e90\u4ee3\u7801\uff08HTML/CSS/JS\uff09\u5e76\u96c6\u6210\u5230\u73b0\u6709\u7cfb\u7edf"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u90e8\u7f72\u96c6\u6210"}),"\uff1a\u4f7f\u7528 Vercel \u6216 Netlify \u96c6\u6210\u76f4\u63a5\u90e8\u7f72\u9875\u9762"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u8ba4\u8bc1\u96c6\u6210"}),"\uff1a\u901a\u8fc7 Logto \u4e0e\u73b0\u6709\u8ba4\u8bc1\u7cfb\u7edf\u96c6\u6210"]}),"\n"]})]})}function t(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},8784:(e,n,l)=>{l.d(n,{R:()=>s,x:()=>r});var i=l(7378);const d={},a=i.createContext(d);function s(e){const n=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/2f401bd1.fa1b7d98.js b/upage/assets/js/2f401bd1.fa1b7d98.js new file mode 100644 index 0000000..7d9f5c9 --- /dev/null +++ b/upage/assets/js/2f401bd1.fa1b7d98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[851],{4517:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>i,contentTitle:()=>l,default:()=>x,frontMatter:()=>o,metadata:()=>c,toc:()=>t});const c=JSON.parse('{"id":"deployment/docker-compose","title":"Docker Compose \u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker Compose \u90e8\u7f72 UPage\uff0c\u8fd9\u662f\u4e00\u79cd\u66f4\u4fbf\u6377\u7684\u65b9\u5f0f\u6765\u7ba1\u7406 UPage \u7684\u90e8\u7f72\u3002","source":"@site/content/deployment/docker-compose.md","sourceDirName":"deployment","slug":"/deployment/docker-compose","permalink":"/upage/deployment/docker-compose","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/docker-compose.md","tags":[],"version":"current","frontMatter":{"id":"docker-compose","title":"Docker Compose \u90e8\u7f72"},"sidebar":"tutorialSidebar","previous":{"title":"Docker \u90e8\u7f72","permalink":"/upage/deployment/docker"},"next":{"title":"\u6e90\u7801\u90e8\u7f72","permalink":"/upage/deployment/source"}}');var s=n(6106),r=n(8784);const o={id:"docker-compose",title:"Docker Compose \u90e8\u7f72"},l="Docker Compose \u90e8\u7f72",i={},t=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u5b89\u88c5 Docker \u548c Docker Compose",id:"\u5b89\u88c5-docker-\u548c-docker-compose",level:3},{value:"\u4f7f\u7528 Docker Compose \u90e8\u7f72",id:"\u4f7f\u7528-docker-compose-\u90e8\u7f72",level:2},{value:"\u51c6\u5907\u76ee\u5f55",id:"\u51c6\u5907\u76ee\u5f55",level:3},{value:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",id:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",level:3},{value:"\u542f\u52a8\u670d\u52a1",id:"\u542f\u52a8\u670d\u52a1",level:3},{value:"\u670d\u52a1\u7ba1\u7406",id:"\u670d\u52a1\u7ba1\u7406",level:3},{value:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",level:2},{value:"\u57fa\u7840\u914d\u7f6e",id:"\u57fa\u7840\u914d\u7f6e",level:3},{value:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",level:3},{value:"\u5927\u6a21\u578b\u914d\u7f6e",id:"\u5927\u6a21\u578b\u914d\u7f6e",level:3},{value:"\u5347\u7ea7 UPage",id:"\u5347\u7ea7-upage",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function h(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.header,{children:(0,s.jsx)(d.h1,{id:"docker-compose-\u90e8\u7f72",children:"Docker Compose \u90e8\u7f72"})}),"\n",(0,s.jsx)(d.p,{children:"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker Compose \u90e8\u7f72 UPage\uff0c\u8fd9\u662f\u4e00\u79cd\u66f4\u4fbf\u6377\u7684\u65b9\u5f0f\u6765\u7ba1\u7406 UPage \u7684\u90e8\u7f72\u3002"}),"\n",(0,s.jsx)(d.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,s.jsx)(d.p,{children:"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsx)(d.li,{children:"Docker \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker 20.10.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,s.jsx)(d.li,{children:"Docker Compose \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker Compose 1.29.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,s.jsx)(d.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u5185\u5b58"}),"\n",(0,s.jsx)(d.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,s.jsx)(d.li,{children:"\u4e92\u8054\u7f51\u8fde\u63a5\uff08\u7528\u4e8e\u62c9\u53d6 Docker \u955c\u50cf\u548c\u8bbf\u95ee\u5927\u6a21\u578b API\uff09"}),"\n"]}),"\n",(0,s.jsx)(d.h3,{id:"\u5b89\u88c5-docker-\u548c-docker-compose",children:"\u5b89\u88c5 Docker \u548c Docker Compose"}),"\n",(0,s.jsxs)(d.p,{children:["\u5982\u679c\u60a8\u7684\u7cfb\u7edf\u672a\u5b89\u88c5 Docker\uff0c\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"https://docs.docker.com/engine/install/",children:"Docker \u5b98\u65b9\u6587\u6863"}),"\u8fdb\u884c\u5b89\u88c5\u3002\n\u5982\u679c\u60a8\u7684\u7cfb\u7edf\u672a\u5b89\u88c5 Docker Compose\uff0c\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"https://docs.docker.com/compose/install/",children:"Docker Compose \u5b98\u65b9\u6587\u6863"}),"\u8fdb\u884c\u5b89\u88c5\u3002"]}),"\n",(0,s.jsx)(d.h2,{id:"\u4f7f\u7528-docker-compose-\u90e8\u7f72",children:"\u4f7f\u7528 Docker Compose \u90e8\u7f72"}),"\n",(0,s.jsx)(d.h3,{id:"\u51c6\u5907\u76ee\u5f55",children:"\u51c6\u5907\u76ee\u5f55"}),"\n",(0,s.jsxs)(d.p,{children:["\u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\u7528\u4e8e\u6301\u4e45\u5316\u6570\u636e\uff0c\u4f8b\u5982 ",(0,s.jsx)(d.code,{children:"~/upage"}),"\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"mkdir -p ~/upage/data\nmkdir -p ~/upage/logs\nmkdir -p ~/upage/storage\ncd ~/upage\n"})}),"\n",(0,s.jsx)(d.admonition,{type:"tip",children:(0,s.jsx)(d.p,{children:"UPage \u6240\u6709\u6570\u636e\u4e0e\u65e5\u5fd7\u5747\u5b58\u50a8\u5728\u6b64\u76ee\u5f55\u4e2d\uff0c\u8bf7\u59a5\u5584\u4fdd\u7ba1\u3002"})}),"\n",(0,s.jsx)(d.h3,{id:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",children:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6"}),"\n",(0,s.jsxs)(d.p,{children:["\u521b\u5efa ",(0,s.jsx)(d.code,{children:"docker-compose.yml"})," \u6587\u4ef6\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-yaml",children:'version: "3.9"\nservices:\n upage:\n image: upage-ai:production\n restart: unless-stopped\n ports:\n - "${PORT:-3000}:3000"\n environment:\n - LLM_PROVIDER=${LLM_PROVIDER}\n - PROVIDER_BASE_URL=${PROVIDER_BASE_URL}\n - PROVIDER_API_KEY=${PROVIDER_API_KEY}\n - LLM_DEFAULT_MODEL=${LLM_DEFAULT_MODEL}\n - LLM_MINOR_MODEL=${LLM_MINOR_MODEL}\n volumes:\n - ./data:/app/data\n - ./logs:/app/logs\n - ./storage:/app/storage\n\nvolumes:\n upage-db:\n'})}),"\n",(0,s.jsx)(d.h3,{id:"\u542f\u52a8\u670d\u52a1",children:"\u542f\u52a8\u670d\u52a1"}),"\n",(0,s.jsxs)(d.p,{children:["\u5728 ",(0,s.jsx)(d.code,{children:"docker-compose.yml"})," \u6587\u4ef6\u6240\u5728\u76ee\u5f55\u6267\u884c\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"docker-compose up -d\n"})}),"\n",(0,s.jsx)(d.h3,{id:"\u670d\u52a1\u7ba1\u7406",children:"\u670d\u52a1\u7ba1\u7406"}),"\n",(0,s.jsx)(d.p,{children:"\u4f7f\u7528 Docker Compose \u7ba1\u7406\u670d\u52a1\u7684\u5e38\u7528\u547d\u4ee4\uff1a"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"# \u542f\u52a8\u670d\u52a1\ndocker-compose up -d\n\n# \u505c\u6b62\u670d\u52a1\ndocker-compose down\n\n# \u91cd\u542f\u670d\u52a1\ndocker-compose restart\n\n# \u67e5\u770b\u670d\u52a1\u65e5\u5fd7\ndocker-compose logs\n\n# \u67e5\u770b\u670d\u52a1\u72b6\u6001\ndocker-compose ps\n"})}),"\n",(0,s.jsx)(d.h2,{id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",children:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e"}),"\n",(0,s.jsx)(d.p,{children:"UPage \u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u6bd4\u8f83\u91cd\u8981\u7684\u73af\u5883\u53d8\u91cf\uff1a"}),"\n",(0,s.jsx)(d.admonition,{type:"tip",children:(0,s.jsxs)(d.p,{children:["\u5b8c\u6574\u7684\u914d\u7f6e\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u3002"]})}),"\n",(0,s.jsx)(d.h3,{id:"\u57fa\u7840\u914d\u7f6e",children:"\u57fa\u7840\u914d\u7f6e"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PORT"})}),(0,s.jsx)(d.td,{children:"\u670d\u52a1\u76d1\u542c\u7aef\u53e3"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"3000"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"NODE_ENV"})}),(0,s.jsx)(d.td,{children:"Node.js \u73af\u5883"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"production"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"OPERATING_ENV"})}),(0,s.jsx)(d.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"production"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LOG_LEVEL"})}),(0,s.jsx)(d.td,{children:"\u65e5\u5fd7\u7ea7\u522b"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"debug"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"USAGE_LOG_FILE"})}),(0,s.jsx)(d.td,{children:"\u662f\u5426\u5f00\u542f\u6587\u4ef6\u65e5\u5fd7"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"true"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"MAX_UPLOAD_SIZE_MB"})}),(0,s.jsx)(d.td,{children:"\u9644\u4ef6\u4e0a\u4f20\u7684\u6700\u5927\u5927\u5c0f (MB)"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"5"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"STORAGE_DIR"})}),(0,s.jsx)(d.td,{children:"\u8d44\u6e90\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"/app/storage"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",children:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e"}),"\n",(0,s.jsx)(d.p,{children:"\u6839\u636e\u60a8\u9009\u62e9\u7684 AI \u63d0\u4f9b\u5546\uff0c\u60a8\u8fd8\u9700\u8981\u914d\u7f6e\u76f8\u5e94\u7684 API \u5bc6\u94a5\u548c\u57fa\u7840 URL\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u5fc5\u586b"}),(0,s.jsx)(d.th,{children:"\u793a\u4f8b"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,s.jsx)(d.td,{children:"\u9ed8\u8ba4 LLM \u63d0\u4f9b\u5546"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"OpenAILike"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PROVIDER_BASE_URL"})}),(0,s.jsx)(d.td,{children:"OpenAI \u517c\u5bb9 API \u57fa\u7840 URL"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"https://your-api-base-url"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PROVIDER_API_KEY"})}),(0,s.jsx)(d.td,{children:"OpenAI \u517c\u5bb9 API \u5bc6\u94a5"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"your-openai-like-api-key"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"\u5927\u6a21\u578b\u914d\u7f6e",children:"\u5927\u6a21\u578b\u914d\u7f6e"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u5fc5\u586b"}),(0,s.jsx)(d.th,{children:"\u793a\u4f8b"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_DEFAULT_MODEL"})}),(0,s.jsx)(d.td,{children:"\u751f\u6210\u9875\u9762\u6240\u4f7f\u7528\u7684\u4e3b\u8981\u6a21\u578b"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"gpt-4-turbo"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_MINOR_MODEL"})}),(0,s.jsx)(d.td,{children:"\u8f85\u52a9\u9875\u9762\u751f\u6210\u6240\u4f7f\u7528\u7684\u6b21\u7ea7\u6a21\u578b"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"gpt-3.5-turbo"})})]})]})]}),"\n",(0,s.jsx)(d.h2,{id:"\u5347\u7ea7-upage",children:"\u5347\u7ea7 UPage"}),"\n",(0,s.jsx)(d.p,{children:"\u5f53\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u60a8\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u5347\u7ea7 UPage\uff1a"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"docker-compose pull\ndocker-compose down\ndocker-compose up -d\n"})}),"\n",(0,s.jsx)(d.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsxs)(d.li,{children:["\u9605\u8bfb",(0,s.jsx)(d.a,{href:"../user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,s.jsxs)(d.li,{children:["\u63a2\u7d22",(0,s.jsx)(d.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n",(0,s.jsxs)(d.li,{children:["\u63a2\u7d22",(0,s.jsx)(d.a,{href:"./logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u4e86\u89e3\u5982\u4f55\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"]}),"\n"]})]})}function x(e={}){const{wrapper:d}={...(0,r.R)(),...e.components};return d?(0,s.jsx)(d,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8784:(e,d,n)=>{n.d(d,{R:()=>o,x:()=>l});var c=n(7378);const s={},r=c.createContext(s);function o(e){const d=c.useContext(r);return c.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),c.createElement(r.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/315f1747.3cb56dff.js b/upage/assets/js/315f1747.3cb56dff.js new file mode 100644 index 0000000..5e8ef83 --- /dev/null +++ b/upage/assets/js/315f1747.3cb56dff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[761],{222:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>l,frontMatter:()=>c,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"user-guide/basics","title":"\u57fa\u7840\u4f7f\u7528","description":"\u672c\u6587\u6863\u4ecb\u7ecd UPage \u7684\u57fa\u672c\u4f7f\u7528\u65b9\u6cd5\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u4e0a\u624b\u8fd9\u6b3e\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002","source":"@site/content/user-guide/basics.md","sourceDirName":"user-guide","slug":"/user-guide/basics","permalink":"/upage/user-guide/basics","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/user-guide/basics.md","tags":[],"version":"current","frontMatter":{"id":"basics","title":"\u57fa\u7840\u4f7f\u7528"},"sidebar":"tutorialSidebar","previous":{"title":"\u7528\u6237\u6307\u5357","permalink":"/upage/user-guide"},"next":{"title":"\u8d21\u732e\u6307\u5357","permalink":"/upage/contributing"}}');var i=n(6106),r=n(8784);const c={id:"basics",title:"\u57fa\u7840\u4f7f\u7528"},a="\u57fa\u7840\u4f7f\u7528",o={},u=[{value:"\u4e3b\u754c\u9762\u6982\u89c8",id:"\u4e3b\u754c\u9762\u6982\u89c8",level:2}];function d(e){const t={h1:"h1",h2:"h2",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"\u57fa\u7840\u4f7f\u7528",children:"\u57fa\u7840\u4f7f\u7528"})}),"\n",(0,i.jsx)(t.p,{children:"\u672c\u6587\u6863\u4ecb\u7ecd UPage \u7684\u57fa\u672c\u4f7f\u7528\u65b9\u6cd5\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u4e0a\u624b\u8fd9\u6b3e\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002"}),"\n",(0,i.jsx)(t.h2,{id:"\u4e3b\u754c\u9762\u6982\u89c8",children:"\u4e3b\u754c\u9762\u6982\u89c8"}),"\n",(0,i.jsx)(t.p,{children:"\u5efa\u8bbe\u4e2d..."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8784:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>a});var s=n(7378);const i={},r=s.createContext(i);function c(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/5e95c892.191c849f.js b/upage/assets/js/5e95c892.191c849f.js new file mode 100644 index 0000000..2dc68e6 --- /dev/null +++ b/upage/assets/js/5e95c892.191c849f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[647],{387:(e,s,r)=>{r.r(s),r.d(s,{default:()=>t});r(7378);var u=r(3372),a=r(2811),c=r(496),d=r(8041),n=r(9511),p=r(6106);function t(e){return(0,p.jsx)(c.e3,{className:(0,u.A)(a.G.wrapper.docsPages),children:(0,p.jsx)(n.A,{children:(0,d.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/upage/assets/js/6115a388.f2e4d1a7.js b/upage/assets/js/6115a388.f2e4d1a7.js new file mode 100644 index 0000000..f48bcd1 --- /dev/null +++ b/upage/assets/js/6115a388.f2e4d1a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[378],{2718:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"index","title":"UPage \u6587\u6863","description":"\u4ec0\u4e48\u662f UPage\uff1f","source":"@site/content/index.md","sourceDirName":".","slug":"/","permalink":"/upage/","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/index.md","tags":[],"version":"current","frontMatter":{"id":"index","title":"UPage \u6587\u6863","slug":"/","hide_title":true},"sidebar":"tutorialSidebar","next":{"title":"\u5feb\u901f\u5f00\u59cb","permalink":"/upage/quick-start"}}');var i=s(6106),l=s(8784);const a={id:"index",title:"UPage \u6587\u6863",slug:"/",hide_title:!0},r=void 0,o={},d=[{value:"\u4ec0\u4e48\u662f UPage\uff1f",id:"\u4ec0\u4e48\u662f-upage",level:2},{value:"\u6838\u5fc3\u7279\u6027",id:"\u6838\u5fc3\u7279\u6027",level:2},{value:"\u5feb\u901f\u5f00\u59cb",id:"\u5feb\u901f\u5f00\u59cb",level:2},{value:"\u8d21\u732e",id:"\u8d21\u732e",level:2},{value:"\u8bb8\u53ef\u8bc1",id:"\u8bb8\u53ef\u8bc1",level:2}];function c(e){const t={a:"a",admonition:"admonition",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{align:"center",children:(0,i.jsx)("div",{className:"theme-logo",style:{width:"240px"},children:(0,i.jsx)("img",{alt:"UPage \u4e3b\u754c\u9762"})})}),"\n",(0,i.jsxs)("p",{align:"center",style:{display:"flex",gap:"4px",justifyContent:"center"},children:[(0,i.jsx)("a",{href:"https://github.com/halo-dev/upage/releases",children:(0,i.jsx)("img",{alt:"GitHub release",src:"https://img.shields.io/github/release/halo-dev/upage.svg?style=flat-square&include_prereleases"})}),(0,i.jsx)("a",{href:"https://github.com/halo-dev/upage/commits",children:(0,i.jsx)("img",{alt:"GitHub last commit",src:"https://img.shields.io/github/last-commit/halo-dev/upage.svg?style=flat-square"})}),(0,i.jsx)("a",{href:"https://github.com/halo-dev/upage/actions",children:(0,i.jsx)("img",{alt:"GitHub Workflow Status",src:"https://img.shields.io/github/actions/workflow/status/halo-dev/upage/halo.yaml?branch=main&style=flat-square"})}),(0,i.jsx)("a",{href:"https://halo-dev.github.io/upage/",children:(0,i.jsx)("img",{alt:"Documentation",src:"https://img.shields.io/badge/docs-latest-blue?style=flat-square"})})]}),"\n",(0,i.jsx)(t.h2,{id:"\u4ec0\u4e48\u662f-upage",children:"\u4ec0\u4e48\u662f UPage\uff1f"}),"\n",(0,i.jsx)(t.p,{children:"UPage \u662f\u4e00\u6b3e\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0\uff0c\u652f\u6301\u591a\u79cd AI \u63d0\u4f9b\u5546\u96c6\u6210\uff0c\u57fa\u4e8e\u81ea\u7136\u8bed\u8a00\u5feb\u901f\u5b9e\u73b0\u5b9a\u5236\u5316\u7f51\u9875\u3002\u5b83\u5229\u7528\u5927\u8bed\u8a00\u6a21\u578b\uff0c\u8ba9\u7528\u6237\u80fd\u591f\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u6765\u521b\u5efa\u548c\u5b9a\u5236\u7f51\u9875\u3002\u65e0\u8bba\u60a8\u662f\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u8fd8\u662f\u5185\u5bb9\u521b\u4f5c\u8005\uff0cUPage \u90fd\u80fd\u5e2e\u52a9\u60a8\u5feb\u901f\u5c06\u60f3\u6cd5\u8f6c\u5316\u4e3a\u53ef\u89c6\u5316\u7684\u7f51\u9875\u3002"}),"\n",(0,i.jsx)(t.h2,{id:"\u6838\u5fc3\u7279\u6027",children:"\u6838\u5fc3\u7279\u6027"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u57fa\u4e8e LLM \u7684\u9875\u9762\u751f\u6210"}),"\uff1a\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u751f\u6210\u5b8c\u6574\u7684\u7f51\u9875"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u591a\u79cd LLM \u63d0\u4f9b\u5546\u652f\u6301"}),"\uff1a\u517c\u5bb9 OpenAI\u3001Anthropic Claude\u3001Google Gemini \u7b49\u591a\u79cd LLM \u6a21\u578b"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u53ef\u89c6\u5316\u7f16\u8f91\u5668"}),"\uff1a\u7b80\u6d01\u76f4\u89c2\u7684\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u754c\u9762\uff0c\u5b9e\u65f6\u9884\u89c8"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u591a\u9875\u9762\u751f\u6210"}),"\uff1a\u652f\u6301\u540c\u65f6\u751f\u6210\u591a\u4e2a\u9875\u9762"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u4ee3\u7801\u5bfc\u51fa"}),"\uff1a\u751f\u6210\u6807\u51c6\u7684 HTML/CSS/JS \u4ee3\u7801\uff0c\u65b9\u4fbf\u96c6\u6210\u5230\u73b0\u6709\u9879\u76ee"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u54cd\u5e94\u5f0f\u8bbe\u8ba1"}),"\uff1a\u81ea\u52a8\u9002\u5e94\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u90e8\u7f72\u96c6\u6210"}),"\uff1a\u652f\u6301\u4e00\u952e\u90e8\u7f72\u5230\u5e38\u89c1\u6258\u7ba1\u5e73\u53f0"]}),"\n"]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["\u7279\u522b\u611f\u8c22 ",(0,i.jsx)(t.a,{href:"https://github.com/stackblitz-labs/bolt.diy",children:"bolt.diy"})," \u9879\u76ee\uff0cUPage \u7684\u5b9e\u73b0\u57fa\u4e8e\u8be5\u9879\u76ee\u7684\u4ee3\u7801\u7ed3\u6784\u3002"]})}),"\n",(0,i.jsx)(t.h2,{id:"\u5feb\u901f\u5f00\u59cb",children:"\u5feb\u901f\u5f00\u59cb"}),"\n",(0,i.jsxs)(t.p,{children:["\u8bf7\u67e5\u770b",(0,i.jsx)(t.a,{href:"/upage/quick-start",children:"\u5feb\u901f\u5f00\u59cb"}),"\u6307\u5357\uff0c\u4e86\u89e3\u5982\u4f55\u5b89\u88c5\u548c\u4f7f\u7528 UPage\u3002"]}),"\n",(0,i.jsx)(t.h2,{id:"\u8d21\u732e",children:"\u8d21\u732e"}),"\n",(0,i.jsxs)(t.p,{children:["UPage \u662f\u4e00\u4e2a\u5f00\u6e90\u9879\u76ee\uff0c\u6211\u4eec\u6b22\u8fce\u4efb\u4f55\u5f62\u5f0f\u7684\u8d21\u732e\u3002\u8bf7\u67e5\u770b",(0,i.jsx)(t.a,{href:"contributing.md",children:"\u8d21\u732e\u6307\u5357"}),"\u4e86\u89e3\u5982\u4f55\u53c2\u4e0e\u9879\u76ee\u5f00\u53d1\u3002"]}),"\n",(0,i.jsx)(t.h2,{id:"\u8bb8\u53ef\u8bc1",children:"\u8bb8\u53ef\u8bc1"}),"\n",(0,i.jsxs)(t.p,{children:["UPage \u91c7\u7528 ",(0,i.jsx)(t.a,{href:"https://github.com/halo-dev/upage/blob/main/LICENSE.txt",children:"\u57fa\u4e8e GPLv3 \u7684\u8865\u5145\u534f\u8bae\u8bb8\u53ef\u8bc1"}),"\u3002"]})]})}function h(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8784:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>r});var n=s(7378);const i={},l=n.createContext(i);function a(e){const t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/68f842ca.c586b730.js b/upage/assets/js/68f842ca.c586b730.js new file mode 100644 index 0000000..2bd7ce1 --- /dev/null +++ b/upage/assets/js/68f842ca.c586b730.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[9],{3072:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"404-page","title":"\u9875\u9762\u672a\u627e\u5230","description":"\u5f88\u62b1\u6b49\uff0c\u60a8\u8bbf\u95ee\u7684\u9875\u9762\u4e0d\u5b58\u5728\u3002","source":"@site/content/404.md","sourceDirName":".","slug":"/404-page","permalink":"/upage/404-page","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/404.md","tags":[],"version":"current","frontMatter":{"id":"404-page","title":"\u9875\u9762\u672a\u627e\u5230"}}');var i=t(6106),r=t(8784);const c={id:"404-page",title:"\u9875\u9762\u672a\u627e\u5230"},l="\u9875\u9762\u672a\u627e\u5230",o={},d=[{value:"\u53ef\u80fd\u7684\u539f\u56e0",id:"\u53ef\u80fd\u7684\u539f\u56e0",level:2},{value:"\u60a8\u53ef\u4ee5\u5c1d\u8bd5",id:"\u60a8\u53ef\u4ee5\u5c1d\u8bd5",level:2}];function a(e){const n={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u9875\u9762\u672a\u627e\u5230",children:"\u9875\u9762\u672a\u627e\u5230"})}),"\n",(0,i.jsx)(n.p,{children:"\u5f88\u62b1\u6b49\uff0c\u60a8\u8bbf\u95ee\u7684\u9875\u9762\u4e0d\u5b58\u5728\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u53ef\u80fd\u7684\u539f\u56e0",children:"\u53ef\u80fd\u7684\u539f\u56e0"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u94fe\u63a5\u5df2\u8fc7\u671f\u6216\u88ab\u79fb\u9664"}),"\n",(0,i.jsx)(n.li,{children:"URL \u8f93\u5165\u9519\u8bef"}),"\n",(0,i.jsx)(n.li,{children:"\u9875\u9762\u6b63\u5728\u5efa\u8bbe\u4e2d"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u60a8\u53ef\u4ee5\u5c1d\u8bd5",children:"\u60a8\u53ef\u4ee5\u5c1d\u8bd5"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/",children:"\u8fd4\u56de\u9996\u9875"})}),"\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528\u9876\u90e8\u7684\u641c\u7d22\u529f\u80fd\u67e5\u627e\u76f8\u5173\u5185\u5bb9"}),"\n",(0,i.jsxs)(n.li,{children:["\u67e5\u770b",(0,i.jsx)(n.a,{href:"/",children:"\u6587\u6863\u76ee\u5f55"}),"\u6d4f\u89c8\u6240\u6709\u53ef\u7528\u6587\u6863"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u60a8\u8ba4\u4e3a\u8fd9\u662f\u4e00\u4e2a\u9519\u8bef\uff0c\u8bf7",(0,i.jsx)(n.a,{href:"https://github.com/halo-dev/upage/issues",children:"\u63d0\u4ea4\u95ee\u9898"}),"\u544a\u8bc9\u6211\u4eec\u3002"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8784:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>l});var s=t(7378);const i={},r=s.createContext(i);function c(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/6c46c4d6.b5a952fa.js b/upage/assets/js/6c46c4d6.b5a952fa.js new file mode 100644 index 0000000..1557026 --- /dev/null +++ b/upage/assets/js/6c46c4d6.b5a952fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[975],{1418:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>c,contentTitle:()=>l,default:()=>j,frontMatter:()=>h,metadata:()=>s,toc:()=>t});const s=JSON.parse('{"id":"configuration","title":"\u914d\u7f6e\u53c2\u8003","description":"\u672c\u6587\u6863\u63d0\u4f9b\u4e86 UPage \u7684\u5b8c\u6574\u914d\u7f6e\u53c2\u8003\uff0c\u5305\u62ec\u57fa\u7840\u914d\u7f6e\u3001AI \u63d0\u4f9b\u5546\u914d\u7f6e\u3001\u8ba4\u8bc1\u914d\u7f6e\uff0c\u5e2e\u52a9\u60a8\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u5b9a\u5236\u548c\u4f18\u5316 UPage\u3002","source":"@site/content/configuration.md","sourceDirName":".","slug":"/configuration","permalink":"/upage/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/configuration.md","tags":[],"version":"current","frontMatter":{"id":"configuration","title":"\u914d\u7f6e\u53c2\u8003"},"sidebar":"tutorialSidebar","previous":{"title":"\u5176\u4ed6\u914d\u7f6e","permalink":"/upage/deployment/others"},"next":{"title":"\u7528\u6237\u6307\u5357","permalink":"/upage/user-guide"}}');var i=n(6106),r=n(8784);const h={id:"configuration",title:"\u914d\u7f6e\u53c2\u8003"},l="\u914d\u7f6e\u53c2\u8003",c={},t=[{value:"\u57fa\u7840\u914d\u7f6e",id:"\u57fa\u7840\u914d\u7f6e",level:2},{value:"AI \u63d0\u4f9b\u5546\u914d\u7f6e",id:"ai-\u63d0\u4f9b\u5546\u914d\u7f6e",level:2},{value:"Amazon Bedrock",id:"amazon-bedrock",level:3},{value:"Anthropic Claude",id:"anthropic-claude",level:3},{value:"Cohere",id:"cohere",level:3},{value:"DeepSeek",id:"deepseek",level:3},{value:"Github",id:"github",level:3},{value:"Google",id:"google",level:3},{value:"Groq",id:"groq",level:3},{value:"HuggingFace",id:"huggingface",level:3},{value:"Hyperbolic",id:"hyperbolic",level:3},{value:"LMStudio",id:"lmstudio",level:3},{value:"Mistral",id:"mistral",level:3},{value:"Ollama",id:"ollama",level:3},{value:"OpenRouter",id:"openrouter",level:3},{value:"\u517c\u5bb9 OpenAI \u63a5\u53e3\u7684\u670d\u52a1",id:"\u517c\u5bb9-openai-\u63a5\u53e3\u7684\u670d\u52a1",level:3},{value:"OpenAI",id:"openai",level:3},{value:"Perplexity",id:"perplexity",level:3},{value:"Together",id:"together",level:3},{value:"xAI",id:"xai",level:3},{value:"AI \u5de5\u5177\u914d\u7f6e",id:"ai-\u5de5\u5177\u914d\u7f6e",level:2},{value:"Serper\uff08\u7f51\u7edc\u641c\u7d22\u5de5\u5177\uff09",id:"serper\u7f51\u7edc\u641c\u7d22\u5de5\u5177",level:3},{value:"Weather\uff08\u5929\u6c14\u5de5\u5177\uff09",id:"weather\u5929\u6c14\u5de5\u5177",level:3},{value:"\u8ba4\u8bc1\u914d\u7f6e",id:"\u8ba4\u8bc1\u914d\u7f6e",level:2},{value:"Logto \u8ba4\u8bc1",id:"logto-\u8ba4\u8bc1",level:3},{value:"\u914d\u7f6e\u793a\u4f8b",id:"\u914d\u7f6e\u793a\u4f8b",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function x(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.header,{children:(0,i.jsx)(d.h1,{id:"\u914d\u7f6e\u53c2\u8003",children:"\u914d\u7f6e\u53c2\u8003"})}),"\n",(0,i.jsx)(d.p,{children:"\u672c\u6587\u6863\u63d0\u4f9b\u4e86 UPage \u7684\u5b8c\u6574\u914d\u7f6e\u53c2\u8003\uff0c\u5305\u62ec\u57fa\u7840\u914d\u7f6e\u3001AI \u63d0\u4f9b\u5546\u914d\u7f6e\u3001\u8ba4\u8bc1\u914d\u7f6e\uff0c\u5e2e\u52a9\u60a8\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u5b9a\u5236\u548c\u4f18\u5316 UPage\u3002"}),"\n",(0,i.jsx)(d.p,{children:"UPage \u4f7f\u7528\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a"}),"\n",(0,i.jsxs)(d.ul,{children:["\n",(0,i.jsxs)(d.li,{children:["\u5728 Docker \u8fd0\u884c\u547d\u4ee4\u4e2d\u4f7f\u7528 ",(0,i.jsx)(d.code,{children:"-e"})," \u53c2\u6570"]}),"\n",(0,i.jsxs)(d.li,{children:["\u5728 Docker Compose \u6587\u4ef6\u4e2d\u4f7f\u7528 ",(0,i.jsx)(d.code,{children:"environment"})," \u90e8\u5206"]}),"\n",(0,i.jsxs)(d.li,{children:["\u5728\u6e90\u7801\u90e8\u7f72\u4e2d\u521b\u5efa ",(0,i.jsx)(d.code,{children:".env"})," \u6587\u4ef6"]}),"\n"]}),"\n",(0,i.jsx)(d.h2,{id:"\u57fa\u7840\u914d\u7f6e",children:"\u57fa\u7840\u914d\u7f6e"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"PORT"})}),(0,i.jsx)(d.td,{children:"\u670d\u52a1\u76d1\u542c\u7aef\u53e3"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"3000"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"NODE_ENV"})}),(0,i.jsx)(d.td,{children:"Node.js \u73af\u5883"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"production"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"OPERATING_ENV"})}),(0,i.jsx)(d.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"production"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOG_LEVEL"})}),(0,i.jsx)(d.td,{children:"\u65e5\u5fd7\u7ea7\u522b\uff08debug, info, warn, error\uff09"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"info"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"USAGE_LOG_FILE"})}),(0,i.jsx)(d.td,{children:"\u662f\u5426\u5f00\u542f\u6587\u4ef6\u65e5\u5fd7"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"true"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"MAX_UPLOAD_SIZE_MB"})}),(0,i.jsx)(d.td,{children:"\u9644\u4ef6\u4e0a\u4f20\u7684\u6700\u5927\u5927\u5c0f (MB)"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"5"})}),(0,i.jsx)(d.td,{children:"\u5426"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"STORAGE_DIR"})}),(0,i.jsx)(d.td,{children:"\u8d44\u6e90\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/app/storage"})}),(0,i.jsx)(d.td,{children:"\u5426"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"ai-\u63d0\u4f9b\u5546\u914d\u7f6e",children:"AI \u63d0\u4f9b\u5546\u914d\u7f6e"}),"\n",(0,i.jsx)(d.p,{children:"UPage \u652f\u6301\u591a\u79cd AI \u63d0\u4f9b\u5546\uff0c\u60a8\u9700\u8981\u914d\u7f6e\u4e00\u4e2a AI \u63d0\u4f9b\u5546\u624d\u80fd\u4f7f\u7528\u9875\u9762\u751f\u6210\u529f\u80fd\u3002"}),"\n",(0,i.jsxs)(d.admonition,{title:"\u914d\u7f6e\u53c2\u6570\u989c\u8272\u8bf4\u660e",type:"tip",children:[(0,i.jsx)(d.p,{children:"\u4e3a\u4e86\u5e2e\u52a9\u60a8\u533a\u5206\u4e0d\u540c\u63d0\u4f9b\u5546\u6240\u9700\u7684\u914d\u7f6e\u53c2\u6570\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u4e0d\u540c\u7684\u989c\u8272\u6807\u8bb0\uff1a"}),(0,i.jsxs)(d.ul,{children:["\n",(0,i.jsxs)(d.li,{children:[(0,i.jsx)("span",{className:"base-url-highlight",children:"API \u57fa\u7840 URL"}),": \u7528\u84dd\u8272\u6807\u8bb0\uff0c\u901a\u5e38\u662f\u670d\u52a1\u7684\u8bbf\u95ee\u5730\u5740"]}),"\n",(0,i.jsxs)(d.li,{children:[(0,i.jsx)("span",{className:"api-key-highlight",children:"API \u5bc6\u94a5"}),": \u7528\u7ea2\u8272\u6807\u8bb0\uff0c\u901a\u5e38\u662f\u654f\u611f\u4fe1\u606f\uff0c\u9700\u8981\u4ece\u63d0\u4f9b\u5546\u5904\u83b7\u53d6"]}),"\n"]})]}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"LLM \u63d0\u4f9b\u5546\uff0c\u6309\u7167\u4e0b\u8ff0\u914d\u7f6e\u9879\u914d\u7f6e\u4e00\u4e2a"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"base-url-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_BASE_URL"})})}),(0,i.jsx)(d.td,{children:"LLM \u63d0\u4f9b\u5546\u7684 API \u57fa\u7840 URL\uff0c\u90e8\u5206\u63d0\u4f9b\u5546\u9700\u8981\u8bbe\u7f6e\u6b64\u9879\uff0c\u4f8b\u5982 OpenAILike, Ollama, LMStudio"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u5426\uff0c\u90e8\u5206\u63d0\u4f9b\u5546\u4e0d\u9700\u8981\u8bbe\u7f6e\u6b64\u9879"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"LLM \u63d0\u4f9b\u5546\u7684 API \u5bc6\u94a5\uff0c\u5927\u90e8\u5206\u63d0\u4f9b\u5546\u9700\u8981\u8bbe\u7f6e\u6b64\u9879"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u5426\uff0c\u90e8\u5206\u63d0\u4f9b\u5546\u4e0d\u9700\u8981\u8bbe\u7f6e\u6b64\u9879"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_DEFAULT_MODEL"})}),(0,i.jsx)(d.td,{children:"\u751f\u6210\u9875\u9762\u6240\u4f7f\u7528\u7684\u6a21\u578b"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_MINOR_MODEL"})}),(0,i.jsx)(d.td,{children:"\u8f85\u52a9\u9875\u9762\u751f\u6210\u6240\u4f7f\u7528\u7684\u6a21\u578b"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f"})]})]})]}),"\n",(0,i.jsx)(d.p,{children:"\u4ee5\u4e0b\u662f\u5e38\u89c1\u7684 AI \u63d0\u4f9b\u5546\u914d\u7f6e\uff1a"}),"\n",(0,i.jsx)(d.h3,{id:"amazon-bedrock",children:"Amazon Bedrock"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Amazon Bedrock \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"AmazonBedrock"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Amazon Bedrock \u914d\u7f6e"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Amazon Bedrock\uff09"})]})]})]}),"\n",(0,i.jsxs)(d.admonition,{type:"info",children:[(0,i.jsxs)(d.p,{children:["\u5728 Amazon Bedrock \u63d0\u4f9b\u5546\u4e2d\uff0c",(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})," \u5e94\u4e3a JSON \u683c\u5f0f\u3002\u4f8b\u5982\uff1a"]}),(0,i.jsx)(d.pre,{children:(0,i.jsx)(d.code,{className:"language-json",children:'{\n // Bedrock \u53ef\u7528\u7684 AWS \u533a\u57df\n "region": "us-east-1",\n // \u4f60\u7684 AWS \u8bbf\u95ee\u5bc6\u94a5 ID\n "accessKeyId": "your-access-key-id",\n // \u4f60\u7684 AWS \u8bbf\u95ee\u5bc6\u94a5\u4ee4\u724c\n "secretAccessKey": "your-secret-access-key",\n // AWS \u4f1a\u8bdd\u4ee4\u724c\uff08\u53ef\u9009\uff09\uff0c\u5982\u679c\u4f7f\u7528 IAM \u89d2\u8272\u6216\u4e34\u65f6\u51ed\u636e\uff0c\u5219\u4e3a\u4e34\u65f6\u4f1a\u8bdd\u4ee4\u724c\n "sessionToken": "your-session-token"\n}\n'})}),(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://console.aws.amazon.com/iam/home",children:"Amazon Bedrock"})," \u4e2d\u83b7\u53d6\u914d\u7f6e\u3002"]})]}),"\n",(0,i.jsx)(d.h3,{id:"anthropic-claude",children:"Anthropic Claude"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Anthropic \u63d0\u4f9b\u5546"}),(0,i.jsx)(d.td,{children:"Anthropic"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Anthropic API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Anthropic\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://console.anthropic.com/settings/keys",children:"Anthropic"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"cohere",children:"Cohere"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Cohere \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Cohere"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Cohere API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Cohere\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://dashboard.cohere.com/api-keys",children:"Cohere"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"deepseek",children:"DeepSeek"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"DeepSeek \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Deepseek"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"DeepSeek API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 DeepSeek\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://platform.deepseek.com/api_keys",children:"DeepSeek"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"github",children:"Github"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Github \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Github"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Github API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Github\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://github.com/settings/personal-access-tokens",children:"Github"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"google",children:"Google"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Google \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Google"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Google \u751f\u6210\u5f0f AI API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Google\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://console.cloud.google.com/apis/credentials",children:"Google"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"groq",children:"Groq"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Groq \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Groq"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Groq API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Groq\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://console.groq.com/keys",children:"Groq"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"huggingface",children:"HuggingFace"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"HuggingFace \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"HuggingFace"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"HuggingFace API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 HuggingFace\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://huggingface.co/settings/tokens",children:"HuggingFace"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"hyperbolic",children:"Hyperbolic"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Hyperbolic \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Hyperbolic"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Hyperbolic API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Hyperbolic\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://hyperbolic.ai/dashboard/api-keys",children:"Hyperbolic"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"lmstudio",children:"LMStudio"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"LMStudio \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"LMStudio"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"base-url-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_BASE_URL"})})}),(0,i.jsx)(d.td,{children:"LMStudio API URL"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"http://127.0.0.1:1234"})}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 LMStudio\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"warning",children:(0,i.jsxs)(d.p,{children:["\u7531\u4e8e\u53ef\u80fd\u5b58\u5728\u7684 IPV6 \u7684\u95ee\u9898\uff0c\u6240\u4ee5\u4e0d\u8981\u4f7f\u7528 ",(0,i.jsx)(d.a,{href:"http://localhost:1234",children:"http://localhost:1234"})," \u800c\u5e94\u8be5\u4f7f\u7528\u7c7b\u4f3c\u4e8e ",(0,i.jsx)(d.a,{href:"http://127.0.0.1:1234",children:"http://127.0.0.1:1234"})," \u7684\u5730\u5740"]})}),"\n",(0,i.jsx)(d.h3,{id:"mistral",children:"Mistral"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Mistral \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Mistral"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Mistral API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Mistral\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://console.mistral.ai/api-keys/",children:"Mistral"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"ollama",children:"Ollama"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Ollama \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Ollama"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"base-url-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_BASE_URL"})})}),(0,i.jsx)(d.td,{children:"Ollama API URL"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"http://127.0.0.1:11434"})}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Ollama\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"warning",children:(0,i.jsxs)(d.p,{children:["\u7531\u4e8e\u53ef\u80fd\u5b58\u5728\u7684 IPV6 \u7684\u95ee\u9898\uff0c\u6240\u4ee5\u4e0d\u8981\u4f7f\u7528 ",(0,i.jsx)(d.a,{href:"http://localhost:11434",children:"http://localhost:11434"})," \u800c\u5e94\u8be5\u4f7f\u7528\u7c7b\u4f3c\u4e8e ",(0,i.jsx)(d.a,{href:"http://127.0.0.1:11434",children:"http://127.0.0.1:11434"})," \u7684\u5730\u5740"]})}),"\n",(0,i.jsx)(d.h3,{id:"openrouter",children:"OpenRouter"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"OpenRouter \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"OpenRouter"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"OpenRouter API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 OpenRouter\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://openrouter.ai/settings/keys",children:"OpenRouter"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"\u517c\u5bb9-openai-\u63a5\u53e3\u7684\u670d\u52a1",children:"\u517c\u5bb9 OpenAI \u63a5\u53e3\u7684\u670d\u52a1"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"OpenAILike \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"OpenAILike"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"base-url-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_BASE_URL"})})}),(0,i.jsx)(d.td,{children:"API \u57fa\u7840 URL"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 OpenAILike\uff09"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 OpenAILike\uff09"})]})]})]}),"\n",(0,i.jsx)(d.h3,{id:"openai",children:"OpenAI"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"OpenAI \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"OpenAI"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"OpenAI API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 OpenAI\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key",children:"OpenAI"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"perplexity",children:"Perplexity"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Perplexity \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Perplexity"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Perplexity API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Perplexity\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://www.perplexity.ai/settings/api",children:"Perplexity"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"together",children:"Together"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"Together \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"Together"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"Together API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Together\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://api.together.xyz/settings/api-keys",children:"Together"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"xai",children:"xAI"}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,i.jsx)(d.td,{children:"xAI \u63d0\u4f9b\u5546\u540d\u79f0"}),(0,i.jsx)(d.td,{children:"xAI"}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)("span",{className:"api-key-highlight",children:(0,i.jsx)(d.code,{children:"PROVIDER_API_KEY"})})}),(0,i.jsx)(d.td,{children:"xAI API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 xAI\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://x.ai/api",children:"xAI"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h2,{id:"ai-\u5de5\u5177\u914d\u7f6e",children:"AI \u5de5\u5177\u914d\u7f6e"}),"\n",(0,i.jsx)(d.p,{children:"UPage \u652f\u6301\u96c6\u6210\u90e8\u5206 AI \u5de5\u5177\u8c03\u7528\uff0c\u7528\u4e8e\u4e3a UPage \u63d0\u4f9b\u670d\u52a1\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u3002"}),"\n",(0,i.jsx)(d.h3,{id:"serper\u7f51\u7edc\u641c\u7d22\u5de5\u5177",children:"Serper\uff08\u7f51\u7edc\u641c\u7d22\u5de5\u5177\uff09"}),"\n",(0,i.jsxs)(d.p,{children:["UPage \u96c6\u6210\u4e86 ",(0,i.jsx)(d.a,{href:"https://serper.dev",children:"Serper"})," \u7684\u641c\u7d22\u670d\u52a1\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e ",(0,i.jsx)(d.code,{children:"SERPER_API_KEY"})," \u6765\u4f7f\u7528 Serper \u7684\u641c\u7d22\u670d\u52a1\u3002"]}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsx)(d.tbody,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERPER_API_KEY"})}),(0,i.jsx)(d.td,{children:"Serper API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Serper\uff09"})]})})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://serper.dev/api-keys",children:"Serper"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h3,{id:"weather\u5929\u6c14\u5de5\u5177",children:"Weather\uff08\u5929\u6c14\u5de5\u5177\uff09"}),"\n",(0,i.jsxs)(d.p,{children:["UPage \u96c6\u6210\u4e86 ",(0,i.jsx)(d.a,{href:"https://weatherapi.com",children:"Weather"})," \u7684\u5929\u6c14\u670d\u52a1\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e ",(0,i.jsx)(d.code,{children:"WEATHER_API_KEY"})," \u6765\u4f7f\u7528 Weather \u7684\u5929\u6c14\u670d\u52a1\u3002"]}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsx)(d.tbody,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"WEATHER_API_KEY"})}),(0,i.jsx)(d.td,{children:"Weather API \u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Weather\uff09"})]})})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["\u524d\u5f80 ",(0,i.jsx)(d.a,{href:"https://www.weatherapi.com/my/",children:"Weather"})," \u83b7\u53d6 API \u5bc6\u94a5\u3002"]})}),"\n",(0,i.jsx)(d.h2,{id:"\u8ba4\u8bc1\u914d\u7f6e",children:"\u8ba4\u8bc1\u914d\u7f6e"}),"\n",(0,i.jsx)(d.h3,{id:"logto-\u8ba4\u8bc1",children:"Logto \u8ba4\u8bc1"}),"\n",(0,i.jsxs)(d.p,{children:["UPage \u9ed8\u8ba4\u4ec5\u652f\u6301\u5355\u4e00\u7684\u533f\u540d\u7528\u6237\u8bbf\u95ee\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u96c6\u6210 Logto \u540e\u914d\u7f6e ",(0,i.jsx)(d.code,{children:"LOGTO_ENABLE"})," \u6765\u542f\u7528 Logto \u8ba4\u8bc1\uff0c\u652f\u6301\u591a\u7528\u6237\u767b\u5f55\u3002"]}),"\n",(0,i.jsxs)(d.table,{children:[(0,i.jsx)(d.thead,{children:(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,i.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,i.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"}),(0,i.jsx)(d.th,{children:"\u5fc5\u586b"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_ENABLE"})}),(0,i.jsx)(d.td,{children:"\u662f\u5426\u542f\u7528 Logto \u8ba4\u8bc1"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsx)(d.td,{children:"\u662f"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_ENDPOINT"})}),(0,i.jsx)(d.td,{children:"Logto \u670d\u52a1\u7684 URL"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Logto\uff09"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_APP_ID"})}),(0,i.jsx)(d.td,{children:"Logto \u5e94\u7528\u7a0b\u5e8f ID"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Logto\uff09"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_APP_SECRET"})}),(0,i.jsx)(d.td,{children:"Logto \u5e94\u7528\u7a0b\u5e8f\u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Logto\uff09"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_COOKIE_SECRET"})}),(0,i.jsx)(d.td,{children:"\u7528\u4e8e\u52a0\u5bc6 cookie \u7684\u5bc6\u94a5"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Logto\uff09"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"LOGTO_BASE_URL"})}),(0,i.jsx)(d.td,{children:"UPage \u5730\u5740"}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"\u662f\uff08\u5982\u679c\u4f7f\u7528 Logto\uff09"})]})]})]}),"\n",(0,i.jsx)(d.admonition,{type:"info",children:(0,i.jsxs)(d.p,{children:["Logto \u96c6\u6210\u8bf7\u53c2\u9605 ",(0,i.jsx)(d.a,{href:"./deployment/logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u6587\u6863\u3002"]})}),"\n",(0,i.jsx)(d.h2,{id:"\u914d\u7f6e\u793a\u4f8b",children:"\u914d\u7f6e\u793a\u4f8b"}),"\n",(0,i.jsx)(d.p,{children:"\u4ee5\u4e0b\u5185\u5bb9\u4ee5\u4f7f\u7528 Docker Compose \u4f5c\u4e3a\u793a\u4f8b\uff0c\u7528\u4e8e\u5c55\u793a UPage \u7684\u5b8c\u6574\u914d\u7f6e\u3002"}),"\n",(0,i.jsx)(d.pre,{children:(0,i.jsx)(d.code,{className:"language-yaml",children:'version: "3.9"\nservices:\n upage:\n image: halo-dev/upage:latest\n container_name: upage\n restart: unless-stopped\n ports:\n - "3000:3000"\n environment:\n # \u57fa\u7840\u914d\u7f6e\n - PORT=3000\n - NODE_ENV=production\n - OPERATING_ENV=production\n - LOG_LEVEL=info\n - USAGE_LOG_FILE=true\n - MAX_UPLOAD_SIZE_MB=10\n - STORAGE_DIR=/app/storage\n \n # \u4f7f\u7528 DeepSeek \u63d0\u4f9b\u5546\u914d\u7f6e\n - LLM_PROVIDER=DeepSeek\n - PROVIDER_API_KEY=your-deepseek-api-key\n - LLM_DEFAULT_MODEL=deepseek-chat\n - LLM_MINOR_MODEL=deepseek-chat\n\n # AI \u5de5\u5177\u914d\u7f6e\n - SERPER_API_KEY=your-serper-api-key\n - WEATHER_API_KEY=your-weather-api-key\n \n # Logto \u8ba4\u8bc1\u914d\u7f6e\n - LOGTO_ENABLE=true\n - LOGTO_ENDPOINT=http://logto:3001\n - LOGTO_APP_ID=your-app-id\n - LOGTO_APP_SECRET=your-app-secret\n - LOGTO_COOKIE_SECRET=your-cookie-secret\n - LOGTO_BASE_URL=http://localhost:3000\n volumes:\n - ./data:/app/data\n - ./logs:/app/logs\n - ./storage:/app/storage\n'})}),"\n",(0,i.jsxs)(d.p,{children:["\u5982\u679c\u4f60\u8981\u5207\u6362\u4f7f\u7528\u5176\u4ed6 AI \u63d0\u4f9b\u5546\uff0c\u5219\u53ea\u9700\u8981\u4fee\u6539 ",(0,i.jsx)(d.code,{children:"LLM_PROVIDER"})," \u548c\u76f8\u5e94\u7684 API \u5bc6\u94a5\u3001Model \u5373\u53ef\uff0c\u4f8b\u5982\uff1a"]}),"\n",(0,i.jsx)(d.pre,{children:(0,i.jsx)(d.code,{className:"language-yaml",children:'version: "3.9"\nservices:\n upage:\n image: halo-dev/upage:latest\n container_name: upage\n restart: unless-stopped\n ports:\n - "3000:3000"\n environment:\n # \u4f7f\u7528 OpenAI \u517c\u5bb9\u63a5\u53e3\u7684\u63d0\u4f9b\u5546\u914d\u7f6e\n - LLM_PROVIDER=OpenAILike\n - PROVIDER_BASE_URL=your-openai-api-base-url\n - PROVIDER_API_KEY=your-openai-api-key\n - LLM_DEFAULT_MODEL=gpt-4.1\n - LLM_MINOR_MODEL=gpt-4.1-mini\n\n # ...\u5176\u4ed6\u914d\u7f6e\n volumes:\n - ./data:/app/data\n - ./logs:/app/logs\n - ./storage:/app/storage\n'})}),"\n",(0,i.jsx)(d.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,i.jsxs)(d.ul,{children:["\n",(0,i.jsxs)(d.li,{children:["\u9605\u8bfb",(0,i.jsx)(d.a,{href:"./user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,i.jsxs)(d.li,{children:["\u9605\u8bfb",(0,i.jsx)(d.a,{href:"./contributing",children:"\u8d21\u732e\u6307\u5357"}),"\u4e86\u89e3\u5982\u4f55\u8d21\u732e UPage"]}),"\n"]})]})}function j(e={}){const{wrapper:d}={...(0,r.R)(),...e.components};return d?(0,i.jsx)(d,{...e,children:(0,i.jsx)(x,{...e})}):x(e)}},8784:(e,d,n)=>{n.d(d,{R:()=>h,x:()=>l});var s=n(7378);const i={},r=s.createContext(i);function h(e){const d=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),s.createElement(r.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/710eb747.ea4f2e89.js b/upage/assets/js/710eb747.ea4f2e89.js new file mode 100644 index 0000000..24432e9 --- /dev/null +++ b/upage/assets/js/710eb747.ea4f2e89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[976],{7760:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"\u90e8\u7f72\u6307\u5357","slug":"deployment-guide","permalink":"/upage/deployment-guide","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"\u5feb\u901f\u5f00\u59cb","permalink":"/upage/quick-start"},"next":{"title":"Docker \u90e8\u7f72","permalink":"/upage/deployment/docker"}}}}')}}]); \ No newline at end of file diff --git a/upage/assets/js/778fc58b.c1379a0f.js b/upage/assets/js/778fc58b.c1379a0f.js new file mode 100644 index 0000000..a5f66f5 --- /dev/null +++ b/upage/assets/js/778fc58b.c1379a0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[605],{2611:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"\u7528\u6237\u6307\u5357","slug":"user-guide","permalink":"/upage/user-guide","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"\u914d\u7f6e\u53c2\u8003","permalink":"/upage/configuration"},"next":{"title":"\u57fa\u7840\u4f7f\u7528","permalink":"/upage/user-guide/basics"}}}}')}}]); \ No newline at end of file diff --git a/upage/assets/js/7e9a7b3c.ceb49ea1.js b/upage/assets/js/7e9a7b3c.ceb49ea1.js new file mode 100644 index 0000000..aed4c2f --- /dev/null +++ b/upage/assets/js/7e9a7b3c.ceb49ea1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[464],{1830:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>t,default:()=>a,frontMatter:()=>c,metadata:()=>l,toc:()=>h});const l=JSON.parse('{"id":"contributing/ways-to-contribute","title":"\u8d21\u732e\u65b9\u5f0f","description":"\u60a8\u53ef\u4ee5\u901a\u8fc7\u591a\u79cd\u65b9\u5f0f\u4e3a UPage \u505a\u51fa\u8d21\u732e\uff0c\u65e0\u8bba\u60a8\u662f\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u3001\u6587\u6863\u64b0\u5199\u8005\u8fd8\u662f\u7528\u6237\uff0c\u90fd\u80fd\u627e\u5230\u9002\u5408\u60a8\u7684\u8d21\u732e\u65b9\u5f0f\u3002","source":"@site/content/contributing/ways-to-contribute.md","sourceDirName":"contributing","slug":"/contributing/ways-to-contribute","permalink":"/upage/contributing/ways-to-contribute","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/ways-to-contribute.md","tags":[],"version":"current","frontMatter":{"id":"ways-to-contribute","title":"\u8d21\u732e\u65b9\u5f0f"},"sidebar":"tutorialSidebar","previous":{"title":"\u884c\u4e3a\u51c6\u5219","permalink":"/upage/contributing/code-of-conduct"},"next":{"title":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e","permalink":"/upage/contributing/development-setup"}}');var s=i(6106),r=i(8784);const c={id:"ways-to-contribute",title:"\u8d21\u732e\u65b9\u5f0f"},t="\u8d21\u732e\u65b9\u5f0f",d={},h=[{value:"\u62a5\u544a\u95ee\u9898",id:"\u62a5\u544a\u95ee\u9898",level:2},{value:"\u63d0\u4ea4\u4ee3\u7801",id:"\u63d0\u4ea4\u4ee3\u7801",level:2},{value:"\u4ee3\u7801\u8d21\u732e\u6307\u5357",id:"\u4ee3\u7801\u8d21\u732e\u6307\u5357",level:3},{value:"\u6539\u8fdb\u6587\u6863",id:"\u6539\u8fdb\u6587\u6863",level:2},{value:"\u6587\u6863\u8d21\u732e\u6b65\u9aa4",id:"\u6587\u6863\u8d21\u732e\u6b65\u9aa4",level:3},{value:"\u8bbe\u8ba1\u8d21\u732e",id:"\u8bbe\u8ba1\u8d21\u732e",level:2},{value:"\u6d4b\u8bd5\u548c\u53cd\u9988",id:"\u6d4b\u8bd5\u548c\u53cd\u9988",level:2},{value:"\u5206\u4eab\u548c\u63a8\u5e7f",id:"\u5206\u4eab\u548c\u63a8\u5e7f",level:2},{value:"\u793e\u533a\u652f\u6301",id:"\u793e\u533a\u652f\u6301",level:2},{value:"\u611f\u8c22\u60a8\u7684\u8d21\u732e",id:"\u611f\u8c22\u60a8\u7684\u8d21\u732e",level:2}];function o(n){const e={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"\u8d21\u732e\u65b9\u5f0f",children:"\u8d21\u732e\u65b9\u5f0f"})}),"\n",(0,s.jsx)(e.p,{children:"\u60a8\u53ef\u4ee5\u901a\u8fc7\u591a\u79cd\u65b9\u5f0f\u4e3a UPage \u505a\u51fa\u8d21\u732e\uff0c\u65e0\u8bba\u60a8\u662f\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u3001\u6587\u6863\u64b0\u5199\u8005\u8fd8\u662f\u7528\u6237\uff0c\u90fd\u80fd\u627e\u5230\u9002\u5408\u60a8\u7684\u8d21\u732e\u65b9\u5f0f\u3002"}),"\n",(0,s.jsx)(e.h2,{id:"\u62a5\u544a\u95ee\u9898",children:"\u62a5\u544a\u95ee\u9898"}),"\n",(0,s.jsxs)(e.p,{children:["\u5982\u679c\u60a8\u53d1\u73b0\u4e86 bug \u6216\u6709\u529f\u80fd\u5efa\u8bae\uff0c\u8bf7\u5728 ",(0,s.jsx)(e.a,{href:"https://github.com/halo-dev/upage/issues",children:"GitHub Issues"})," \u4e2d\u63d0\u51fa\u3002\u63d0\u4ea4\u95ee\u9898\u65f6\uff0c\u8bf7\u5c3d\u53ef\u80fd\u63d0\u4f9b\u4ee5\u4e0b\u4fe1\u606f\uff1a"]}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"\u6e05\u6670\u7684\u95ee\u9898\u63cf\u8ff0"}),"\n",(0,s.jsx)(e.li,{children:"\u590d\u73b0\u6b65\u9aa4"}),"\n",(0,s.jsx)(e.li,{children:"\u9884\u671f\u884c\u4e3a\u4e0e\u5b9e\u9645\u884c\u4e3a"}),"\n",(0,s.jsx)(e.li,{children:"\u622a\u56fe\uff08\u5982\u9002\u7528\uff09"}),"\n",(0,s.jsx)(e.li,{children:"\u73af\u5883\u4fe1\u606f\uff08\u6d4f\u89c8\u5668\u3001\u64cd\u4f5c\u7cfb\u7edf\u3001UPage \u7248\u672c\u7b49\uff09"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u63d0\u4ea4\u4ee3\u7801",children:"\u63d0\u4ea4\u4ee3\u7801"}),"\n",(0,s.jsx)(e.p,{children:"\u5982\u679c\u60a8\u60f3\u76f4\u63a5\u8d21\u732e\u4ee3\u7801\uff0c\u8bf7\u9075\u5faa\u4ee5\u4e0b\u6b65\u9aa4\uff1a"}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.a,{href:"https://github.com/halo-dev/upage/fork",children:"Fork"})," \u9879\u76ee\u4ed3\u5e93"]}),"\n",(0,s.jsxs)(e.li,{children:["\u521b\u5efa\u60a8\u7684\u529f\u80fd\u5206\u652f (",(0,s.jsx)(e.code,{children:"git checkout -b feature/amazing-feature"}),")"]}),"\n",(0,s.jsxs)(e.li,{children:["\u63d0\u4ea4\u60a8\u7684\u66f4\u6539 (",(0,s.jsx)(e.code,{children:"git commit -m 'Add some amazing feature'"}),")"]}),"\n",(0,s.jsxs)(e.li,{children:["\u63a8\u9001\u5230\u5206\u652f (",(0,s.jsx)(e.code,{children:"git push origin feature/amazing-feature"}),")"]}),"\n",(0,s.jsx)(e.li,{children:"\u521b\u5efa Pull Request"}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"\u4ee3\u7801\u8d21\u732e\u6307\u5357",children:"\u4ee3\u7801\u8d21\u732e\u6307\u5357"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\u786e\u4fdd\u60a8\u7684\u4ee3\u7801\u7b26\u5408\u9879\u76ee\u7684",(0,s.jsx)(e.a,{href:"/upage/contributing/code-standards",children:"\u4ee3\u7801\u89c4\u8303"})]}),"\n",(0,s.jsx)(e.li,{children:"\u4e3a\u65b0\u529f\u80fd\u7f16\u5199\u6d4b\u8bd5"}),"\n",(0,s.jsx)(e.li,{children:"\u66f4\u65b0\u76f8\u5173\u6587\u6863"}),"\n",(0,s.jsx)(e.li,{children:"\u786e\u4fdd\u6240\u6709\u6d4b\u8bd5\u901a\u8fc7"}),"\n",(0,s.jsxs)(e.li,{children:["\u9075\u5faa",(0,s.jsx)(e.a,{href:"/upage/contributing/workflow",children:"\u5de5\u4f5c\u6d41\u7a0b"}),"\u4e2d\u7684\u5206\u652f\u7b56\u7565\u548c PR \u6d41\u7a0b"]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u6539\u8fdb\u6587\u6863",children:"\u6539\u8fdb\u6587\u6863"}),"\n",(0,s.jsx)(e.p,{children:"\u6587\u6863\u5bf9\u4e8e\u4efb\u4f55\u9879\u76ee\u90fd\u81f3\u5173\u91cd\u8981\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u6539\u8fdb UPage \u7684\u6587\u6863\uff1a"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"\u4fee\u590d\u6587\u6863\u4e2d\u7684\u9519\u8bef\u6216\u4e0d\u51c6\u786e\u4e4b\u5904"}),"\n",(0,s.jsx)(e.li,{children:"\u6dfb\u52a0\u7f3a\u5931\u7684\u4fe1\u606f\u6216\u793a\u4f8b"}),"\n",(0,s.jsx)(e.li,{children:"\u6539\u8fdb\u6587\u6863\u7684\u7ed3\u6784\u548c\u53ef\u8bfb\u6027"}),"\n",(0,s.jsx)(e.li,{children:"\u7ffb\u8bd1\u6587\u6863\u5230\u5176\u4ed6\u8bed\u8a00"}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"\u6587\u6863\u8d21\u732e\u6b65\u9aa4",children:"\u6587\u6863\u8d21\u732e\u6b65\u9aa4"}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:["\u5728 ",(0,s.jsx)(e.code,{children:"docs/content"})," \u76ee\u5f55\u4e2d\u627e\u5230\u76f8\u5173\u7684 Markdown \u6587\u4ef6"]}),"\n",(0,s.jsx)(e.li,{children:"\u8fdb\u884c\u5fc5\u8981\u7684\u66f4\u6539"}),"\n",(0,s.jsxs)(e.li,{children:["\u5728\u672c\u5730\u9884\u89c8\u66f4\u6539\uff1a",(0,s.jsx)(e.code,{children:"pnpm docs:start"})]}),"\n",(0,s.jsx)(e.li,{children:"\u63d0\u4ea4 Pull Request"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u8bbe\u8ba1\u8d21\u732e",children:"\u8bbe\u8ba1\u8d21\u732e"}),"\n",(0,s.jsx)(e.p,{children:"\u5982\u679c\u60a8\u662f\u8bbe\u8ba1\u5e08\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8d21\u732e\uff1a"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"\u6539\u8fdb\u7528\u6237\u754c\u9762\u8bbe\u8ba1"}),"\n",(0,s.jsx)(e.li,{children:"\u521b\u5efa\u56fe\u6807\u548c\u63d2\u56fe"}),"\n",(0,s.jsx)(e.li,{children:"\u8bbe\u8ba1\u5ba3\u4f20\u6750\u6599"}),"\n",(0,s.jsx)(e.li,{children:"\u63d0\u4f9b\u7528\u6237\u4f53\u9a8c\u5efa\u8bae"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u6d4b\u8bd5\u548c\u53cd\u9988",children:"\u6d4b\u8bd5\u548c\u53cd\u9988"}),"\n",(0,s.jsx)(e.p,{children:"\u5373\u4f7f\u60a8\u4e0d\u662f\u5f00\u53d1\u8005\uff0c\u60a8\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u505a\u51fa\u91cd\u8981\u8d21\u732e\uff1a"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"\u6d4b\u8bd5\u65b0\u529f\u80fd\u548c\u7248\u672c"}),"\n",(0,s.jsx)(e.li,{children:"\u63d0\u4f9b\u8be6\u7ec6\u7684\u53cd\u9988"}),"\n",(0,s.jsx)(e.li,{children:"\u62a5\u544a\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u9047\u5230\u7684\u95ee\u9898"}),"\n",(0,s.jsx)(e.li,{children:"\u63d0\u51fa\u6539\u8fdb\u5efa\u8bae"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u5206\u4eab\u548c\u63a8\u5e7f",children:"\u5206\u4eab\u548c\u63a8\u5e7f"}),"\n",(0,s.jsx)(e.p,{children:"\u60a8\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u652f\u6301 UPage\uff1a"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"\u5728\u793e\u4ea4\u5a92\u4f53\u4e0a\u5206\u4eab\u9879\u76ee"}),"\n",(0,s.jsx)(e.li,{children:"\u64b0\u5199\u5173\u4e8e UPage \u7684\u535a\u5ba2\u6587\u7ae0\u6216\u6559\u7a0b"}),"\n",(0,s.jsx)(e.li,{children:"\u5728\u76f8\u5173\u8bba\u575b\u548c\u793e\u533a\u4e2d\u63a8\u8350 UPage"}),"\n",(0,s.jsx)(e.li,{children:"\u4e3a\u9879\u76ee\u52a0\u661f\u6807\uff08Star\uff09"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u793e\u533a\u652f\u6301",children:"\u793e\u533a\u652f\u6301"}),"\n",(0,s.jsx)(e.p,{children:"\u5e2e\u52a9\u5176\u4ed6\u7528\u6237\u89e3\u51b3\u95ee\u9898\u4e5f\u662f\u4e00\u79cd\u91cd\u8981\u7684\u8d21\u732e\u65b9\u5f0f\uff1a"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\u56de\u7b54 ",(0,s.jsx)(e.a,{href:"https://github.com/halo-dev/upage/discussions",children:"GitHub Discussions"})," \u4e2d\u7684\u95ee\u9898"]}),"\n",(0,s.jsx)(e.li,{children:"\u5e2e\u52a9\u65b0\u7528\u6237\u5165\u95e8"}),"\n",(0,s.jsx)(e.li,{children:"\u5206\u4eab\u60a8\u7684\u4f7f\u7528\u7ecf\u9a8c\u548c\u6700\u4f73\u5b9e\u8df5"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"\u611f\u8c22\u60a8\u7684\u8d21\u732e",children:"\u611f\u8c22\u60a8\u7684\u8d21\u732e"}),"\n",(0,s.jsx)(e.p,{children:"\u65e0\u8bba\u60a8\u4ee5\u4f55\u79cd\u65b9\u5f0f\u652f\u6301\u548c\u53c2\u4e0e UPage \u9879\u76ee\uff0c\u6211\u4eec\u90fd\u7531\u8877\u5730\u611f\u8c22\u60a8\u7684\u6bcf\u4e00\u4efd\u8d21\u732e\u3002\u6b63\u662f\u56e0\u4e3a\u6709\u8bf8\u591a\u50cf\u60a8\u8fd9\u6837\u7684\u793e\u533a\u6210\u5458\u7684\u652f\u6301\u548c\u53c2\u4e0e\uff0cUPage \u624d\u80fd\u4e0d\u65ad\u6210\u957f\u548c\u8fdb\u6b65\u3002\u6bcf\u4e00\u4e2a\u95ee\u9898\u62a5\u544a\u3001\u6bcf\u4e00\u884c\u4ee3\u7801\u3001\u6bcf\u4e00\u4efd\u6587\u6863\u6539\u8fdb\u4ee5\u53ca\u6bcf\u4e00\u6b21\u5206\u4eab\u90fd\u662f\u5b9d\u8d35\u7684\u3002"})]})}function a(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(o,{...n})}):o(n)}},8784:(n,e,i)=>{i.d(e,{R:()=>c,x:()=>t});var l=i(7378);const s={},r=l.createContext(s);function c(n){const e=l.useContext(r);return l.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:c(n.components),l.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/803.72810d70.js b/upage/assets/js/803.72810d70.js new file mode 100644 index 0000000..5a2fd70 --- /dev/null +++ b/upage/assets/js/803.72810d70.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[803],{845:(e,t,n)=>{n.d(t,{A:()=>r});n(7378);var i=n(3372),o=n(929),s=n(3873),a=n(6106);function r({className:e}){return(0,a.jsx)("main",{className:(0,i.A)("container margin-vert--xl",e),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,a.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,a.jsx)("p",{children:(0,a.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,a.jsx)("p",{children:(0,a.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2803:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(7378);var i=n(929),o=n(496),s=n(9511),a=n(845),r=n(6106);function d(){const e=(0,i.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.be,{title:e}),(0,r.jsx)(s.A,{children:(0,r.jsx)(a.A,{})})]})}}}]); \ No newline at end of file diff --git a/upage/assets/js/86585ddf.38132d93.js b/upage/assets/js/86585ddf.38132d93.js new file mode 100644 index 0000000..c5a4484 --- /dev/null +++ b/upage/assets/js/86585ddf.38132d93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[519],{5036:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>d,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"deployment/source","title":"\u6e90\u7801\u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4ece\u6e90\u7801\u6784\u5efa\u548c\u90e8\u7f72 UPage\u3002\u5982\u679c\u60a8\u5e0c\u671b\u81ea\u5b9a\u4e49 UPage \u6216\u8005\u53c2\u4e0e\u5f00\u53d1\uff0c\u8fd9\u662f\u6700\u5408\u9002\u7684\u90e8\u7f72\u65b9\u5f0f\u3002","source":"@site/content/deployment/source.md","sourceDirName":"deployment","slug":"/deployment/source","permalink":"/upage/deployment/source","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/source.md","tags":[],"version":"current","frontMatter":{"id":"source","title":"\u6e90\u7801\u90e8\u7f72"},"sidebar":"tutorialSidebar","previous":{"title":"Docker Compose \u90e8\u7f72","permalink":"/upage/deployment/docker-compose"},"next":{"title":"Logto \u8ba4\u8bc1\u96c6\u6210","permalink":"/upage/deployment/logto"}}');var i=l(6106),r=l(8784);const d={id:"source",title:"\u6e90\u7801\u90e8\u7f72"},a="\u6e90\u7801\u90e8\u7f72",c={},h=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u4e0b\u8f7d\u5e76\u6784\u5efa\u4ee3\u7801",id:"\u4e0b\u8f7d\u5e76\u6784\u5efa\u4ee3\u7801",level:2},{value:"\u514b\u9686\u4ee3\u7801\u5e93",id:"\u514b\u9686\u4ee3\u7801\u5e93",level:3},{value:"\u5b89\u88c5\u4f9d\u8d56",id:"\u5b89\u88c5\u4f9d\u8d56",level:3},{value:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",level:3},{value:"\u751f\u6210 Prisma \u5ba2\u6237\u7aef",id:"\u751f\u6210-prisma-\u5ba2\u6237\u7aef",level:3},{value:"\u5f00\u53d1\u6a21\u5f0f\u4f7f\u7528",id:"\u5f00\u53d1\u6a21\u5f0f\u4f7f\u7528",level:2},{value:"\u751f\u4ea7\u6a21\u5f0f\u4f7f\u7528",id:"\u751f\u4ea7\u6a21\u5f0f\u4f7f\u7528",level:2},{value:"\u542f\u52a8\u670d\u52a1",id:"\u542f\u52a8\u670d\u52a1",level:3},{value:"\u4f7f\u7528 PM2 \u7ba1\u7406\u670d\u52a1\uff08\u53ef\u9009\uff09",id:"\u4f7f\u7528-pm2-\u7ba1\u7406\u670d\u52a1\u53ef\u9009",level:2},{value:"\u5168\u5c40\u5b89\u88c5 PM2",id:"\u5168\u5c40\u5b89\u88c5-pm2",level:3},{value:"\u521b\u5efa PM2 \u914d\u7f6e\u6587\u4ef6",id:"\u521b\u5efa-pm2-\u914d\u7f6e\u6587\u4ef6",level:3},{value:"\u542f\u52a8\u670d\u52a1",id:"\u542f\u52a8\u670d\u52a1-1",level:3},{value:"\u67e5\u770b\u65e5\u5fd7",id:"\u67e5\u770b\u65e5\u5fd7",level:3},{value:"\u76d1\u63a7\u670d\u52a1",id:"\u76d1\u63a7\u670d\u52a1",level:3},{value:"\u5347\u7ea7 UPage",id:"\u5347\u7ea7-upage",level:2},{value:"\u6545\u969c\u6392\u9664",id:"\u6545\u969c\u6392\u9664",level:2},{value:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",id:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",level:3},{value:"\u6784\u5efa\u5931\u8d25",id:"\u6784\u5efa\u5931\u8d25",level:3},{value:"\u6570\u636e\u5e93\u9519\u8bef",id:"\u6570\u636e\u5e93\u9519\u8bef",level:3},{value:"\u65e5\u5fd7\u67e5\u770b",id:"\u65e5\u5fd7\u67e5\u770b",level:3},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u6e90\u7801\u90e8\u7f72",children:"\u6e90\u7801\u90e8\u7f72"})}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4ece\u6e90\u7801\u6784\u5efa\u548c\u90e8\u7f72 UPage\u3002\u5982\u679c\u60a8\u5e0c\u671b\u81ea\u5b9a\u4e49 UPage \u6216\u8005\u53c2\u4e0e\u5f00\u53d1\uff0c\u8fd9\u662f\u6700\u5408\u9002\u7684\u90e8\u7f72\u65b9\u5f0f\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,i.jsx)(n.p,{children:"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Node.js 18.18.0 \u6216\u66f4\u9ad8\u7248\u672c"}),"\n",(0,i.jsx)(n.li,{children:"pnpm 9.4.0 \u6216\u66f4\u9ad8\u7248\u672c"}),"\n",(0,i.jsx)(n.li,{children:"Git"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u4e0b\u8f7d\u5e76\u6784\u5efa\u4ee3\u7801",children:"\u4e0b\u8f7d\u5e76\u6784\u5efa\u4ee3\u7801"}),"\n",(0,i.jsx)(n.h3,{id:"\u514b\u9686\u4ee3\u7801\u5e93",children:"\u514b\u9686\u4ee3\u7801\u5e93"}),"\n",(0,i.jsx)(n.p,{children:"\u9996\u5148\uff0c\u514b\u9686 UPage \u7684\u4ee3\u7801\u5e93\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/halo-dev/upage.git\ncd upage\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u5b89\u88c5\u4f9d\u8d56",children:"\u5b89\u88c5\u4f9d\u8d56"}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528 pnpm \u5b89\u88c5\u9879\u76ee\u4f9d\u8d56\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm install\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf",children:"\u914d\u7f6e\u73af\u5883\u53d8\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u62f7\u8d1d ",(0,i.jsx)(n.code,{children:".env.example"})," \u6587\u4ef6\uff0c\u521b\u5efa ",(0,i.jsx)(n.code,{children:".env"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cp .env.example .env\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u914d\u7f6e\u5fc5\u8981\u7684\u73af\u5883\u53d8\u91cf\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u57fa\u7840\u914d\u7f6e\nPORT=3000\nNODE_ENV=production\nOPERATING_ENV=production\nLOG_LEVEL=info\nUSAGE_LOG_FILE=true\nMAX_UPLOAD_SIZE_MB=5\nSTORAGE_DIR=./storage\n\n# AI \u63d0\u4f9b\u5546\u914d\u7f6e\nLLM_PROVIDER=OpenAILike\nPROVIDER_BASE_URL=your-openai-like-api-base-url\nPROVIDER_API_KEY=your-openai-like-api-key\nLLM_DEFAULT_MODEL=your-default-model\nLLM_MINOR_MODEL=your-minor-model\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u4e0d\u540c\u7684 AI \u63d0\u4f9b\u5546\uff0c\u8be6\u7ec6\u914d\u7f6e\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u751f\u6210-prisma-\u5ba2\u6237\u7aef",children:"\u751f\u6210 Prisma \u5ba2\u6237\u7aef"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm setup\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u5f00\u53d1\u6a21\u5f0f\u4f7f\u7528",children:"\u5f00\u53d1\u6a21\u5f0f\u4f7f\u7528"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u60a8\u60f3\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u8fd0\u884c UPage\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm dev\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u5f00\u53d1\u670d\u52a1\u5668\u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"http://localhost:5173\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u5c06\u542f\u52a8\u5f00\u53d1\u670d\u52a1\u5668\uff0c\u652f\u6301\u70ed\u91cd\u8f7d\uff0c\u65b9\u4fbf\u60a8\u8fdb\u884c\u5f00\u53d1\u548c\u8c03\u8bd5\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u751f\u4ea7\u6a21\u5f0f\u4f7f\u7528",children:"\u751f\u4ea7\u6a21\u5f0f\u4f7f\u7528"}),"\n",(0,i.jsx)(n.p,{children:"\u6784\u5efa UPage \u9879\u76ee\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm build\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u542f\u52a8\u670d\u52a1",children:"\u542f\u52a8\u670d\u52a1"}),"\n",(0,i.jsx)(n.p,{children:"\u542f\u52a8 UPage \u670d\u52a1\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm preview\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u670d\u52a1\u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"http://localhost:3000\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u4f7f\u7528-pm2-\u7ba1\u7406\u670d\u52a1\u53ef\u9009",children:"\u4f7f\u7528 PM2 \u7ba1\u7406\u670d\u52a1\uff08\u53ef\u9009\uff09"}),"\n",(0,i.jsx)(n.p,{children:"\u5728\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528 PM2 \u6765\u7ba1\u7406 Node.js \u5e94\u7528\u7a0b\u5e8f\uff1a"}),"\n",(0,i.jsx)(n.h3,{id:"\u5168\u5c40\u5b89\u88c5-pm2",children:"\u5168\u5c40\u5b89\u88c5 PM2"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install -g pm2\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u521b\u5efa-pm2-\u914d\u7f6e\u6587\u4ef6",children:"\u521b\u5efa PM2 \u914d\u7f6e\u6587\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u521b\u5efa ",(0,i.jsx)(n.code,{children:"ecosystem.config.js"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",children:"module.exports = {\n apps: [{\n name: 'upage',\n script: './server.mjs',\n instances: 1,\n autorestart: true,\n watch: false,\n max_memory_restart: '1G',\n env: {\n NODE_ENV: 'production',\n OPERATING_ENV: 'production',\n PORT: 3000,\n LLM_PROVIDER: 'OpenAILike',\n PROVIDER_BASE_URL: 'your-openai-like-api-base-url',\n PROVIDER_API_KEY: 'your-openai-like-api-key',\n LLM_DEFAULT_MODEL: 'your-default-model',\n LLM_MINOR_MODEL: 'your-minor-model',\n }\n }]\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u542f\u52a8\u670d\u52a1-1",children:"\u542f\u52a8\u670d\u52a1"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pm2 start ecosystem.config.js\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u67e5\u770b\u65e5\u5fd7",children:"\u67e5\u770b\u65e5\u5fd7"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pm2 logs upage\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u76d1\u63a7\u670d\u52a1",children:"\u76d1\u63a7\u670d\u52a1"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pm2 monit\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u5347\u7ea7-upage",children:"\u5347\u7ea7 UPage"}),"\n",(0,i.jsx)(n.p,{children:"\u5f53\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u60a8\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u5347\u7ea7 UPage\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# \u62c9\u53d6\u6700\u65b0\u4ee3\u7801\ngit pull origin main\n\n# \u5b89\u88c5\u4f9d\u8d56\npnpm install\n\n# \u6784\u5efa\u9879\u76ee\npnpm build\n\n# \u5f00\u53d1\u73af\u5883\u4f7f\u7528\npnpm dev\n\n# \u751f\u4ea7\u73af\u5883\u4f7f\u7528\npnpm preview\n\n# \u6216\u8005\u5982\u679c\u4f7f\u7528 PM2\npm2 restart upage\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u6545\u969c\u6392\u9664",children:"\u6545\u969c\u6392\u9664"}),"\n",(0,i.jsx)(n.h3,{id:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25",children:"\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u4f9d\u8d56\u5b89\u88c5\u5931\u8d25\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u6e05\u9664 pnpm \u7f13\u5b58\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm store prune\npnpm install\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u6784\u5efa\u5931\u8d25",children:"\u6784\u5efa\u5931\u8d25"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u6784\u5efa\u5931\u8d25\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u6e05\u9664\u6784\u5efa\u7f13\u5b58\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm clean\npnpm build\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u6570\u636e\u5e93\u9519\u8bef",children:"\u6570\u636e\u5e93\u9519\u8bef"}),"\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u9047\u5230\u6570\u636e\u5e93\u76f8\u5173\u9519\u8bef\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u91cd\u65b0\u521d\u59cb\u5316\u6570\u636e\u5e93"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm prisma migrate reset\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"danger",children:(0,i.jsx)(n.p,{children:"\u8bf7\u6ce8\u610f\uff0c\u8fd9\u5c06\u6e05\u7a7a\u6240\u6709\u6570\u636e\u5e76\u91cd\u7f6e\u6570\u636e\u5e93\uff0c\u5207\u52ff\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u4f7f\u7528\u3002"})}),"\n",(0,i.jsx)(n.h3,{id:"\u65e5\u5fd7\u67e5\u770b",children:"\u65e5\u5fd7\u67e5\u770b"}),"\n",(0,i.jsx)(n.p,{children:"\u68c0\u67e5\u65e5\u5fd7\u6587\u4ef6\u4ee5\u83b7\u53d6\u66f4\u591a\u9519\u8bef\u4fe1\u606f\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cat logs/combined-*.log\ncat logs/error-*.log\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u9605\u8bfb",(0,i.jsx)(n.a,{href:"../user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,i.jsxs)(n.li,{children:["\u63a2\u7d22",(0,i.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n",(0,i.jsxs)(n.li,{children:["\u63a2\u7d22",(0,i.jsx)(n.a,{href:"./logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u4e86\u89e3\u5982\u4f55\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},8784:(e,n,l)=>{l.d(n,{R:()=>d,x:()=>a});var s=l(7378);const i={},r=s.createContext(i);function d(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/931f8773.34a6d928.js b/upage/assets/js/931f8773.34a6d928.js new file mode 100644 index 0000000..b2c08fb --- /dev/null +++ b/upage/assets/js/931f8773.34a6d928.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[139],{111:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"contributing/contributing","title":"\u8d21\u732e\u6307\u5357","description":"\u611f\u8c22\u60a8\u5bf9 UPage \u9879\u76ee\u7684\u5173\u6ce8\uff01\u6211\u4eec\u975e\u5e38\u6b22\u8fce\u5404\u79cd\u5f62\u5f0f\u7684\u8d21\u732e\uff0c\u65e0\u8bba\u662f\u529f\u80fd\u5f00\u53d1\u3001bug \u4fee\u590d\u3001\u6587\u6863\u6539\u8fdb\u8fd8\u662f\u4f7f\u7528\u53cd\u9988\u3002\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u4e86\u89e3\u5982\u4f55\u53c2\u4e0e UPage \u7684\u5f00\u53d1\u548c\u8d21\u732e\u3002","source":"@site/content/contributing/index.md","sourceDirName":"contributing","slug":"/contributing","permalink":"/upage/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/index.md","tags":[],"version":"current","frontMatter":{"id":"contributing","title":"\u8d21\u732e\u6307\u5357","slug":"/contributing"},"sidebar":"tutorialSidebar","previous":{"title":"\u57fa\u7840\u4f7f\u7528","permalink":"/upage/user-guide/basics"},"next":{"title":"\u884c\u4e3a\u51c6\u5219","permalink":"/upage/contributing/code-of-conduct"}}');var r=t(6106),s=t(8784);const c={id:"contributing",title:"\u8d21\u732e\u6307\u5357",slug:"/contributing"},o="\u8d21\u732e\u6307\u5357",u={},l=[{value:"\u76ee\u5f55",id:"\u76ee\u5f55",level:2},{value:"\u793e\u533a",id:"\u793e\u533a",level:2},{value:"\u8bb8\u53ef\u8bc1",id:"\u8bb8\u53ef\u8bc1",level:2}];function a(e){const n={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u8d21\u732e\u6307\u5357",children:"\u8d21\u732e\u6307\u5357"})}),"\n",(0,r.jsx)(n.p,{children:"\u611f\u8c22\u60a8\u5bf9 UPage \u9879\u76ee\u7684\u5173\u6ce8\uff01\u6211\u4eec\u975e\u5e38\u6b22\u8fce\u5404\u79cd\u5f62\u5f0f\u7684\u8d21\u732e\uff0c\u65e0\u8bba\u662f\u529f\u80fd\u5f00\u53d1\u3001bug \u4fee\u590d\u3001\u6587\u6863\u6539\u8fdb\u8fd8\u662f\u4f7f\u7528\u53cd\u9988\u3002\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u4e86\u89e3\u5982\u4f55\u53c2\u4e0e UPage \u7684\u5f00\u53d1\u548c\u8d21\u732e\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u76ee\u5f55",children:"\u76ee\u5f55"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/upage/contributing/code-of-conduct",children:"\u884c\u4e3a\u51c6\u5219"})," - \u53c2\u4e0e UPage \u9879\u76ee\u7684\u884c\u4e3a\u51c6\u5219"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/upage/contributing/ways-to-contribute",children:"\u8d21\u732e\u65b9\u5f0f"})," - \u5982\u4f55\u4e3a UPage \u9879\u76ee\u505a\u51fa\u8d21\u732e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/upage/contributing/development-setup",children:"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e"})," - \u5982\u4f55\u8bbe\u7f6e\u672c\u5730\u5f00\u53d1\u73af\u5883"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/upage/contributing/code-standards",children:"\u4ee3\u7801\u89c4\u8303"})," - \u4ee3\u7801\u98ce\u683c\u548c\u63d0\u4ea4\u89c4\u8303"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/upage/contributing/workflow",children:"\u5de5\u4f5c\u6d41\u7a0b"})," - \u5206\u652f\u7b56\u7565\u3001PR\u6d41\u7a0b\u548c\u7248\u672c\u53d1\u5e03"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u793e\u533a",children:"\u793e\u533a"}),"\n",(0,r.jsx)(n.p,{children:"\u52a0\u5165 UPage \u793e\u533a\uff0c\u4e0e\u5176\u4ed6\u8d21\u732e\u8005\u4ea4\u6d41\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/halo-dev/upage/discussions",children:"GitHub Discussions"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/halo-dev/upage/issues",children:"GitHub Issues"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u8bb8\u53ef\u8bc1",children:"\u8bb8\u53ef\u8bc1"}),"\n",(0,r.jsxs)(n.p,{children:["UPage \u91c7\u7528 ",(0,r.jsx)(n.a,{href:"https://github.com/halo-dev/upage/blob/main/LICENSE.txt",children:"\u57fa\u4e8e GPLv3 \u7684\u8865\u5145\u534f\u8bae\u8bb8\u53ef\u8bc1"}),"\u3002\u901a\u8fc7\u8d21\u732e\u4ee3\u7801\uff0c\u60a8\u540c\u610f\u60a8\u7684\u8d21\u732e\u5c06\u5728\u76f8\u540c\u7684\u8bb8\u53ef\u8bc1\u4e0b\u53d1\u5e03\u3002"]})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8784:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>o});var i=t(7378);const r={},s=i.createContext(r);function c(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/a5796a8c.b65dd1b0.js b/upage/assets/js/a5796a8c.b65dd1b0.js new file mode 100644 index 0000000..a71141d --- /dev/null +++ b/upage/assets/js/a5796a8c.b65dd1b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[185],{3542:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>a,frontMatter:()=>i,metadata:()=>l,toc:()=>r});const l=JSON.parse('{"id":"deployment/logto","title":"Logto \u8ba4\u8bc1\u96c6\u6210","description":"UPage \u9ed8\u8ba4\u4ec5\u652f\u6301\u5355\u4e00\u533f\u540d\u7528\u6237\u8bbf\u95ee\uff0c\u4f46\u60a8\u53ef\u4ee5\u901a\u8fc7\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1\uff0c\u652f\u6301\u591a\u7528\u6237\u767b\u5f55","source":"@site/content/deployment/logto.md","sourceDirName":"deployment","slug":"/deployment/logto","permalink":"/upage/deployment/logto","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/logto.md","tags":[],"version":"current","frontMatter":{"id":"logto","title":"Logto \u8ba4\u8bc1\u96c6\u6210"},"sidebar":"tutorialSidebar","previous":{"title":"\u6e90\u7801\u90e8\u7f72","permalink":"/upage/deployment/source"},"next":{"title":"\u5176\u4ed6\u914d\u7f6e","permalink":"/upage/deployment/others"}}');var t=o(6106),d=o(8784);const i={id:"logto",title:"Logto \u8ba4\u8bc1\u96c6\u6210"},c="Logto \u8ba4\u8bc1\u96c6\u6210",s={},r=[{value:"\u4ec0\u4e48\u662f Logto\uff1f",id:"\u4ec0\u4e48\u662f-logto",level:2},{value:"Logto \u63a5\u5165\u65b9\u5f0f",id:"logto-\u63a5\u5165\u65b9\u5f0f",level:2},{value:"\u4f7f\u7528\u5b98\u65b9\u6258\u7ba1\u670d\u52a1",id:"\u4f7f\u7528\u5b98\u65b9\u6258\u7ba1\u670d\u52a1",level:3},{value:"\u672c\u5730\u90e8\u7f72 Logto",id:"\u672c\u5730\u90e8\u7f72-logto",level:3},{value:"\u914d\u7f6e Logto",id:"\u914d\u7f6e-logto",level:2},{value:"\u914d\u7f6e UPage \u4e0e Logto \u96c6\u6210",id:"\u914d\u7f6e-upage-\u4e0e-logto-\u96c6\u6210",level:2},{value:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",level:3},{value:"\u914d\u7f6e\u8bf4\u660e",id:"\u914d\u7f6e\u8bf4\u660e",level:3},{value:"Logto \u4f7f\u7528\u6280\u5de7",id:"logto-\u4f7f\u7528\u6280\u5de7",level:2},{value:"\u81ea\u5b9a\u4e49\u767b\u5f55\u754c\u9762",id:"\u81ea\u5b9a\u4e49\u767b\u5f55\u754c\u9762",level:3},{value:"\u914d\u7f6e\u793e\u4ea4\u767b\u5f55",id:"\u914d\u7f6e\u793e\u4ea4\u767b\u5f55",level:3},{value:"\u914d\u7f6e\u591a\u56e0\u7d20\u8ba4\u8bc1",id:"\u914d\u7f6e\u591a\u56e0\u7d20\u8ba4\u8bc1",level:3},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"logto-\u8ba4\u8bc1\u96c6\u6210",children:"Logto \u8ba4\u8bc1\u96c6\u6210"})}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"UPage \u9ed8\u8ba4\u4ec5\u652f\u6301\u5355\u4e00\u533f\u540d\u7528\u6237\u8bbf\u95ee\uff0c\u4f46\u60a8\u53ef\u4ee5\u901a\u8fc7\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1\uff0c\u652f\u6301\u591a\u7528\u6237\u767b\u5f55"})}),"\n",(0,t.jsxs)(n.p,{children:["UPage \u652f\u6301\u4e0e ",(0,t.jsx)(n.a,{href:"https://logto.io/",children:"Logto"})," \u96c6\u6210\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7528\u6237\u8ba4\u8bc1\u4f53\u7cfb\u3002\u672c\u6587\u6863\u5c06\u6307\u5bfc\u60a8\u5982\u4f55\u914d\u7f6e UPage \u4e0e Logto \u7684\u96c6\u6210\u3002"]}),"\n",(0,t.jsx)(n.h2,{id:"\u4ec0\u4e48\u662f-logto",children:"\u4ec0\u4e48\u662f Logto\uff1f"}),"\n",(0,t.jsx)(n.p,{children:"Logto \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u8eab\u4efd\u9a8c\u8bc1\u548c\u6388\u6743\u89e3\u51b3\u65b9\u6848\uff0c\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u7528\u6237\u7ba1\u7406\u3001\u8eab\u4efd\u9a8c\u8bc1\u548c\u6388\u6743\u529f\u80fd\u3002\u901a\u8fc7\u4e0e Logto \u96c6\u6210\uff0cUPage \u53ef\u4ee5\u652f\u6301\u7528\u6237\u6ce8\u518c\u3001\u767b\u5f55\u3001\u5bc6\u7801\u91cd\u7f6e\u7b49\u529f\u80fd\uff0c\u540c\u65f6\u63d0\u4f9b\u57fa\u4e8e\u89d2\u8272\u7684\u8bbf\u95ee\u63a7\u5236\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"logto-\u63a5\u5165\u65b9\u5f0f",children:"Logto \u63a5\u5165\u65b9\u5f0f"}),"\n",(0,t.jsx)(n.p,{children:"Logto \u652f\u6301\u4e24\u79cd\u63a5\u5165\u65b9\u5f0f\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u9009\u62e9\u5408\u9002\u7684\u65b9\u5f0f\u3002"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"\u4f7f\u7528 Logto \u5b98\u65b9\u63d0\u4f9b\u7684\u6258\u7ba1\u670d\u52a1 - Logto Cloud\u3002"}),"\n",(0,t.jsx)(n.li,{children:"\u672c\u5730\u90e8\u7f72\u5f00\u6e90\u7248 Logto \u670d\u52a1\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"\u4e24\u79cd\u65b9\u5f0f\u4ec5\u5728\u63a5\u5165\u65b9\u5f0f\u4e0a\u6709\u6240\u533a\u522b\uff0c\u5728\u914d\u7f6e\u4e0a\u5b8c\u5168\u4e00\u81f4\u3002"})}),"\n",(0,t.jsx)(n.h3,{id:"\u4f7f\u7528\u5b98\u65b9\u6258\u7ba1\u670d\u52a1",children:"\u4f7f\u7528\u5b98\u65b9\u6258\u7ba1\u670d\u52a1"}),"\n",(0,t.jsxs)(n.p,{children:["\u8bbf\u95ee ",(0,t.jsx)(n.a,{href:"https://logto.io/",children:"Logto \u5b98\u65b9\u7f51\u7ad9"}),"\uff0c\u6ce8\u518c\u4e00\u4e2a\u8d26\u53f7\u5373\u53ef\u8fdb\u884c\u4e0b\u4e00\u6b65\u64cd\u4f5c\u3002"]}),"\n",(0,t.jsx)(n.h3,{id:"\u672c\u5730\u90e8\u7f72-logto",children:"\u672c\u5730\u90e8\u7f72 Logto"}),"\n",(0,t.jsxs)(n.p,{children:["UPage \u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5316\u7684 Logto \u90e8\u7f72\u914d\u7f6e\u3002\u5728 UPage \u9879\u76ee\u76ee\u5f55\u4e0b\uff0c\u60a8\u53ef\u4ee5\u627e\u5230 ",(0,t.jsx)(n.code,{children:"logto/docker-compose.yaml"})," \u6587\u4ef6\u4ee5\u53ca ",(0,t.jsx)(n.code,{children:".env"})," \u6587\u4ef6\u3002"]}),"\n",(0,t.jsx)(n.p,{children:"\u5982\u679c\u662f\u5f00\u53d1\u73af\u5883\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ./logto\ndocker-compose up -d\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u5982\u679c\u662f\u751f\u4ea7\u73af\u5883\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/docker-compose.yaml -o ~/upage/logto/docker-compose.yaml\ncurl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/.env -o ~/upage/logto/.env\ncd ~/upage/logto\ndocker-compose up -d\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u8fd9\u5c06\u542f\u52a8 Logto \u670d\u52a1\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u4ee5\u901a\u8fc7 ",(0,t.jsx)(n.code,{children:"http://localhost:3002"})," \u8bbf\u95ee Logto \u7ba1\u7406\u63a7\u5236\u53f0\u3002"]}),"\n",(0,t.jsx)(n.admonition,{type:"caution",children:(0,t.jsxs)(n.p,{children:["\u5728\u751f\u4ea7\u73af\u5883\u90e8\u7f72\u65f6\uff0c\u8bf7\u52a1\u5fc5\u4fee\u6539 ",(0,t.jsx)(n.code,{children:".env"})," \u6587\u4ef6\u4e2d\u7684 ",(0,t.jsx)(n.code,{children:"LOGTO_ENDPOINT"})," \u3001 ",(0,t.jsx)(n.code,{children:"LOGTO_ADMIN_ENDPOINT"})," \u4ee5\u53ca ",(0,t.jsx)(n.code,{children:"LOGTO_POSTGRES_PASSWORD"})," \u914d\u7f6e\u3002"]})}),"\n",(0,t.jsx)(n.h2,{id:"\u914d\u7f6e-logto",children:"\u914d\u7f6e Logto"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"\u8bbf\u95ee Logto \u7ba1\u7406\u63a7\u5236\u53f0\uff0c"}),"\n",(0,t.jsxs)(n.li,{children:["\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5e94\u7528\u7a0b\u5e8f\uff1a","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u5e94\u7528\u7c7b\u578b\uff1a\u4f20\u7edf\u7f51\u9875\u5e94\u7528"}),"\n",(0,t.jsx)(n.li,{children:"\u5e94\u7528\u540d\u79f0\uff1aUPage"}),"\n",(0,t.jsxs)(n.li,{children:["\u91cd\u5b9a\u5411 URIs\uff1a",(0,t.jsx)(n.code,{children:"http://${UPAGE_URL}/api/auth/callback"})]}),"\n",(0,t.jsxs)(n.li,{children:["\u9000\u51fa\u767b\u5f55\u540e\u91cd\u5b9a\u5411 URIs\uff1a",(0,t.jsx)(n.code,{children:"http://${UPAGE_URL}"})]}),"\n",(0,t.jsxs)(n.li,{children:["CORS \u5141\u8bb8\u7684\u6765\u6e90\uff1a",(0,t.jsx)(n.code,{children:"http://${UPAGE_URL}"})]}),"\n",(0,t.jsx)(n.li,{children:"\u5176\u4ed6\u914d\u7f6e\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u586b\u5199"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"\u8bb0\u5f55\u5e94\u7528\u7a0b\u5e8f\u7684 ID \u548c\u5bc6\u94a5\uff0c\u8fd9\u4e9b\u5c06\u7528\u4e8e\u914d\u7f6e UPage"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u914d\u7f6e-upage-\u4e0e-logto-\u96c6\u6210",children:"\u914d\u7f6e UPage \u4e0e Logto \u96c6\u6210"}),"\n",(0,t.jsx)(n.h3,{id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",children:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e"}),"\n",(0,t.jsx)(n.p,{children:"\u5728 UPage \u7684\u73af\u5883\u53d8\u91cf\u4e2d\u914d\u7f6e Logto \u76f8\u5173\u53c2\u6570\uff1a"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# \u542f\u7528 Logto \u8ba4\u8bc1\nLOGTO_ENABLE=true\n# Logto LOGTO_ENDPOINT \u5730\u5740\nLOGTO_ENDPOINT=http://localhost:3001\n# Logto \u5e94\u7528\u7a0b\u5e8f ID\nLOGTO_APP_ID=your-app-id\n# Logto \u5e94\u7528\u7a0b\u5e8f\u5bc6\u94a5\nLOGTO_APP_SECRET=your-app-secret\n# Logto \u7528\u4e8e\u52a0\u5bc6 cookie \u7684\u5bc6\u94a5\uff0c\u968f\u673a\u751f\u6210\u4e00\u4e2a 32 \u4f4d\u5bc6\u94a5\u5373\u53ef\nLOGTO_COOKIE_SECRET=your-cookie-secret\n# \u586b\u5199 UPage \u5730\u5740\uff0c\u6839\u636e\u5b9e\u9645\u90e8\u7f72\u5730\u5740\u4fee\u6539\nLOGTO_BASE_URL=http://localhost:3000\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u5982\u679c\u4f7f\u7528 Docker compose \u90e8\u7f72 UPage\uff0c\u5728 ",(0,t.jsx)(n.code,{children:"docker-compose.yml"})," \u6587\u4ef6\u4e2d\u6dfb\u52a0\u8fd9\u4e9b\u73af\u5883\u53d8\u91cf\uff1a"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"services:\n upage:\n # ... \u5176\u4ed6\u914d\u7f6e\n environment:\n # ... \u5176\u4ed6\u73af\u5883\u53d8\u91cf\n - LOGTO_ENABLE=true\n - LOGTO_ENDPOINT=http://logto:3001\n - LOGTO_APP_ID=your-app-id\n - LOGTO_APP_SECRET=your-app-secret\n - LOGTO_COOKIE_SECRET=your-cookie-secret\n - LOGTO_BASE_URL=http://localhost:3000\n"})}),"\n",(0,t.jsx)(n.h3,{id:"\u914d\u7f6e\u8bf4\u660e",children:"\u914d\u7f6e\u8bf4\u660e"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,t.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,t.jsx)(n.th,{children:"\u793a\u4f8b"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_ENABLE"})}),(0,t.jsx)(n.td,{children:"\u662f\u5426\u542f\u7528 Logto \u8ba4\u8bc1"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_ENDPOINT"})}),(0,t.jsx)(n.td,{children:"Logto \u670d\u52a1\u7684 URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"http://localhost:3001"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_APP_ID"})}),(0,t.jsx)(n.td,{children:"Logto \u5e94\u7528\u7a0b\u5e8f ID"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"your-app-id"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_APP_SECRET"})}),(0,t.jsx)(n.td,{children:"Logto \u5e94\u7528\u7a0b\u5e8f\u5bc6\u94a5"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"your-app-secret"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_COOKIE_SECRET"})}),(0,t.jsx)(n.td,{children:"\u7528\u4e8e\u52a0\u5bc6 cookie \u7684\u5bc6\u94a5"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"00bf44b6ceaa648eca6ad172f0cd8c8c"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"LOGTO_BASE_URL"})}),(0,t.jsx)(n.td,{children:"UPage \u5730\u5740"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"http://localhost:3000"})})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"logto-\u4f7f\u7528\u6280\u5de7",children:"Logto \u4f7f\u7528\u6280\u5de7"}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsx)(n.p,{children:"UPage \u96c6\u6210 Logto \u6b65\u9aa4\u5df2\u5b8c\u6210\uff0c\u4ee5\u4e0b\u5185\u5bb9\u662f Logto \u7684\u7279\u6b8a\u4f7f\u7528\u6280\u5de7\uff0c\u4f9b\u6269\u5c55\u9605\u8bfb\uff0c\u5982\u65e0\u5b9a\u5236\u5316\u9700\u6c42\u53ef\u5ffd\u7565\u3002"})}),"\n",(0,t.jsx)(n.h3,{id:"\u81ea\u5b9a\u4e49\u767b\u5f55\u754c\u9762",children:"\u81ea\u5b9a\u4e49\u767b\u5f55\u754c\u9762"}),"\n",(0,t.jsx)(n.p,{children:"Logto \u63d0\u4f9b\u4e86\u81ea\u5b9a\u4e49\u767b\u5f55\u754c\u9762\u7684\u529f\u80fd\uff1a"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:'\u5728 Logto \u7ba1\u7406\u63a7\u5236\u53f0\u4e2d\uff0c\u5bfc\u822a\u5230"\u5916\u89c2"'}),"\n",(0,t.jsx)(n.li,{children:"\u81ea\u5b9a\u4e49\u767b\u5f55\u9875\u9762\u7684\u6837\u5f0f\u3001\u989c\u8272\u548c\u54c1\u724c\u5143\u7d20"}),"\n",(0,t.jsx)(n.li,{children:"\u9884\u89c8\u5e76\u4fdd\u5b58\u66f4\u6539"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"\u914d\u7f6e\u793e\u4ea4\u767b\u5f55",children:"\u914d\u7f6e\u793e\u4ea4\u767b\u5f55"}),"\n",(0,t.jsx)(n.p,{children:"Logto \u652f\u6301\u591a\u79cd\u793e\u4ea4\u767b\u5f55\u65b9\u5f0f\uff1a"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:'\u5728 Logto \u7ba1\u7406\u63a7\u5236\u53f0\u4e2d\uff0c\u5bfc\u822a\u5230"\u8fde\u63a5\u5668"'}),"\n",(0,t.jsx)(n.li,{children:"\u6dfb\u52a0\u793e\u4ea4\u767b\u5f55\u8fde\u63a5\u5668\uff08\u5982 Google\u3001GitHub\u3001\u5fae\u4fe1\u7b49\uff09"}),"\n",(0,t.jsx)(n.li,{children:"\u6309\u7167\u5411\u5bfc\u5b8c\u6210\u914d\u7f6e"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"\u914d\u7f6e\u591a\u56e0\u7d20\u8ba4\u8bc1",children:"\u914d\u7f6e\u591a\u56e0\u7d20\u8ba4\u8bc1"}),"\n",(0,t.jsx)(n.p,{children:"\u542f\u7528\u591a\u56e0\u7d20\u8ba4\u8bc1\u4ee5\u63d0\u9ad8\u5b89\u5168\u6027\uff1a"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:'\u5728 Logto \u7ba1\u7406\u63a7\u5236\u53f0\u4e2d\uff0c\u5bfc\u822a\u5230"\u5b89\u5168"'}),"\n",(0,t.jsx)(n.li,{children:"\u542f\u7528\u591a\u56e0\u7d20\u8ba4\u8bc1"}),"\n",(0,t.jsx)(n.li,{children:"\u914d\u7f6e\u591a\u56e0\u7d20\u8ba4\u8bc1\u65b9\u5f0f\uff08\u5982 TOTP\u3001\u77ed\u4fe1\u7b49\uff09"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\u9605\u8bfb",(0,t.jsx)(n.a,{href:"../user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,t.jsxs)(n.li,{children:["\u63a2\u7d22",(0,t.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8784:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>c});var l=o(7378);const t={},d=l.createContext(t);function i(e){const n=l.useContext(d);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),l.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/a7bd4aaa.81f5341b.js b/upage/assets/js/a7bd4aaa.81f5341b.js new file mode 100644 index 0000000..b98adb2 --- /dev/null +++ b/upage/assets/js/a7bd4aaa.81f5341b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[98],{6776:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(7378);var r=s(496);function o(n,e){return`docs-${n}-${e}`}var t=s(5647),c=s(8041),i=s(2733),u=s(6106);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function d(n){const{version:e,route:s}=n;return(0,u.jsx)(r.e3,{className:e.className,children:(0,u.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function l(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(d,{...n})]})}}}]); \ No newline at end of file diff --git a/upage/assets/js/a94703ab.9e1bcbc8.js b/upage/assets/js/a94703ab.9e1bcbc8.js new file mode 100644 index 0000000..0ee0897 --- /dev/null +++ b/upage/assets/js/a94703ab.9e1bcbc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[48],{845:(e,t,n)=>{n.d(t,{A:()=>l});n(7378);var a=n(3372),i=n(929),o=n(3873),s=n(6106);function l({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(o.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(i.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},3464:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ce});var a=n(7378),i=n(3372),o=n(496),s=n(2811),l=n(379),c=n(7703),r=n(929),d=n(1460),u=n(8522);const m={backToTopButton:"backToTopButton_nMBz",backToTopButtonShow:"backToTopButtonShow_hmls"};var b=n(6106);function h(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:o,cancelScroll:s}=(0,d.gk)();return(0,d.Mq)(({scrollY:t},a)=>{const o=a?.scrollY;o&&(i.current?i.current=!1:t>=o?(s(),n(!1)):t<e?n(!1):t+window.innerHeight<document.documentElement.scrollHeight&&n(!0))}),(0,u.$)(e=>{e.location.hash&&(i.current=!0,n(!1))}),{shown:t,scrollToTop:()=>o(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,r.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,i.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(4385),x=n(505),f=n(5185),j=n(5794),g=n(9831);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const _="collapseSidebarButton_PNlv",C="collapseSidebarButtonIcon_nTam";function k({onClick:e}){return(0,b.jsx)("button",{type:"button",title:(0,r.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,r.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,i.A)("button button--secondary button--outline",_),onClick:e,children:(0,b.jsx)(v,{className:C})})}var A=n(9101),S=n(9328);const T=Symbol("EmptyContext"),N=a.createContext(T);function I({children:e}){const[t,n]=(0,a.useState)(null),i=(0,a.useMemo)(()=>({expandedItem:t,setExpandedItem:n}),[t]);return(0,b.jsx)(N.Provider,{value:i,children:e})}var y=n(5074),w=n(1709),B=n(9205),L=n(3724),E=n(8715),M=n(2305);const P="menuExternalLink_IcUU",H="linkLabel_fmgc";function G({label:e}){return(0,b.jsx)("span",{title:e,className:H,children:e})}function R({item:e,onItemClick:t,activePath:n,level:a,index:o,...c}){const{href:r,label:d,className:u,autoAddBaseUrl:m}=e,h=(0,l.w8)(e,n),p=(0,E.A)(r);return(0,b.jsx)("li",{className:(0,i.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(a),"menu__list-item",u),children:(0,b.jsxs)(B.A,{className:(0,i.A)("menu__link",!p&&P,{"menu__link--active":h}),autoAddBaseUrl:m,"aria-current":h?"page":void 0,to:r,...p&&{onClick:t?()=>t(e):void 0},...c,children:[(0,b.jsx)(G,{label:d}),!p&&(0,b.jsx)(M.A,{})]})},d)}const W="categoryLink__DnE",D="categoryLinkLabel_rUKM";function U({collapsed:e,categoryLabel:t,onClick:n}){return(0,b.jsx)("button",{"aria-label":e?(0,r.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:t}):(0,r.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:t}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:n})}function F({label:e}){return(0,b.jsx)("span",{title:e,className:D,children:e})}function V(e){return 0===(0,l.Y)(e.item.items,e.activePath).length?(0,b.jsx)(Y,{...e}):(0,b.jsx)(z,{...e})}function Y({item:e,...t}){if("string"!=typeof e.href)return null;const{type:n,collapsed:a,collapsible:i,items:o,linkUnlisted:s,...l}=e,c={type:"link",...l};return(0,b.jsx)(R,{item:c,...t})}function z({item:e,onItemClick:t,activePath:n,level:o,index:c,...r}){const{items:d,label:u,collapsible:m,className:h,href:p}=e,{docs:{sidebar:{autoCollapseCategories:x}}}=(0,j.p)(),f=function(e){const t=(0,L.A)();return(0,a.useMemo)(()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0,[e,t])}(e),g=(0,l.w8)(e,n),v=(0,w.ys)(p,n),{collapsed:_,setCollapsed:C}=(0,y.u)({initialState:()=>!!m&&(!g&&e.collapsed)}),{expandedItem:k,setExpandedItem:A}=function(){const e=(0,a.useContext)(N);if(e===T)throw new S.dV("DocSidebarItemsExpandedStateProvider");return e}(),I=(e=!_)=>{A(e?null:c),C(e)};!function({isActive:e,collapsed:t,updateCollapsed:n,activePath:i}){const o=(0,S.ZC)(e),s=(0,S.ZC)(i);(0,a.useEffect)(()=>{(e&&!o||e&&o&&i!==s)&&t&&n(!1)},[e,o,t,n,i,s])}({isActive:g,collapsed:_,updateCollapsed:I,activePath:n}),(0,a.useEffect)(()=>{m&&null!=k&&k!==c&&x&&C(!0)},[m,k,c,C,x]);return(0,b.jsxs)("li",{className:(0,i.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(o),"menu__list-item",{"menu__list-item--collapsed":_},h),children:[(0,b.jsxs)("div",{className:(0,i.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(B.A,{className:(0,i.A)(W,"menu__link",{"menu__link--sublist":m,"menu__link--sublist-caret":!p&&m,"menu__link--active":g}),onClick:n=>{t?.(e),m&&(p?v?(n.preventDefault(),I()):I(!1):(n.preventDefault(),I()))},"aria-current":v?"page":void 0,role:m&&!p?"button":void 0,"aria-expanded":m&&!p?!_:void 0,href:m?f??"#":f,...r,children:(0,b.jsx)(F,{label:u})}),p&&m&&(0,b.jsx)(U,{collapsed:_,categoryLabel:u,onClick:e=>{e.preventDefault(),I()}})]}),(0,b.jsx)(y.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:_,children:(0,b.jsx)(Z,{items:d,tabIndex:_?-1:0,onItemClick:t,activePath:n,level:o+1})})]})}const O="menuHtmlItem_H9EF";function X({item:e,level:t,index:n}){const{value:a,defaultStyle:o,className:l}=e;return(0,b.jsx)("li",{className:(0,i.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(t),o&&[O,"menu__list-item"],l),dangerouslySetInnerHTML:{__html:a}},n)}function q({item:e,...t}){switch(e.type){case"category":return(0,b.jsx)(V,{item:e,...t});case"html":return(0,b.jsx)(X,{item:e,...t});default:return(0,b.jsx)(R,{item:e,...t})}}function K({items:e,...t}){const n=(0,l.Y)(e,t.activePath);return(0,b.jsx)(I,{children:n.map((e,n)=>(0,b.jsx)(q,{item:e,index:n,...t},n))})}const Z=(0,a.memo)(K),J="menu_EjuG",$="menuWithAnnouncementBar_byXC";function Q({path:e,sidebar:t,className:n}){const o=function(){const{isActive:e}=(0,A.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)(({scrollY:t})=>{e&&n(0===t)},[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,r.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,i.A)("menu thin-scrollbar",J,o&&$,n),children:(0,b.jsx)("ul",{className:(0,i.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(Z,{items:t,activePath:e,level:1})})})}const ee="sidebar_xcav",te="sidebarWithHideableNavbar_XurE",ne="sidebarHidden_GYeC",ae="sidebarLogo_Fyyx";function ie({path:e,sidebar:t,onCollapse:n,isHidden:a}){const{navbar:{hideOnScroll:o},docs:{sidebar:{hideable:s}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,i.A)(ee,o&&te,a&&ne),children:[o&&(0,b.jsx)(g.A,{tabIndex:-1,className:ae}),(0,b.jsx)(Q,{path:e,sidebar:t}),s&&(0,b.jsx)(k,{onClick:n})]})}const oe=a.memo(ie);var se=n(4964),le=n(2961);const ce=({sidebar:e,path:t})=>{const n=(0,le.M)();return(0,b.jsx)("ul",{className:(0,i.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(Z,{items:e,activePath:t,onItemClick:e=>{"category"===e.type&&e.href&&n.toggle(),"link"===e.type&&n.toggle()},level:1})})};function re(e){return(0,b.jsx)(se.GX,{component:ce,props:e})}const de=a.memo(re);function ue(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(oe,{...e}),a&&(0,b.jsx)(de,{...e})]})}const me={expandButton:"expandButton_TkcU",expandButtonIcon:"expandButtonIcon_xmcp"};function be({toggleSidebar:e}){return(0,b.jsx)("div",{className:me.expandButton,title:(0,r.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,r.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:e,onClick:e,children:(0,b.jsx)(v,{className:me.expandButtonIcon})})}const he={docSidebarContainer:"docSidebarContainer_Yovm",docSidebarContainerHidden:"docSidebarContainerHidden_X9Jj",sidebarViewport:"sidebarViewport_e1um"};function pe({children:e}){const t=(0,c.t)();return(0,b.jsx)(a.Fragment,{children:e},t?.name??"noSidebar")}function xe({sidebar:e,hiddenSidebarContainer:t,setHiddenSidebarContainer:n}){const{pathname:o}=(0,x.zy)(),[l,c]=(0,a.useState)(!1),r=(0,a.useCallback)(()=>{l&&c(!1),!l&&(0,p.O)()&&c(!0),n(e=>!e)},[n,l]);return(0,b.jsx)("aside",{className:(0,i.A)(s.G.docs.docSidebarContainer,he.docSidebarContainer,t&&he.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(he.docSidebarContainer)&&t&&c(!0)},children:(0,b.jsx)(pe,{children:(0,b.jsxs)("div",{className:(0,i.A)(he.sidebarViewport,l&&he.sidebarViewportHidden),children:[(0,b.jsx)(ue,{sidebar:e,path:o,onCollapse:r,isHidden:l}),l&&(0,b.jsx)(be,{toggleSidebar:r})]})})})}const fe={docMainContainer:"docMainContainer_WqOS",docMainContainerEnhanced:"docMainContainerEnhanced_OVMN",docItemWrapperEnhanced:"docItemWrapperEnhanced_oz8P"};function je({hiddenSidebarContainer:e,children:t}){const n=(0,c.t)();return(0,b.jsx)("main",{className:(0,i.A)(fe.docMainContainer,(e||!n)&&fe.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,i.A)("container padding-top--md padding-bottom--lg",fe.docItemWrapper,e&&fe.docItemWrapperEnhanced),children:t})})}const ge={docRoot:"docRoot_iPwj",docsWrapper:"docsWrapper_G3eT"};function ve({children:e}){const t=(0,c.t)(),[n,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:ge.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:ge.docRoot,children:[t&&(0,b.jsx)(xe,{sidebar:t.items,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}),(0,b.jsx)(je,{hiddenSidebarContainer:n,children:e})]})]})}var _e=n(845);function Ce(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(_e.A,{});const{docElement:n,sidebarName:a,sidebarItems:r}=t;return(0,b.jsx)(o.e3,{className:(0,i.A)(s.G.page.docsDocPage),children:(0,b.jsx)(c.V,{name:a,items:r,children:(0,b.jsx)(ve,{children:n})})})}}}]); \ No newline at end of file diff --git a/upage/assets/js/aba21aa0.4fc1e48c.js b/upage/assets/js/aba21aa0.4fc1e48c.js new file mode 100644 index 0000000..bcaf2ec --- /dev/null +++ b/upage/assets/js/aba21aa0.4fc1e48c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/upage/assets/js/bb48f956.ec46aa8f.js b/upage/assets/js/bb48f956.ec46aa8f.js new file mode 100644 index 0000000..54f1934 --- /dev/null +++ b/upage/assets/js/bb48f956.ec46aa8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[77],{4346:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>t,contentTitle:()=>i,default:()=>a,frontMatter:()=>c,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"deployment/docker","title":"Docker \u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker \u90e8\u7f72 UPage\u3002","source":"@site/content/deployment/docker.md","sourceDirName":"deployment","slug":"/deployment/docker","permalink":"/upage/deployment/docker","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/docker.md","tags":[],"version":"current","frontMatter":{"id":"docker","title":"Docker \u90e8\u7f72"},"sidebar":"tutorialSidebar","previous":{"title":"\u90e8\u7f72\u6307\u5357","permalink":"/upage/deployment-guide"},"next":{"title":"Docker Compose \u90e8\u7f72","permalink":"/upage/deployment/docker-compose"}}');var l=d(6106),s=d(8784);const c={id:"docker",title:"Docker \u90e8\u7f72"},i="Docker \u90e8\u7f72",t={},h=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u5b89\u88c5 Docker",id:"\u5b89\u88c5-docker",level:3},{value:"\u4f7f\u7528 Docker \u90e8\u7f72",id:"\u4f7f\u7528-docker-\u90e8\u7f72",level:2},{value:"\u62c9\u53d6\u955c\u50cf",id:"\u62c9\u53d6\u955c\u50cf",level:3},{value:"\u51c6\u5907\u76ee\u5f55",id:"\u51c6\u5907\u76ee\u5f55",level:3},{value:"\u542f\u52a8\u5bb9\u5668",id:"\u542f\u52a8\u5bb9\u5668",level:3},{value:"\u5bb9\u5668\u7ba1\u7406",id:"\u5bb9\u5668\u7ba1\u7406",level:3},{value:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",level:2},{value:"\u57fa\u7840\u914d\u7f6e",id:"\u57fa\u7840\u914d\u7f6e",level:3},{value:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",level:3},{value:"\u5927\u6a21\u578b\u914d\u7f6e",id:"\u5927\u6a21\u578b\u914d\u7f6e",level:3},{value:"\u5347\u7ea7 UPage",id:"\u5347\u7ea7-upage",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"docker-\u90e8\u7f72",children:"Docker \u90e8\u7f72"})}),"\n",(0,l.jsx)(n.p,{children:"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker \u90e8\u7f72 UPage\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Docker \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker 20.10.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,l.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u5185\u5b58"}),"\n",(0,l.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,l.jsx)(n.li,{children:"\u4e92\u8054\u7f51\u8fde\u63a5\uff08\u7528\u4e8e\u62c9\u53d6 Docker \u955c\u50cf\u548c\u8bbf\u95ee\u5927\u6a21\u578b API\uff09"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"\u5b89\u88c5-docker",children:"\u5b89\u88c5 Docker"}),"\n",(0,l.jsxs)(n.p,{children:["\u5982\u679c\u60a8\u7684\u7cfb\u7edf\u672a\u5b89\u88c5 Docker\uff0c\u8bf7\u53c2\u8003",(0,l.jsx)(n.a,{href:"https://docs.docker.com/engine/install/",children:"Docker \u5b98\u65b9\u6587\u6863"}),"\u8fdb\u884c\u5b89\u88c5\u3002"]}),"\n",(0,l.jsx)(n.h2,{id:"\u4f7f\u7528-docker-\u90e8\u7f72",children:"\u4f7f\u7528 Docker \u90e8\u7f72"}),"\n",(0,l.jsx)(n.h3,{id:"\u62c9\u53d6\u955c\u50cf",children:"\u62c9\u53d6\u955c\u50cf"}),"\n",(0,l.jsx)(n.p,{children:"\u9996\u5148\uff0c\u62c9\u53d6 UPage \u7684\u6700\u65b0 Docker \u955c\u50cf\uff1a"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"docker pull halohub/upage:latest\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u60a8\u4e5f\u53ef\u4ee5\u4f7f\u7528\u7279\u5b9a\u7248\u672c\u7684\u955c\u50cf\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"docker pull halohub/upage:1.0.0\n"})}),"\n",(0,l.jsx)(n.h3,{id:"\u51c6\u5907\u76ee\u5f55",children:"\u51c6\u5907\u76ee\u5f55"}),"\n",(0,l.jsxs)(n.p,{children:["\u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\u7528\u4e8e\u6301\u4e45\u5316\u6570\u636e\uff0c\u4f8b\u5982 ",(0,l.jsx)(n.code,{children:"~/upage"}),"\uff1a"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"mkdir -p ~/upage/data\nmkdir -p ~/upage/logs\nmkdir -p ~/upage/storage\n"})}),"\n",(0,l.jsx)(n.admonition,{type:"tip",children:(0,l.jsx)(n.p,{children:"UPage \u6240\u6709\u6570\u636e\u4e0e\u65e5\u5fd7\u5747\u5b58\u50a8\u5728\u6b64\u76ee\u5f55\u4e2d\uff0c\u8bf7\u59a5\u5584\u4fdd\u7ba1\u3002"})}),"\n",(0,l.jsx)(n.h3,{id:"\u542f\u52a8\u5bb9\u5668",children:"\u542f\u52a8\u5bb9\u5668"}),"\n",(0,l.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8 UPage \u5bb9\u5668\uff1a"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"docker run -d \\\n --name upage \\\n --restart unless-stopped \\\n -p 3000:3000 \\\n -e LLM_PROVIDER=OpenAILike \\\n -e PROVIDER_BASE_URL=your-openai-like-api-base-url \\\n -e PROVIDER_API_KEY=your-openai-like-api-key \\\n -e LLM_DEFAULT_MODEL=your-default-model \\\n -e LLM_MINOR_MODEL=your-minor-model \\\n -v ~/upage/data:/app/data \\\n -v ~/upage/logs:/app/logs \\\n -v ~/upage/storage:/app/storage \\\n halohub/upage:latest\n"})}),"\n",(0,l.jsx)(n.h3,{id:"\u5bb9\u5668\u7ba1\u7406",children:"\u5bb9\u5668\u7ba1\u7406"}),"\n",(0,l.jsx)(n.p,{children:"\u5e38\u7528\u7684\u5bb9\u5668\u7ba1\u7406\u547d\u4ee4\uff1a"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# \u505c\u6b62\u5bb9\u5668\ndocker stop upage\n\n# \u542f\u52a8\u5bb9\u5668\ndocker start upage\n\n# \u91cd\u542f\u5bb9\u5668\ndocker restart upage\n\n# \u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\ndocker logs upage\n\n# \u67e5\u770b\u5bb9\u5668\u72b6\u6001\ndocker ps -a | grep upage\n"})}),"\n",(0,l.jsx)(n.h2,{id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",children:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e"}),"\n",(0,l.jsxs)(n.p,{children:["UPage \u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u6bd4\u8f83\u91cd\u8981\u7684\u73af\u5883\u53d8\u91cf\uff0c\u5747\u53ef\u4ee5\u4f7f\u7528 ",(0,l.jsx)(n.code,{children:"-e"})," \u53c2\u6570\u5728\u542f\u52a8\u5bb9\u5668\u65f6\u8bbe\u7f6e\uff1a"]}),"\n",(0,l.jsx)(n.admonition,{type:"tip",children:(0,l.jsxs)(n.p,{children:["\u5b8c\u6574\u7684\u914d\u7f6e\u8bf7\u53c2\u8003",(0,l.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u3002"]})}),"\n",(0,l.jsx)(n.h3,{id:"\u57fa\u7840\u914d\u7f6e",children:"\u57fa\u7840\u914d\u7f6e"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,l.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,l.jsx)(n.th,{children:"\u9ed8\u8ba4\u503c"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"PORT"})}),(0,l.jsx)(n.td,{children:"\u670d\u52a1\u76d1\u542c\u7aef\u53e3"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"3000"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"NODE_ENV"})}),(0,l.jsx)(n.td,{children:"Node.js \u73af\u5883"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"production"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"OPERATING_ENV"})}),(0,l.jsx)(n.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"production"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"LOG_LEVEL"})}),(0,l.jsx)(n.td,{children:"\u65e5\u5fd7\u7ea7\u522b"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"debug"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"USAGE_LOG_FILE"})}),(0,l.jsx)(n.td,{children:"\u662f\u5426\u5f00\u542f\u6587\u4ef6\u65e5\u5fd7"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"true"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"MAX_UPLOAD_SIZE_MB"})}),(0,l.jsx)(n.td,{children:"\u9644\u4ef6\u4e0a\u4f20\u7684\u6700\u5927\u5927\u5c0f (MB)"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"5"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"STORAGE_DIR"})}),(0,l.jsx)(n.td,{children:"\u8d44\u6e90\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"/app/storage"})})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",children:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e"}),"\n",(0,l.jsx)(n.p,{children:"\u6839\u636e\u60a8\u9009\u62e9\u7684 AI \u63d0\u4f9b\u5546\uff0c\u60a8\u8fd8\u9700\u8981\u914d\u7f6e\u76f8\u5e94\u7684 API \u5bc6\u94a5\u548c\u57fa\u7840 URL\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,l.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,l.jsx)(n.th,{children:"\u5fc5\u586b"}),(0,l.jsx)(n.th,{children:"\u793a\u4f8b"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"LLM_PROVIDER"})}),(0,l.jsx)(n.td,{children:"\u9ed8\u8ba4 LLM \u63d0\u4f9b\u5546"}),(0,l.jsx)(n.td,{children:"\u662f"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"OpenAILike"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"PROVIDER_BASE_URL"})}),(0,l.jsx)(n.td,{children:"OpenAI \u517c\u5bb9 API \u57fa\u7840 URL"}),(0,l.jsx)(n.td,{children:"\u662f"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"https://your-api-base-url"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"PROVIDER_API_KEY"})}),(0,l.jsx)(n.td,{children:"OpenAI \u517c\u5bb9 API \u5bc6\u94a5"}),(0,l.jsx)(n.td,{children:"\u662f"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"your-openai-like-api-key"})})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"\u5927\u6a21\u578b\u914d\u7f6e",children:"\u5927\u6a21\u578b\u914d\u7f6e"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,l.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,l.jsx)(n.th,{children:"\u5fc5\u586b"}),(0,l.jsx)(n.th,{children:"\u793a\u4f8b"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"LLM_DEFAULT_MODEL"})}),(0,l.jsx)(n.td,{children:"\u751f\u6210\u9875\u9762\u6240\u4f7f\u7528\u7684\u4e3b\u8981\u6a21\u578b"}),(0,l.jsx)(n.td,{children:"\u662f"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"gpt-4-turbo"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"LLM_MINOR_MODEL"})}),(0,l.jsx)(n.td,{children:"\u8f85\u52a9\u9875\u9762\u751f\u6210\u6240\u4f7f\u7528\u7684\u6b21\u7ea7\u6a21\u578b"}),(0,l.jsx)(n.td,{children:"\u662f"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"gpt-3.5-turbo"})})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"\u5347\u7ea7-upage",children:"\u5347\u7ea7 UPage"}),"\n",(0,l.jsx)(n.p,{children:"\u5f53\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u60a8\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u5347\u7ea7 UPage\uff1a"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# \u62c9\u53d6\u6700\u65b0\u955c\u50cf\ndocker pull halohub/upage:latest\n\n# \u505c\u6b62\u5e76\u5220\u9664\u65e7\u5bb9\u5668\ndocker stop upage\ndocker rm upage\n\n# \u4f7f\u7528\u65b0\u955c\u50cf\u542f\u52a8\u5bb9\u5668\uff08\u4f7f\u7528\u4e0e\u4e4b\u524d\u76f8\u540c\u7684\u73af\u5883\u53d8\u91cf\u548c\u6302\u8f7d\uff09\ndocker run -d \\\n --name upage \\\n --restart unless-stopped \\\n -p 3000:3000 \\\n -e LLM_PROVIDER=OpenAILike \\\n -e PROVIDER_BASE_URL=your-openai-like-api-base-url \\\n -e PROVIDER_API_KEY=your-openai-like-api-key \\\n -e LLM_DEFAULT_MODEL=your-default-model \\\n -e LLM_MINOR_MODEL=your-minor-model \\\n -v ~/upage/data:/app/data \\\n -v ~/upage/logs:/app/logs \\\n -v ~/upage/storage:/app/storage \\\n halohub/upage:latest\n"})}),"\n",(0,l.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u9605\u8bfb",(0,l.jsx)(n.a,{href:"../user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,l.jsxs)(n.li,{children:["\u63a2\u7d22",(0,l.jsx)(n.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n",(0,l.jsxs)(n.li,{children:["\u63a2\u7d22",(0,l.jsx)(n.a,{href:"./logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u4e86\u89e3\u5982\u4f55\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8784:(e,n,d)=>{d.d(n,{R:()=>c,x:()=>i});var r=d(7378);const l={},s=r.createContext(l);function c(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:c(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/cc946c3e.9152aa25.js b/upage/assets/js/cc946c3e.9152aa25.js new file mode 100644 index 0000000..0114f05 --- /dev/null +++ b/upage/assets/js/cc946c3e.9152aa25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[683],{5580:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>o});const l=JSON.parse('{"id":"quick-start","title":"\u5feb\u901f\u5f00\u59cb","description":"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u5feb\u901f\u90e8\u7f72\u548c\u542f\u52a8 UPage\uff0c\u8ba9\u60a8\u5728\u51e0\u5206\u949f\u5185\u4f53\u9a8c\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002","source":"@site/content/quick-start.md","sourceDirName":".","slug":"/quick-start","permalink":"/upage/quick-start","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/quick-start.md","tags":[],"version":"current","frontMatter":{"id":"quick-start","title":"\u5feb\u901f\u5f00\u59cb"},"sidebar":"tutorialSidebar","previous":{"title":"\u9996\u9875","permalink":"/upage/"},"next":{"title":"\u90e8\u7f72\u6307\u5357","permalink":"/upage/deployment-guide"}}');var a=i(6106),r=i(8784);const s={id:"quick-start",title:"\u5feb\u901f\u5f00\u59cb"},d="\u5feb\u901f\u5f00\u59cb",c={},o=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u4f7f\u7528 Docker \u5feb\u901f\u90e8\u7f72",id:"\u4f7f\u7528-docker-\u5feb\u901f\u90e8\u7f72",level:2},{value:"\u53c2\u6570\u8bf4\u660e",id:"\u53c2\u6570\u8bf4\u660e",level:3},{value:"\u8bbf\u95ee UPage",id:"\u8bbf\u95ee-upage",level:2},{value:"\u914d\u7f6e AI \u63d0\u4f9b\u5546",id:"\u914d\u7f6e-ai-\u63d0\u4f9b\u5546",level:2},{value:"DeepSeek",id:"deepseek",level:3},{value:"\u517c\u5bb9 OpenAI \u63a5\u53e3\u7684\u670d\u52a1",id:"\u517c\u5bb9-openai-\u63a5\u53e3\u7684\u670d\u52a1",level:3},{value:"OpenAI",id:"openai",level:3},{value:"Anthropic Claude",id:"anthropic-claude",level:3},{value:"Ollama",id:"ollama",level:3},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function t(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"\u5feb\u901f\u5f00\u59cb",children:"\u5feb\u901f\u5f00\u59cb"})}),"\n",(0,a.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u5feb\u901f\u90e8\u7f72\u548c\u542f\u52a8 UPage\uff0c\u8ba9\u60a8\u5728\u51e0\u5206\u949f\u5185\u4f53\u9a8c\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002"}),"\n",(0,a.jsx)(n.admonition,{title:"\u6ce8\u610f",type:"caution",children:(0,a.jsxs)(n.p,{children:["\u6b64\u5feb\u901f\u542f\u52a8\u65b9\u5f0f\u4ec5\u9002\u7528\u4e8e\u4f53\u9a8c\u548c\u6d4b\u8bd5\u76ee\u7684\uff0c\u5982\u9700\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u5b8c\u6574\u90e8\u7f72\uff0c\u8bf7\u53c2\u8003",(0,a.jsx)(n.a,{href:"deployment/docker",children:"Docker \u90e8\u7f72\u6307\u5357"}),"\u3002"]})}),"\n",(0,a.jsx)(n.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,a.jsx)(n.p,{children:"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Docker \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker 20.10.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,a.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u5185\u5b58"}),"\n",(0,a.jsx)(n.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,a.jsx)(n.li,{children:"\u4e92\u8054\u7f51\u8fde\u63a5\uff08\u7528\u4e8e\u62c9\u53d6 Docker \u955c\u50cf\u548c\u8bbf\u95ee\u5927\u6a21\u578b API\uff09"}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"\u4f7f\u7528-docker-\u5feb\u901f\u90e8\u7f72",children:"\u4f7f\u7528 Docker \u5feb\u901f\u90e8\u7f72"}),"\n",(0,a.jsx)(n.p,{children:"UPage \u63d0\u4f9b\u4e86\u5b98\u65b9 Docker \u955c\u50cf\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u5feb\u901f\u542f\u52a8\uff1a"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"docker run -d \\\n --name upage \\\n --restart unless-stopped \\\n -p 3000:3000 \\\n -e LLM_PROVIDER=OpenAILike \\\n -e PROVIDER_BASE_URL=your-openai-like-api-base-url \\\n -e PROVIDER_API_KEY=your-openai-like-api-key \\\n -e LLM_DEFAULT_MODEL=your-default-model \\\n -e LLM_MINOR_MODEL=your-minor-model \\\n -v ./data:/app/data \\\n -v ./logs:/app/logs \\\n -v ./storage:/app/storage \\\n halo-dev/upage:latest\n"})}),"\n",(0,a.jsx)(n.h3,{id:"\u53c2\u6570\u8bf4\u660e",children:"\u53c2\u6570\u8bf4\u660e"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-e LLM_PROVIDER=OpenAILike"}),"\uff1a\u8bbe\u7f6e\u9ed8\u8ba4\u7684 LLM \u63d0\u4f9b\u5546"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-e PROVIDER_BASE_URL=your-openai-like-api-base-url"}),"\uff1a\u8bbe\u7f6e API \u57fa\u7840 URL"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-e PROVIDER_API_KEY=your-openai-like-api-key"}),"\uff1a\u8bbe\u7f6e API \u5bc6\u94a5"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-e LLM_DEFAULT_MODEL=your-default-model"}),"\uff1a\u8bbe\u7f6e\u7528\u4e8e\u9875\u9762\u751f\u6210\u7684\u9ed8\u8ba4 AI \u6a21\u578b"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-e LLM_MINOR_MODEL=your-minor-model"}),"\uff1a\u8bbe\u7f6e\u7528\u4e8e\u8f85\u52a9\u4efb\u52a1\u7684 AI \u6a21\u578b"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-v ./data:/app/data"}),"\uff1a\u6302\u8f7d\u6570\u636e\u76ee\u5f55\uff0c\u7528\u4e8e\u5b58\u50a8\u6570\u636e\u5e93\u6587\u4ef6"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-v ./logs:/app/logs"}),"\uff1a\u6302\u8f7d\u65e5\u5fd7\u76ee\u5f55"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"-v ./storage:/app/storage"}),"\uff1a\u6302\u8f7d\u5b58\u50a8\u76ee\u5f55\uff0c\u7528\u4e8e\u5b58\u50a8\u4e0a\u4f20\u7684\u6587\u4ef6"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"\u8bbf\u95ee-upage",children:"\u8bbf\u95ee UPage"}),"\n",(0,a.jsx)(n.p,{children:"\u670d\u52a1\u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"http://localhost:3000\n"})}),"\n",(0,a.jsx)(n.h2,{id:"\u914d\u7f6e-ai-\u63d0\u4f9b\u5546",children:"\u914d\u7f6e AI \u63d0\u4f9b\u5546"}),"\n",(0,a.jsx)(n.p,{children:"UPage \u652f\u6301\u591a\u79cd AI \u63d0\u4f9b\u5546\uff0c\u60a8\u9700\u8981\u81f3\u5c11\u914d\u7f6e\u4e00\u4e2a AI \u63d0\u4f9b\u5546\u624d\u80fd\u4f7f\u7528\u9875\u9762\u751f\u6210\u529f\u80fd\u3002\u4ee5\u4e0b\u662f\u5e38\u89c1\u7684 AI \u63d0\u4f9b\u5546\u914d\u7f6e\u793a\u4f8b\uff1a"}),"\n",(0,a.jsx)(n.h3,{id:"deepseek",children:"DeepSeek"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"-e LLM_PROVIDER=Deepseek \\\n-e PROVIDER_API_KEY=your-deepseek-api-key \\\n-e LLM_DEFAULT_MODEL=deepseek-chat \\\n-e LLM_MINOR_MODEL=deepseek-reasoner\n"})}),"\n",(0,a.jsx)(n.h3,{id:"\u517c\u5bb9-openai-\u63a5\u53e3\u7684\u670d\u52a1",children:"\u517c\u5bb9 OpenAI \u63a5\u53e3\u7684\u670d\u52a1"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"-e LLM_PROVIDER=OpenAILike \\\n-e PROVIDER_BASE_URL=https://your-api-base-url \\\n-e PROVIDER_API_KEY=your-api-key \\\n-e LLM_DEFAULT_MODEL=your-model-name \\\n-e LLM_MINOR_MODEL=your-minor-model-name\n"})}),"\n",(0,a.jsx)(n.h3,{id:"openai",children:"OpenAI"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"-e LLM_PROVIDER=OpenAI \\\n-e PROVIDER_API_KEY=your-openai-api-key \\\n-e LLM_DEFAULT_MODEL=gpt-4-turbo \\\n-e LLM_MINOR_MODEL=gpt-3.5-turbo\n"})}),"\n",(0,a.jsx)(n.h3,{id:"anthropic-claude",children:"Anthropic Claude"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"-e LLM_PROVIDER=Anthropic \\\n-e PROVIDER_API_KEY=your-anthropic-api-key \\\n-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \\\n-e LLM_MINOR_MODEL=claude-3-haiku-20240307\n"})}),"\n",(0,a.jsx)(n.h3,{id:"ollama",children:"Ollama"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"-e LLM_PROVIDER=Ollama \\\n-e PROVIDER_BASE_URL=http://127.0.0.1:11434 \\\n-e LLM_DEFAULT_MODEL=llama3 \\\n-e LLM_MINOR_MODEL=llama3\n"})}),"\n",(0,a.jsx)(n.admonition,{type:"info",children:(0,a.jsxs)(n.p,{children:["\u8be6\u7ec6\u7684 AI \u63d0\u4f9b\u5546\u914d\u7f6e\u8bf7\u9605\u8bfb",(0,a.jsx)(n.a,{href:"configuration#ai-%E6%8F%90%E4%BE%9B%E5%95%86%E9%85%8D%E7%BD%AE",children:"\u914d\u7f6e\u53c2\u8003"}),"\u3002"]})}),"\n",(0,a.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["\u63a2\u7d22",(0,a.jsx)(n.a,{href:"deployment/docker",children:"Docker \u90e8\u7f72\u6307\u5357"}),"\u4e86\u89e3\u751f\u4ea7\u73af\u5883\u90e8\u7f72\u65b9\u6848\uff0c\u5305\u62ec\u4f7f\u7528 Docker Compose\u3001\u6570\u636e\u5907\u4efd\u3001HTTPS \u914d\u7f6e\u7b49"]}),"\n",(0,a.jsxs)(n.li,{children:["\u67e5\u770b",(0,a.jsx)(n.a,{href:"configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n",(0,a.jsxs)(n.li,{children:["\u9605\u8bfb",(0,a.jsx)(n.a,{href:"user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(t,{...e})}):t(e)}},8784:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>d});var l=i(7378);const a={},r=l.createContext(a);function s(e){const n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),l.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/upage/assets/js/cea871c7.3d7577e3.js b/upage/assets/js/cea871c7.3d7577e3.js new file mode 100644 index 0000000..738878b --- /dev/null +++ b/upage/assets/js/cea871c7.3d7577e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[206],{2944:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","href":"/upage/","label":"\u9996\u9875","docId":"index","unlisted":false},{"type":"link","href":"/upage/quick-start","label":"\u5feb\u901f\u5f00\u59cb","docId":"quick-start","unlisted":false},{"type":"category","label":"\u90e8\u7f72\u6307\u5357","items":[{"type":"link","href":"/upage/deployment/docker","label":"Docker \u90e8\u7f72","docId":"deployment/docker","unlisted":false},{"type":"link","href":"/upage/deployment/docker-compose","label":"Docker Compose \u90e8\u7f72","docId":"deployment/docker-compose","unlisted":false},{"type":"link","href":"/upage/deployment/source","label":"\u6e90\u7801\u90e8\u7f72","docId":"deployment/source","unlisted":false},{"type":"link","href":"/upage/deployment/logto","label":"Logto \u8ba4\u8bc1\u96c6\u6210","docId":"deployment/logto","unlisted":false},{"type":"link","href":"/upage/deployment/others","label":"\u5176\u4ed6\u914d\u7f6e","docId":"deployment/others","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/upage/deployment-guide"},{"type":"link","href":"/upage/configuration","label":"\u914d\u7f6e\u53c2\u8003","docId":"configuration","unlisted":false},{"type":"category","label":"\u7528\u6237\u6307\u5357","items":[{"type":"link","href":"/upage/user-guide/basics","label":"\u57fa\u7840\u4f7f\u7528","docId":"user-guide/basics","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/upage/user-guide"},{"type":"category","label":"\u8d21\u732e\u6307\u5357","items":[{"type":"link","href":"/upage/contributing/code-of-conduct","label":"\u884c\u4e3a\u51c6\u5219","docId":"contributing/code-of-conduct","unlisted":false},{"type":"link","href":"/upage/contributing/ways-to-contribute","label":"\u8d21\u732e\u65b9\u5f0f","docId":"contributing/ways-to-contribute","unlisted":false},{"type":"link","href":"/upage/contributing/development-setup","label":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e","docId":"contributing/development-setup","unlisted":false},{"type":"link","href":"/upage/contributing/code-standards","label":"\u4ee3\u7801\u89c4\u8303","docId":"contributing/code-standards","unlisted":false},{"type":"link","href":"/upage/contributing/workflow","label":"\u5de5\u4f5c\u6d41\u7a0b","docId":"contributing/workflow","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/upage/contributing"},{"type":"link","href":"/upage/faq","label":"\u5e38\u89c1\u95ee\u9898","docId":"faq","unlisted":false}]},"docs":{"404-page":{"id":"404-page","title":"\u9875\u9762\u672a\u627e\u5230","description":"\u5f88\u62b1\u6b49\uff0c\u60a8\u8bbf\u95ee\u7684\u9875\u9762\u4e0d\u5b58\u5728\u3002"},"configuration":{"id":"configuration","title":"\u914d\u7f6e\u53c2\u8003","description":"\u672c\u6587\u6863\u63d0\u4f9b\u4e86 UPage \u7684\u5b8c\u6574\u914d\u7f6e\u53c2\u8003\uff0c\u5305\u62ec\u57fa\u7840\u914d\u7f6e\u3001AI \u63d0\u4f9b\u5546\u914d\u7f6e\u3001\u8ba4\u8bc1\u914d\u7f6e\uff0c\u5e2e\u52a9\u60a8\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u5b9a\u5236\u548c\u4f18\u5316 UPage\u3002","sidebar":"tutorialSidebar"},"contributing/code-of-conduct":{"id":"contributing/code-of-conduct","title":"\u884c\u4e3a\u51c6\u5219","description":"UPage \u9879\u76ee\u81f4\u529b\u4e8e\u4e3a\u6240\u6709\u8d21\u732e\u8005\u548c\u53c2\u4e0e\u8005\u63d0\u4f9b\u4e00\u4e2a\u53cb\u597d\u3001\u5b89\u5168\u548c\u5305\u5bb9\u7684\u73af\u5883\u3002\u6211\u4eec\u5e0c\u671b\u6bcf\u4e2a\u4eba\u90fd\u80fd\u591f\u5728\u6ca1\u6709\u9a9a\u6270\u548c\u6b67\u89c6\u7684\u60c5\u51b5\u4e0b\u53c2\u4e0e\u9879\u76ee\u3002","sidebar":"tutorialSidebar"},"contributing/code-standards":{"id":"contributing/code-standards","title":"\u4ee3\u7801\u89c4\u8303","description":"UPage \u9879\u76ee\u9075\u5faa\u4e25\u683c\u7684\u4ee3\u7801\u89c4\u8303\u548c\u6700\u4f73\u5b9e\u8df5\uff0c\u4ee5\u786e\u4fdd\u4ee3\u7801\u8d28\u91cf\u548c\u4e00\u81f4\u6027\u3002\u672c\u6587\u6863\u6982\u8ff0\u4e86\u8fd9\u4e9b\u89c4\u8303\uff0c\u6240\u6709\u8d21\u732e\u8005\u5728\u63d0\u4ea4\u4ee3\u7801\u524d\u5e94\u786e\u4fdd\u9075\u5faa\u8fd9\u4e9b\u89c4\u8303\u3002","sidebar":"tutorialSidebar"},"contributing/contributing":{"id":"contributing/contributing","title":"\u8d21\u732e\u6307\u5357","description":"\u611f\u8c22\u60a8\u5bf9 UPage \u9879\u76ee\u7684\u5173\u6ce8\uff01\u6211\u4eec\u975e\u5e38\u6b22\u8fce\u5404\u79cd\u5f62\u5f0f\u7684\u8d21\u732e\uff0c\u65e0\u8bba\u662f\u529f\u80fd\u5f00\u53d1\u3001bug \u4fee\u590d\u3001\u6587\u6863\u6539\u8fdb\u8fd8\u662f\u4f7f\u7528\u53cd\u9988\u3002\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u4e86\u89e3\u5982\u4f55\u53c2\u4e0e UPage \u7684\u5f00\u53d1\u548c\u8d21\u732e\u3002","sidebar":"tutorialSidebar"},"contributing/development-setup":{"id":"contributing/development-setup","title":"\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e","description":"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u8bbe\u7f6e UPage \u7684\u672c\u5730\u5f00\u53d1\u73af\u5883\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u5f00\u59cb\u8d21\u732e\u4ee3\u7801\u3002","sidebar":"tutorialSidebar"},"contributing/ways-to-contribute":{"id":"contributing/ways-to-contribute","title":"\u8d21\u732e\u65b9\u5f0f","description":"\u60a8\u53ef\u4ee5\u901a\u8fc7\u591a\u79cd\u65b9\u5f0f\u4e3a UPage \u505a\u51fa\u8d21\u732e\uff0c\u65e0\u8bba\u60a8\u662f\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u3001\u6587\u6863\u64b0\u5199\u8005\u8fd8\u662f\u7528\u6237\uff0c\u90fd\u80fd\u627e\u5230\u9002\u5408\u60a8\u7684\u8d21\u732e\u65b9\u5f0f\u3002","sidebar":"tutorialSidebar"},"contributing/workflow":{"id":"contributing/workflow","title":"\u5de5\u4f5c\u6d41\u7a0b","description":"\u672c\u6587\u6863\u63cf\u8ff0\u4e86 UPage \u9879\u76ee\u7684\u5f00\u53d1\u5de5\u4f5c\u6d41\u7a0b\uff0c\u5305\u62ec\u5206\u652f\u7b56\u7565\u3001Pull Request \u6d41\u7a0b\u548c\u7248\u672c\u53d1\u5e03\u6d41\u7a0b\u3002","sidebar":"tutorialSidebar"},"deployment/docker":{"id":"deployment/docker","title":"Docker \u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker \u90e8\u7f72 UPage\u3002","sidebar":"tutorialSidebar"},"deployment/docker-compose":{"id":"deployment/docker-compose","title":"Docker Compose \u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker Compose \u90e8\u7f72 UPage\uff0c\u8fd9\u662f\u4e00\u79cd\u66f4\u4fbf\u6377\u7684\u65b9\u5f0f\u6765\u7ba1\u7406 UPage \u7684\u90e8\u7f72\u3002","sidebar":"tutorialSidebar"},"deployment/logto":{"id":"deployment/logto","title":"Logto \u8ba4\u8bc1\u96c6\u6210","description":"UPage \u9ed8\u8ba4\u4ec5\u652f\u6301\u5355\u4e00\u533f\u540d\u7528\u6237\u8bbf\u95ee\uff0c\u4f46\u60a8\u53ef\u4ee5\u901a\u8fc7\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1\uff0c\u652f\u6301\u591a\u7528\u6237\u767b\u5f55","sidebar":"tutorialSidebar"},"deployment/others":{"id":"deployment/others","title":"\u5176\u4ed6\u914d\u7f6e","description":"\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u90e8\u7f72 UPage \u65f6\u7684\u4e00\u4e9b\u5176\u4ed6\u914d\u7f6e\u9009\u9879\u548c\u6700\u4f73\u5b9e\u8df5\u3002","sidebar":"tutorialSidebar"},"deployment/source":{"id":"deployment/source","title":"\u6e90\u7801\u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4ece\u6e90\u7801\u6784\u5efa\u548c\u90e8\u7f72 UPage\u3002\u5982\u679c\u60a8\u5e0c\u671b\u81ea\u5b9a\u4e49 UPage \u6216\u8005\u53c2\u4e0e\u5f00\u53d1\uff0c\u8fd9\u662f\u6700\u5408\u9002\u7684\u90e8\u7f72\u65b9\u5f0f\u3002","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u6587\u6863\u6574\u7406\u4e86\u4f7f\u7528 UPage \u65f6\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u89e3\u51b3\u53ef\u80fd\u9047\u5230\u7684\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"UPage \u6587\u6863","description":"\u4ec0\u4e48\u662f UPage\uff1f","sidebar":"tutorialSidebar"},"quick-start":{"id":"quick-start","title":"\u5feb\u901f\u5f00\u59cb","description":"\u672c\u6307\u5357\u5c06\u5e2e\u52a9\u60a8\u5feb\u901f\u90e8\u7f72\u548c\u542f\u52a8 UPage\uff0c\u8ba9\u60a8\u5728\u51e0\u5206\u949f\u5185\u4f53\u9a8c\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002","sidebar":"tutorialSidebar"},"user-guide/basics":{"id":"user-guide/basics","title":"\u57fa\u7840\u4f7f\u7528","description":"\u672c\u6587\u6863\u4ecb\u7ecd UPage \u7684\u57fa\u672c\u4f7f\u7528\u65b9\u6cd5\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u4e0a\u624b\u8fd9\u6b3e\u57fa\u4e8e\u5927\u6a21\u578b\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0\u3002","sidebar":"tutorialSidebar"}}}}')}}]); \ No newline at end of file diff --git a/upage/assets/js/d6dcccef.ca4f4ffd.js b/upage/assets/js/d6dcccef.ca4f4ffd.js new file mode 100644 index 0000000..e6a4b0f --- /dev/null +++ b/upage/assets/js/d6dcccef.ca4f4ffd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[461],{8784:(e,n,l)=>{l.d(n,{R:()=>d,x:()=>c});var i=l(7378);const s={},r=i.createContext(s);function d(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(r.Provider,{value:n},e.children)}},9577:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>h,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>i,toc:()=>t});const i=JSON.parse('{"id":"contributing/workflow","title":"\u5de5\u4f5c\u6d41\u7a0b","description":"\u672c\u6587\u6863\u63cf\u8ff0\u4e86 UPage \u9879\u76ee\u7684\u5f00\u53d1\u5de5\u4f5c\u6d41\u7a0b\uff0c\u5305\u62ec\u5206\u652f\u7b56\u7565\u3001Pull Request \u6d41\u7a0b\u548c\u7248\u672c\u53d1\u5e03\u6d41\u7a0b\u3002","source":"@site/content/contributing/workflow.md","sourceDirName":"contributing","slug":"/contributing/workflow","permalink":"/upage/contributing/workflow","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/contributing/workflow.md","tags":[],"version":"current","frontMatter":{"id":"workflow","title":"\u5de5\u4f5c\u6d41\u7a0b"},"sidebar":"tutorialSidebar","previous":{"title":"\u4ee3\u7801\u89c4\u8303","permalink":"/upage/contributing/code-standards"},"next":{"title":"\u5e38\u89c1\u95ee\u9898","permalink":"/upage/faq"}}');var s=l(6106),r=l(8784);const d={id:"workflow",title:"\u5de5\u4f5c\u6d41\u7a0b"},c="\u5de5\u4f5c\u6d41\u7a0b",h={},t=[{value:"\u5206\u652f\u7b56\u7565",id:"\u5206\u652f\u7b56\u7565",level:2},{value:"\u4e3b\u8981\u5206\u652f",id:"\u4e3b\u8981\u5206\u652f",level:3},{value:"\u529f\u80fd\u5206\u652f",id:"\u529f\u80fd\u5206\u652f",level:3},{value:"\u4fee\u590d\u5206\u652f",id:"\u4fee\u590d\u5206\u652f",level:3},{value:"\u53d1\u5e03\u5206\u652f",id:"\u53d1\u5e03\u5206\u652f",level:3},{value:"\u70ed\u4fee\u590d\u5206\u652f",id:"\u70ed\u4fee\u590d\u5206\u652f",level:3},{value:"\u5de5\u4f5c\u6d41\u7a0b\u56fe",id:"\u5de5\u4f5c\u6d41\u7a0b\u56fe",level:2},{value:"Pull Request \u6d41\u7a0b",id:"pull-request-\u6d41\u7a0b",level:2},{value:"\u51c6\u5907 Pull Request",id:"\u51c6\u5907-pull-request",level:3},{value:"\u521b\u5efa Pull Request",id:"\u521b\u5efa-pull-request",level:3},{value:"Pull Request \u5ba1\u6838",id:"pull-request-\u5ba1\u6838",level:3},{value:"\u5408\u5e76 Pull Request",id:"\u5408\u5e76-pull-request",level:3},{value:"\u7248\u672c\u53d1\u5e03\u6d41\u7a0b",id:"\u7248\u672c\u53d1\u5e03\u6d41\u7a0b",level:2},{value:"\u53d1\u5e03\u51c6\u5907",id:"\u53d1\u5e03\u51c6\u5907",level:3},{value:"\u53d1\u5e03\u6b65\u9aa4",id:"\u53d1\u5e03\u6b65\u9aa4",level:3},{value:"\u70ed\u4fee\u590d\u53d1\u5e03",id:"\u70ed\u4fee\u590d\u53d1\u5e03",level:3},{value:"\u6301\u7eed\u96c6\u6210\u548c\u90e8\u7f72",id:"\u6301\u7eed\u96c6\u6210\u548c\u90e8\u7f72",level:2},{value:"CI \u5de5\u4f5c\u6d41\u7a0b",id:"ci-\u5de5\u4f5c\u6d41\u7a0b",level:3},{value:"CD \u5de5\u4f5c\u6d41\u7a0b",id:"cd-\u5de5\u4f5c\u6d41\u7a0b",level:3},{value:"\u95ee\u9898\u8ddf\u8e2a",id:"\u95ee\u9898\u8ddf\u8e2a",level:2}];function x(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5de5\u4f5c\u6d41\u7a0b",children:"\u5de5\u4f5c\u6d41\u7a0b"})}),"\n",(0,s.jsx)(n.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0\u4e86 UPage \u9879\u76ee\u7684\u5f00\u53d1\u5de5\u4f5c\u6d41\u7a0b\uff0c\u5305\u62ec\u5206\u652f\u7b56\u7565\u3001Pull Request \u6d41\u7a0b\u548c\u7248\u672c\u53d1\u5e03\u6d41\u7a0b\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u5206\u652f\u7b56\u7565",children:"\u5206\u652f\u7b56\u7565"}),"\n",(0,s.jsx)(n.p,{children:"UPage \u9879\u76ee\u4f7f\u7528\u4ee5\u4e0b\u5206\u652f\u7b56\u7565\uff1a"}),"\n",(0,s.jsx)(n.h3,{id:"\u4e3b\u8981\u5206\u652f",children:"\u4e3b\u8981\u5206\u652f"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"main"})}),": \u4e3b\u5206\u652f\uff0c\u5305\u542b\u6700\u65b0\u7684\u5f00\u53d1\u4ee3\u7801\uff0c\u7528\u4e8e\u96c6\u6210\u529f\u80fd\u548c\u4fee\u590d\uff0c\u540c\u65f6\u4e5f\u5bf9\u5e94\u6700\u65b0\u7684\u53d1\u5e03\u7248\u672c"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u529f\u80fd\u5206\u652f",children:"\u529f\u80fd\u5206\u652f"}),"\n",(0,s.jsxs)(n.p,{children:["\u5f00\u53d1\u65b0\u529f\u80fd\u65f6\uff0c\u5e94\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u529f\u80fd\u5206\u652f\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"feature/*"})}),": \u529f\u80fd\u5206\u652f\uff0c\u7528\u4e8e\u5f00\u53d1\u65b0\u529f\u80fd","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4f8b\u5982\uff1a",(0,s.jsx)(n.code,{children:"feature/drag-and-drop"}),"\u3001",(0,s.jsx)(n.code,{children:"feature/user-authentication"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u4fee\u590d\u5206\u652f",children:"\u4fee\u590d\u5206\u652f"}),"\n",(0,s.jsxs)(n.p,{children:["\u4fee\u590d bug \u65f6\uff0c\u5e94\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u4fee\u590d\u5206\u652f\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"fix/*"})}),": \u4fee\u590d\u5206\u652f\uff0c\u7528\u4e8e\u4fee\u590d bug","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4f8b\u5982\uff1a",(0,s.jsx)(n.code,{children:"fix/login-error"}),"\u3001",(0,s.jsx)(n.code,{children:"fix/memory-leak"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u53d1\u5e03\u5206\u652f",children:"\u53d1\u5e03\u5206\u652f"}),"\n",(0,s.jsxs)(n.p,{children:["\u51c6\u5907\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u53d1\u5e03\u5206\u652f\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"release/*"})}),": \u53d1\u5e03\u5206\u652f\uff0c\u7528\u4e8e\u51c6\u5907\u65b0\u7248\u672c\u53d1\u5e03","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4f8b\u5982\uff1a",(0,s.jsx)(n.code,{children:"release/v1.0.0"}),"\u3001",(0,s.jsx)(n.code,{children:"release/v1.1.0"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u70ed\u4fee\u590d\u5206\u652f",children:"\u70ed\u4fee\u590d\u5206\u652f"}),"\n",(0,s.jsxs)(n.p,{children:["\u5bf9\u5df2\u53d1\u5e03\u7248\u672c\u7684\u7d27\u6025\u4fee\u590d\uff0c\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u70ed\u4fee\u590d\u5206\u652f\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"hotfix/*"})}),": \u70ed\u4fee\u590d\u5206\u652f\uff0c\u7528\u4e8e\u5bf9\u5df2\u53d1\u5e03\u7248\u672c\u7684\u7d27\u6025\u4fee\u590d","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4f8b\u5982\uff1a",(0,s.jsx)(n.code,{children:"hotfix/v1.0.1"}),"\u3001",(0,s.jsx)(n.code,{children:"hotfix/v1.1.2"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u5de5\u4f5c\u6d41\u7a0b\u56fe",children:"\u5de5\u4f5c\u6d41\u7a0b\u56fe"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"main \u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u2502 \u2502 \u2191 \u2191\n \u2193 \u2193 \u2502 \u2502\nfeature feature/A feature/B \u2502 \u2502\n \u2502 \u2502\nfix fix/bug-1 fix/bug-2\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2502\nrelease \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n release/v1.0.0\n"})}),"\n",(0,s.jsx)(n.h2,{id:"pull-request-\u6d41\u7a0b",children:"Pull Request \u6d41\u7a0b"}),"\n",(0,s.jsx)(n.h3,{id:"\u51c6\u5907-pull-request",children:"\u51c6\u5907 Pull Request"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\u786e\u4fdd\u60a8\u7684\u4ee3\u7801\u7b26\u5408\u9879\u76ee\u7684",(0,s.jsx)(n.a,{href:"/upage/contributing/code-standards",children:"\u4ee3\u7801\u89c4\u8303"})]}),"\n",(0,s.jsx)(n.li,{children:"\u66f4\u65b0\u76f8\u5173\u6587\u6863\uff08\u5982\u9002\u7528\uff09"}),"\n",(0,s.jsx)(n.li,{children:"\u6dfb\u52a0\u6216\u66f4\u65b0\u6d4b\u8bd5\uff08\u5982\u9002\u7528\uff09"}),"\n",(0,s.jsx)(n.li,{children:"\u786e\u4fdd\u6240\u6709\u6d4b\u8bd5\u901a\u8fc7"}),"\n",(0,s.jsxs)(n.li,{children:["\u5c06\u60a8\u7684\u5206\u652f\u4e0e\u76ee\u6807\u5206\u652f\uff08\u901a\u5e38\u662f ",(0,s.jsx)(n.code,{children:"main"}),"\uff09\u540c\u6b65"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u521b\u5efa-pull-request",children:"\u521b\u5efa Pull Request"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"\u5728 GitHub \u4e0a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 Pull Request"}),"\n",(0,s.jsxs)(n.li,{children:["\u9009\u62e9\u6b63\u786e\u7684\u76ee\u6807\u5206\u652f\uff08\u901a\u5e38\u662f ",(0,s.jsx)(n.code,{children:"main"}),"\uff09"]}),"\n",(0,s.jsxs)(n.li,{children:["\u586b\u5199 Pull Request \u6a21\u677f\uff0c\u63d0\u4f9b\u4ee5\u4e0b\u4fe1\u606f\uff1a","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u6e05\u6670\u7684\u6807\u9898\uff0c\u7b80\u8981\u63cf\u8ff0\u66f4\u6539"}),"\n",(0,s.jsx)(n.li,{children:"\u8be6\u7ec6\u7684\u63cf\u8ff0\uff0c\u89e3\u91ca\u66f4\u6539\u7684\u76ee\u7684\u548c\u5b9e\u73b0\u65b9\u5f0f"}),"\n",(0,s.jsx)(n.li,{children:"\u76f8\u5173\u7684 issue \u94fe\u63a5\uff08\u5982\u9002\u7528\uff09"}),"\n",(0,s.jsx)(n.li,{children:"\u622a\u56fe\u6216\u89c6\u9891\uff08\u5982\u9002\u7528\uff09"}),"\n",(0,s.jsx)(n.li,{children:"\u4efb\u4f55\u9700\u8981\u5ba1\u6838\u8005\u7279\u522b\u6ce8\u610f\u7684\u4e8b\u9879"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"pull-request-\u5ba1\u6838",children:"Pull Request \u5ba1\u6838"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"\u81f3\u5c11\u9700\u8981\u4e00\u4e2a\u9879\u76ee\u7ef4\u62a4\u8005\u7684\u6279\u51c6\u624d\u80fd\u5408\u5e76 PR"}),"\n",(0,s.jsx)(n.li,{children:"\u5ba1\u6838\u8005\u53ef\u80fd\u4f1a\u8981\u6c42\u8fdb\u884c\u66f4\u6539"}),"\n",(0,s.jsx)(n.li,{children:"\u6839\u636e\u53cd\u9988\u8fdb\u884c\u5fc5\u8981\u7684\u66f4\u6539"}),"\n",(0,s.jsx)(n.li,{children:"\u786e\u4fdd CI \u68c0\u67e5\u901a\u8fc7"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u5408\u5e76-pull-request",children:"\u5408\u5e76 Pull Request"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"\u4e00\u65e6 PR \u83b7\u5f97\u6279\u51c6\u5e76\u4e14\u6240\u6709\u68c0\u67e5\u901a\u8fc7\uff0c\u5b83\u5c06\u88ab\u5408\u5e76"}),"\n",(0,s.jsx)(n.li,{children:'\u901a\u5e38\u4f7f\u7528 "Squash and merge" \u7b56\u7565\uff0c\u5c06\u6240\u6709\u63d0\u4ea4\u5408\u5e76\u4e3a\u4e00\u4e2a'}),"\n",(0,s.jsx)(n.li,{children:"\u5408\u5e76\u540e\uff0c\u76f8\u5173\u7684\u5206\u652f\u53ef\u4ee5\u88ab\u5220\u9664"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u7248\u672c\u53d1\u5e03\u6d41\u7a0b",children:"\u7248\u672c\u53d1\u5e03\u6d41\u7a0b"}),"\n",(0,s.jsxs)(n.p,{children:["UPage \u9075\u5faa ",(0,s.jsx)(n.a,{href:"https://semver.org/",children:"\u8bed\u4e49\u5316\u7248\u672c\u63a7\u5236"})," \u89c4\u8303\u3002\u7248\u672c\u53f7\u683c\u5f0f\u4e3a ",(0,s.jsx)(n.code,{children:"X.Y.Z"}),"\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"X"}),": \u4e3b\u7248\u672c\u53f7\uff0c\u5f53\u8fdb\u884c\u4e0d\u517c\u5bb9\u7684 API \u66f4\u6539\u65f6\u9012\u589e"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Y"}),": \u6b21\u7248\u672c\u53f7\uff0c\u5f53\u6dfb\u52a0\u5411\u540e\u517c\u5bb9\u7684\u529f\u80fd\u65f6\u9012\u589e"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Z"}),": \u4fee\u8ba2\u53f7\uff0c\u5f53\u8fdb\u884c\u5411\u540e\u517c\u5bb9\u7684 bug \u4fee\u590d\u65f6\u9012\u589e"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u53d1\u5e03\u51c6\u5907",children:"\u53d1\u5e03\u51c6\u5907"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u53d1\u5e03\u5206\u652f\uff0c\u4f8b\u5982 ",(0,s.jsx)(n.code,{children:"release/v1.0.0"})]}),"\n",(0,s.jsx)(n.li,{children:"\u5728\u53d1\u5e03\u5206\u652f\u4e0a\u8fdb\u884c\u6700\u7ec8\u6d4b\u8bd5\u548c\u4fee\u590d"}),"\n",(0,s.jsx)(n.li,{children:"\u66f4\u65b0\u7248\u672c\u53f7\u548c\u66f4\u65b0\u65e5\u5fd7"}),"\n",(0,s.jsxs)(n.li,{children:["\u521b\u5efa Pull Request \u5c06\u53d1\u5e03\u5206\u652f\u5408\u5e76\u56de ",(0,s.jsx)(n.code,{children:"main"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u53d1\u5e03\u6b65\u9aa4",children:"\u53d1\u5e03\u6b65\u9aa4"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\u5408\u5e76\u53d1\u5e03\u5206\u652f\u5230 ",(0,s.jsx)(n.code,{children:"main"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u5728 ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u4e0a\u521b\u5efa\u7248\u672c\u6807\u7b7e\uff0c\u4f8b\u5982 ",(0,s.jsx)(n.code,{children:"v1.0.0"})]}),"\n",(0,s.jsx)(n.li,{children:"\u53d1\u5e03 GitHub Release\uff0c\u5305\u542b\u8be6\u7ec6\u7684\u66f4\u65b0\u65e5\u5fd7"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u70ed\u4fee\u590d\u53d1\u5e03",children:"\u70ed\u4fee\u590d\u53d1\u5e03"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\u4ece ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u521b\u5efa\u70ed\u4fee\u590d\u5206\u652f\uff0c\u4f8b\u5982 ",(0,s.jsx)(n.code,{children:"hotfix/v1.0.1"})]}),"\n",(0,s.jsx)(n.li,{children:"\u5b9e\u73b0\u5fc5\u8981\u7684\u4fee\u590d"}),"\n",(0,s.jsx)(n.li,{children:"\u66f4\u65b0\u7248\u672c\u53f7\u548c\u66f4\u65b0\u65e5\u5fd7"}),"\n",(0,s.jsxs)(n.li,{children:["\u521b\u5efa Pull Request \u5c06\u70ed\u4fee\u590d\u5206\u652f\u5408\u5e76\u5230 ",(0,s.jsx)(n.code,{children:"main"})]}),"\n",(0,s.jsx)(n.li,{children:"\u5fc5\u8981\u65f6\u521b\u5efa cherry-pick PR \u5c06\u70ed\u4fee\u590d\u5206\u652f\u5408\u5e76\u5230\u5bf9\u5e94\u7684\u53d1\u5e03\u5206\u652f"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u6301\u7eed\u96c6\u6210\u548c\u90e8\u7f72",children:"\u6301\u7eed\u96c6\u6210\u548c\u90e8\u7f72"}),"\n",(0,s.jsx)(n.p,{children:"UPage \u4f7f\u7528 GitHub Actions \u8fdb\u884c\u6301\u7eed\u96c6\u6210\u548c\u90e8\u7f72\uff1a"}),"\n",(0,s.jsx)(n.h3,{id:"ci-\u5de5\u4f5c\u6d41\u7a0b",children:"CI \u5de5\u4f5c\u6d41\u7a0b"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u6bcf\u4e2a PR \u4f1a\u89e6\u53d1\u6784\u5efa\u548c\u6d4b\u8bd5"}),"\n",(0,s.jsx)(n.li,{children:"\u4ee3\u7801\u8d28\u91cf\u68c0\u67e5\uff08linting\u3001\u7c7b\u578b\u68c0\u67e5\uff09"}),"\n",(0,s.jsx)(n.li,{children:"\u5355\u5143\u6d4b\u8bd5\u548c\u96c6\u6210\u6d4b\u8bd5"}),"\n",(0,s.jsx)(n.li,{children:"\u6784\u5efa\u68c0\u67e5"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"cd-\u5de5\u4f5c\u6d41\u7a0b",children:"CD \u5de5\u4f5c\u6d41\u7a0b"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u5408\u5e76\u5230 ",(0,s.jsx)(n.code,{children:"main"})," \u5206\u652f\u4f1a\u89e6\u53d1\u5f00\u53d1\u6784\u5efa\u548c\u90e8\u7f72"]}),"\n",(0,s.jsx)(n.li,{children:"\u81ea\u52a8\u751f\u6210\u548c\u53d1\u5e03 Docker \u955c\u50cf"}),"\n",(0,s.jsx)(n.li,{children:"\u66f4\u65b0\u6587\u6863\u7f51\u7ad9"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u95ee\u9898\u8ddf\u8e2a",children:"\u95ee\u9898\u8ddf\u8e2a"}),"\n",(0,s.jsxs)(n.p,{children:["UPage \u4f7f\u7528 GitHub ",(0,s.jsx)(n.a,{href:"https://github.com/halo-dev/upage/issues",children:"Issues"})," \u8fdb\u884c\u95ee\u9898\u8ddf\u8e2a\uff0c\u4f7f\u7528\u6807\u7b7e\u5bf9\u95ee\u9898\u8fdb\u884c\u5206\u7c7b\uff08bug\u3001feature\u3001documentation \u7b49\uff09"]})]})}function u(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/upage/assets/js/main.648541e0.js b/upage/assets/js/main.648541e0.js new file mode 100644 index 0000000..8469a16 --- /dev/null +++ b/upage/assets/js/main.648541e0.js @@ -0,0 +1,2 @@ +/*! For license information please see main.648541e0.js.LICENSE.txt */ +(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[792],{79:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(321),o=n(505),a=n(3426);function i(){const{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,o.zy)(),l=(0,a.Ks)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){const r=function(e){const t=n[e];if(!t)throw new Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e);return`${`${t?r.url:""}`}${r.baseUrl}${l}`}}}},89:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>a(s,n))u<o&&0>a(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<o&&0>a(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,p=null,f=3,m=!1,g=!1,h=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function k(e){if(h=!1,w(e),!g)if(null!==r(u))g=!0,R(x);else{var t=r(c);null!==t&&O(k,t.startTime-e)}}function x(e,n){g=!1,h&&(h=!1,b(C),C=-1),m=!0;var a=f;try{for(w(n),p=r(u);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(u)&&o(u),w(n)}else o(u);p=r(u)}if(null!==p)var s=!0;else{var d=r(c);null!==d&&O(k,d.startTime-n),s=!1}return s}finally{p=null,f=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,A=5,T=-1;function j(){return!(t.unstable_now()-T<A)}function L(){if(null!==_){var e=t.unstable_now();T=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(L)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,N=P.port2;P.port1.onmessage=L,S=function(){N.postMessage(null)}}else S=function(){y(L,0)};function R(e){_=e,E||(E=!0,S())}function O(e,n){C=y(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||m||(g=!0,R(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?i+a:i:a=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:l=a+l,sortIndex:-1},a>i?(e.sortIndex=a,n(c,e),null===r(u)&&e===r(c)&&(h?(b(C),C=-1):h=!0,O(k,a-i))):(e.sortIndex=l,n(u,e),g||m||(g=!0,R(x))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},93:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function y(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,g(w,y.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var o,a={},i=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var s=arguments.length-2;if(1===s)a.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];a.children=u}if(e&&e.defaultProps)for(o in s=e.defaultProps)void 0===a[o]&&(a[o]=s[o]);return{$$typeof:n,type:e,key:i,ref:l,props:a,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(e){return t[e]})}(""+e.key):t.toString(36)}function j(e,t,o,a,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===a?"."+T(s,0):a,k(i)?(o="",null!=e&&(o=e.replace(A,"$&/")+"/"),j(i,t,o,"",function(e){return e})):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(s=0,a=""===a?".":a+":",k(e))for(var u=0;u<e.length;u++){var c=a+T(l=e[u],u);s+=j(l,t,o,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=j(l=l.value,t,o,c=a+T(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function L(e,t,n){if(null==e)return e;var r=[],o=0;return j(e,r,"","",function(e){return t.call(n,e,o++)}),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},R={transition:null},O={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:R,ReactCurrentOwner:S};function D(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:L,forEach:function(e,t,n){L(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return L(e,function(){t++}),t},toArray:function(e){return L(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=o,t.Profiler=i,t.PureComponent=v,t.StrictMode=a,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.act=D,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=g({},e.props),a=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)x.call(t,u)&&!E.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];o.children=s}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=D,t.useCallback=function(e,t){return N.current.useCallback(e,t)},t.useContext=function(e){return N.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return N.current.useDeferredValue(e)},t.useEffect=function(e,t){return N.current.useEffect(e,t)},t.useId=function(){return N.current.useId()},t.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return N.current.useMemo(e,t)},t.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},t.useRef=function(e){return N.current.useRef(e)},t.useState=function(e){return N.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return N.current.useTransition()},t.version="18.3.1"},125:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},321:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7378),o=n(4542);function a(){return(0,r.useContext)(o.o)}},379:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>f,w8:()=>b,$S:()=>m,a4:()=>g,cC:()=>p,B5:()=>C,Vd:()=>S,QB:()=>_,fW:()=>E,OF:()=>x,Y:()=>w});var r=n(7378),o=n(505),a=n(8041),i=n(8884),l=n(1709);function s(e){return Array.from(new Set(e))}var u=n(2752),c=n(5647),d=n(7703);function p(e){const t=(0,c.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,o.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}function g(){const{pathname:e}=(0,o.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];return n?.items??t.items}const h=(e,t)=>void 0!==e&&(0,l.ys)(e,t),y=(e,t)=>e.some(e=>b(e,t));function b(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||void 0!==e.href&&!e.linkUnlisted||e.items.some(e=>v(e,t));case"link":return!e.unlisted||b(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)(()=>e.filter(e=>v(e,t)),[e,t])}function k({sidebarItems:e,pathname:t,onlyCategories:n=!1}){const r=[];return function e(o){for(const a of o)if("category"===a.type&&((0,l.ys)(a.href,t)||e(a.items))||"link"===a.type&&(0,l.ys)(a.href,t)){return n&&"category"!==a.type||r.unshift(a),!0}return!1}(e),r}function x(){const e=(0,d.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)(()=>s([t,n,o].filter(Boolean)),[t,n,o])}function E(e,t){const n=S(t);return(0,r.useMemo)(()=>{const t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function _(e,t){const n=S(t);return(0,r.useMemo)(()=>{const t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}".\nAvailable doc ids are:\n- ${s(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function C({route:e}){const t=(0,o.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,o.B6)(t.pathname,e));if(!i)return null;const l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,a.v)(r),sidebarName:l,sidebarItems:s}}function A(e){return e.filter(e=>!("category"===e.type||"link"===e.type)||!!f(e))}},496:(e,t,n)=>{"use strict";n.d(t,{Jx:()=>y,be:()=>m,e3:()=>h});var r=n(7378),o=n(3372),a=n(8955),i=n(6666),l=n(4082),s=n(8767),u=n(6106);function c({title:e}){const t=(0,s.s$)().format(e);return(0,u.jsxs)(a.A,{children:[(0,u.jsx)("title",{children:t}),(0,u.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,u.jsxs)(a.A,{children:[(0,u.jsx)("meta",{name:"description",content:e}),(0,u.jsx)("meta",{property:"og:description",content:e})]})}function p({image:e}){const{withBaseUrl:t}=(0,l.hH)(),n=t(e,{absolute:!0});return(0,u.jsxs)(a.A,{children:[(0,u.jsx)("meta",{property:"og:image",content:n}),(0,u.jsx)("meta",{name:"twitter:image",content:n})]})}function f({keywords:e}){return(0,u.jsx)(a.A,{children:(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:r,children:o}){return(0,u.jsxs)(u.Fragment,{children:[e&&(0,u.jsx)(c,{title:e}),t&&(0,u.jsx)(d,{description:t}),n&&(0,u.jsx)(f,{keywords:n}),r&&(0,u.jsx)(p,{image:r}),o&&(0,u.jsx)(a.A,{children:o})]})}const g=r.createContext(void 0);function h({className:e,children:t}){const n=r.useContext(g),i=(0,o.A)(n,e);return(0,u.jsxs)(g.Provider,{value:i,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:i})}),t]})}function y({children:e}){const t=(0,i.A)(),n=`plugin-${t.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const r=`plugin-id-${t.plugin.id}`;return(0,u.jsx)(h,{className:(0,o.A)(n,r),children:e})}},505:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>N,XZ:()=>b,dO:()=>L,qh:()=>E,zy:()=>R});var r=n(9444),o=n(7378),a=n(3108),i=n.n(a),l=n(9888),s=n(8635),u=n(1408),c=n(5445),d=n.n(c),p=(n(3635),n(4227)),f=(n(3871),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var g=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter(function(t){return t!==e})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}}),t}(0,r.A)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!==((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},o.getValue=function(){return this.context[l]?this.context[l].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return u.contextTypes=((a={})[l]=i().object,a),{Provider:s,Consumer:u}},h=function(e){var t=g();return t.displayName=e,t},y=h("Router-History"),b=h("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen(function(e){n._pendingLocation=e})),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(t){e._isMounted&&e.setState({location:t})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce(function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return x<k&&(r[e]=a,x++),a}(n,{end:a,strict:l,sensitive:u}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return a&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce(function(e,t,n){return e[t.name]=p[n],e},{})}},null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,a=(0,u.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(b.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:c?o.createElement(c,a):d?d(a):null:"function"==typeof l?l(a):null)})},t}(o.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function T(e){return function(){(0,s.A)(!1)}}function j(){}o.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,function(t){t||(0,s.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(a.pathname,(0,u.A)({},e.props,{path:i})):t.match}}),r?o.cloneElement(n,{location:a,computedMatch:r}):null})},t}(o.Component);var P=o.useContext;function N(){return P(y)}function R(){return P(b).location}},714:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(7378),o=n(3372),a=n(3724),i=n(6289);const l={themedComponent:"themedComponent_PxYp","themedComponent--light":"themedComponent--light_BsnN","themedComponent--dark":"themedComponent--dark_P6BI"};var s=n(6106);function u({className:e,children:t}){const n=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(n?"dark"===u?["dark"]:["light"]:["light","dark"]).map(n=>{const a=t({theme:n,className:(0,o.A)(e,l.themedComponent,l[`themedComponent--${n}`])});return(0,s.jsx)(r.Fragment,{children:a},n)})})}function c(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,s.jsx)("img",{src:t[e],alt:r,className:n,...o})})}},929:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(7378),o=n(6106);function a(e,t){const n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,r.isValidElement)(e))?n.map((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return a(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),new Error("The Docusaurus <Translate> component only accept simple string values");const r=l({message:e,id:t});return(0,o.jsx)(o.Fragment,{children:a(r,n)})}},946:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(7378);const o="navigation-with-keyboard";function a(){(0,r.useEffect)(()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}},[])}},1063:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7378),s=[],u=[];var c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(function(e){return n.loading=!1,n.loaded=e,e}).catch(function(e){throw n.loading=!1,n.error=e,e}),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then(function(e){t.loaded[r]=e}).catch(function(e){t.error=e})})}catch(r){t.error=r}return t.promise=Promise.all(n).then(function(e){return t.loading=!1,e}).catch(function(e){throw t.loading=!1,e}),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),g=null;function h(){return g||(g=e(m.loader)),g.promise}return s.push(h),"function"==typeof m.webpack&&u.push(function(){if((0,m.webpack)().every(function(e){return void 0!==e&&void 0!==n.m[e]}))return h()}),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",function(){r.setState({error:null,loading:!0,timedOut:!1}),g=e(m.loader),r._loadModule()}),h(),r.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach(function(t){e.context.report(t)}),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout(function(){t({pastDelay:!0})},m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout(function(){t({timedOut:!0})},m.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then(function(){return n(),null}).catch(function(e){return n(),null})}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextType",c),p}function g(e){return m(d,e)}g.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var h=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function y(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return y(e)})}g.Capture=h,g.preloadAll=function(){return new Promise(function(e,t){y(s).then(e,t)})},g.preloadReady=function(){return new Promise(function(e,t){y(u).then(e,e)})},e.exports=g},1200:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7378);const o=n(9738).A.canUseDOM?r.useLayoutEffect:r.useEffect},1408:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},1434:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1460:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(7378),o=n(9738),a=n(3724),i=(n(1200),n(9328)),l=n(6106);const s=r.createContext(void 0);function u({children:e}){const t=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)(()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}}),[])}();return(0,l.jsx)(s.Provider,{value:t,children:e})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t=[]){const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)(()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},1709:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(7378),o=n(7990),a=n(321);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)(()=>function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;return t.find(n)||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)}({routes:o.A,baseUrl:e}),[e])}},2196:(e,t,n)=>{"use strict";n.r(t)},2305:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});n(7378);var r=n(929);const o={iconExternalLink:"iconExternalLink_xtnk"};var a=n(6106);const i="#theme-svg-external-link";function l({width:e=13.5,height:t=13.5}){return(0,a.jsx)("svg",{width:e,height:t,"aria-label":(0,r.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:o.iconExternalLink,children:(0,a.jsx)("use",{href:i})})}},2654:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"\u5173\u95ed","theme.BackToTopButton.buttonAriaLabel":"\u56de\u5230\u9876\u90e8","theme.CodeBlock.copied":"\u590d\u5236\u6210\u529f","theme.CodeBlock.copy":"\u590d\u5236","theme.CodeBlock.copyButtonAriaLabel":"\u590d\u5236\u4ee3\u7801\u5230\u526a\u8d34\u677f","theme.CodeBlock.wordWrapToggle":"\u5207\u6362\u81ea\u52a8\u6362\u884c","theme.DocSidebarItem.collapseCategoryAriaLabel":"\u6298\u53e0\u4fa7\u8fb9\u680f\u5206\u7c7b \'{label}\'","theme.DocSidebarItem.expandCategoryAriaLabel":"\u5c55\u5f00\u4fa7\u8fb9\u680f\u5206\u7c7b \'{label}\'","theme.ErrorPageContent.title":"\u9875\u9762\u5df2\u5d29\u6e83\u3002","theme.ErrorPageContent.tryAgain":"\u91cd\u8bd5","theme.IconExternalLink.ariaLabel":"(opens in new tab)","theme.NavBar.navAriaLabel":"\u4e3b\u5bfc\u822a","theme.NotFound.p1":"\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u627e\u7684\u9875\u9762\u3002","theme.NotFound.p2":"\u8bf7\u8054\u7cfb\u539f\u59cb\u94fe\u63a5\u6765\u6e90\u7f51\u7ad9\u7684\u6240\u6709\u8005\uff0c\u5e76\u544a\u77e5\u4ed6\u4eec\u94fe\u63a5\u5df2\u635f\u574f\u3002","theme.NotFound.title":"\u627e\u4e0d\u5230\u9875\u9762","theme.TOCCollapsible.toggleButtonLabel":"\u672c\u9875\u603b\u89c8","theme.admonition.caution":"\u8b66\u544a","theme.admonition.danger":"\u5371\u9669","theme.admonition.info":"\u4fe1\u606f","theme.admonition.note":"\u5907\u6ce8","theme.admonition.tip":"\u63d0\u793a","theme.admonition.warning":"\u6ce8\u610f","theme.blog.archive.description":"\u5386\u53f2\u535a\u6587","theme.blog.archive.title":"\u5386\u53f2\u535a\u6587","theme.blog.author.noPosts":"\u8be5\u4f5c\u8005\u5c1a\u672a\u64b0\u5199\u4efb\u4f55\u6587\u7ae0\u3002","theme.blog.author.pageTitle":"{authorName} - {nPosts}","theme.blog.authorsList.pageTitle":"\u4f5c\u8005","theme.blog.authorsList.viewAll":"\u67e5\u770b\u6240\u6709\u4f5c\u8005","theme.blog.paginator.navAriaLabel":"\u535a\u6587\u5217\u8868\u5206\u9875\u5bfc\u822a","theme.blog.paginator.newerEntries":"\u8f83\u65b0\u7684\u535a\u6587","theme.blog.paginator.olderEntries":"\u8f83\u65e7\u7684\u535a\u6587","theme.blog.post.paginator.navAriaLabel":"\u535a\u6587\u5206\u9875\u5bfc\u822a","theme.blog.post.paginator.newerPost":"\u8f83\u65b0\u4e00\u7bc7","theme.blog.post.paginator.olderPost":"\u8f83\u65e7\u4e00\u7bc7","theme.blog.post.plurals":"{count} \u7bc7\u535a\u6587","theme.blog.post.readMore":"\u9605\u8bfb\u66f4\u591a","theme.blog.post.readMoreLabel":"\u9605\u8bfb {title} \u7684\u5168\u6587","theme.blog.post.readingTime.plurals":"\u9605\u8bfb\u9700 {readingTime} \u5206\u949f","theme.blog.sidebar.navAriaLabel":"\u6700\u8fd1\u535a\u6587\u5bfc\u822a","theme.blog.tagTitle":"{nPosts} \u542b\u6709\u6807\u7b7e\u300c{tagName}\u300d","theme.colorToggle.ariaLabel":"\u5207\u6362\u6d45\u8272/\u6697\u9ed1\u6a21\u5f0f\uff08\u5f53\u524d\u4e3a{mode}\uff09","theme.colorToggle.ariaLabel.mode.dark":"\u6697\u9ed1\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.light":"\u6d45\u8272\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.system":"system mode","theme.common.editThisPage":"\u7f16\u8f91\u6b64\u9875","theme.common.headingLinkTitle":"{heading}\u7684\u76f4\u63a5\u94fe\u63a5","theme.common.skipToMainContent":"\u8df3\u5230\u4e3b\u8981\u5185\u5bb9","theme.contentVisibility.draftBanner.message":"\u6b64\u9875\u9762\u662f\u8349\u7a3f\uff0c\u4ec5\u5728\u5f00\u53d1\u73af\u5883\u4e2d\u53ef\u89c1\uff0c\u4e0d\u4f1a\u5305\u542b\u5728\u6b63\u5f0f\u7248\u672c\u4e2d\u3002","theme.contentVisibility.draftBanner.title":"\u8349\u7a3f\u9875","theme.contentVisibility.unlistedBanner.message":"\u6b64\u9875\u9762\u672a\u5217\u51fa\u3002\u641c\u7d22\u5f15\u64ce\u4e0d\u4f1a\u5bf9\u5176\u7d22\u5f15\uff0c\u53ea\u6709\u62e5\u6709\u76f4\u63a5\u94fe\u63a5\u7684\u7528\u6237\u624d\u80fd\u8bbf\u95ee\u3002","theme.contentVisibility.unlistedBanner.title":"\u672a\u5217\u51fa\u9875","theme.docs.DocCard.categoryDescription.plurals":"{count} \u4e2a\u9879\u76ee","theme.docs.breadcrumbs.home":"\u4e3b\u9875\u9762","theme.docs.breadcrumbs.navAriaLabel":"\u9875\u9762\u8def\u5f84","theme.docs.paginator.navAriaLabel":"\u6587\u4ef6\u9009\u9879\u5361","theme.docs.paginator.next":"\u4e0b\u4e00\u9875","theme.docs.paginator.previous":"\u4e0a\u4e00\u9875","theme.docs.sidebar.closeSidebarButtonAriaLabel":"\u5173\u95ed\u5bfc\u822a\u680f","theme.docs.sidebar.collapseButtonAriaLabel":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.collapseButtonTitle":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonAriaLabel":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonTitle":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.navAriaLabel":"\u6587\u6863\u4fa7\u8fb9\u680f","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"\u5207\u6362\u5bfc\u822a\u680f","theme.docs.tagDocListPageTitle":"{nDocsTagged}\u300c{tagName}\u300d","theme.docs.tagDocListPageTitle.nDocsTagged":"{count} \u7bc7\u6587\u6863\u5e26\u6709\u6807\u7b7e","theme.docs.versionBadge.label":"\u7248\u672c\uff1a{versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\u6700\u65b0\u7248\u672c","theme.docs.versions.latestVersionSuggestionLabel":"\u6700\u65b0\u7684\u6587\u6863\u8bf7\u53c2\u9605 {latestVersionLink} ({versionLabel})\u3002","theme.docs.versions.unmaintainedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u7684\u6587\u6863\uff0c\u73b0\u5df2\u4e0d\u518d\u79ef\u6781\u7ef4\u62a4\u3002","theme.docs.versions.unreleasedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u5c1a\u672a\u53d1\u884c\u7684\u6587\u6863\u3002","theme.lastUpdated.atDate":"\u4e8e {date} ","theme.lastUpdated.byUser":"\u7531 {user} ","theme.lastUpdated.lastUpdatedAtBy":"\u6700\u540e{byUser}{atDate}\u66f4\u65b0","theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel":"Collapse the dropdown","theme.navbar.mobileDropdown.collapseButton.expandAriaLabel":"Expand the dropdown","theme.navbar.mobileLanguageDropdown.label":"\u9009\u62e9\u8bed\u8a00","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 \u56de\u5230\u4e3b\u83dc\u5355","theme.navbar.mobileVersionsDropdown.label":"\u9009\u62e9\u7248\u672c","theme.tags.tagsListLabel":"\u6807\u7b7e\uff1a","theme.tags.tagsPageLink":"\u67e5\u770b\u6240\u6709\u6807\u7b7e","theme.tags.tagsPageTitle":"\u6807\u7b7e"}')},2700:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!==s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!==s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!==s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!==s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!a(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},2733:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(7378);var r=n(8955),o=n(6106);function a({locale:e,version:t,tag:n}){const a=e;return(0,o.jsxs)(r.A,{children:[e&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,o.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:language",content:a}),t&&(0,o.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},2752:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>h,g1:()=>b});var r=n(7378),o=n(8884),a=n(6512),i=n(5794),l=n(6687),s=n(9328),u=n(6106);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map(e=>[e,{preferredVersionName:null}]));const f=r.createContext(null);function m(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)(()=>Object.keys(e),[e]),[a,l]=(0,r.useState)(()=>p(n));(0,r.useEffect)(()=>{l(function({pluginIds:e,versionPersistence:t,allDocsData:n}){function r(e){const r=d.read(e,t);return n[e].versions.some(e=>e.name===r)?{preferredVersionName:r}:(d.clear(e,t),{preferredVersionName:null})}return Object.fromEntries(e.map(e=>[e,r(e)]))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]);return[a,(0,r.useMemo)(()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}function g({children:e}){const t=m();return(0,u.jsx)(f.Provider,{value:t,children:e})}function h({children:e}){return(0,u.jsx)(g,{children:e})}function y(){const e=(0,r.useContext)(f);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function b(e=a.W){const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,r.useCallback)(t=>{i.savePreferredVersion(e,t)},[i,e])}}},2811:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,e:()=>f});var r=n(7378),o=n(4964),a=n(5185),i=n(3409),l=n(5794),s=n(9328),u=n(6106);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1),u=(0,r.useCallback)(()=>{s(e=>!e)},[]);return(0,r.useEffect)(()=>{"desktop"===t&&s(!1)},[t]),(0,r.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:i}),[e,n,u,i])}function p({handler:e}){return(0,i.$Z)(e),null}function f({children:e}){const t=d();return(0,u.jsxs)(u.Fragment,{children:[t.shown&&(0,u.jsx)(p,{handler:()=>(t.toggle(),!1)}),(0,u.jsx)(c.Provider,{value:t,children:e})]})}function m(){const e=r.useContext(c);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},3108:(e,t,n)=>{e.exports=n(6870)()},3372:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},3398:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach(([n,a])=>{const i=o?`${o}.${n}`:n;r(a)?e(a,i):t[i]=a})}(e),t}},3409:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,jy:()=>s});var r=n(7378),o=n(505),a=n(9328);function i(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}((t,n)=>{if("POP"===n)return e(t,n)})}function l(e){const t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){const n=function(e,t){const n=new URLSearchParams;for(const r of e)for(const[e,o]of r.entries())"append"===t?n.append(e,o):n.set(e,o);return n}(e.map(e=>new URLSearchParams(e??"")),t),r=n.toString();return r?`?${r}`:r}},3426:(e,t,n)=>{"use strict";t.rA=t.Ks=void 0;const r=n(6636);var o=n(6109);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(7168);var i=n(4499);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},3635:(e,t,n)=>{"use strict";e.exports=n(5575)},3724:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7378),o=n(8722);function a(){return(0,r.useContext)(o.o)}},3871:(e,t,n)=>{"use strict";var r=n(3635),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h<i.length;++h){var y=i[h];if(!(a[y]||r&&r[y]||g&&g[y]||l&&l[y])){var b=p(n,y);try{u(t,y,b)}catch(v){}}}}return t}},3873:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(7378);var r=n(3372),o=n(929),a=n(5794),i=n(9205),l=n(9106);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_hmm4",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_Y4uQ"};var u=n(6106);function c({as:e,id:t,...n}){const c=(0,l.A)(),{navbar:{hideOnScroll:d}}=(0,a.p)();if("h1"===e||!t)return(0,u.jsx)(e,{...n,id:void 0});c.collectAnchor(t);const p=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,u.jsxs)(e,{...n,className:(0,r.A)("anchor",d?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,n.className),id:t,children:[n.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${t}`,"aria-label":p,title:p,translate:"no",children:"\u200b"})]})}},4009:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4054:e=>{"use strict";e.exports=JSON.parse('{"/upage/-504":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/upage/-a9c":{"__comp":"a7bd4aaa","__props":"cea871c7"},"/upage/-b1b":{"__comp":"a94703ab"},"/upage/404-page-329":{"__comp":"17896441","content":"68f842ca"},"/upage/configuration-407":{"__comp":"17896441","content":"6c46c4d6"},"/upage/contributing-26f":{"__comp":"17896441","content":"931f8773"},"/upage/contributing/code-of-conduct-789":{"__comp":"17896441","content":"003b49f9"},"/upage/contributing/code-standards-827":{"__comp":"17896441","content":"1ec2c777"},"/upage/contributing/development-setup-291":{"__comp":"17896441","content":"13d3c590"},"/upage/contributing/ways-to-contribute-60d":{"__comp":"17896441","content":"7e9a7b3c"},"/upage/contributing/workflow-c39":{"__comp":"17896441","content":"d6dcccef"},"/upage/deployment-guide-5ea":{"__comp":"14eb3368","__props":"710eb747"},"/upage/deployment/docker-4ec":{"__comp":"17896441","content":"bb48f956"},"/upage/deployment/docker-compose-21e":{"__comp":"17896441","content":"2f401bd1"},"/upage/deployment/logto-aa7":{"__comp":"17896441","content":"a5796a8c"},"/upage/deployment/others-9dd":{"__comp":"17896441","content":"221e29db"},"/upage/deployment/source-3ce":{"__comp":"17896441","content":"86585ddf"},"/upage/faq-e53":{"__comp":"17896441","content":"2ccc2e53"},"/upage/quick-start-504":{"__comp":"17896441","content":"cc946c3e"},"/upage/user-guide-ed9":{"__comp":"14eb3368","__props":"778fc58b"},"/upage/user-guide/basics-824":{"__comp":"17896441","content":"315f1747"},"/upage/-08c":{"__comp":"17896441","content":"6115a388"}}')},4059:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(5773)},4082:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(7378),o=n(321),a=n(8715);function i(){const{siteConfig:e}=(0,o.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)((e,r)=>function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:o=!1}={},router:i}){if(!n||n.startsWith("#")||(0,a.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i]);return{withBaseUrl:l}}function l(e,t={}){const{withBaseUrl:n}=i();return n(e,t)}},4141:(e,t,n)=>{var r={"./":9606};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4141},4169:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},4227:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4255:(e,t,n)=>{"use strict";var r=n(8876),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.A,{additionalLanguages:r}=t,a=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(8320),n(4141)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==a&&(globalThis.Prism=e)}(r.My)},4292:(e,t,n)=>{"use strict";var r=n(7378),o=n(9124),a=n(6562),i=n(6898),l=n(4784),s=n(9738);const u=[n(2196),n(4255),n(7676),n(6142)];var c=n(7990),d=n(505),p=n(8041),f=n(6106);function m({children:e}){return(0,f.jsx)(f.Fragment,{children:e})}var g=n(8767);const h=e=>e.defaultFormatter(e);function y({children:e}){return(0,f.jsx)(g.AL,{formatter:h,children:e})}function b({children:e}){return(0,f.jsx)(y,{children:e})}var v=n(8955),w=n(321),k=n(4082),x=n(5794),S=n(496),E=n(79),_=n(946);var C=n(3426),A=n(2733);function T(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),r=(0,E.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`))]})}function j({permalink:e}){const{siteConfig:{url:t}}=(0,w.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,d.zy)();return e+(0,C.Ks)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,f.jsxs)(v.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:r}),(0,f.jsx)("link",{rel:"canonical",href:r})]})}function L(){const{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,x.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(v.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:_.w})]}),n&&(0,f.jsx)(S.be,{image:n}),(0,f.jsx)(j,{}),(0,f.jsx)(T,{}),(0,f.jsx)(A.A,{tag:"default",locale:e}),(0,f.jsx)(v.A,{children:t.map((e,t)=>(0,f.jsx)("meta",{...e},t))})]})}const P=new Map;var N=n(8722),R=n(4542),O=n(1200);function D(e,...t){const n=u.map(n=>{const r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}const I=function({children:e,location:t,previousLocation:n}){return(0,O.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,o=e.search===t.search;if(n&&r&&!o)return;const{hash:a}=e;if(a){const e=decodeURIComponent(a.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),D("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function M(e){const t=Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(c.A,e)).flat();return Promise.all(t.map(e=>e.route.component.preload?.()))}class F extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?D("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=D("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),M(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const z=F,B="__docusaurus-base-url-issue-banner-suggestion-container";function $(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${B}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${B}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,f.jsx)(f.Fragment,{children:!s.A.canUseDOM&&(0,f.jsx)(v.A,{children:(0,f.jsx)("script",{children:$(e)})})})}function q(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,f.jsx)(U,{}):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,w.A)(),a=(0,k.Ay)(e),{htmlLang:i,direction:l}=o[r];return(0,f.jsxs)(v.A,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:a})]})}var G=n(7299),V=n(3724);function W(){const e=(0,V.A)();return(0,f.jsx)(v.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const Q=(0,p.v)(c.A);function K(){const e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,p.u)(c.A,e.pathname).some(({route:e})=>!0===e.exact))return P.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return P.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(z,{location:e,children:Q})}function Y(){return(0,f.jsx)(G.A,{children:(0,f.jsx)(R.l,{children:(0,f.jsxs)(N.x,{children:[(0,f.jsx)(m,{children:(0,f.jsxs)(b,{children:[(0,f.jsx)(H,{}),(0,f.jsx)(L,{}),(0,f.jsx)(q,{}),(0,f.jsx)(K,{})]})}),(0,f.jsx)(W,{})]})})})}var Z=n(4054);const X=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)})}:function(e){return new Promise((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})};var J=n(3398);const ee=new Set,te=new Set,ne=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,re={prefetch:e=>{if(!(e=>!ne()&&!te.has(e)&&!ee.has(e))(e))return!1;ee.add(e);const t=(0,p.u)(c.A,e).flatMap(e=>{return t=e.route.path,Object.entries(Z).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,J.A)(e)));var t});return Promise.all(t.map(e=>{const t=n.gca(e);return t&&!t.includes("undefined")?X(t).catch(()=>{}):Promise.resolve()}))},preload:e=>!!(e=>!ne()&&!te.has(e))(e)&&(te.add(e),M(e))},oe=Object.freeze(re);function ae({children:e}){return"hash"===l.A.future.experimental_router?(0,f.jsx)(i.I9,{children:e}):(0,f.jsx)(i.Kd,{children:e})}const ie=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=oe;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.vd,{children:(0,f.jsx)(ae,{children:(0,f.jsx)(Y,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ie)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};M(window.location.pathname).then(()=>{(0,r.startTransition)(i)})}},4385:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},4542:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(7378),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/upage/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/upage/","mainDocId":"index","docs":[{"id":"404-page","path":"/upage/404-page"},{"id":"configuration","path":"/upage/configuration","sidebar":"tutorialSidebar"},{"id":"contributing/code-of-conduct","path":"/upage/contributing/code-of-conduct","sidebar":"tutorialSidebar"},{"id":"contributing/code-standards","path":"/upage/contributing/code-standards","sidebar":"tutorialSidebar"},{"id":"contributing/contributing","path":"/upage/contributing","sidebar":"tutorialSidebar"},{"id":"contributing/development-setup","path":"/upage/contributing/development-setup","sidebar":"tutorialSidebar"},{"id":"contributing/ways-to-contribute","path":"/upage/contributing/ways-to-contribute","sidebar":"tutorialSidebar"},{"id":"contributing/workflow","path":"/upage/contributing/workflow","sidebar":"tutorialSidebar"},{"id":"deployment/docker","path":"/upage/deployment/docker","sidebar":"tutorialSidebar"},{"id":"deployment/docker-compose","path":"/upage/deployment/docker-compose","sidebar":"tutorialSidebar"},{"id":"deployment/logto","path":"/upage/deployment/logto","sidebar":"tutorialSidebar"},{"id":"deployment/others","path":"/upage/deployment/others","sidebar":"tutorialSidebar"},{"id":"deployment/source","path":"/upage/deployment/source","sidebar":"tutorialSidebar"},{"id":"faq","path":"/upage/faq","sidebar":"tutorialSidebar"},{"id":"index","path":"/upage/","sidebar":"tutorialSidebar"},{"id":"quick-start","path":"/upage/quick-start","sidebar":"tutorialSidebar"},{"id":"user-guide/basics","path":"/upage/user-guide/basics","sidebar":"tutorialSidebar"},{"id":"deployment-guide","path":"/upage/deployment-guide","sidebar":"tutorialSidebar"},{"id":"user-guide","path":"/upage/user-guide","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/upage/","label":"\u9996\u9875"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u7b80\u4f53\u4e2d\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://halo-dev.github.io","baseUrl":"/upage/"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.9.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.9.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.9.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.9.0"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.9.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.9.0"}}}');var u=n(6106);const c={siteConfig:o.A,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(c);function p({children:e}){return(0,u.jsx)(d.Provider,{value:c,children:e})}},4564:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l(function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout(function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout(function(){n.remove(),t()},c)},c)):setTimeout(t,c)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout(function(){n.status&&(n.trickle(),e())},r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always(function(){0===--t?(e=0,n.done()):n.set((e-t)/e)}),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},4784:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r={title:"UPage \u6587\u6863",tagline:"UPage \u662f\u4e00\u6b3e\u57fa\u4e8e\u4eba\u5de5\u667a\u80fd\u7684\u53ef\u89c6\u5316\u7f51\u9875\u6784\u5efa\u5e73\u53f0",favicon:"../public/favicon.svg",url:"https://halo-dev.github.io",baseUrl:"/upage/",organizationName:"halo-dev",projectName:"upage",trailingSlash:!1,onBrokenLinks:"warn",i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{path:"content",routeBasePath:"/",sidebarPath:"/home/runner/work/upage/upage/docs/sidebars.js",editUrl:"https://github.com/halo-dev/upage/edit/main/docs/content/"},blog:!1,theme:{customCss:"/home/runner/work/upage/upage/docs/src/css/custom.css"}}]],themeConfig:{image:"img/social-card.png",navbar:{title:"UPage",logo:{alt:"UPage Logo",src:"img/logo.svg"},items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"\u4f7f\u7528\u6587\u6863"},{href:"https://github.com/halo-dev/upage",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"\u6587\u6863",items:[{label:"\u5feb\u901f\u5f00\u59cb",to:"/quick-start"},{label:"\u90e8\u7f72\u6307\u5357",to:"/category/deployment-guide"}]},{title:"\u793e\u533a",items:[{label:"GitHub Issues",href:"https://github.com/halo-dev/upage/issues"},{label:"GitHub Discussions",href:"https://github.com/halo-dev/upage/discussions"}]},{title:"\u66f4\u591a",items:[{label:"GitHub",href:"https://github.com/halo-dev/upage"}]}],copyright:"Copyright \xa9 2025 \u51cc\u971e\u8f6f\u4ef6. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{v4:{removeLegacyPostBuildHeadAttribute:!1,useCssCascadeLayers:!1},experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1,rspackPersistentCache:!1,ssgWorkerThreads:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,emoji:!0,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1},hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"}}}},4893:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(7378),o=n(6106);const a=r.createContext(null);function i({children:e,value:t}){const n=r.useContext(a),i=(0,r.useMemo)(()=>function({parent:e,value:t}){if(!e){if(!t)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in t))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return t}const n={...e.data,...t?.data};return{plugin:e.plugin,data:n}}({parent:n,value:t}),[n,t]);return(0,o.jsx)(a.Provider,{value:i,children:e})}},4964:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(7378),o=n(9328),a=n(6106);const i=r.createContext(null);function l({children:e}){const t=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){const n=(0,r.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,a]=n,l=(0,o.Be)(t);return(0,r.useEffect)(()=>{a({component:e,props:l})},[a,e,l]),(0,r.useEffect)(()=>()=>a({component:null,props:null}),[a]),null}},5074:(e,t,n)=>{"use strict";n.d(t,{N:()=>g,u:()=>s});var r=n(7378),o=n(1200),a=n(4385),i=n(6106);const l="ease-in-out";function s({initialState:e}){const[t,n]=(0,r.useState)(e??!1),o=(0,r.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p({collapsibleRef:e,collapsed:t,animation:n}){const o=(0,r.useRef)(!1);(0,r.useEffect)(()=>{const r=e.current;function i(){const e=r.scrollHeight,t=n?.duration??function(e){if((0,a.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(e);return{transition:`height ${t}ms ${n?.easing??l}`,height:`${e}px`}}function s(){const e=i();r.style.transition=e.transition,r.style.height=e.height}if(!o.current)return d(r,t),void(o.current=!0);return r.style.willChange="height",function(){const e=requestAnimationFrame(()=>{t?(s(),requestAnimationFrame(()=>{r.style.height=u.height,r.style.overflow=u.overflow})):(r.style.display="block",requestAnimationFrame(()=>{s()}))});return()=>cancelAnimationFrame(e)}()},[e,t,n])}function f({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:a,className:l}){const s=(0,r.useRef)(null);return p({collapsibleRef:s,collapsed:t,animation:o}),(0,i.jsx)(e,{ref:s,onTransitionEnd:e=>{"height"===e.propertyName&&(d(s.current,t),a?.(t))},className:l,children:n})}function m({collapsed:e,...t}){const[n,a]=(0,r.useState)(!e),[l,s]=(0,r.useState)(e);return(0,o.A)(()=>{e||a(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,i.jsx)(f,{...t,collapsed:l}):null}function g({lazy:e,...t}){const n=e?m:f;return(0,i.jsx)(n,{...t})}},5185:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7378),o=n(9738);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l({desktopBreakpoint:e=i}={}){const[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},5445:(e,t,n)=>{var r=n(1434);e.exports=g,e.exports.parse=a,e.exports.compile=function(e,t){return u(a(e,t),t)},e.exports.tokensToFunction=u,e.exports.tokensToRegExp=m;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var c=n[0],p=n[1],f=n.index;if(s+=e.slice(l,f),l=f+c.length,p)s+=p[1];else{var m=e[l],g=n[2],h=n[3],y=n[4],b=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=g||u,_=y||b,C=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?d(_):w?".*":i(E,C)})}}return l<e.length&&(s+=e.substr(l)),s&&r.push(s),r}function i(e,t){return!t||t.indexOf(e)>-1?"[^"+c(e)+"]+?":c(t)+"|(?:(?!"+c(t)+")[^"+c(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function u(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",f(t)));return function(t,o){for(var a="",i=t||{},u=(o||{}).pretty?l:encodeURIComponent,c=0;c<e.length;c++){var d=e[c];if("string"!=typeof d){var p,f=i[d.name];if(null==f){if(d.optional){d.partial&&(a+=d.prefix);continue}throw new TypeError('Expected "'+d.name+'" to be defined')}if(r(f)){if(!d.repeat)throw new TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(d.optional)continue;throw new TypeError('Expected "'+d.name+'" to not be empty')}for(var m=0;m<f.length;m++){if(p=u(f[m]),!n[c].test(p))throw new TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(p)+"`");a+=(0===m?d.prefix:d.delimiter)+p}}else{if(p=d.asterisk?s(f):u(f),!n[c].test(p))throw new TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+p+'"');a+=d.prefix+p}}else a+=d}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function d(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function p(e,t){return e.keys=t,e}function f(e){return e&&e.sensitive?"":"i"}function m(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var s=e[l];if("string"==typeof s)i+=c(s);else{var u=c(s.prefix),d="(?:"+s.pattern+")";t.push(s),s.repeat&&(d+="(?:"+u+d+")*"),i+=d=s.optional?s.partial?u+"("+d+")?":"(?:"+u+"("+d+"))?":u+"("+d+")"}}var m=c(n.delimiter||"/"),g=i.slice(-m.length)===m;return o||(i=(g?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&g?"":"(?="+m+"|$)",p(new RegExp("^"+i,f(n)),t)}function g(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return p(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(g(e[o],t,n).source);return p(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return m(a(e,n),t,n)}(e,t,n)}},5538:(e,t,n)=>{"use strict";var r=n(7378),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,a={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:u,ref:c,props:a,_owner:l.current}}t.Fragment=a,t.jsx=u,t.jsxs=u},5575:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case h:case g:case s:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=h,t.Memo=g,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===h},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=k},5647:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(7378),o=n(9328),a=n(6106);const i=r.createContext(null);function l({children:e,version:t}){return(0,a.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},5773:(e,t,n)=>{"use strict";var r=n(7378),o=n(7748);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){h[e]=new g(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];h[t]=new g(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){h[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){h[e]=new g(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){h[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){h[e]=new g(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){h[e]=new g(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){h[e]=new g(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){h[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)});var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function v(e,t,n,r){var o=h.hasOwnProperty(t)?h[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(y,b);h[t]=new g(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(y,b);h[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(y,b);h[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)}),h.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)});var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),A=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),N=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var I,M=Object.assign;function F(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var o=u.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l]){var s="\n"+o[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function $(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case j:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Z(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function ae(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction(function(){return ce(e,t)})}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function ge(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ge(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach(function(e){me.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]})});var ye=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=wo(e)){if("function"!=typeof xe)throw Error(a(280));var t=e.stateNode;t&&(t=xo(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Ae(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Te(e,t){return e(t)}function je(){}var Le=!1;function Pe(e,t,n){if(Le)return e(t,n);Le=!0;try{return Te(e,t,n)}finally{Le=!1,(null!==Se||null!==Ee)&&(je(),Ae())}}function Ne(e,t){var n=e.stateNode;if(null===n)return null;var r=xo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Re=!1;if(c)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Re=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ce){Re=!1}function De(e,t,n,r,o,a,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Ie=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){Ie=!0,Me=e}};function $e(e,t,n,r,o,a,i,l,s){Ie=!1,Me=null,De.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(a(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return He(o),e;if(i===r)return He(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=i;break}if(s===r){l=!0,r=o,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=o;break}if(s===r){l=!0,r=i,n=o;break}s=s.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=o.unstable_scheduleCallback,Qe=o.unstable_cancelCallback,Ke=o.unstable_shouldYield,Ye=o.unstable_requestPaint,Ze=o.unstable_now,Xe=o.unstable_getCurrentPriorityLevel,Je=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~o;0!==l?r=dt(l):0!==(a&=i)&&(r=dt(a))}else 0!==(i=n&~o)?r=dt(i):0!==a&&(r=dt(a));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gt(){var e=ut;return!(4194240&(ut<<=1))&&(ut=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,At=[],Tt=null,jt=null,Lt=null,Pt=new Map,Nt=new Map,Rt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Nt.delete(t.pointerId)}}function It(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=wo(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Mt(e){var t=vo(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,function(){St(n)})}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=wo(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Tt&&Ft(Tt)&&(Tt=null),null!==jt&&Ft(jt)&&(jt=null),null!==Lt&&Ft(Lt)&&(Lt=null),Pt.forEach(zt),Nt.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<At.length){$t(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Tt&&$t(Tt,e),null!==jt&&$t(jt,e),null!==Lt&&$t(Lt,e),Pt.forEach(t),Nt.forEach(t),n=0;n<Rt.length;n++)(r=Rt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Rt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var o=vt,a=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=o,qt.transition=a}}function Vt(e,t,n,r){var o=vt,a=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=o,qt.transition=a}}function Wt(e,t,n,r){if(Ht){var o=Kt(e,t,n,r);if(null===o)Hr(e,t,r,Qt,n),Dt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Tt=It(Tt,e,t,n,r,o),!0;case"dragenter":return jt=It(jt,e,t,n,r,o),!0;case"mouseover":return Lt=It(Lt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Pt.set(a,It(Pt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Nt.set(a,It(Nt.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==o;){var a=wo(o);if(null!==a&&kt(a),null===(a=Kt(e,t,n,r))&&Hr(e,t,r,Qt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Qt=null;function Kt(e,t,n,r){if(Qt=null,null!==(e=vo(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,o="value"in Zt?Zt.value:Zt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Jt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=on(un),dn=M({},un,{view:0,detail:0}),pn=on(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(an=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=an=0,sn=e),an)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=on(fn),gn=on(M({},fn,{dataTransfer:0})),hn=on(M({},dn,{relatedTarget:0})),yn=on(M({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=M({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=on(bn),wn=on(M({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=on(Cn),Tn=on(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=on(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=on(M({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nn=on(Pn),Rn=[9,13,27,32],On=c&&"CompositionEvent"in window,Dn=null;c&&"documentMode"in document&&(Dn=document.documentMode);var In=c&&"TextEvent"in window&&!Dn,Mn=c&&(!On||Dn&&8<Dn&&11>=Dn),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Ce(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function Qn(e){Fr(e,0)}function Kn(e){if(W(ko(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Kn(Wn)){var t=[];Gn(t,Wn,e,ke(e)),Pe(Qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Wn)}function ar(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!d.call(t,o)||!lr(e[o],t[o]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=cr(n,a);var i=cr(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var gr=c&&"documentMode"in document&&11>=document.documentMode,hr=null,yr=null,br=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==hr||hr!==Q(r)||("selectionStart"in(r=hr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&sr(br,r)||(br=r,0<(r=Vr(yr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Ar=_r("animationiteration"),Tr=_r("animationstart"),jr=_r("transitionend"),Lr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Nr(e,t){Lr.set(e,t),s(t,[e])}for(var Rr=0;Rr<Pr.length;Rr++){var Or=Pr[Rr];Nr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Nr(Cr,"onAnimationEnd"),Nr(Ar,"onAnimationIteration"),Nr(Tr,"onAnimationStart"),Nr("dblclick","onDoubleClick"),Nr("focusin","onFocus"),Nr("focusout","onBlur"),Nr(jr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,l,s,u){if($e.apply(this,arguments),Ie){if(!Ie)throw Error(a(198));var c=Me;Ie=!1,Me=null,Fe||(Fe=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Mr(o,l,u),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Mr(o,l,u),a=s}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ho];void 0===n&&(n=t[ho]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach(function(t){"selectionchange"!==t&&(Ir.has(t)||Br(t,!1,e),Br(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var o=Gt;break;case 4:o=Vt;break;default:o=Wt}n=o.bind(null,t,n,e),o=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=vo(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}Pe(function(){var r=a,o=ke(n),i=[];e:{var l=Lr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=An;break;case"focusin":u="focus",s=hn;break;case"focusout":u="blur",s=hn;break;case"beforeblur":case"afterblur":s=hn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=jn;break;case Cr:case Ar:case Tr:s=yn;break;case jr:s=Ln;break;case"scroll":s=pn;break;case"wheel":s=Nn;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Tn}var c=!!(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var g=(f=m).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&(null!=(g=Ne(m,p))&&c.push(Gr(m,g,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,o),i.push({event:l,listeners:c}))}}if(!(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!vo(u)&&!u[go])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?vo(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=mn,g="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,g="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ko(s),f=null==u?l:ko(u),(l=new c(g,m+"leave",s,n,o)).target=d,l.relatedTarget=f,g=null,vo(o)===r&&((c=new c(p,m+"enter",u,n,o)).target=f,c.relatedTarget=d,g=c),d=g,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Wr(f))m++;for(f=0,g=p;g;g=Wr(g))f++;for(;0<m-f;)c=Wr(c),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Wr(c),p=Wr(p)}c=null}else c=null;null!==s&&Qr(i,l,s,c,!1),null!==u&&null!==d&&Qr(i,d,u,c,!0)}if("select"===(s=(l=r?ko(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var h=Yn;else if(Hn(l))if(Zn)h=ir;else{h=or;var y=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(h=ar);switch(h&&(h=h(e,r))?Gn(i,h,n,o):(y&&y(e,l,r),"focusout"===e&&(y=l._wrapperState)&&y.controlled&&"number"===l.type&&ee(l,"number",l.value)),y=r?ko(r):window,e){case"focusin":(Hn(y)||"true"===y.contentEditable)&&(hr=y,yr=r,br=null);break;case"focusout":br=yr=hr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,o);break;case"selectionchange":if(gr)break;case"keydown":case"keyup":wr(i,n,o)}var b;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(b=en()):(Xt="value"in(Zt=o)?Zt.value:Zt.textContent,Un=!0)),0<(y=Vr(r,v)).length&&(v=new wn(v,e,null,n,o),i.push({event:v,listeners:y}),b?v.data=b:null!==(b=$n(n))&&(v.data=b))),(b=In?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Zt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b))}Fr(i,t)})}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ne(e,n))&&r.unshift(Gr(e,a,o)),null!=(a=Ne(e,t))&&r.push(Gr(e,a,o))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Qr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,o?null!=(s=Ne(n,a))&&i.unshift(Gr(n,s,l)):o||null!=(s=Ne(n,a))&&i.push(Gr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(a(425))}function Jr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(lo)}:ro;function lo(e){setTimeout(function(){throw e})}function so(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Ut(t)}function uo(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function co(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,mo="__reactProps$"+po,go="__reactContainer$"+po,ho="__reactEvents$"+po,yo="__reactListeners$"+po,bo="__reactHandles$"+po;function vo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[go]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=co(e);null!==e;){if(n=e[fo])return n;e=co(e)}return t}n=(e=n).parentNode}return null}function wo(e){return!(e=e[fo]||e[go])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ko(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function xo(e){return e[mo]||null}var So=[],Eo=-1;function _o(e){return{current:e}}function Co(e){0>Eo||(e.current=So[Eo],So[Eo]=null,Eo--)}function Ao(e,t){Eo++,So[Eo]=e.current,e.current=t}var To={},jo=_o(To),Lo=_o(!1),Po=To;function No(e,t){var n=e.type.contextTypes;if(!n)return To;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ro(e){return null!=(e=e.childContextTypes)}function Oo(){Co(Lo),Co(jo)}function Do(e,t,n){if(jo.current!==To)throw Error(a(168));Ao(jo,t),Ao(Lo,n)}function Io(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,q(e)||"Unknown",o));return M({},n,r)}function Mo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||To,Po=jo.current,Ao(jo,e),Ao(Lo,Lo.current),!0}function Fo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Io(e,t,Po),r.__reactInternalMemoizedMergedChildContext=e,Co(Lo),Co(jo),Ao(jo,e)):Co(Lo),Ao(Lo,n)}var zo=null,Bo=!1,$o=!1;function Uo(e){null===zo?zo=[e]:zo.push(e)}function qo(){if(!$o&&null!==zo){$o=!0;var e=0,t=vt;try{var n=zo;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}zo=null,Bo=!1}catch(o){throw null!==zo&&(zo=zo.slice(e+1)),We(Je,qo),o}finally{vt=t,$o=!1}}return null}var Ho=[],Go=0,Vo=null,Wo=0,Qo=[],Ko=0,Yo=null,Zo=1,Xo="";function Jo(e,t){Ho[Go++]=Wo,Ho[Go++]=Vo,Vo=e,Wo=t}function ea(e,t,n){Qo[Ko++]=Zo,Qo[Ko++]=Xo,Qo[Ko++]=Yo,Yo=e;var r=Zo;e=Xo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Zo=1<<32-it(t)+o|n<<o|r,Xo=a+e}else Zo=1<<a|n<<o|r,Xo=e}function ta(e){null!==e.return&&(Jo(e,1),ea(e,1,0))}function na(e){for(;e===Vo;)Vo=Ho[--Go],Ho[Go]=null,Wo=Ho[--Go],Ho[Go]=null;for(;e===Yo;)Yo=Qo[--Ko],Qo[Ko]=null,Xo=Qo[--Ko],Qo[Ko]=null,Zo=Qo[--Ko],Qo[Ko]=null}var ra=null,oa=null,aa=!1,ia=null;function la(e,t){var n=Pu(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function sa(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=uo(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Yo?{id:Zo,overflow:Xo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pu(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ua(e){return!(!(1&e.mode)||128&e.flags)}function ca(e){if(aa){var t=oa;if(t){var n=t;if(!sa(e,t)){if(ua(e))throw Error(a(418));t=uo(n.nextSibling);var r=ra;t&&sa(e,t)?la(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ua(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function da(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function pa(e){if(e!==ra)return!1;if(!aa)return da(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(ua(e))throw fa(),Error(a(418));for(;t;)la(e,t),t=uo(t.nextSibling)}if(da(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=uo(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?uo(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=uo(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function ga(e){null===ia?ia=[e]:ia.push(e)}var ha=w.ReactCurrentBatchConfig;function ya(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function ba(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function va(e){return(0,e._init)(e._payload)}function wa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Ru(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function u(e,t,n,r){var a=n.type;return a===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===N&&va(a)===t.type)?((r=o(t,n.props)).ref=ya(e,t,n),r.return=e,r):((r=Ou(n.type,n.key,n.props,null,e.mode,r)).ref=ya(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Fu(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Du(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ou(t.type,t.key,t.props,null,e.mode,n)).ref=ya(e,null,t),n.return=e,n;case x:return(t=Fu(t,e.mode,n)).return=e,t;case N:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Du(t,e.mode,n,null)).return=e,t;ba(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===o?u(e,t,n,r):null;case x:return n.key===o?c(e,t,n,r):null;case N:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||D(n))return null!==o?null:d(e,t,n,r,null);ba(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case N:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,o,null);ba(t,r)}return null}function g(o,a,l,s){for(var u=null,c=null,d=a,g=a=0,h=null;null!==d&&g<l.length;g++){d.index>g?(h=d,d=null):h=d.sibling;var y=f(o,d,l[g],s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&t(o,d),a=i(y,a,g),null===c?u=y:c.sibling=y,c=y,d=h}if(g===l.length)return n(o,d),aa&&Jo(o,g),u;if(null===d){for(;g<l.length;g++)null!==(d=p(o,l[g],s))&&(a=i(d,a,g),null===c?u=d:c.sibling=d,c=d);return aa&&Jo(o,g),u}for(d=r(o,d);g<l.length;g++)null!==(h=m(d,o,g,l[g],s))&&(e&&null!==h.alternate&&d.delete(null===h.key?g:h.key),a=i(h,a,g),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach(function(e){return t(o,e)}),aa&&Jo(o,g),u}function h(o,l,s,u){var c=D(s);if("function"!=typeof c)throw Error(a(150));if(null==(s=c.call(s)))throw Error(a(151));for(var d=c=null,g=l,h=l=0,y=null,b=s.next();null!==g&&!b.done;h++,b=s.next()){g.index>h?(y=g,g=null):y=g.sibling;var v=f(o,g,b.value,u);if(null===v){null===g&&(g=y);break}e&&g&&null===v.alternate&&t(o,g),l=i(v,l,h),null===d?c=v:d.sibling=v,d=v,g=y}if(b.done)return n(o,g),aa&&Jo(o,h),c;if(null===g){for(;!b.done;h++,b=s.next())null!==(b=p(o,b.value,u))&&(l=i(b,l,h),null===d?c=b:d.sibling=b,d=b);return aa&&Jo(o,h),c}for(g=r(o,g);!b.done;h++,b=s.next())null!==(b=m(g,o,h,b.value,u))&&(e&&null!==b.alternate&&g.delete(null===b.key?h:b.key),l=i(b,l,h),null===d?c=b:d.sibling=b,d=b);return e&&g.forEach(function(e){return t(o,e)}),aa&&Jo(o,h),c}return function e(r,a,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var u=i.key,c=a;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(a=o(c,i.props.children)).return=r,r=a;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===N&&va(u)===c.type){n(r,c.sibling),(a=o(c,i.props)).ref=ya(r,c,i),a.return=r,r=a;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((a=Du(i.props.children,r.mode,s,i.key)).return=r,r=a):((s=Ou(i.type,i.key,i.props,null,r.mode,s)).ref=ya(r,a,i),s.return=r,r=s)}return l(r);case x:e:{for(c=i.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Fu(i,r.mode,s)).return=r,r=a}return l(r);case N:return e(r,a,(c=i._init)(i._payload),s)}if(te(i))return g(r,a,i,s);if(D(i))return h(r,a,i,s);ba(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Mu(i,r.mode,s)).return=r,r=a),l(r)):n(r,a)}}var ka=wa(!0),xa=wa(!1),Sa=_o(null),Ea=null,_a=null,Ca=null;function Aa(){Ca=_a=Ea=null}function Ta(e){var t=Sa.current;Co(Sa),e._currentValue=t}function ja(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function La(e,t){Ea=e,Ca=_a=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(vl=!0),e.firstContext=null)}function Pa(e){var t=e._currentValue;if(Ca!==e)if(e={context:e,memoizedValue:t,next:null},null===_a){if(null===Ea)throw Error(a(308));_a=e,Ea.dependencies={lanes:0,firstContext:e}}else _a=_a.next=e;return t}var Na=null;function Ra(e){null===Na?Na=[e]:Na.push(e)}function Oa(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ra(t)):(n.next=o.next,o.next=n),t.interleaved=n,Da(e,r)}function Da(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ia=!1;function Ma(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function za(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ba(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Ts){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Da(e,n)}return null===(o=r.interleaved)?(t.next=t,Ra(r)):(t.next=o.next,o.next=t),r.interleaved=t,Da(e,n)}function $a(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function Ua(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function qa(e,t,n,r){var o=e.updateQueue;Ia=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?a=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==a){var d=o.baseState;for(i=0,c=u=s=null,l=a;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,g=l;switch(p=t,f=n,g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=g.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Ia=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=f,s=d):c=c.next=f,i|=p;if(null===(l=l.next)){if(null===(l=o.shared.pending))break;l=(p=l).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===c&&(s=d),o.baseState=s,o.firstBaseUpdate=u,o.lastBaseUpdate=c,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Is|=i,e.lanes=i,e.memoizedState=d}}function Ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var Ga={},Va=_o(Ga),Wa=_o(Ga),Qa=_o(Ga);function Ka(e){if(e===Ga)throw Error(a(174));return e}function Ya(e,t){switch(Ao(Qa,t),Ao(Wa,e),Ao(Va,Ga),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Co(Va),Ao(Va,t)}function Za(){Co(Va),Co(Wa),Co(Qa)}function Xa(e){Ka(Qa.current);var t=Ka(Va.current),n=se(t,e.type);t!==n&&(Ao(Wa,e),Ao(Va,n))}function Ja(e){Wa.current===e&&(Co(Va),Co(Wa))}var ei=_o(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var oi=w.ReactCurrentDispatcher,ai=w.ReactCurrentBatchConfig,ii=0,li=null,si=null,ui=null,ci=!1,di=!1,pi=0,fi=0;function mi(){throw Error(a(321))}function gi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function hi(e,t,n,r,o,i){if(ii=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Ji:el,e=n(r,o),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(a(301));i+=1,ui=si=null,t.updateQueue=null,oi.current=tl,e=n(r,o)}while(di)}if(oi.current=Xi,t=null!==si&&null!==si.next,ii=0,ui=si=li=null,ci=!1,t)throw Error(a(300));return e}function yi(){var e=0!==pi;return pi=0,e}function bi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ui?li.memoizedState=ui=e:ui=ui.next=e,ui}function vi(){if(null===si){var e=li.alternate;e=null!==e?e.memoizedState:null}else e=si.next;var t=null===ui?li.memoizedState:ui.next;if(null!==t)ui=t,si=e;else{if(null===e)throw Error(a(310));e={memoizedState:(si=e).memoizedState,baseState:si.baseState,baseQueue:si.baseQueue,queue:si.queue,next:null},null===ui?li.memoizedState=ui=e:ui=ui.next=e}return ui}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=si,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var l=o.next;o.next=i.next,i.next=l}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((ii&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=p,l=r):u=u.next=p,li.lanes|=d,Is|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(vl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,li.lanes|=i,Is|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xi(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{i=e(i,l.action),l=l.next}while(l!==o);lr(i,t.memoizedState)||(vl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function Ei(e,t){var n=li,r=vi(),o=t(),i=!lr(r.memoizedState,o);if(i&&(r.memoizedState=o,vl=!0),r=r.queue,Ii(Ai.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ui&&1&ui.memoizedState.tag){if(n.flags|=2048,Pi(9,Ci.bind(null,n,r,o,t),void 0,null),null===js)throw Error(a(349));30&ii||_i(n,t,o)}return o}function _i(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ci(e,t,n,r){t.value=n,t.getSnapshot=r,Ti(t)&&ji(e)}function Ai(e,t,n){return n(function(){Ti(t)&&ji(e)})}function Ti(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function ji(e){var t=Da(e,1);null!==t&&nu(t,e,1,-1)}function Li(e){var t=bi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Qi.bind(null,li,e),[t.memoizedState,e]}function Pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ni(){return vi().memoizedState}function Ri(e,t,n,r){var o=bi();li.flags|=e,o.memoizedState=Pi(1|t,n,void 0,void 0===r?null:r)}function Oi(e,t,n,r){var o=vi();r=void 0===r?null:r;var a=void 0;if(null!==si){var i=si.memoizedState;if(a=i.destroy,null!==r&&gi(r,i.deps))return void(o.memoizedState=Pi(t,n,a,r))}li.flags|=e,o.memoizedState=Pi(1|t,n,a,r)}function Di(e,t){return Ri(8390656,8,e,t)}function Ii(e,t){return Oi(2048,8,e,t)}function Mi(e,t){return Oi(4,2,e,t)}function Fi(e,t){return Oi(4,4,e,t)}function zi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Bi(e,t,n){return n=null!=n?n.concat([e]):null,Oi(4,4,zi.bind(null,t,e),n)}function $i(){}function Ui(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(lr(n,t)||(n=gt(),li.lanes|=n,Is|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vl=!0),e.memoizedState=n)}function Gi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=ai.transition;ai.transition={};try{e(!1),t()}finally{vt=n,ai.transition=r}}function Vi(){return vi().memoizedState}function Wi(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=Oa(e,t,n,r))){nu(n,e,r,eu()),Zi(n,t,r)}}function Qi(e,t,n){var r=tu(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ki(e))Yi(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(o.next=o,Ra(t)):(o.next=s.next,s.next=o),void(t.interleaved=o)}}catch(u){}null!==(n=Oa(e,t,o,r))&&(nu(n,e,r,o=eu()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===li||null!==t&&t===li}function Yi(e,t){di=ci=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var Xi={readContext:Pa,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Ji={readContext:Pa,useCallback:function(e,t){return bi().memoizedState=[e,void 0===t?null:t],e},useContext:Pa,useEffect:Di,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ri(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ri(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ri(4,2,e,t)},useMemo:function(e,t){var n=bi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=bi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},bi().memoizedState=e},useState:Li,useDebugValue:$i,useDeferredValue:function(e){return bi().memoizedState=e},useTransition:function(){var e=Li(!1),t=e[0];return e=Gi.bind(null,e[1]),bi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=li,o=bi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===js)throw Error(a(349));30&ii||_i(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Di(Ai.bind(null,r,i,e),[e]),r.flags|=2048,Pi(9,Ci.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=bi(),t=js.identifierPrefix;if(aa){var n=Xo;t=":"+t+"R"+(n=(Zo&~(1<<32-it(Zo)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Pa,useCallback:Ui,useContext:Pa,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:ki,useRef:Ni,useState:function(){return ki(wi)},useDebugValue:$i,useDeferredValue:function(e){return Hi(vi(),si.memoizedState,e)},useTransition:function(){return[ki(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1},tl={readContext:Pa,useCallback:Ui,useContext:Pa,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:xi,useRef:Ni,useState:function(){return xi(wi)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===si?t.memoizedState=e:Hi(t,si.memoizedState,e)},useTransition:function(){return[xi(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ol={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=eu(),o=tu(e),a=za(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nu(t,e,o,r),$a(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=eu(),o=tu(e),a=za(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nu(t,e,o,r),$a(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=eu(),r=tu(e),o=za(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Ba(e,o,r))&&(nu(t,e,r,n),$a(t,e,r))}};function al(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(o,a))}function il(e,t,n){var r=!1,o=To,a=t.contextType;return"object"==typeof a&&null!==a?a=Pa(a):(o=Ro(t)?Po:jo.current,a=(r=null!=(r=t.contextTypes))?No(e,o):To),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ol,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ll(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ol.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Ma(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Pa(a):(a=Ro(t)?Po:jo.current,o.context=No(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rl(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ol.enqueueReplaceState(o,o.state,null),qa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function ul(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function cl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var pl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=za(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Gs=r),dl(0,t)},n}function ml(e,t,n){(n=za(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){dl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Vs?Vs=new Set([this]):Vs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=_u.bind(null,e,t,n),t.then(e,e))}function hl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function yl(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=za(-1,1)).tag=2,Ba(n,t,1))),n.lanes|=1),e)}var bl=w.ReactCurrentOwner,vl=!1;function wl(e,t,n,r){t.child=null===e?xa(t,null,n,r):ka(t,e.child,n,r)}function kl(e,t,n,r,o){n=n.render;var a=t.ref;return La(t,o),r=hi(e,t,n,r,a,o),n=yi(),null===e||vl?(aa&&n&&ta(t),t.flags|=1,wl(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function xl(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Nu(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ou(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Sl(e,t,a,r,o))}if(a=e.child,0===(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,o)}return t.flags|=1,(e=Ru(a,r)).ref=t.ref,e.return=t,t.child=e}function Sl(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(sr(a,r)&&e.ref===t.ref){if(vl=!1,t.pendingProps=r=a,0===(e.lanes&o))return t.lanes=e.lanes,Hl(e,t,o);131072&e.flags&&(vl=!0)}}return Cl(e,t,n,r,o)}function El(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ao(Rs,Ns),Ns|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Ao(Rs,Ns),Ns|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ao(Rs,Ns),Ns|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ao(Rs,Ns),Ns|=r;return wl(e,t,o,n),t.child}function _l(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cl(e,t,n,r,o){var a=Ro(n)?Po:jo.current;return a=No(t,a),La(t,o),n=hi(e,t,n,r,a,o),r=yi(),null===e||vl?(aa&&r&&ta(t),t.flags|=1,wl(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function Al(e,t,n,r,o){if(Ro(n)){var a=!0;Mo(t)}else a=!1;if(La(t,o),null===t.stateNode)ql(e,t),il(t,n,r),sl(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Pa(u):u=No(t,u=Ro(n)?Po:jo.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ll(t,i,r,u),Ia=!1;var p=t.memoizedState;i.state=p,qa(t,r,i,o),s=t.memoizedState,l!==r||p!==s||Lo.current||Ia?("function"==typeof c&&(rl(t,n,c,r),s=t.memoizedState),(l=Ia||al(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Fa(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:nl(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Pa(s):s=No(t,s=Ro(n)?Po:jo.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,i,r,s),Ia=!1,p=t.memoizedState,i.state=p,qa(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||Lo.current||Ia?("function"==typeof f&&(rl(t,n,f,r),m=t.memoizedState),(u=Ia||al(t,n,u,r,p,m,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Tl(e,t,n,r,a,o)}function Tl(e,t,n,r,o,a){_l(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Fo(t,n,!1),Hl(e,t,a);r=t.stateNode,bl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ka(t,e.child,null,a),t.child=ka(t,null,l,a)):wl(e,t,l,a),t.memoizedState=r.state,o&&Fo(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Do(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Do(0,t.context,!1),Ya(e,t.containerInfo)}function Ll(e,t,n,r,o){return ma(),ga(o),t.flags|=256,wl(e,t,n,r),t.child}var Pl,Nl,Rl,Ol,Dl={dehydrated:null,treeContext:null,retryLane:0};function Il(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,o=t.pendingProps,i=ei.current,l=!1,s=!!(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ao(ei,1&i),null===e)return ca(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=o.children,e=o.fallback,l?(o=t.mode,l=t.child,s={mode:"hidden",children:s},1&o||null===l?l=Iu(s,o,0,null):(l.childLanes=0,l.pendingProps=s),e=Du(e,o,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Il(n),t.memoizedState=Dl,e):Fl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,l){if(n)return 256&t.flags?(t.flags&=-257,zl(e,t,l,r=cl(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Iu({mode:"visible",children:r.children},o,0,null),(i=Du(i,o,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ka(t,e.child,null,l),t.child.memoizedState=Il(l),t.memoizedState=Dl,i);if(!(1&t.mode))return zl(e,t,l,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var s=r.dgst;return r=s,zl(e,t,l,r=cl(i=Error(a(419)),r,void 0))}if(s=0!==(l&e.childLanes),vl||s){if(null!==(r=js)){switch(l&-l){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!==(o&(r.suspendedLanes|l))?0:o)&&o!==i.retryLane&&(i.retryLane=o,Da(e,o),nu(r,e,o,-1))}return gu(),zl(e,t,l,r=cl(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Au.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=uo(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Qo[Ko++]=Zo,Qo[Ko++]=Xo,Qo[Ko++]=Yo,Zo=e.id,Xo=e.overflow,Yo=t),t=Fl(t,r.children),t.flags|=4096,t)}(e,t,s,o,r,i,n);if(l){l=o.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:o.children};return 1&s||t.child===i?(o=Ru(i,u)).subtreeFlags=14680064&i.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=u,t.deletions=null),null!==r?l=Ru(r,l):(l=Du(l,s,n,null)).flags|=2,l.return=t,o.return=t,o.sibling=l,t.child=o,o=l,l=t.child,s=null===(s=e.child.memoizedState)?Il(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Dl,o}return e=(l=e.child).sibling,o=Ru(l,{mode:"visible",children:o.children}),!(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Fl(e,t){return(t=Iu({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zl(e,t,n,r){return null!==r&&ga(r),ka(t,e.child,null,n),(e=Fl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ja(e.return,t,n)}function $l(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Ul(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(wl(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bl(e,n,t);else if(19===e.tag)Bl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ao(ei,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),$l(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ti(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}$l(t,!0,n,null,a);break;case"together":$l(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function ql(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Is|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Ru(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ru(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gl(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vl(t),null;case 1:case 17:return Ro(t.type)&&Oo(),Vl(t),null;case 3:return r=t.stateNode,Za(),Co(Lo),Co(jo),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==ia&&(iu(ia),ia=null))),Nl(e,t),Vl(t),null;case 5:Ja(t);var o=Ka(Qa.current);if(n=t.type,null!==e&&null!=t.stateNode)Rl(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Vl(t),null}if(e=Ka(Va.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[mo]=i,e=!!(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(o=0;o<Dr.length;o++)zr(Dr[o],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":oe(r,i),zr("invalid",r)}for(var s in be(n,i),o=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),o=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),o=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[fo]=t,e[mo]=r,Pl(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),o=r;break;case"iframe":case"object":case"embed":zr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Dr.length;o++)zr(Dr[o],e);o=r;break;case"source":zr("error",e),o=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),o=r;break;case"details":zr("toggle",e),o=r;break;case"input":Y(e,r),o=K(e,r),zr("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),zr("invalid",e)}for(i in be(n,o),u=o)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?he(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&pe(e,c):"number"==typeof c&&pe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vl(t),null;case 6:if(e&&null!=t.stateNode)Ol(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=Ka(Qa.current),Ka(Va.current),pa(t)){if(r=t.stateNode,n=t.memoizedProps,r[fo]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Xr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Vl(t),null;case 13:if(Co(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&1&t.mode&&!(128&t.flags))fa(),ma(),t.flags|=98560,i=!1;else if(i=pa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[fo]=t}else ma(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vl(t),i=!1}else null!==ia&&(iu(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Os&&(Os=3):gu())),null!==t.updateQueue&&(t.flags|=4),Vl(t),null);case 4:return Za(),Nl(e,t),null===e&&Ur(t.stateNode.containerInfo),Vl(t),null;case 10:return Ta(t.type._context),Vl(t),null;case 19:if(Co(ei),null===(i=t.memoizedState))return Vl(t),null;if(r=!!(128&t.flags),null===(s=i.rendering))if(r)Gl(i,!1);else{if(0!==Os||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(s=ti(e))){for(t.flags|=128,Gl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ao(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>Us&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!aa)return Vl(t),null}else 2*Ze()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,Ao(ei,r?1&n|2:1&n),t):(Vl(t),null);case 22:case 23:return du(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Ns)&&(Vl(t),6&t.subtreeFlags&&(t.flags|=8192)):Vl(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ql(e,t){switch(na(t),t.tag){case 1:return Ro(t.type)&&Oo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Za(),Co(Lo),Co(jo),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Ja(t),null;case 13:if(Co(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Co(ei),null;case 4:return Za(),null;case 10:return Ta(t.type._context),null;case 22:case 23:return du(),null;default:return null}}Pl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Nl=function(){},Rl=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ka(Va.current);var a,i=null;switch(n){case"input":o=K(e,o),r=K(e,r),i=[];break;case"select":o=M({},o,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in be(n,r),n=null,o)if(!r.hasOwnProperty(c)&&o.hasOwnProperty(c)&&null!=o[c])if("style"===c){var s=o[c];for(a in s)s.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=o?o[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(a in s)!s.hasOwnProperty(a)||u&&u.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in u)u.hasOwnProperty(a)&&s[a]!==u[a]&&(n||(n={}),n[a]=u[a])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Ol=function(e,t,n,r){n!==r&&(t.flags|=4)};var Kl=!1,Yl=!1,Zl="function"==typeof WeakSet?WeakSet:Set,Xl=null;function Jl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Eu(e,t,r)}else n.current=null}function es(e,t,n){try{n()}catch(r){Eu(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&es(t,n,a)}o=o.next}while(o!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function os(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function as(e){var t=e.alternate;null!==t&&(e.alternate=null,as(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[mo],delete t[ho],delete t[yo],delete t[bo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function is(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||is(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var cs=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(l){}switch(n.tag){case 5:Yl||Jl(n,t);case 6:var r=cs,o=ds;cs=null,ps(e,t,n),ds=o,null!==(cs=r)&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cs.removeChild(n.stateNode));break;case 18:null!==cs&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?so(e.parentNode,n):1===e.nodeType&&so(e,n),Ut(e)):so(cs,n.stateNode));break;case 4:r=cs,o=ds,cs=n.stateNode.containerInfo,ds=!0,ps(e,t,n),cs=r,ds=o;break;case 0:case 11:case 14:case 15:if(!Yl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(2&a||4&a)&&es(n,t,i),o=o.next}while(o!==r)}ps(e,t,n);break;case 1:if(!Yl&&(Jl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Eu(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Yl=(r=Yl)||null!==n.memoizedState,ps(e,t,n),Yl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zl),t.forEach(function(t){var r=Tu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:cs=s.stateNode,ds=!1;break e;case 3:case 4:cs=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===cs)throw Error(a(160));fs(i,l,o),cs=null,ds=!1;var u=o.alternate;null!==u&&(u.return=null),o.return=null}catch(c){Eu(o,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)hs(t,e),t=t.sibling}function hs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gs(t,e),ys(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(h){Eu(e,e.return,h)}try{ns(5,e,e.return)}catch(h){Eu(e,e.return,h)}}break;case 1:gs(t,e),ys(e),512&r&&null!==n&&Jl(n,n.return);break;case 5:if(gs(t,e),ys(e),512&r&&null!==n&&Jl(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(h){Eu(e,e.return,h)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&Z(o,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],p=u[l+1];"style"===d?he(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):v(o,d,p,c)}switch(s){case"input":X(o,i);break;case"textarea":ae(o,i);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(h){Eu(e,e.return,h)}}break;case 6:if(gs(t,e),ys(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(h){Eu(e,e.return,h)}}break;case 3:if(gs(t,e),ys(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(h){Eu(e,e.return,h)}break;case 4:default:gs(t,e),ys(e);break;case 13:gs(t,e),ys(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||($s=Ze())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Yl=(c=Yl)||d,gs(t,e),Yl=c):gs(t,e),ys(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&1&e.mode)for(Xl=e,d=e.child;null!==d;){for(p=Xl=d;null!==Xl;){switch(m=(f=Xl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Jl(f,f.return);var g=f.stateNode;if("function"==typeof g.componentWillUnmount){r=f,n=f.return;try{t=r,g.props=t.memoizedProps,g.state=t.memoizedState,g.componentWillUnmount()}catch(h){Eu(r,n,h)}}break;case 5:Jl(f,f.return);break;case 22:if(null!==f.memoizedState){ks(p);continue}}null!==m?(m.return=f,Xl=m):ks(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,c?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=p.stateNode,l=null!=(u=p.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=ge("display",l))}catch(h){Eu(e,e.return,h)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=c?"":p.memoizedProps}catch(h){Eu(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gs(t,e),ys(e),4&r&&ms(e);case 21:}}function ys(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(is(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(pe(o,""),r.flags&=-33),us(e,ls(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ss(e,ls(e),i);break;default:throw Error(a(161))}}catch(l){Eu(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bs(e,t,n){Xl=e,vs(e,t,n)}function vs(e,t,n){for(var r=!!(1&e.mode);null!==Xl;){var o=Xl,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Kl;if(!i){var l=o.alternate,s=null!==l&&null!==l.memoizedState||Yl;l=Kl;var u=Yl;if(Kl=i,(Yl=s)&&!u)for(Xl=o;null!==Xl;)s=(i=Xl).child,22===i.tag&&null!==i.memoizedState?xs(o):null!==s?(s.return=i,Xl=s):xs(o);for(;null!==a;)Xl=a,vs(a,t,n),a=a.sibling;Xl=o,Kl=l,Yl=u}ws(e)}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Xl=a):ws(e)}}function ws(e){for(;null!==Xl;){var t=Xl;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Yl||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Yl)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ha(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ha(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(a(163))}Yl||512&t.flags&&os(t)}catch(f){Eu(t,t.return,f)}}if(t===e){Xl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xl=n;break}Xl=t.return}}function ks(e){for(;null!==Xl;){var t=Xl;if(t===e){Xl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xl=n;break}Xl=t.return}}function xs(e){for(;null!==Xl;){var t=Xl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){Eu(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(s){Eu(t,o,s)}}var a=t.return;try{os(t)}catch(s){Eu(t,a,s)}break;case 5:var i=t.return;try{os(t)}catch(s){Eu(t,i,s)}}}catch(s){Eu(t,t.return,s)}if(t===e){Xl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Xl=l;break}Xl=t.return}}var Ss,Es=Math.ceil,_s=w.ReactCurrentDispatcher,Cs=w.ReactCurrentOwner,As=w.ReactCurrentBatchConfig,Ts=0,js=null,Ls=null,Ps=0,Ns=0,Rs=_o(0),Os=0,Ds=null,Is=0,Ms=0,Fs=0,zs=null,Bs=null,$s=0,Us=1/0,qs=null,Hs=!1,Gs=null,Vs=null,Ws=!1,Qs=null,Ks=0,Ys=0,Zs=null,Xs=-1,Js=0;function eu(){return 6&Ts?Ze():-1!==Xs?Xs:Xs=Ze()}function tu(e){return 1&e.mode?2&Ts&&0!==Ps?Ps&-Ps:null!==ha.transition?(0===Js&&(Js=gt()),Js):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nu(e,t,n,r){if(50<Ys)throw Ys=0,Zs=null,Error(a(185));yt(e,n,r),2&Ts&&e===js||(e===js&&(!(2&Ts)&&(Ms|=n),4===Os&&lu(e,Ps)),ru(e,r),1===n&&0===Ts&&!(1&t.mode)&&(Us=Ze()+500,Bo&&qo()))}function ru(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),l=1<<i,s=o[i];-1===s?0!==(l&n)&&0===(l&r)||(o[i]=ft(l,t)):s<=t&&(e.expiredLanes|=l),a&=~l}}(e,t);var r=pt(e,e===js?Ps:0);if(0===r)null!==n&&Qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Qe(n),1===t)0===e.tag?function(e){Bo=!0,Uo(e)}(su.bind(null,e)):Uo(su.bind(null,e)),io(function(){!(6&Ts)&&qo()}),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,ou.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ou(e,t){if(Xs=-1,Js=0,6&Ts)throw Error(a(327));var n=e.callbackNode;if(xu()&&e.callbackNode!==n)return null;var r=pt(e,e===js?Ps:0);if(0===r)return null;if(30&r||0!==(r&e.expiredLanes)||t)t=hu(e,r);else{t=r;var o=Ts;Ts|=2;var i=mu();for(js===e&&Ps===t||(qs=null,Us=Ze()+500,pu(e,t));;)try{bu();break}catch(s){fu(e,s)}Aa(),_s.current=i,Ts=o,null!==Ls?t=0:(js=null,Ps=0,t=Os)}if(0!==t){if(2===t&&(0!==(o=mt(e))&&(r=o,t=au(e,o))),1===t)throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;if(6===t)lu(e,r);else{if(o=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!lr(a(),o))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)||(t=hu(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=au(e,i))),1!==t)))throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:ku(e,Bs,qs);break;case 3:if(lu(e,r),(130023424&r)===r&&10<(t=$s+500-Ze())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){eu(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(ku.bind(null,e,Bs,qs),t);break}ku(e,Bs,qs);break;case 4:if(lu(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>o&&(o=l),r&=~i}if(r=o,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ro(ku.bind(null,e,Bs,qs),r);break}ku(e,Bs,qs);break;default:throw Error(a(329))}}}return ru(e,Ze()),e.callbackNode===n?ou.bind(null,e):null}function au(e,t){var n=zs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=hu(e,t))&&(t=Bs,Bs=n,null!==t&&iu(t)),e}function iu(e){null===Bs?Bs=e:Bs.push.apply(Bs,e)}function lu(e,t){for(t&=~Fs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function su(e){if(6&Ts)throw Error(a(327));xu();var t=pt(e,0);if(!(1&t))return ru(e,Ze()),null;var n=hu(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=au(e,r))}if(1===n)throw n=Ds,pu(e,0),lu(e,t),ru(e,Ze()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,Bs,qs),ru(e,Ze()),null}function uu(e,t){var n=Ts;Ts|=1;try{return e(t)}finally{0===(Ts=n)&&(Us=Ze()+500,Bo&&qo())}}function cu(e){null!==Qs&&0===Qs.tag&&!(6&Ts)&&xu();var t=Ts;Ts|=1;var n=As.transition,r=vt;try{if(As.transition=null,vt=1,e)return e()}finally{vt=r,As.transition=n,!(6&(Ts=t))&&qo()}}function du(){Ns=Rs.current,Co(Rs)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Ls)for(n=Ls.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Oo();break;case 3:Za(),Co(Lo),Co(jo),ri();break;case 5:Ja(r);break;case 4:Za();break;case 13:case 19:Co(ei);break;case 10:Ta(r.type._context);break;case 22:case 23:du()}n=n.return}if(js=e,Ls=e=Ru(e.current,null),Ps=Ns=t,Os=0,Ds=null,Fs=Ms=Is=0,Bs=zs=null,null!==Na){for(t=0;t<Na.length;t++)if(null!==(r=(n=Na[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Na=null}return e}function fu(e,t){for(;;){var n=Ls;try{if(Aa(),oi.current=Xi,ci){for(var r=li.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ci=!1}if(ii=0,ui=si=li=null,di=!1,pi=0,Cs.current=null,null===n||null===n.return){Os=1,Ds=t,Ls=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=Ps,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=hl(l);if(null!==m){m.flags&=-257,yl(m,l,s,0,t),1&m.mode&&gl(i,c,t),u=c;var g=(t=m).updateQueue;if(null===g){var h=new Set;h.add(u),t.updateQueue=h}else g.add(u);break e}if(!(1&t)){gl(i,c,t),gu();break e}u=Error(a(426))}else if(aa&&1&s.mode){var y=hl(l);if(null!==y){!(65536&y.flags)&&(y.flags|=256),yl(y,l,s,0,t),ga(ul(u,s));break e}}i=u=ul(u,s),4!==Os&&(Os=2),null===zs?zs=[i]:zs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,fl(0,u,t));break e;case 1:s=u;var b=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof b.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Vs&&Vs.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}wu(n)}catch(w){t=w,Ls===n&&null!==n&&(Ls=n=n.return);continue}break}}function mu(){var e=_s.current;return _s.current=Xi,null===e?Xi:e}function gu(){0!==Os&&3!==Os&&2!==Os||(Os=4),null===js||!(268435455&Is)&&!(268435455&Ms)||lu(js,Ps)}function hu(e,t){var n=Ts;Ts|=2;var r=mu();for(js===e&&Ps===t||(qs=null,pu(e,t));;)try{yu();break}catch(o){fu(e,o)}if(Aa(),Ts=n,_s.current=r,null!==Ls)throw Error(a(261));return js=null,Ps=0,Os}function yu(){for(;null!==Ls;)vu(Ls)}function bu(){for(;null!==Ls&&!Ke();)vu(Ls)}function vu(e){var t=Ss(e.alternate,e,Ns);e.memoizedProps=e.pendingProps,null===t?wu(e):Ls=t,Cs.current=null}function wu(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ql(n,t)))return n.flags&=32767,void(Ls=n);if(null===e)return Os=6,void(Ls=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Wl(n,t,Ns)))return void(Ls=n);if(null!==(t=t.sibling))return void(Ls=t);Ls=t=e}while(null!==t);0===Os&&(Os=5)}function ku(e,t,n){var r=vt,o=As.transition;try{As.transition=null,vt=1,function(e,t,n,r){do{xu()}while(null!==Qs);if(6&Ts)throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===js&&(Ls=js=null,Ps=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Ws||(Ws=!0,ju(tt,function(){return xu(),null})),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=As.transition,As.transition=null;var l=vt;vt=1;var s=Ts;Ts|=4,Cs.current=null,function(e,t){if(eo=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==o&&3!==p.nodeType||(s=l+o),p!==i||0!==r&&3!==p.nodeType||(u=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++c===o&&(s=l),f===i&&++d===r&&(u=l),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Ht=!1,Xl=t;null!==Xl;)if(e=(t=Xl).child,1028&t.subtreeFlags&&null!==e)e.return=t,Xl=e;else for(;null!==Xl;){t=Xl;try{var g=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==g){var h=g.memoizedProps,y=g.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?h:nl(t.type,h),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(a(163))}}catch(k){Eu(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Xl=e;break}Xl=t.return}g=ts,ts=!1}(e,n),hs(n,e),mr(to),Ht=!!eo,to=eo=null,e.current=n,bs(n,e,o),Ye(),Ts=s,vt=l,As.transition=i}else e.current=n;if(Ws&&(Ws=!1,Qs=e,Ks=o),i=e.pendingLanes,0===i&&(Vs=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),ru(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Hs)throw Hs=!1,e=Gs,Gs=null,e;!!(1&Ks)&&0!==e.tag&&xu(),i=e.pendingLanes,1&i?e===Zs?Ys++:(Ys=0,Zs=e):Ys=0,qo()}(e,t,n,r)}finally{As.transition=o,vt=r}return null}function xu(){if(null!==Qs){var e=wt(Ks),t=As.transition,n=vt;try{if(As.transition=null,vt=16>e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ks=0,6&Ts)throw Error(a(331));var o=Ts;for(Ts|=4,Xl=e.current;null!==Xl;){var i=Xl,l=i.child;if(16&Xl.flags){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Xl=c;null!==Xl;){var d=Xl;switch(d.tag){case 0:case 11:case 15:ns(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xl=p;else for(;null!==Xl;){var f=(d=Xl).sibling,m=d.return;if(as(d),d===c){Xl=null;break}if(null!==f){f.return=m,Xl=f;break}Xl=m}}}var g=i.alternate;if(null!==g){var h=g.child;if(null!==h){g.child=null;do{var y=h.sibling;h.sibling=null,h=y}while(null!==h)}}Xl=i}}if(2064&i.subtreeFlags&&null!==l)l.return=i,Xl=l;else e:for(;null!==Xl;){if(2048&(i=Xl).flags)switch(i.tag){case 0:case 11:case 15:ns(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Xl=b;break e}Xl=i.return}}var v=e.current;for(Xl=v;null!==Xl;){var w=(l=Xl).child;if(2064&l.subtreeFlags&&null!==w)w.return=l,Xl=w;else e:for(l=v;null!==Xl;){if(2048&(s=Xl).flags)try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(x){Eu(s,s.return,x)}if(s===l){Xl=null;break e}var k=s.sibling;if(null!==k){k.return=s.return,Xl=k;break e}Xl=s.return}}if(Ts=o,qo(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(x){}r=!0}return r}finally{vt=n,As.transition=t}}return!1}function Su(e,t,n){e=Ba(e,t=fl(0,t=ul(n,t),1),1),t=eu(),null!==e&&(yt(e,1,t),ru(e,t))}function Eu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vs||!Vs.has(r))){t=Ba(t,e=ml(t,e=ul(n,e),1),1),e=eu(),null!==t&&(yt(t,1,e),ru(t,e));break}}t=t.return}}function _u(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=eu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(Ps&n)===n&&(4===Os||3===Os&&(130023424&Ps)===Ps&&500>Ze()-$s?pu(e,0):Fs|=n),ru(e,t)}function Cu(e,t){0===t&&(1&e.mode?(t=ct,!(130023424&(ct<<=1))&&(ct=4194304)):t=1);var n=eu();null!==(e=Da(e,t))&&(yt(e,t,n),ru(e,n))}function Au(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cu(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Cu(e,n)}function ju(e,t){return We(e,t)}function Lu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pu(e,t,n,r){return new Lu(e,t,n,r)}function Nu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ru(e,t){var n=e.alternate;return null===n?((n=Pu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ou(e,t,n,r,o,i){var l=2;if(r=e,"function"==typeof e)Nu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Du(n.children,o,i,t);case E:l=8,o|=8;break;case _:return(e=Pu(12,n,t,2|o)).elementType=_,e.lanes=i,e;case j:return(e=Pu(13,n,t,o)).elementType=j,e.lanes=i,e;case L:return(e=Pu(19,n,t,o)).elementType=L,e.lanes=i,e;case R:return Iu(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case A:l=9;break e;case T:l=11;break e;case P:l=14;break e;case N:l=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Pu(l,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Du(e,t,n,r){return(e=Pu(7,e,r,t)).lanes=n,e}function Iu(e,t,n,r){return(e=Pu(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Pu(6,e,null,t)).lanes=n,e}function Fu(e,t,n){return(t=Pu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zu(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,o,a,i,l,s){return e=new zu(e,t,n,l,s),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Pu(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ma(a),e}function $u(e){if(!e)return To;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ro(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Ro(n))return Io(e,n,t)}return t}function Uu(e,t,n,r,o,a,i,l,s){return(e=Bu(n,r,!0,e,0,a,0,l,s)).context=$u(null),n=e.current,(a=za(r=eu(),o=tu(n))).callback=null!=t?t:null,Ba(n,a,o),e.current.lanes=o,yt(e,o,r),ru(e,r),e}function qu(e,t,n,r){var o=t.current,a=eu(),i=tu(o);return n=$u(n),null===t.context?t.context=n:t.pendingContext=n,(t=za(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ba(o,t,i))&&(nu(e,o,i,a),$a(e,o,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vu(e,t){Gu(e,t),(e=e.alternate)&&Gu(e,t)}Ss=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Lo.current)vl=!0;else{if(0===(e.lanes&n)&&!(128&t.flags))return vl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),ma();break;case 5:Xa(t);break;case 1:Ro(t.type)&&Mo(t);break;case 4:Ya(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Ao(Sa,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ao(ei,1&ei.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Ml(e,t,n):(Ao(ei,1&ei.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ao(ei,1&ei.current);break;case 19:if(r=0!==(n&t.childLanes),128&e.flags){if(r)return Ul(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),Ao(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,El(e,t,n)}return Hl(e,t,n)}(e,t,n);vl=!!(131072&e.flags)}else vl=!1,aa&&1048576&t.flags&&ea(t,Wo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ql(e,t),e=t.pendingProps;var o=No(t,jo.current);La(t,n),o=hi(null,t,r,e,o,n);var i=yi();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ro(r)?(i=!0,Mo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Ma(t),o.updater=ol,t.stateNode=o,o._reactInternals=t,sl(t,r,e,n),t=Tl(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),wl(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ql(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Nu(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===P)return 14}return 2}(r),e=nl(r,e),o){case 0:t=Cl(null,t,r,e,n);break e;case 1:t=Al(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=xl(null,t,r,nl(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Cl(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 1:return r=t.type,o=t.pendingProps,Al(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 3:e:{if(jl(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Fa(e,t),qa(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ll(e,t,r,n,o=ul(Error(a(423)),t));break e}if(r!==o){t=Ll(e,t,r,n,o=ul(Error(a(424)),t));break e}for(oa=uo(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=xa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Hl(e,t,n);break e}wl(e,t,r,n)}t=t.child}return t;case 5:return Xa(t),null===e&&ca(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,l=o.children,no(r,o)?l=null:null!==i&&no(r,i)&&(t.flags|=32),_l(e,t),wl(e,t,l,n),t.child;case 6:return null===e&&ca(t),null;case 13:return Ml(e,t,n);case 4:return Ya(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ka(t,null,r,n):wl(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,kl(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 7:return wl(e,t,t.pendingProps,n),t.child;case 8:case 12:return wl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,l=o.value,Ao(Sa,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===o.children&&!Lo.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=za(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),ja(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(a(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),ja(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}wl(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,La(t,n),r=r(o=Pa(o)),t.flags|=1,wl(e,t,r,n),t.child;case 14:return o=nl(r=t.type,t.pendingProps),xl(e,t,r,o=nl(r.type,o),n);case 15:return Sl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:nl(r,o),ql(e,t),t.tag=1,Ro(r)?(e=!0,Mo(t)):e=!1,La(t,n),il(t,r,o),sl(t,r,o,n),Tl(null,t,r,!0,e,n);case 19:return Ul(e,t,n);case 22:return El(e,t,n)}throw Error(a(156,t.tag))};var Wu="function"==typeof reportError?reportError:function(e){console.error(e)};function Qu(e){this._internalRoot=e}function Ku(e){this._internalRoot=e}function Yu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xu(){}function Ju(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var l=o;o=function(){var e=Hu(i);l.call(e)}}qu(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Hu(i);a.call(e)}}var i=Uu(t,r,e,0,null,!1,0,"",Xu);return e._reactRootContainer=i,e[go]=i.current,Ur(8===e.nodeType?e.parentNode:e),cu(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=Bu(e,0,!1,null,0,!1,0,"",Xu);return e._reactRootContainer=s,e[go]=s.current,Ur(8===e.nodeType?e.parentNode:e),cu(function(){qu(t,s,n,r)}),s}(n,t,e,o,r);return Hu(i)}Ku.prototype.render=Qu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));qu(e,t,null,null)},Ku.prototype.unmount=Qu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;cu(function(){qu(null,e,null,null)}),t[go]=null}},Ku.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(bt(t,1|n),ru(t,Ze()),!(6&Ts)&&(Us=Ze()+500,qo()))}break;case 13:cu(function(){var t=Da(e,1);if(null!==t){var n=eu();nu(t,e,1,n)}}),Vu(e,1)}},xt=function(e){if(13===e.tag){var t=Da(e,134217728);if(null!==t)nu(t,e,134217728,eu());Vu(e,134217728)}},St=function(e){if(13===e.tag){var t=tu(e),n=Da(e,t);if(null!==n)nu(n,e,t,eu());Vu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=xo(r);if(!o)throw Error(a(90));W(r),X(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Te=uu,je=cu;var ec={usingClientEntryPoint:!1,Events:[wo,ko,xo,Ce,Ae,uu]},tc={findFiberByHostInstance:vo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rc.isDisabled&&rc.supportsFiber)try{ot=rc.inject(nc),at=rc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ec,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yu(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yu(e))throw Error(a(299));var n=!1,r="",o=Wu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Bu(e,1,!1,null,0,n,0,r,o),e[go]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Qu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return cu(e)},t.hydrate=function(e,t,n){if(!Zu(t))throw Error(a(200));return Ju(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yu(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",l=Wu;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Uu(t,null,e,1,null!=n?n:null,o,0,i,l),e[go]=t.current,Ur(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Ku(t)},t.render=function(e,t,n){if(!Zu(t))throw Error(a(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zu(e))throw Error(a(40));return!!e._reactRootContainer&&(cu(function(){Ju(null,null,e,!1,function(){e._reactRootContainer=null,e[go]=null})}),!0)},t.unstable_batchedUpdates=uu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zu(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Ju(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5794:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(321);function o(){return(0,r.A)().siteConfig.themeConfig}},6106:(e,t,n)=>{"use strict";e.exports=n(5538)},6109:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,u=n,u?o(s):a(s));var s,u;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(7168);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},6142:(e,t,n)=>{"use strict";n.r(t)},6289:(e,t,n)=>{"use strict";n.d(t,{G:()=>k,a:()=>w});var r=n(7378),o=n(3724),a=n(9328),i=n(6687),l=n(5794),s=n(6106);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function c(e){return function(e,t){const n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}("(prefers-color-scheme: dark)",()=>e(u()))}const d=r.createContext(void 0),p=(0,i.Wf)("theme"),f="system",m=e=>"dark"===e?"dark":"light",g=e=>null===e||e===f?null:m(e),h={get:()=>m(document.documentElement.getAttribute("data-theme")),set:e=>{document.documentElement.setAttribute("data-theme",m(e))}},y={get:()=>g(document.documentElement.getAttribute("data-theme-choice")),set:e=>{document.documentElement.setAttribute("data-theme-choice",g(e)??f)}},b=e=>{null===e?p.del():p.set(m(e))};function v(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),{colorMode:a,setColorModeState:i,colorModeChoice:s,setColorModeChoiceState:d}=function(){const{colorMode:{defaultMode:e}}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)(t?h.get():e),[i,s]=(0,r.useState)(t?y.get():null);return(0,r.useEffect)(()=>{a(h.get()),s(y.get())},[]),{colorMode:n,setColorModeState:a,colorModeChoice:i,setColorModeChoiceState:s}}();(0,r.useEffect)(()=>{t&&p.del()},[t]);const f=(0,r.useCallback)((t,r={})=>{const{persist:o=!0}=r;if(null===t){const t=n?u():e;h.set(t),i(t),y.set(null),d(null)}else h.set(t),y.set(t),i(t),d(t);o&&b(t)},[i,d,n,e]);return(0,r.useEffect)(()=>p.listen(e=>{f(g(e.newValue))}),[f]),(0,r.useEffect)(()=>{if(null===s&&n)return c(e=>{i(e),h.set(e)})},[n,s,i]),(0,r.useMemo)(()=>({colorMode:a,colorModeChoice:s,setColorMode:f,get isDarkTheme(){return"dark"===a},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[a,s,f])}function w({children:e}){const t=v();return(0,s.jsx)(d.Provider,{value:t,children:e})}function k(){const e=(0,r.useContext)(d);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6512:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6520:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o})}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach(function e(n){var r=s[n];t(r&&r.require,function(t){t in d||(c[t]=!0,e(t))})});for(var p,f=r(s),m=c;o(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,function(e){e in d&&(p[e]=!0)})}for(var y in d)if(!(y in c))for(var b in f(y))if(b in c){p[y]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load(function(t){e.push(t)}),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var p=i(c.map(function(e){var t=u(e);return delete s[e],t}));a?o=a(p,function(){return r(e)}):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},6562:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(7378),o=n(3108),a=n.n(o),i=n(2700),l=n.n(i),s=n(4009),u=n.n(s),c=n(9141),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function g(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map(function(e){return h[e]}),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce(function(e,t){return e[k[t]]=t,e},{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,h.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return p({},e,t)},{})},A=function(e,t){return t.filter(function(e){return void 0!==e[h.BASE]}).map(function(e){return e[h.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t},[])},T=function(e,t,n){var r={};return n.filter(function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var o={};n.filter(function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][u]&&(o[n][u]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=p({},r[l],o[l]);r[l]=s}return e},[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce(function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e},{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[h.NOSCRIPT,h.SCRIPT,h.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[k[n]||n]=e[n],t},t)},M=function(e,t){return t.map(function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach(function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]}),r.createElement(e,a)})},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[r.createElement(h.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=D(n),a=L(t);return o?"<"+e+' data-rh="true" '+o+">"+O(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce(function(t,r){var o=Object.keys(r).filter(function(e){return!("innerHTML"===e||"cssText"===e)}).reduce(function(e,t){var o=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+o:o},""),a=r.innerHTML||r.cssText||"",i=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")},"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=P(e.metaTags,v),a=P(t,y),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,o.priority),M(h.LINK,a.priority),M(h.SCRIPT,i.priority))},toString:function(){return F(h.META,o.priority,r)+" "+F(h.LINK,a.priority,r)+" "+F(h.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(h.LINK,c,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,a,r),script:F(h.SCRIPT,p,r),style:F(h.STYLE,i,r),title:F(h.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach(function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some(function(e,t){return n=t,r.isEqualNode(e)})?a.splice(n,1):i.push(r)}),a.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return r.appendChild(e)}),{oldTags:a,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===o.indexOf(s)&&o.push(s);var c=a.indexOf(s);-1!==c&&a.splice(c,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(h.BODY,e.bodyAttributes),W(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),W(h.TITLE,t)}(c,d);var p={baseTag:V(h.BASE,n),linkTags:V(h.LINK,o),metaTags:V(h.META,a),noscriptTags:V(h.NOSCRIPT,i),scriptTags:V(h.SCRIPT,s),styleTags:V(h.STYLE,u)},f={},m={};Object.keys(p).forEach(function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)}),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map(function(e){var t=p({},e.props);return delete t.context,t}),{baseTag:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(h.LINK,["rel","href"],e),metaTags:T(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:T(h.SCRIPT,["src","innerHTML"],e),styleTags:T(h.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});G.canUseDOM?(t=a,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame(function(){Q(t,function(){K=null})}):(Q(t),K=null)):z&&(o=z(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Z=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case h.BODY:return p({},o,{bodyAttributes:p({},a)});case h.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach(function(t){var r;n=p({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some(function(t){return e.type===t}),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some(function(e){return"string"!=typeof e}),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,function(e){if(e&&e.props){var r=e.props,a=r.children,i=g(r,Z),l=Object.keys(i).reduce(function(e,t){return e[x[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case h.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}}),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,X),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof $||(a=new $(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,function(e){return r.createElement(Y,p({},o,{context:e}))})},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},6636:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>D,__assign:()=>a,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>C,__await:()=>S,__awaiter:()=>m,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>O,__classPrivateFieldSet:()=>R,__createBinding:()=>h,__decorate:()=>l,__disposeResources:()=>M,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>o,__generator:()=>g,__importDefault:()=>P,__importStar:()=>L,__makeTemplateObject:()=>A,__metadata:()=>f,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>F,__runInitializers:()=>c,__setFunctionName:()=>p,__spread:()=>w,__spreadArray:()=>x,__spreadArrays:()=>k,__values:()=>b,default:()=>z});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function l(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),p=!1,f=n.length-1;f>=0;f--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var h=(0,n[f])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(l=i(h.get))&&(d.get=l),(l=i(h.set))&&(d.set=l),(l=i(h.init))&&o.unshift(l)}else(l=i(h))&&("field"===s?o.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),p=!0}function c(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function p(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{s(r.next(e))}catch(t){a(t)}}function l(e){try{s(r.throw(e))}catch(t){a(t)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,l)}s((r=r.apply(e,t||[])).next())})}function g(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(s){l=[6,s],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var h=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function y(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||h(t,e,n)}function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function k(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,l=a.length;i<l;i++,o++)r[o]=a[i];return r}function x(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function S(e){return this instanceof S?(this.v=e,this):new S(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){o[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{(n=o[e](t)).value instanceof S?Promise.resolve(n.value.v).then(s,u):c(a[0][2],n)}catch(r){c(a[0][3],r)}var n}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),a.shift(),a.length&&l(a[0][0],a[0][1])}}function _(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:S(e[r](t)),done:!1}:o?o(t):t}:o}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,o){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,o,(t=e[n](t)).done,t.value)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},j=function(e){return j=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},j(e)};function L(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=j(e),r=0;r<n.length;r++)"default"!==n[r]&&h(t,e,n[r]);return T(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function R(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function O(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function D(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(o=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");o&&(r=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var I="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function M(e){function t(t){e.error=e.hasError?new I(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function o(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var a=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(a).then(o,function(e){return t(e),o()})}else r|=1}catch(i){t(i)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function F(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,o,a){return n?t?".jsx":".js":!r||o&&a?r+o+"."+a.toLowerCase()+"js":e}):e}const z={__extends:o,__assign:a,__rest:i,__decorate:l,__param:s,__esDecorate:u,__runInitializers:c,__propKey:d,__setFunctionName:p,__metadata:f,__awaiter:m,__generator:g,__createBinding:h,__exportStar:y,__values:b,__read:v,__spread:w,__spreadArrays:k,__spreadArray:x,__await:S,__asyncGenerator:E,__asyncDelegator:_,__asyncValues:C,__makeTemplateObject:A,__importStar:L,__importDefault:P,__classPrivateFieldGet:N,__classPrivateFieldSet:R,__classPrivateFieldIn:O,__addDisposableResource:D,__disposeResources:M,__rewriteRelativeImportExtension:F}},6666:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7378),o=n(4893);function a(){const e=r.useContext(o.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6687:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u});n(7378);const r=JSON.parse('{"N":"localStorage","M":""}'),o=r.N;function a({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(o)}function i(e=o){if("undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const o=i(t?.persistence);return null===o?s:{get:()=>{try{return o.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=o.getItem(n);o.setItem(n,e),a({key:n,oldValue:t,newValue:e,storage:o})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=o.getItem(n);o.removeItem(n),a({key:n,oldValue:e,newValue:null,storage:o})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===o&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},6701:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6870:(e,t,n)=>{"use strict";var r=n(6701);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},6898:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>y,k2:()=>w});var r=n(505),o=n(9444),a=n(7378),i=n(9888),l=n(1408),s=n(4227),u=n(8635),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);var d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);var p=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},g=a.forwardRef;void 0===g&&(g=m);var h=g(function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=m!==g&&t||n,a.createElement("a",c)});var y=g(function(e,t){var n=e.component,o=void 0===n?h:n,c=e.replace,d=e.to,y=e.innerRef,b=(0,s.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},b,{href:s,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(c||r?n.replace:n.push)(t)}});return m!==g?h.ref=t||y:h.innerRef=y,a.createElement(o,h)})}),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var w=v(function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,g=e.exact,h=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=w||e.location,i=f(p(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=A?(0,r.B6)(n.pathname,{path:A,exact:g,sensitive:k,strict:x}):null,j=!!(h?h(T,n):T),L="function"==typeof m?m(j):m,P="function"==typeof S?S(j):S;j&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return e}).join(" ")}(L,c),P=(0,l.A)({},P,d));var N=(0,l.A)({"aria-current":j&&o||null,className:L,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,a.createElement(y,N)})})},7025:(e,t,n)=>{var r={"./":9606};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=7025},7168:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},7299:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(7378),o=n(9738),a=n(8955),i=n(3426),l=n(9511),s=n(4893),u=n(6106);function c({error:e,tryAgain:t}){return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:e})]})}function d({error:e}){const t=(0,i.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function p({children:e}){return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function f({error:e,tryAgain:t}){return(0,u.jsx)(p,{children:(0,u.jsxs)(g,{fallback:()=>(0,u.jsx)(c,{error:e,tryAgain:t}),children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:e,tryAgain:t})})]})})}const m=e=>(0,u.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},7378:(e,t,n)=>{"use strict";e.exports=n(93)},7676:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4564),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){const e=window.setTimeout(()=>{o().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},7703:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(7378),o=n(9328),a=n(6106);const i=Symbol("EmptyContext"),l=r.createContext(i);function s({children:e,name:t,items:n}){const o=(0,r.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,a.jsx)(l.Provider,{value:o,children:e})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},7748:(e,t,n)=>{"use strict";e.exports=n(89)},7990:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(7378);var r=n(1063),o=n.n(r),a=n(4054);const i={"003b49f9":[()=>n.e(506).then(n.bind(n,6255)),"@site/content/contributing/code-of-conduct.md",6255],"13d3c590":[()=>n.e(151).then(n.bind(n,3717)),"@site/content/contributing/development-setup.md",3717],"14eb3368":[()=>Promise.all([n.e(869),n.e(969)]).then(n.bind(n,4549)),"@theme/DocCategoryGeneratedIndexPage",4549],17896441:[()=>Promise.all([n.e(869),n.e(401)]).then(n.bind(n,7826)),"@theme/DocItem",7826],"1ec2c777":[()=>n.e(154).then(n.bind(n,8958)),"@site/content/contributing/code-standards.md",8958],"221e29db":[()=>n.e(940).then(n.bind(n,3679)),"@site/content/deployment/others.md",3679],"2ccc2e53":[()=>n.e(183).then(n.bind(n,3856)),"@site/content/faq.md",3856],"2f401bd1":[()=>n.e(851).then(n.bind(n,4517)),"@site/content/deployment/docker-compose.md",4517],"315f1747":[()=>n.e(761).then(n.bind(n,222)),"@site/content/user-guide/basics.md",222],"5e95c892":[()=>n.e(647).then(n.bind(n,387)),"@theme/DocsRoot",387],"6115a388":[()=>n.e(378).then(n.bind(n,2718)),"@site/content/index.md",2718],"68f842ca":[()=>n.e(9).then(n.bind(n,3072)),"@site/content/404.md",3072],"6c46c4d6":[()=>n.e(975).then(n.bind(n,1418)),"@site/content/configuration.md",1418],"710eb747":[()=>n.e(976).then(n.t.bind(n,7760,19)),"@generated/docusaurus-plugin-content-docs/default/p/upage-deployment-guide-e64.json",7760],"778fc58b":[()=>n.e(605).then(n.t.bind(n,2611,19)),"@generated/docusaurus-plugin-content-docs/default/p/upage-user-guide-9d3.json",2611],"7e9a7b3c":[()=>n.e(464).then(n.bind(n,1830)),"@site/content/contributing/ways-to-contribute.md",1830],"86585ddf":[()=>n.e(519).then(n.bind(n,5036)),"@site/content/deployment/source.md",5036],"931f8773":[()=>n.e(139).then(n.bind(n,111)),"@site/content/contributing/index.md",111],a5796a8c:[()=>n.e(185).then(n.bind(n,3542)),"@site/content/deployment/logto.md",3542],a7bd4aaa:[()=>n.e(98).then(n.bind(n,6776)),"@theme/DocVersionRoot",6776],a94703ab:[()=>Promise.all([n.e(869),n.e(48)]).then(n.bind(n,3464)),"@theme/DocRoot",3464],aba21aa0:[()=>n.e(742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],bb48f956:[()=>n.e(77).then(n.bind(n,4346)),"@site/content/deployment/docker.md",4346],cc946c3e:[()=>n.e(683).then(n.bind(n,5580)),"@site/content/quick-start.md",5580],cea871c7:[()=>n.e(206).then(n.t.bind(n,2944,19)),"@generated/docusaurus-plugin-content-docs/default/p/upage-76c.json",2944],d6dcccef:[()=>n.e(461).then(n.bind(n,9577)),"@site/content/contributing/workflow.md",9577]};var l=n(6106);function s({error:e,retry:t,pastDelay:n}){return e?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(e)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(3398),c=n(4893);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(803).then(n.bind(n,2803)),modules:["@theme/NotFound"],webpack:()=>[2803],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach(([e,t])=>{const n=i[t];n&&(d[e]=n[0],p.push(n[1]),f.push(n[2]))}),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach(([t,n])=>{const r=n.default;if(!r)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof r&&"function"!=typeof r||Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o;const i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const s=o.__props;return delete o.__props,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(a,{...o,...s,...n})})}})}const p=[{path:"/upage/",component:d("/upage/","504"),routes:[{path:"/upage/",component:d("/upage/","a9c"),routes:[{path:"/upage/",component:d("/upage/","b1b"),routes:[{path:"/upage/404-page",component:d("/upage/404-page","329"),exact:!0},{path:"/upage/configuration",component:d("/upage/configuration","407"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing",component:d("/upage/contributing","26f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing/code-of-conduct",component:d("/upage/contributing/code-of-conduct","789"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing/code-standards",component:d("/upage/contributing/code-standards","827"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing/development-setup",component:d("/upage/contributing/development-setup","291"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing/ways-to-contribute",component:d("/upage/contributing/ways-to-contribute","60d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/contributing/workflow",component:d("/upage/contributing/workflow","c39"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment-guide",component:d("/upage/deployment-guide","5ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment/docker",component:d("/upage/deployment/docker","4ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment/docker-compose",component:d("/upage/deployment/docker-compose","21e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment/logto",component:d("/upage/deployment/logto","aa7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment/others",component:d("/upage/deployment/others","9dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/deployment/source",component:d("/upage/deployment/source","3ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/faq",component:d("/upage/faq","e53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/quick-start",component:d("/upage/quick-start","504"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/user-guide",component:d("/upage/user-guide","ed9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/user-guide/basics",component:d("/upage/user-guide/basics","824"),exact:!0,sidebar:"tutorialSidebar"},{path:"/upage/",component:d("/upage/","08c"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8041:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(505),o=n(1408),a=n(7378);function i(e,t,n){return void 0===n&&(n=[]),e.some(function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o}),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map(function(e,n){return a.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})})):null}},8320:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(m+f.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8522:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(7378),o=n(505),a=n(9328);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},8635:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},8715:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},8722:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(7378),o=n(6106);const a=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{n(!0)},[]),(0,o.jsx)(a.Provider,{value:t,children:e})}},8767:(e,t,n)=>{"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(7378),o=n(321),a=n(6666),i=n(9328),l=n(6106);const s=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,r.createContext)(null);function c({formatter:e,children:t}){return(0,l.jsx)(u.Provider,{value:e,children:t})}function d(){const e=function(){const e=(0,r.useContext)(u);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:l}=t,{plugin:c}=(0,a.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:l,plugin:c,defaultFormatter:s})}}},8876:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ne});var r,o,a,i,l,s,u,c=n(7378),d=n(3372),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,g=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(b)for(var n of b(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,h(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach(function(t,r){o[r]=e(t,n)}),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var u=o[e];return o[e]=i,r.languages.DFS(r.languages,function(t,n){n===u&&t!=e&&(this[t]=i)}),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],u=r.util.type(s);"Object"!==u||a[i(s)]?"Array"!==u||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",a),!a.grammar)throw new Error('The language "'+a.language+'" has no grammar.');return a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var g=f[m],h=g.inside,y=!!g.lookbehind,b=!!g.greedy,v=g.alias;if(b&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var k=g.pattern||g,x=l.next,S=c;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof o)){var _,C=1;if(b){if(!(_=a(k,S,e,y))||_.index>=e.length)break;var A=_.index,T=_.index+_[0].length,j=S;for(j+=x.value.length;A>=j;)j+=(x=x.next).value.length;if(S=j-=x.value.length,x.value instanceof o)continue;for(var L=x;L!==t.tail&&(j<T||"string"==typeof L.value);L=L.next)C++,j+=L.value.length;C--,E=e.slice(S,j),_.index-=S}else if(!(_=a(k,0,E,y)))continue;A=_.index;var P=_[0],N=E.slice(0,A),R=E.slice(A+P.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var D=x.prev;if(N&&(D=s(t,D,N),S+=N.length),u(t,D,C),x=s(t,D,new o(p,h?r.tokenize(P,h):P,v,P)),R&&s(t,x,R),C>1){var I={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function u(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach(function(t){o+=e(t,n)}),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[y(r)[0]])((o={exports:{}}).exports,o),o.exports}),A=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of y(t))w.call(e,o)||o===n||f(e,o,{get:()=>t[o],enumerable:!(r=g(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());A.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},A.languages.markup.tag.inside["attr-value"].inside.entity=A.languages.markup.entity,A.languages.markup.doctype.inside["internal-subset"].inside=A.languages.markup,A.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(A.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(A.languages.markup.tag,"addAttribute",{value:function(e,t){A.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:A.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),A.languages.html=A.languages.markup,A.languages.mathml=A.languages.markup,A.languages.svg=A.languages.markup,A.languages.xml=A.languages.extend("markup",{}),A.languages.ssml=A.languages.xml,A.languages.atom=A.languages.xml,A.languages.rss=A.languages.xml,a=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},A.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},A.languages.javascript=A.languages.extend("clike",{"class-name":[A.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),A.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,A.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:A.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:A.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:A.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:A.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:A.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),A.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:A.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),A.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),A.languages.markup&&(A.languages.markup.tag.addInlined("script","javascript"),A.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),A.languages.js=A.languages.javascript,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(A),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach(function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,i=a[o];if((i=i||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(i=a[o]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}})}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e});return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return"(?:"+o+"|"+a+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(A),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o,a=t[n];"code"!==a.type?e(a.content):(o=a.content[1],a=a.content[3],o&&a&&"code-language"===o.type&&"code-block"===a.type&&"string"==typeof o.content&&(o=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),o="language-"+(o=(/[a-z][\w-]*/i.exec(o)||[""])[0].toLowerCase()),a.alias?"string"==typeof a.alias?a.alias=[a.alias,o]:a.alias.push(o):a.alias=[o]))}}(e.tokens)}),e.hooks.add("wrap",function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r];if(a=/language-(.+)/.exec(a)){n=a[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e}),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(A),A.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:A.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},A.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),0<o.length)){var l=p(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=o.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}),A.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),u=0,c={},d=(s=l(s.map(function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n}).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var a=0;a<n.length;a++){if(u>=d.length)return;var i,s,p,f,m,g,h,y=n[a];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(h=(g="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=g.substring(h+i.length),m=[],s&&m.push(s),m.push(p),f&&(t(g=[f]),m.push.apply(m,g)),"string"==typeof y?(n.splice.apply(n,[a,1].concat(m)),a+=m.length-1):y.content=m)):(h=y.content,Array.isArray(h)?t(h):t([h]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",function(t){t.language in u&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,l,u=n[r];"string"!=typeof u&&(a=u.content,Array.isArray(a)?"template-string"===u.type?(u=a[1],3===a.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(a[1]=s(i,l,u))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)})}(A),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(A),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return n})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];o=(a="RegExp"===e.util.type(a)?e.languages.javascript[o]={pattern:a}:a).inside||{};(a.inside=o)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(A),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return o}),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:l(o.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&0<n.length&&0===n[n.length-1].openedBraces&&(a=l(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=l(t[r-1])+a,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",a,null,a)),o.content&&"string"!=typeof o.content&&i(o.content)}}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)})}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=A.languages.swift}),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),A.languages.c=A.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),A.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),A.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},A.languages.c.string],char:A.languages.c.char,comment:A.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:A.languages.c}}}}),A.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete A.languages.c.boolean,A.languages.objectivec=A.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete A.languages.objectivec["class-name"],A.languages.objc=A.languages.objectivec,A.languages.reason=A.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),A.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete A.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),A.languages.go=A.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),A.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete A.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,function(){return t.source});e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,function(){return n})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(A),A.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},A.languages.python["string-interpolation"].inside.interpolation.inside.rest=A.languages.python,A.languages.py=A.languages.python,A.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},A.languages.webmanifest=A.languages.json;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>j,duotoneLight:()=>L,github:()=>P,gruvboxMaterialDark:()=>Q,gruvboxMaterialLight:()=>K,jettwaveDark:()=>H,jettwaveLight:()=>G,nightOwl:()=>N,nightOwlLight:()=>R,oceanicNext:()=>I,okaidia:()=>M,oneDark:()=>V,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},j={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},L={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},N={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},R={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",D="#8dc891",I={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:D}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:D}},{types:["punctuation"],style:{color:D}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},K={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},Y=/\r\n|\r|\n/,Z=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},X=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},J=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,u=t[i];const c=n[i][a];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=X(u,c.type),c.alias&&(u=X(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(Y),p=d.length;l.push({types:u,content:d[0]});for(let t=1;t<p;t++)Z(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return Z(l),s},ee=(e,t)=>{const{plain:n}=e,r=e.styles.reduce((e,n)=>{const{languages:r,style:o}=n;return r&&!r.includes(t)||n.types.forEach(t=>{const n=S(S({},e[t]),o);e[t]=n}),e},{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},te=({children:e,language:t,code:n,theme:r,prism:o})=>{const a=t.toLowerCase(),i=ee(r,a),l=(e=>(0,c.useCallback)(t=>{var n=t,{className:r,style:o,line:a}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof o&&(l.style=S(S({},l.style||{}),o)),l},[e]))(i),s=(e=>{const t=(0,c.useCallback)(({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map(t=>e[t]))},[e]);return(0,c.useCallback)(e=>{var n=e,{token:r,className:o,style:a}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.A)("token",...r.types,o),children:r.content,style:t(r)});return null!=a&&(l.style=S(S({},l.style||{}),a)),l},[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>(0,c.useMemo)(()=>{if(null==n)return J([t]);const o={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",o),J(o.tokens)},[t,n,r,e]))({prism:o,language:a,code:n,grammar:o.languages[a]});return e({tokens:u,className:`prism-code language-${a}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ne=e=>(0,c.createElement)(te,E(S({},e),{prism:e.prism||A,theme:e.theme||U,code:e.code,language:e.language}))},8884:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>p,Gy:()=>c,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(505),o=n(321),a=n(6512);function i(e,t={}){const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find(e=>e.isLast);function s(e,t){const n=function(e,t){return[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1}))}(e,t),o=n?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1}));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach(e=>{e.docs.forEach(r=>{r.id===t&&(n[e.name]=r)})}),n}(o.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=a.W,n={}){const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e={}){const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){const o=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map(e=>e.path).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8955:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(7378);var r=n(6562),o=n(6106);function a(e){return(0,o.jsx)(r.mg,{...e})}},9101:(e,t,n)=>{"use strict";n.d(t,{M:()=>g,o:()=>m});var r=n(7378),o=n(3724),a=n(6687),i=n(9328),l=n(5794),s=n(6106);const u=(0,a.Wf)("docusaurus.announcement.dismiss"),c=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m({children:e}){const t=function(){const{announcementBar:e}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)(()=>!!t&&d());(0,r.useEffect)(()=>{a(d())},[]);const i=(0,r.useCallback)(()=>{p(!0),a(!0)},[]);return(0,r.useEffect)(()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||a(!1)},[e]),(0,r.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:t,children:e})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},9106:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(7378);n(6106);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},9124:(e,t,n)=>{"use strict";var r=n(4059);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},9141:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var u=a[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(o=n?n.call(r,c,d,u):void 0)||void 0===o&&c!==d)return!1}return!0}},9205:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(7378),o=n(6898),a=n(3426),i=n(321),l=n(8715),s=n(9738),u=n(9106),c=n(4082),d=n(6106);function p({isNavLink:e,to:t,href:n,activeClassName:p,isActive:f,"data-noBrokenLinkCheck":m,autoAddBaseUrl:g=!0,...h},y){const{siteConfig:b}=(0,i.A)(),{trailingSlash:v,baseUrl:w}=b,k=b.future.experimental_router,{withBaseUrl:x}=(0,c.hH)(),S=(0,u.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(y,()=>E.current);const _=t||n;const C=(0,l.A)(_),A=_?.replace("pathname://","");let T=void 0!==A?(j=A,g&&(e=>e.startsWith("/"))(j)?x(j):j):void 0;var j;"hash"===k&&T?.startsWith("./")&&(T=T?.slice(1)),T&&C&&(T=(0,a.Ks)(T,{trailingSlash:v,baseUrl:w}));const L=(0,r.useRef)(!1),P=e?o.k2:o.N_,N=s.A.canUseIntersectionObserver,R=(0,r.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,r.useEffect)(()=>(!N&&C&&s.A.canUseDOM&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()}),[R,T,N,C]);const D=T?.startsWith("#")??!1,I=!h.target||"_self"===h.target,M=!T||!C||!I||D&&"hash"!==k;m||!D&&M||S.collectLink(T),h.id&&S.collectAnchor(h.id);const F={};return M?(0,d.jsx)("a",{ref:E,href:T,..._&&!C&&{target:"_blank",rel:"noopener noreferrer"},...h,...F}):(0,d.jsx)(P,{...h,onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,N&&e&&C&&(R.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))})}),R.current.observe(e))},to:T,...e&&{isActive:f,activeClassName:p},...F})}const f=r.forwardRef(p)},9328:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(7378),o=n(1200),a=n(6106);function i(e){const t=(0,r.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,r.useCallback)((...e)=>t.current(...e),[])}function l(e){const t=(0,r.useRef)();return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,r.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,a.jsx)(a.Fragment,{children:e.reduceRight((e,t)=>(0,a.jsx)(t,{children:e}),t)})}},9444:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>o})},9511:(e,t,n)=>{"use strict";n.d(t,{A:()=>jt});var r=n(7378),o=n(3372),a=n(7299),i=n(496),l=n(505),s=n(929),u=n(8522),c=n(6106);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)(e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)},[]);return(0,u.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&p(e.current)}),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(2811),y=n(946);const b={skipToContent:"skipToContent_SnWU"};function v(){return(0,c.jsx)(g,{className:b.skipToContent})}var w=n(5794),k=n(9101);function x({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:o,...a}){return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...a,children:(0,c.jsx)("g",{stroke:n,strokeWidth:r,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_geUY"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_ZBlz"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,o.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_BnIX",announcementBarPlaceholder:"announcementBarPlaceholder_fyty",announcementBarClose:"announcementBarClose_GM5r",announcementBarContent:"announcementBarContent_rRZH"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,c.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,A.announcementBar),style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),i&&(0,c.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var j=n(2961),L=n(1460);var P=n(9328),N=n(4964);const R=r.createContext(null);function O({children:e}){const t=function(){const e=(0,j.M)(),t=(0,N.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,P.ZC)(a);return(0,r.useEffect)(()=>{a&&!i&&o(!0)},[a,i]),(0,r.useEffect)(()=>{a?e.shown||o(!0):o(!1)},[e.shown,a]),(0,r.useMemo)(()=>[n,o],[n])}();return(0,c.jsx)(R.Provider,{value:t,children:e})}function D(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(R);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)(()=>n(!1),[n]),a=(0,N.YL)();return(0,r.useMemo)(()=>({shown:t,hide:o,content:D(a)}),[o,a,t])}function M(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function F({children:e,inert:t}){return(0,c.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...M(t),children:e})}function z({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=I();return(0,c.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,c.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,c.jsx)(F,{inert:r,children:t}),(0,c.jsx)(F,{inert:!r,children:n})]})]})}var B=n(6289),$=n(3724);function U(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function q(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function H(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const G="toggle_crTl",V="toggleButton_BQDk",W="toggleIcon_KZAc",Q="systemToggleIcon_m6ZP",K="lightToggleIcon_LT1z",Y="darkToggleIcon_fJCx",Z="toggleButtonDisabled_lECB";function X(e){switch(e){case null:return(0,s.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function J(e){return(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:X(e)})}function ee(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(U,{"aria-hidden":!0,className:(0,o.A)(W,K)}),(0,c.jsx)(q,{"aria-hidden":!0,className:(0,o.A)(W,Y)}),(0,c.jsx)(H,{"aria-hidden":!0,className:(0,o.A)(W,Q)})]})}function te({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:a}){const i=(0,$.A)();return(0,c.jsx)("div",{className:(0,o.A)(G,e),children:(0,c.jsx)("button",{className:(0,o.A)("clean-btn",V,!i&&Z,t),type:"button",onClick:()=>a(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:X(r),"aria-label":J(r),children:(0,c.jsx)(ee,{})})})}const ne=r.memo(te),re={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_wvlR"};function oe({className:e}){const t=(0,w.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,w.p)().colorMode,{colorModeChoice:o,setColorMode:a}=(0,B.G)();return n?null:(0,c.jsx)(ne,{className:e,buttonClassName:"dark"===t?re.darkNavbarColorModeToggle:void 0,respectPrefersColorScheme:r,value:o,onChange:a})}var ae=n(9831);function ie(){return(0,c.jsx)(ae.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function le(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function se(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(ie,{}),(0,c.jsx)(oe,{className:"margin-right--md"}),(0,c.jsx)(le,{})]})}var ue=n(9205),ce=n(4082),de=n(8715);function pe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var fe=n(2305);function me({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:o,html:a,isDropdownLink:i,prependBaseUrlToHref:l,...s}){const u=(0,ce.Ay)(n),d=(0,ce.Ay)(e),p=(0,ce.Ay)(r,{forcePrependBaseUrl:!0}),f=o&&r&&!(0,de.A)(r),m=a?{dangerouslySetInnerHTML:{__html:a}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,f&&(0,c.jsx)(fe.A,{...i&&{width:12,height:12}})]})};return r?(0,c.jsx)(ue.A,{href:l?p:r,...s,...m}):(0,c.jsx)(ue.A,{to:u,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?pe(t,n.pathname):n.pathname.startsWith(d)},...s,...m})}function ge({className:e,isDropdownItem:t,...n}){return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(me,{className:(0,o.A)("menu__link",e),...n})})}function he({className:e,isDropdownItem:t=!1,...n}){const r=(0,c.jsx)(me,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,c.jsx)("li",{children:r}):r}function ye({mobile:e=!1,position:t,...n}){const r=e?ge:he;return(0,c.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var be=n(5074),ve=n(1709),we=n(321);const ke="dropdownNavbarItemMobile_SUUz";function xe(e,t){return e.some(e=>function(e,t){return!!(0,ve.ys)(e.to,t)||!!pe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t))}function Se({collapsed:e,onClick:t}){return(0,c.jsx)("button",{"aria-label":e?(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function Ee({items:e,className:t,position:n,onClick:a,...i}){const s=function(){const{siteConfig:{baseUrl:e}}=(0,we.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),u=(0,ve.ys)(i.to,s),d=xe(e,s),{collapsed:p,toggleCollapsed:f}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:o}=(0,be.u)({initialState:()=>!e});return(0,r.useEffect)(()=>{e&&o(!1)},[e,o]),{collapsed:t,toggleCollapsed:n}}({active:u||d}),m=i.to?void 0:"#";return(0,c.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":u}),children:[(0,c.jsx)(me,{role:"button",className:(0,o.A)(ke,"menu__link menu__link--sublist",t),href:m,...i,onClick:e=>{"#"===m&&e.preventDefault(),f()},children:i.children??i.label}),(0,c.jsx)(Se,{collapsed:p,onClick:e=>{e.preventDefault(),f()}})]}),(0,c.jsx)(be.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:e.map((e,t)=>(0,r.createElement)($e,{mobile:!0,isDropdownItem:!0,onClick:a,activeClassName:"menu__link--active",...e,key:t}))})]})}function _e({items:e,position:t,className:n,onClick:a,...i}){const l=(0,r.useRef)(null),[s,u]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[l]),(0,c.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":s}),children:[(0,c.jsx)(me,{"aria-haspopup":"true","aria-expanded":s,role:"button",href:i.to?void 0:"#",className:(0,o.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!s))},children:i.children??i.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,r.createElement)($e,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function Ce({mobile:e=!1,...t}){const n=e?Ee:_e;return(0,c.jsx)(n,{...t})}var Ae=n(79),Te=n(3409);function je({width:e=20,height:t=20,...n}){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const Le="iconLanguage_mN5x";function Pe(){const{siteConfig:e,i18n:{localeConfigs:t}}=(0,we.A)(),n=(0,Ae.o)(),r=(0,Te.Hl)(e=>e.location.search),o=(0,Te.Hl)(e=>e.location.hash),a=e=>{const n=t[e];if(!n)throw new Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{const l=(0,Te.jy)([r,i.queryString],"append");return`${(t=>a(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0}))(t)}${l}${o}`},getLabel:e=>a(e).label,getLang:e=>a(e).htmlLang}}var Ne=n(4169);const Re={navbarSearchContainer:"navbarSearchContainer_GyVn"};function Oe({children:e,className:t}){return(0,c.jsx)("div",{className:(0,o.A)(t,Re.navbarSearchContainer),children:e})}var De=n(8884),Ie=n(379);var Me=n(2752);function Fe({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map(e=>[e.name,e])),r=(t,r)=>{const o=n.get(t);if(!o)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map(e=>`${e.name}`).join("\n- ")}`);return{version:o,label:r?.label??o.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}return e.map(e=>({version:e,label:e.label}))}((0,De.jh)(e),t)}function ze(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find(t=>t.id===e.mainDocId)}(e)}const Be={default:ye,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r,...o}){const a=Pe(),{i18n:{currentLocale:i,locales:l}}=(0,we.A)(),u=[...t,...l.map(t=>({label:a.getLabel(t),lang:a.getLang(t),to:a.getURL(t,{queryString:r}),target:"_self",autoAddBaseUrl:!1,className:t===i?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):a.getLabel(i);return(0,c.jsx)(Ce,{...o,mobile:e,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(je,{className:Le}),d]}),items:u})},search:function({mobile:e,className:t}){return e?null:(0,c.jsx)(Oe,{className:t,children:(0,c.jsx)(Ne.A,{})})},dropdown:Ce,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const a=r?"li":"div";return(0,c.jsx)(a,{className:(0,o.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,De.zK)(n),a=(0,Ie.QB)(e,n),i=o?.path===a?.path;return null===a||a.unlisted&&!i?null:(0,c.jsx)(ye,{exact:!0,...r,isActive:()=>i||!!o?.sidebar&&o.sidebar===a.sidebar,label:t??a.id,to:a.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,De.zK)(n),a=(0,Ie.fW)(e,n).link;if(!a)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,c.jsx)(ye,{exact:!0,...r,isActive:()=>o?.sidebar===e,label:t??a.label,to:a.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const o=(0,Ie.Vd)(n)[0],a=e??o.label,i=t??(e=>e.docs.find(t=>t.id===e.mainDocId))(o).path;return(0,c.jsx)(ye,{...r,label:a,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:o,versions:a,...i}){const l=(0,Te.Hl)(e=>e.location.search),u=(0,Te.Hl)(e=>e.location.hash),d=(0,De.zK)(t),{savePreferredVersionName:p}=(0,Me.g1)(t),f=Fe({docsPluginId:t,configs:a}),m=function({docsPluginId:e,versionItems:t}){return(0,Ie.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:f}),g=[...r,...f.map(function({version:e,label:t}){return{label:t,to:`${ze(e,d).path}${l}${u}`,isActive:()=>e===d.activeVersion,onClick:()=>p(e.name)}}),...o],h=e&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=e&&g.length>1?void 0:ze(m.version,d).path;return g.length<=1?(0,c.jsx)(ye,{...i,mobile:e,label:h,to:y,isActive:n?()=>!1:void 0}):(0,c.jsx)(Ce,{...i,mobile:e,label:h,to:y,items:g,isActive:n?()=>!1:void 0})}};function $e({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Be[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,c.jsx)(r,{...t})}function Ue(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,r.createElement)($e,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function qe(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function He(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(qe,{onClick:()=>t.hide()}),t.content]})}function Ge(){const e=(0,j.M)();return function(e=!0){(0,r.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender?(0,c.jsx)(z,{header:(0,c.jsx)(se,{}),primaryMenu:(0,c.jsx)(Ue,{}),secondaryMenu:(0,c.jsx)(He,{})}):null}const Ve={navbarHideable:"navbarHideable_JpBT",navbarHidden:"navbarHidden_I0BD"};function We(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Qe({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,w.p)(),a=(0,j.M)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)(e=>{null!==e&&(a.current=e.getBoundingClientRect().height)},[]);return(0,L.Mq)(({scrollY:t},r)=>{if(!e)return;if(t<a.current)return void n(!0);if(o.current)return void(o.current=!1);const i=r?.scrollY,l=document.documentElement.scrollHeight-a.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)}),(0,u.$)(t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,c.jsxs)("nav",{ref:i,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[Ve.navbarHideable,!l&&Ve.navbarHidden],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":a.shown}),children:[e,(0,c.jsx)(We,{onClick:a.toggle}),(0,c.jsx)(Ge,{})]})}var Ke=n(3426);const Ye={errorBoundaryError:"errorBoundaryError_nlDk",errorBoundaryFallback:"errorBoundaryFallback_JeCu"};function Ze(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Xe({error:e}){const t=(0,Ke.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Ye.errorBoundaryError,children:t})}class Je extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const et="right";function tt({width:e=30,height:t=30,className:n,...r}){return(0,c.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function nt(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(tt,{})})}const rt={colorModeToggle:"colorModeToggle_eWi8"};function ot({items:e}){return(0,c.jsx)(c.Fragment,{children:e.map((e,t)=>(0,c.jsx)(Je,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)($e,{...e})},t))})}function at({left:e,right:t}){return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,c.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function it(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??et)}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,c.jsx)(at,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(nt,{}),(0,c.jsx)(ie,{}),(0,c.jsx)(ot,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ot,{items:r}),(0,c.jsx)(oe,{className:rt.colorModeToggle}),!o&&(0,c.jsx)(Oe,{children:(0,c.jsx)(Ne.A,{})})]})})}function lt(){return(0,c.jsx)(Qe,{children:(0,c.jsx)(it,{})})}function st({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:a,className:i,...l}=e,s=(0,ce.Ay)(t),u=(0,ce.Ay)(n,{forcePrependBaseUrl:!0});return(0,c.jsxs)(ue.A,{className:(0,o.A)("footer__link-item",i),...n?{href:a?u:n}:{to:s},...l,children:[r,n&&!(0,de.A)(n)&&(0,c.jsx)(fe.A,{})]})}function ut({item:e}){return e.html?(0,c.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(st,{item:e})},e.href??e.to)}function ct({column:e}){return(0,c.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,c.jsx)("div",{className:"footer__title",children:e.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,c.jsx)(ut,{item:e},t))})]})}function dt({columns:e}){return(0,c.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,c.jsx)(ct,{column:e},t))})}function pt(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ft({item:e}){return e.html?(0,c.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,c.jsx)(st,{item:e})}function mt({links:e}){return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(ft,{item:t}),e.length!==n+1&&(0,c.jsx)(pt,{})]},n))})})}function gt({links:e}){return function(e){return"title"in e[0]}(e)?(0,c.jsx)(dt,{columns:e}):(0,c.jsx)(mt,{links:e})}var ht=n(714);const yt="footerLogoLink_jF0C";function bt({logo:e}){const{withBaseUrl:t}=(0,ce.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,c.jsx)(ht.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function vt({logo:e}){return e.href?(0,c.jsx)(ue.A,{href:e.href,className:yt,target:e.target,children:(0,c.jsx)(bt,{logo:e})}):(0,c.jsx)(bt,{logo:e})}function wt({copyright:e}){return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function kt({style:e,links:t,logo:n,copyright:r}){return(0,c.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function xt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,c.jsx)(kt,{style:o,links:n&&n.length>0&&(0,c.jsx)(gt,{links:n}),logo:r&&(0,c.jsx)(vt,{logo:r}),copyright:t&&(0,c.jsx)(wt,{copyright:t})})}const St=r.memo(xt),Et=(0,P.fM)([B.a,k.o,L.Tv,Me.VQ,i.Jx,function({children:e}){return(0,c.jsx)(N.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:e})})})}]);function _t({children:e}){return(0,c.jsx)(Et,{children:e})}var Ct=n(3873);function At({error:e,tryAgain:t}){return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(Ct.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ze,{onClick:t,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Xe,{error:e})})]})})})}const Tt={mainWrapper:"mainWrapper_fO6_"};function jt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.J)(),(0,c.jsxs)(_t,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(lt,{}),(0,c.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,Tt.mainWrapper,r),children:(0,c.jsx)(a.A,{fallback:e=>(0,c.jsx)(At,{...e}),children:t})}),!n&&(0,c.jsx)(St,{})]})}},9606:(e,t,n)=>{const r=n(125),o=n(6520),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter(e=>"meta"!=e):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load(e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(7025).resolve(t)],delete Prism.languages[e],n(7025)(t),a.add(e)})}i.silent=!1,e.exports=i},9738:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},9831:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(7378);var r=n(9205),o=n(4082),a=n(321),i=n(5794),l=n(714),s=n(6106);function u({logo:e,alt:t,imageClassName:n}){const r={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},a=(0,s.jsx)(l.A,{className:e.className,sources:r,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,s.jsx)("div",{className:n,children:a}):a}function c(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,o.Ay)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:g,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},9888:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(1408);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),u=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8635);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter(function(e){return e!==r})}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach(function(e){return e.apply(void 0,n)})}}}var g=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?h:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return _&&(a=c(a,_)),f(a,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var T=m();function j(e){(0,r.A)($,e),$.length=n.length,T.notifyListeners($.location,$.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(C(e.state))}function P(){R(C(v()))}var N=!1;function R(e){if(N)N=!1,j();else{T.confirmTransitionTo(e,"POP",x,function(t){t?j({action:"POP",location:e}):function(e){var t=$.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(N=!0,M(o))}(e)})}}var O=C(v()),D=[O.key];function I(e){return _+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(y,L),a&&window.addEventListener(b,P)):0===F&&(window.removeEventListener(y,L),a&&window.removeEventListener(b,P))}var B=!1;var $={length:n.length,action:"POP",location:O,createHref:I,push:function(e,t){var r="PUSH",a=f(e,t,A(),$.location);T.confirmTransitionTo(a,r,x,function(e){if(e){var t=I(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf($.location.key),u=D.slice(0,s+1);u.push(a.key),D=u,j({action:r,location:a})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",a=f(e,t,A(),$.location);T.confirmTransitionTo(a,r,x,function(e){if(e){var t=I(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf($.location.key);-1!==s&&(D[s]=a.key),j({action:r,location:a})}else window.location.replace(t)}})},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=T.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?h:o,i=n.hashType,u=void 0===i?"slash":i,y=e.basename?d(s(e.basename)):"",b=x[u],v=b.encodePath,w=b.decodePath;function C(){var e=w(E());return y&&(e=c(e,y)),f(e)}var A=m();function T(e){(0,r.A)(B,e),B.length=t.length,A.notifyListeners(B.location,B.action)}var j=!1,L=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var o=C(),i=B.location;if(!j&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(o))return;L=null,function(e){if(j)j=!1,T();else{var t="POP";A.confirmTransitionTo(e,t,a,function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(j=!0,I(o))}(e)})}}(o)}}var N=E(),R=v(N);N!==R&&_(R);var O=C(),D=[p(O)];function I(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,P):0===M&&window.removeEventListener(k,P)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(y+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,a,function(e){if(e){var t=p(r),o=v(y+t);if(E()!==o){L=t,function(e){window.location.hash=e}(o);var a=D.lastIndexOf(p(B.location)),i=D.slice(0,a+1);i.push(t),D=i,T({action:n,location:r})}else T()}})},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,a,function(e){if(e){var t=p(r),o=v(y+t);E()!==o&&(L=t,_(o));var a=D.indexOf(p(B.location));-1!==a&&(D[a]=t),T({action:n,location:r})}})},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function A(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function g(){return Math.random().toString(36).substr(2,u)}var h=A(l,0,a.length-1),y=a.map(function(e){return f(e,void 0,"string"==typeof e?g():e.key||g())}),b=p;function v(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,function(e){e?d({action:"POP",location:r,index:t}):d()})}var w={length:y.length,action:"POP",location:y[h],index:h,entries:y,createHref:b,push:function(e,t){var r="PUSH",o=f(e,t,g(),w.location);c.confirmTransitionTo(o,r,n,function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",o=f(e,t,g(),w.location);c.confirmTransitionTo(o,r,n,function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))})},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}}},e=>{e.O(0,[869],()=>{return t=4292,e(e.s=t);var t});e.O()}]); \ No newline at end of file diff --git a/upage/assets/js/main.648541e0.js.LICENSE.txt b/upage/assets/js/main.648541e0.js.LICENSE.txt new file mode 100644 index 0000000..647fcb4 --- /dev/null +++ b/upage/assets/js/main.648541e0.js.LICENSE.txt @@ -0,0 +1,51 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/upage/assets/js/runtime~main.8350f77c.js b/upage/assets/js/runtime~main.8350f77c.js new file mode 100644 index 0000000..7f471e4 --- /dev/null +++ b/upage/assets/js/runtime~main.8350f77c.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,t,r,a,c,o={},n={};function f(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=o,f.c=n,e=[],f.O=(t,r,a,c)=>{if(!r){var o=1/0;for(u=0;u<e.length;u++){r=e[u][0],a=e[u][1],c=e[u][2];for(var n=!0,d=0;d<r.length;d++)(!1&c||o>=c)&&Object.keys(f.O).every(e=>f.O[e](r[d]))?r.splice(d--,1):(n=!1,c<o&&(o=c));if(n){e.splice(u--,1);var i=a();void 0!==i&&(t=i)}}return t}c=c||0;for(var u=e.length;u>0&&e[u-1][2]>c;u--)e[u]=e[u-1];e[u]=[r,a,c]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var o={};t=t||[null,r({}),r([]),r(r)];for(var n=2&a&&e;("object"==typeof n||"function"==typeof n)&&!~t.indexOf(n);n=r(n))Object.getOwnPropertyNames(n).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,f.d(c,o),c},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((t,r)=>(f.f[r](e,t),t),[])),f.u=e=>"assets/js/"+({9:"68f842ca",48:"a94703ab",77:"bb48f956",98:"a7bd4aaa",139:"931f8773",151:"13d3c590",154:"1ec2c777",183:"2ccc2e53",185:"a5796a8c",206:"cea871c7",378:"6115a388",401:"17896441",461:"d6dcccef",464:"7e9a7b3c",506:"003b49f9",519:"86585ddf",605:"778fc58b",647:"5e95c892",683:"cc946c3e",742:"aba21aa0",761:"315f1747",851:"2f401bd1",940:"221e29db",969:"14eb3368",975:"6c46c4d6",976:"710eb747"}[e]||e)+"."+{9:"c586b730",48:"9e1bcbc8",77:"ec46aa8f",98:"81f5341b",139:"34a6d928",151:"eb8971d6",154:"9bb5192e",183:"0ce41deb",185:"b65dd1b0",206:"3d7577e3",378:"f2e4d1a7",401:"d46dfadf",461:"ca4f4ffd",464:"ceb49ea1",506:"69070d1e",519:"38132d93",605:"c1379a0f",647:"191c849f",683:"9152aa25",742:"4fc1e48c",761:"3cb56dff",803:"72810d70",851:"fa1b7d98",940:"d52ad40d",969:"dcc639fc",975:"b5a952fa",976:"ea4f2e89"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},c="upage-docs:",f.l=(e,t,r,o)=>{if(a[e])a[e].push(t);else{var n,d;if(void 0!==r)for(var i=document.getElementsByTagName("script"),u=0;u<i.length;u++){var b=i[u];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")==c+r){n=b;break}}n||(d=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,f.nc&&n.setAttribute("nonce",f.nc),n.setAttribute("data-webpack",c+r),n.src=e),a[e]=[t];var l=(t,r)=>{n.onerror=n.onload=null,clearTimeout(s);var c=a[e];if(delete a[e],n.parentNode&&n.parentNode.removeChild(n),c&&c.forEach(e=>e(r)),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/upage/",f.gca=function(e){return e={17896441:"401","68f842ca":"9",a94703ab:"48",bb48f956:"77",a7bd4aaa:"98","931f8773":"139","13d3c590":"151","1ec2c777":"154","2ccc2e53":"183",a5796a8c:"185",cea871c7:"206","6115a388":"378",d6dcccef:"461","7e9a7b3c":"464","003b49f9":"506","86585ddf":"519","778fc58b":"605","5e95c892":"647",cc946c3e:"683",aba21aa0:"742","315f1747":"761","2f401bd1":"851","221e29db":"940","14eb3368":"969","6c46c4d6":"975","710eb747":"976"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var c=new Promise((r,c)=>a=e[t]=[r,c]);r.push(a[2]=c);var o=f.p+f.u(t),n=new Error;f.l(o,r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var c=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;n.message="Loading chunk "+t+" failed.\n("+c+": "+o+")",n.name="ChunkLoadError",n.type=c,n.request=o,a[1](n)}},"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,c,o=r[0],n=r[1],d=r[2],i=0;if(o.some(t=>0!==e[t])){for(a in n)f.o(n,a)&&(f.m[a]=n[a]);if(d)var u=d(f)}for(t&&t(r);i<o.length;i++)c=o[i],f.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return f.O(u)},r=self.webpackChunkupage_docs=self.webpackChunkupage_docs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})(); \ No newline at end of file diff --git a/upage/configuration.html b/upage/configuration.html new file mode 100644 index 0000000..eebdf71 --- /dev/null +++ b/upage/configuration.html @@ -0,0 +1,111 @@ +<!doctype html> +<html lang="zh-Hans" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.9.0"> +<title data-rh="true">配置参考 | UPage 文档 + + + + + + + +

配置参考

+

本文档提供了 UPage 的完整配置参考,包括基础配置、AI 提供商配置、认证配置,帮助您根据自己的需求定制和优化 UPage。

+

UPage 使用环境变量进行配置。您可以通过以下方式设置环境变量:

+
    +
  • 在 Docker 运行命令中使用 -e 参数
  • +
  • 在 Docker Compose 文件中使用 environment 部分
  • +
  • 在源码部署中创建 .env 文件
  • +
+

基础配置

+
环境变量描述默认值必填
PORT服务监听端口3000
NODE_ENVNode.js 环境production
OPERATING_ENV运行环境production
LOG_LEVEL日志级别(debug, info, warn, error)info
USAGE_LOG_FILE是否开启文件日志true
MAX_UPLOAD_SIZE_MB附件上传的最大大小 (MB)5
STORAGE_DIR资源文件存储位置/app/storage
+

AI 提供商配置

+

UPage 支持多种 AI 提供商,您需要配置一个 AI 提供商才能使用页面生成功能。

+
配置参数颜色说明

为了帮助您区分不同提供商所需的配置参数,我们使用了不同的颜色标记:

    +
  • API 基础 URL: 用蓝色标记,通常是服务的访问地址
  • +
  • API 密钥: 用红色标记,通常是敏感信息,需要从提供商处获取
  • +
+
环境变量描述默认值必填
LLM_PROVIDERLLM 提供商,按照下述配置项配置一个-
PROVIDER_BASE_URLLLM 提供商的 API 基础 URL,部分提供商需要设置此项,例如 OpenAILike, Ollama, LMStudio-否,部分提供商不需要设置此项
PROVIDER_API_KEYLLM 提供商的 API 密钥,大部分提供商需要设置此项-否,部分提供商不需要设置此项
LLM_DEFAULT_MODEL生成页面所使用的模型-
LLM_MINOR_MODEL辅助页面生成所使用的模型-
+

以下是常见的 AI 提供商配置:

+

Amazon Bedrock

+
环境变量描述默认值必填
LLM_PROVIDERAmazon Bedrock 提供商名称AmazonBedrock
PROVIDER_API_KEYAmazon Bedrock 配置-是(如果使用 Amazon Bedrock)
+
信息

在 Amazon Bedrock 提供商中,PROVIDER_API_KEY 应为 JSON 格式。例如:

{
// Bedrock 可用的 AWS 区域
"region": "us-east-1",
// 你的 AWS 访问密钥 ID
"accessKeyId": "your-access-key-id",
// 你的 AWS 访问密钥令牌
"secretAccessKey": "your-secret-access-key",
// AWS 会话令牌(可选),如果使用 IAM 角色或临时凭据,则为临时会话令牌
"sessionToken": "your-session-token"
}

前往 Amazon Bedrock 中获取配置。

+

Anthropic Claude

+
环境变量描述默认值必填
LLM_PROVIDERAnthropic 提供商Anthropic
PROVIDER_API_KEYAnthropic API 密钥-是(如果使用 Anthropic)
+
信息

前往 Anthropic 获取 API 密钥。

+

Cohere

+
环境变量描述默认值必填
LLM_PROVIDERCohere 提供商名称Cohere
PROVIDER_API_KEYCohere API 密钥-是(如果使用 Cohere)
+
信息

前往 Cohere 获取 API 密钥。

+

DeepSeek

+
环境变量描述默认值必填
LLM_PROVIDERDeepSeek 提供商名称Deepseek
PROVIDER_API_KEYDeepSeek API 密钥-是(如果使用 DeepSeek)
+
信息

前往 DeepSeek 获取 API 密钥。

+

Github

+
环境变量描述默认值必填
LLM_PROVIDERGithub 提供商名称Github
PROVIDER_API_KEYGithub API 密钥-是(如果使用 Github)
+
信息

前往 Github 获取 API 密钥。

+

Google

+
环境变量描述默认值必填
LLM_PROVIDERGoogle 提供商名称Google
PROVIDER_API_KEYGoogle 生成式 AI API 密钥-是(如果使用 Google)
+
信息

前往 Google 获取 API 密钥。

+

Groq

+
环境变量描述默认值必填
LLM_PROVIDERGroq 提供商名称Groq
PROVIDER_API_KEYGroq API 密钥-是(如果使用 Groq)
+
信息

前往 Groq 获取 API 密钥。

+

HuggingFace

+
环境变量描述默认值必填
LLM_PROVIDERHuggingFace 提供商名称HuggingFace
PROVIDER_API_KEYHuggingFace API 密钥-是(如果使用 HuggingFace)
+
信息

前往 HuggingFace 获取 API 密钥。

+

Hyperbolic

+
环境变量描述默认值必填
LLM_PROVIDERHyperbolic 提供商名称Hyperbolic
PROVIDER_API_KEYHyperbolic API 密钥-是(如果使用 Hyperbolic)
+
信息

前往 Hyperbolic 获取 API 密钥。

+

LMStudio

+
环境变量描述默认值必填
LLM_PROVIDERLMStudio 提供商名称LMStudio
PROVIDER_BASE_URLLMStudio API URLhttp://127.0.0.1:1234是(如果使用 LMStudio)
+
注意

由于可能存在的 IPV6 的问题,所以不要使用 http://localhost:1234 而应该使用类似于 http://127.0.0.1:1234 的地址

+

Mistral

+
环境变量描述默认值必填
LLM_PROVIDERMistral 提供商名称Mistral
PROVIDER_API_KEYMistral API 密钥-是(如果使用 Mistral)
+
信息

前往 Mistral 获取 API 密钥。

+

Ollama

+
环境变量描述默认值必填
LLM_PROVIDEROllama 提供商名称Ollama
PROVIDER_BASE_URLOllama API URLhttp://127.0.0.1:11434是(如果使用 Ollama)
+
注意

由于可能存在的 IPV6 的问题,所以不要使用 http://localhost:11434 而应该使用类似于 http://127.0.0.1:11434 的地址

+

OpenRouter

+
环境变量描述默认值必填
LLM_PROVIDEROpenRouter 提供商名称OpenRouter
PROVIDER_API_KEYOpenRouter API 密钥-是(如果使用 OpenRouter)
+
信息

前往 OpenRouter 获取 API 密钥。

+

兼容 OpenAI 接口的服务

+
环境变量描述默认值必填
LLM_PROVIDEROpenAILike 提供商名称OpenAILike
PROVIDER_BASE_URLAPI 基础 URL-是(如果使用 OpenAILike)
PROVIDER_API_KEYAPI 密钥-是(如果使用 OpenAILike)
+

OpenAI

+
环境变量描述默认值必填
LLM_PROVIDEROpenAI 提供商名称OpenAI
PROVIDER_API_KEYOpenAI API 密钥-是(如果使用 OpenAI)
+
信息

前往 OpenAI 获取 API 密钥。

+

Perplexity

+
环境变量描述默认值必填
LLM_PROVIDERPerplexity 提供商名称Perplexity
PROVIDER_API_KEYPerplexity API 密钥-是(如果使用 Perplexity)
+
信息

前往 Perplexity 获取 API 密钥。

+

Together

+
环境变量描述默认值必填
LLM_PROVIDERTogether 提供商名称Together
PROVIDER_API_KEYTogether API 密钥-是(如果使用 Together)
+
信息

前往 Together 获取 API 密钥。

+

xAI

+
环境变量描述默认值必填
LLM_PROVIDERxAI 提供商名称xAI
PROVIDER_API_KEYxAI API 密钥-是(如果使用 xAI)
+
信息

前往 xAI 获取 API 密钥。

+

AI 工具配置

+

UPage 支持集成部分 AI 工具调用,用于为 UPage 提供服务,您可以根据需要配置。

+

Serper(网络搜索工具)

+

UPage 集成了 Serper 的搜索服务,您可以通过配置 SERPER_API_KEY 来使用 Serper 的搜索服务。

+
环境变量描述默认值必填
SERPER_API_KEYSerper API 密钥-是(如果使用 Serper)
+
信息

前往 Serper 获取 API 密钥。

+

Weather(天气工具)

+

UPage 集成了 Weather 的天气服务,您可以通过配置 WEATHER_API_KEY 来使用 Weather 的天气服务。

+
环境变量描述默认值必填
WEATHER_API_KEYWeather API 密钥-是(如果使用 Weather)
+
信息

前往 Weather 获取 API 密钥。

+

认证配置

+

Logto 认证

+

UPage 默认仅支持单一的匿名用户访问,您可以通过集成 Logto 后配置 LOGTO_ENABLE 来启用 Logto 认证,支持多用户登录。

+
环境变量描述默认值必填
LOGTO_ENABLE是否启用 Logto 认证false
LOGTO_ENDPOINTLogto 服务的 URL-是(如果使用 Logto)
LOGTO_APP_IDLogto 应用程序 ID-是(如果使用 Logto)
LOGTO_APP_SECRETLogto 应用程序密钥-是(如果使用 Logto)
LOGTO_COOKIE_SECRET用于加密 cookie 的密钥-是(如果使用 Logto)
LOGTO_BASE_URLUPage 地址-是(如果使用 Logto)
+
信息

Logto 集成请参阅 Logto 认证集成文档。

+

配置示例

+

以下内容以使用 Docker Compose 作为示例,用于展示 UPage 的完整配置。

+
version: "3.9"
services:
upage:
image: halo-dev/upage:latest
container_name: upage
restart: unless-stopped
ports:
- "3000:3000"
environment:
# 基础配置
- PORT=3000
- NODE_ENV=production
- OPERATING_ENV=production
- LOG_LEVEL=info
- USAGE_LOG_FILE=true
- MAX_UPLOAD_SIZE_MB=10
- STORAGE_DIR=/app/storage

# 使用 DeepSeek 提供商配置
- LLM_PROVIDER=DeepSeek
- PROVIDER_API_KEY=your-deepseek-api-key
- LLM_DEFAULT_MODEL=deepseek-chat
- LLM_MINOR_MODEL=deepseek-chat

# AI 工具配置
- SERPER_API_KEY=your-serper-api-key
- WEATHER_API_KEY=your-weather-api-key

# Logto 认证配置
- LOGTO_ENABLE=true
- LOGTO_ENDPOINT=http://logto:3001
- LOGTO_APP_ID=your-app-id
- LOGTO_APP_SECRET=your-app-secret
- LOGTO_COOKIE_SECRET=your-cookie-secret
- LOGTO_BASE_URL=http://localhost:3000
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./storage:/app/storage
+

如果你要切换使用其他 AI 提供商,则只需要修改 LLM_PROVIDER 和相应的 API 密钥、Model 即可,例如:

+
version: "3.9"
services:
upage:
image: halo-dev/upage:latest
container_name: upage
restart: unless-stopped
ports:
- "3000:3000"
environment:
# 使用 OpenAI 兼容接口的提供商配置
- LLM_PROVIDER=OpenAILike
- PROVIDER_BASE_URL=your-openai-api-base-url
- PROVIDER_API_KEY=your-openai-api-key
- LLM_DEFAULT_MODEL=gpt-4.1
- LLM_MINOR_MODEL=gpt-4.1-mini

# ...其他配置
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./storage:/app/storage
+

下一步

+
+ + \ No newline at end of file diff --git a/upage/contributing.html b/upage/contributing.html new file mode 100644 index 0000000..eee0ea1 --- /dev/null +++ b/upage/contributing.html @@ -0,0 +1,33 @@ + + + + + +贡献指南 | UPage 文档 + + + + + + + +

贡献指南

+

感谢您对 UPage 项目的关注!我们非常欢迎各种形式的贡献,无论是功能开发、bug 修复、文档改进还是使用反馈。本指南将帮助您了解如何参与 UPage 的开发和贡献。

+

目录

+ +

社区

+

加入 UPage 社区,与其他贡献者交流:

+ +

许可证

+

UPage 采用 基于 GPLv3 的补充协议许可证。通过贡献代码,您同意您的贡献将在相同的许可证下发布。

+ + \ No newline at end of file diff --git a/upage/contributing/code-of-conduct.html b/upage/contributing/code-of-conduct.html new file mode 100644 index 0000000..fbe3291 --- /dev/null +++ b/upage/contributing/code-of-conduct.html @@ -0,0 +1,44 @@ + + + + + +行为准则 | UPage 文档 + + + + + + + +

行为准则

+

UPage 项目致力于为所有贡献者和参与者提供一个友好、安全和包容的环境。我们希望每个人都能够在没有骚扰和歧视的情况下参与项目。

+

我们的标准

+

参与 UPage 项目的所有贡献者都应遵循以下行为准则:

+
    +
  • 尊重所有参与者,无论其背景、经验或观点
  • +
  • 接受建设性的批评和反馈,并以专业和尊重的方式回应
  • +
  • 专注于对社区最有利的事情,考虑项目和用户的长期利益
  • +
  • 展现同理心和善意,理解他人的观点和立场
  • +
+

不可接受的行为

+

以下行为被视为不可接受:

+
    +
  • 使用性暗示的语言或图像
  • +
  • 人身攻击、侮辱或贬低性评论
  • +
  • 公开或私下的骚扰
  • +
  • 未经明确许可发布他人的私人信息
  • +
  • 任何其他可能被合理认为不适当或冒犯的行为
  • +
+

责任

+

项目维护者有责任明确行为标准,并对任何不可接受行为采取适当和公正的纠正措施。

+

项目维护者有权和责任删除、编辑或拒绝与本行为准则不符的评论、提交、代码、问题和其他贡献,并在适当时暂时或永久禁止任何贡献者参与项目。

+

范围

+

本行为准则适用于所有项目空间,包括但不限于 GitHub 仓库、问题跟踪器、讨论区、社交媒体和公共活动。它也适用于个人在代表项目或其社区时的行为。

+

反馈

+

如果您遇到滥用、骚扰或其他不可接受的行为,请通过 GitHub Issues 或直接联系项目维护者报告。

+

所有投诉将被审查和调查,并将导致被认为必要和适当的回应。项目维护者有义务对报告事件的人保密。

+

参考

+

本行为准则改编自 Contributor Covenant,版本 2.0,可在 https://www.contributor-covenant.org/version/2/0/code_of_conduct.html 查阅。

+ + \ No newline at end of file diff --git a/upage/contributing/code-standards.html b/upage/contributing/code-standards.html new file mode 100644 index 0000000..aa87832 --- /dev/null +++ b/upage/contributing/code-standards.html @@ -0,0 +1,121 @@ + + + + + +代码规范 | UPage 文档 + + + + + + + +

代码规范

+

UPage 项目遵循严格的代码规范和最佳实践,以确保代码质量和一致性。本文档概述了这些规范,所有贡献者在提交代码前应确保遵循这些规范。

+

JavaScript/TypeScript 规范

+

UPage 使用 Biome 进行代码格式化和 linting。Biome 是一个快速的代码格式化工具和 linter,可以帮助我们保持代码风格的一致性。

+

代码检查

+

在提交代码前,请确保您的代码符合项目的代码规范:

+
pnpm check
+

自动修复

+

您也可以使用以下命令自动修复格式问题:

+
pnpm check --write
+

主要规范

+
    +
  • 缩进: 使用 2 个空格
  • +
  • 分号: 必须使用分号
  • +
  • 引号: 使用单引号
  • +
  • 命名约定: +
      +
    • 变量和函数使用 camelCase
    • +
    • 类和接口使用 PascalCase
    • +
    • 常量使用 UPPER_SNAKE_CASE
    • +
    +
  • +
  • 类型注解: 尽可能使用类型注解提高代码可读性和类型安全性
  • +
  • 注释: 对复杂逻辑和公共 API 添加适当的注释
  • +
+

Git 提交规范

+

我们使用 Conventional Commits 规范来格式化 Git 提交信息。提交信息应遵循以下格式:

+
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
+

类型 (Type)

+

提交类型必须是以下之一:

+
    +
  • feat: 新功能
  • +
  • fix: 修复 bug
  • +
  • docs: 文档更新
  • +
  • style: 代码风格更改(不影响代码功能)
  • +
  • refactor: 代码重构(既不是新功能,也不是修复 bug)
  • +
  • perf: 性能优化
  • +
  • test: 添加或修改测试
  • +
  • chore: 构建过程或辅助工具的变动
  • +
  • ci: CI 配置文件和脚本的更改
  • +
  • revert: 回滚之前的提交
  • +
+

范围 (Scope)

+

范围是可选的,用于指定更改的范围(例如组件或文件名)。

+

描述 (Description)

+

描述是对更改的简短摘要:

+
    +
  • 使用现在时态("change",而不是"changed"或"changes")
  • +
  • 不要首字母大写
  • +
  • 不要以句号结尾
  • +
+

示例

+
feat(editor): 添加拖拽调整组件大小功能

添加了一个新的拖拽句柄,允许用户直接调整组件的大小。
同时优化了调整过程中的性能。

Closes #123
+
fix: 修复用户认证失败问题

修复了当用户凭证包含特殊字符时认证失败的问题。

Fixes #456
+

CSS/SCSS 规范

+

UPage 使用 SCSS 和 CSS Modules 来组织样式代码。

+

命名约定

+
    +
  • 使用 kebab-case 命名 CSS 类和 ID
  • +
  • 使用有意义的名称,避免过于简短或抽象的名称
  • +
  • 使用 BEM(Block Element Modifier)命名方法论
  • +
+

组织结构

+
    +
  • 将全局样式放在 app/styles 目录下
  • +
  • 将组件特定样式放在组件同级目录下的 .scss.module.scss 文件中
  • +
+

可访问性标准

+

UPage 致力于创建可访问的 Web 应用程序。所有贡献的代码应遵循 WCAG 2.1 AA 标准。

+
    +
  • 确保适当的颜色对比度
  • +
  • 提供替代文本和 ARIA 标签
  • +
  • 确保键盘导航功能
  • +
  • 支持屏幕阅读器
  • +
+

测试规范

+

所有新功能和 bug 修复应包含适当的测试:

+
    +
  • 单元测试: 测试单个函数和组件
  • +
  • 集成测试: 测试多个组件或功能的交互
  • +
  • 端到端测试: 测试完整的用户流程
  • +
+

测试应该:

+
    +
  • 覆盖正常和边缘情况
  • +
  • 清晰描述测试的目的
  • +
  • 保持独立性,不依赖于其他测试的状态
  • +
+

性能考虑

+

贡献的代码应考虑性能影响:

+
    +
  • 避免不必要的重新渲染
  • +
  • 优化大型列表和表格
  • +
  • 懒加载大型资源
  • +
  • 减少网络请求
  • +
  • 优化打包大小
  • +
+

安全最佳实践

+

所有代码应遵循安全最佳实践:

+
    +
  • 防止 XSS 攻击
  • +
  • 避免 SQL 注入
  • +
  • 正确处理用户输入
  • +
  • 保护敏感数据
  • +
  • 实施适当的访问控制
  • +
+ + \ No newline at end of file diff --git a/upage/contributing/development-setup.html b/upage/contributing/development-setup.html new file mode 100644 index 0000000..f201ac8 --- /dev/null +++ b/upage/contributing/development-setup.html @@ -0,0 +1,78 @@ + + + + + +开发环境设置 | UPage 文档 + + + + + + + +

开发环境设置

+

本指南将帮助您设置 UPage 的本地开发环境,以便您可以开始贡献代码。

+

前置条件

+

开始开发 UPage 前,请确保您的系统满足以下要求:

+
    +
  • Node.js: 18.18.0 或更高版本
  • +
  • pnpm: 9.4.0 或更高版本
  • +
  • Git: 最新版本
  • +
+

安装 Node.js

+

您可以从 Node.js 官网 下载并安装 Node.js,或使用版本管理工具如 nvm

+
# 使用 nvm 安装 Node.js
nvm install 18.18.0
nvm use 18.18.0
+

安装 pnpm

+

安装 pnpm 的最简单方法是通过 npm:

+
npm install -g pnpm@9.4.0
+

或者按照 pnpm 官方文档 的说明进行安装。

+

克隆仓库

+

首先,fork UPage 仓库到您的 GitHub 账户,然后将其克隆到本地:

+
# 克隆您 fork 的仓库
git clone https://github.com/YOUR-USERNAME/upage.git

# 进入项目目录
cd upage

# 添加上游仓库
git remote add upstream https://github.com/halo-dev/upage.git
+

安装依赖

+

使用 pnpm 安装项目依赖:

+
pnpm install
+

生成 Prisma 客户端

+

UPage 使用 Prisma 作为数据库 ORM,因此需要生成 Prisma 客户端。

+
pnpm setup
+

配置环境变量

+

拷贝 .env.example 文件,创建 .env 文件:

+
cp .env.example .env
+

按照配置参考的说明修改 .env 文件进行配置。

+

启用 Logto 认证(可选)

+

UPage 默认仅支持单一用户匿名访问,如果您想要开发用户认证功能,可以按照Logto 认证集成的说明配置 Logto 认证。

+

启动开发服务器

+

启动开发服务器,这将允许您在本地预览和测试您的更改:

+
pnpm dev
+

此命令会启动开发服务器,您可以通过 http://localhost:5173 访问。

+

构建项目

+

要构建生产版本的项目,运行:

+
pnpm build
+

构建完成后,您可以通过以下命令预览生产版本:

+
pnpm preview
+

预生产版本项目运行在 http://localhost:3000

+

运行测试

+

运行项目的测试套件:

+
pnpm test
+

文档开发

+

如果您想要修改或预览文档,可以使用以下命令:

+
# 启动文档开发服务器
pnpm docs:start

# 构建文档
pnpm docs:build
+

文档开发服务器默认在 http://localhost:3000 运行。

+

常见问题解决

+

依赖安装失败

+

如果您在安装依赖时遇到问题,可以尝试以下解决方案:

+
# 清除 pnpm 缓存
pnpm store prune

# 重新安装依赖
pnpm install --force
+

开发服务器启动失败

+

如果开发服务器无法启动,请检查:

+
    +
  1. 端口 5173 是否被其他应用占用
  2. +
  3. Node.js 版本是否符合要求
  4. +
  5. 是否所有依赖都已正确安装
  6. +
+

您可以尝试使用不同的端口启动:

+
pnpm dev --port 5174
+

其他问题

+

如果您遇到其他问题,请查看项目的 常见问题 或在 GitHub Issues 中搜索相关问题。如果没有找到解决方案,请创建新的 issue。

+ + \ No newline at end of file diff --git a/upage/contributing/ways-to-contribute.html b/upage/contributing/ways-to-contribute.html new file mode 100644 index 0000000..0866e0b --- /dev/null +++ b/upage/contributing/ways-to-contribute.html @@ -0,0 +1,91 @@ + + + + + +贡献方式 | UPage 文档 + + + + + + + +

贡献方式

+

您可以通过多种方式为 UPage 做出贡献,无论您是开发者、设计师、文档撰写者还是用户,都能找到适合您的贡献方式。

+

报告问题

+

如果您发现了 bug 或有功能建议,请在 GitHub Issues 中提出。提交问题时,请尽可能提供以下信息:

+
    +
  • 清晰的问题描述
  • +
  • 复现步骤
  • +
  • 预期行为与实际行为
  • +
  • 截图(如适用)
  • +
  • 环境信息(浏览器、操作系统、UPage 版本等)
  • +
+

提交代码

+

如果您想直接贡献代码,请遵循以下步骤:

+
    +
  1. Fork 项目仓库
  2. +
  3. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  4. +
  5. 提交您的更改 (git commit -m 'Add some amazing feature')
  6. +
  7. 推送到分支 (git push origin feature/amazing-feature)
  8. +
  9. 创建 Pull Request
  10. +
+

代码贡献指南

+
    +
  • 确保您的代码符合项目的代码规范
  • +
  • 为新功能编写测试
  • +
  • 更新相关文档
  • +
  • 确保所有测试通过
  • +
  • 遵循工作流程中的分支策略和 PR 流程
  • +
+

改进文档

+

文档对于任何项目都至关重要。您可以通过以下方式改进 UPage 的文档:

+
    +
  • 修复文档中的错误或不准确之处
  • +
  • 添加缺失的信息或示例
  • +
  • 改进文档的结构和可读性
  • +
  • 翻译文档到其他语言
  • +
+

文档贡献步骤

+
    +
  1. docs/content 目录中找到相关的 Markdown 文件
  2. +
  3. 进行必要的更改
  4. +
  5. 在本地预览更改:pnpm docs:start
  6. +
  7. 提交 Pull Request
  8. +
+

设计贡献

+

如果您是设计师,您可以通过以下方式贡献:

+
    +
  • 改进用户界面设计
  • +
  • 创建图标和插图
  • +
  • 设计宣传材料
  • +
  • 提供用户体验建议
  • +
+

测试和反馈

+

即使您不是开发者,您也可以通过以下方式做出重要贡献:

+
    +
  • 测试新功能和版本
  • +
  • 提供详细的反馈
  • +
  • 报告使用过程中遇到的问题
  • +
  • 提出改进建议
  • +
+

分享和推广

+

您也可以通过以下方式支持 UPage:

+
    +
  • 在社交媒体上分享项目
  • +
  • 撰写关于 UPage 的博客文章或教程
  • +
  • 在相关论坛和社区中推荐 UPage
  • +
  • 为项目加星标(Star)
  • +
+

社区支持

+

帮助其他用户解决问题也是一种重要的贡献方式:

+
    +
  • 回答 GitHub Discussions 中的问题
  • +
  • 帮助新用户入门
  • +
  • 分享您的使用经验和最佳实践
  • +
+

感谢您的贡献

+

无论您以何种方式支持和参与 UPage 项目,我们都由衷地感谢您的每一份贡献。正是因为有诸多像您这样的社区成员的支持和参与,UPage 才能不断成长和进步。每一个问题报告、每一行代码、每一份文档改进以及每一次分享都是宝贵的。

+ + \ No newline at end of file diff --git a/upage/contributing/workflow.html b/upage/contributing/workflow.html new file mode 100644 index 0000000..9ad4b4c --- /dev/null +++ b/upage/contributing/workflow.html @@ -0,0 +1,142 @@ + + + + + +工作流程 | UPage 文档 + + + + + + + +

工作流程

+

本文档描述了 UPage 项目的开发工作流程,包括分支策略、Pull Request 流程和版本发布流程。

+

分支策略

+

UPage 项目使用以下分支策略:

+

主要分支

+
    +
  • main: 主分支,包含最新的开发代码,用于集成功能和修复,同时也对应最新的发布版本
  • +
+

功能分支

+

开发新功能时,应从 main 分支创建功能分支:

+
    +
  • feature/*: 功能分支,用于开发新功能 +
      +
    • 例如:feature/drag-and-dropfeature/user-authentication
    • +
    +
  • +
+

修复分支

+

修复 bug 时,应从 main 分支创建修复分支:

+
    +
  • fix/*: 修复分支,用于修复 bug +
      +
    • 例如:fix/login-errorfix/memory-leak
    • +
    +
  • +
+

发布分支

+

准备新版本发布时,从 main 分支创建发布分支:

+
    +
  • release/*: 发布分支,用于准备新版本发布 +
      +
    • 例如:release/v1.0.0release/v1.1.0
    • +
    +
  • +
+

热修复分支

+

对已发布版本的紧急修复,从 main 分支创建热修复分支:

+
    +
  • hotfix/*: 热修复分支,用于对已发布版本的紧急修复 +
      +
    • 例如:hotfix/v1.0.1hotfix/v1.1.2
    • +
    +
  • +
+

工作流程图

+
main    ─────┬───────────────┬─────────────────────────────────
│ │ ↑ ↑
↓ ↓ │ │
feature feature/A feature/B │ │
│ │
fix fix/bug-1 fix/bug-2
│ │ │
│ │ │
release └─────────────────────────────────┴───────────┘
release/v1.0.0
+

Pull Request 流程

+

准备 Pull Request

+
    +
  1. 确保您的代码符合项目的代码规范
  2. +
  3. 更新相关文档(如适用)
  4. +
  5. 添加或更新测试(如适用)
  6. +
  7. 确保所有测试通过
  8. +
  9. 将您的分支与目标分支(通常是 main)同步
  10. +
+

创建 Pull Request

+
    +
  1. 在 GitHub 上创建一个新的 Pull Request
  2. +
  3. 选择正确的目标分支(通常是 main
  4. +
  5. 填写 Pull Request 模板,提供以下信息: +
      +
    • 清晰的标题,简要描述更改
    • +
    • 详细的描述,解释更改的目的和实现方式
    • +
    • 相关的 issue 链接(如适用)
    • +
    • 截图或视频(如适用)
    • +
    • 任何需要审核者特别注意的事项
    • +
    +
  6. +
+

Pull Request 审核

+
    +
  1. 至少需要一个项目维护者的批准才能合并 PR
  2. +
  3. 审核者可能会要求进行更改
  4. +
  5. 根据反馈进行必要的更改
  6. +
  7. 确保 CI 检查通过
  8. +
+

合并 Pull Request

+
    +
  1. 一旦 PR 获得批准并且所有检查通过,它将被合并
  2. +
  3. 通常使用 "Squash and merge" 策略,将所有提交合并为一个
  4. +
  5. 合并后,相关的分支可以被删除
  6. +
+

版本发布流程

+

UPage 遵循 语义化版本控制 规范。版本号格式为 X.Y.Z

+
    +
  • X: 主版本号,当进行不兼容的 API 更改时递增
  • +
  • Y: 次版本号,当添加向后兼容的功能时递增
  • +
  • Z: 修订号,当进行向后兼容的 bug 修复时递增
  • +
+

发布准备

+
    +
  1. main 分支创建发布分支,例如 release/v1.0.0
  2. +
  3. 在发布分支上进行最终测试和修复
  4. +
  5. 更新版本号和更新日志
  6. +
  7. 创建 Pull Request 将发布分支合并回 main
  8. +
+

发布步骤

+
    +
  1. 合并发布分支到 main
  2. +
  3. main 分支上创建版本标签,例如 v1.0.0
  4. +
  5. 发布 GitHub Release,包含详细的更新日志
  6. +
+

热修复发布

+
    +
  1. main 分支创建热修复分支,例如 hotfix/v1.0.1
  2. +
  3. 实现必要的修复
  4. +
  5. 更新版本号和更新日志
  6. +
  7. 创建 Pull Request 将热修复分支合并到 main
  8. +
  9. 必要时创建 cherry-pick PR 将热修复分支合并到对应的发布分支
  10. +
+

持续集成和部署

+

UPage 使用 GitHub Actions 进行持续集成和部署:

+

CI 工作流程

+
    +
  • 每个 PR 会触发构建和测试
  • +
  • 代码质量检查(linting、类型检查)
  • +
  • 单元测试和集成测试
  • +
  • 构建检查
  • +
+

CD 工作流程

+
    +
  • 合并到 main 分支会触发开发构建和部署
  • +
  • 自动生成和发布 Docker 镜像
  • +
  • 更新文档网站
  • +
+

问题跟踪

+

UPage 使用 GitHub Issues 进行问题跟踪,使用标签对问题进行分类(bug、feature、documentation 等)

+ + \ No newline at end of file diff --git a/upage/deployment-guide.html b/upage/deployment-guide.html new file mode 100644 index 0000000..4c4b76b --- /dev/null +++ b/upage/deployment-guide.html @@ -0,0 +1,16 @@ + + + + + +部署指南 | UPage 文档 + + + + + + + + + + \ No newline at end of file diff --git a/upage/deployment/docker-compose.html b/upage/deployment/docker-compose.html new file mode 100644 index 0000000..8260b4e --- /dev/null +++ b/upage/deployment/docker-compose.html @@ -0,0 +1,62 @@ + + + + + +Docker Compose 部署 | UPage 文档 + + + + + + + +

Docker Compose 部署

+

本文档详细介绍如何使用 Docker Compose 部署 UPage,这是一种更便捷的方式来管理 UPage 的部署。

+

前置条件

+

在开始之前,请确保您的系统满足以下要求:

+
    +
  • Docker 已安装(推荐 Docker 20.10.0 或更高版本)
  • +
  • Docker Compose 已安装(推荐 Docker Compose 1.29.0 或更高版本)
  • +
  • 至少 2GB 可用内存
  • +
  • 至少 2GB 可用磁盘空间
  • +
  • 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
  • +
+

安装 Docker 和 Docker Compose

+

如果您的系统未安装 Docker,请参考Docker 官方文档进行安装。 +如果您的系统未安装 Docker Compose,请参考Docker Compose 官方文档进行安装。

+

使用 Docker Compose 部署

+

准备目录

+

创建必要的目录用于持久化数据,例如 ~/upage

+
mkdir -p ~/upage/data
mkdir -p ~/upage/logs
mkdir -p ~/upage/storage
cd ~/upage
+
提示

UPage 所有数据与日志均存储在此目录中,请妥善保管。

+

创建配置文件

+

创建 docker-compose.yml 文件:

+
version: "3.9"
services:
upage:
image: upage-ai:production
restart: unless-stopped
ports:
- "${PORT:-3000}:3000"
environment:
- LLM_PROVIDER=${LLM_PROVIDER}
- PROVIDER_BASE_URL=${PROVIDER_BASE_URL}
- PROVIDER_API_KEY=${PROVIDER_API_KEY}
- LLM_DEFAULT_MODEL=${LLM_DEFAULT_MODEL}
- LLM_MINOR_MODEL=${LLM_MINOR_MODEL}
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./storage:/app/storage

volumes:
upage-db:
+

启动服务

+

docker-compose.yml 文件所在目录执行:

+
docker-compose up -d
+

服务管理

+

使用 Docker Compose 管理服务的常用命令:

+
# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 查看服务日志
docker-compose logs

# 查看服务状态
docker-compose ps
+

环境变量配置

+

UPage 支持通过环境变量进行配置。以下是一些比较重要的环境变量:

+
提示

完整的配置请参考配置参考

+

基础配置

+
环境变量描述默认值
PORT服务监听端口3000
NODE_ENVNode.js 环境production
OPERATING_ENV运行环境production
LOG_LEVEL日志级别debug
USAGE_LOG_FILE是否开启文件日志true
MAX_UPLOAD_SIZE_MB附件上传的最大大小 (MB)5
STORAGE_DIR资源文件存储位置/app/storage
+

模型提供商配置

+

根据您选择的 AI 提供商,您还需要配置相应的 API 密钥和基础 URL,例如:

+
环境变量描述必填示例
LLM_PROVIDER默认 LLM 提供商OpenAILike
PROVIDER_BASE_URLOpenAI 兼容 API 基础 URLhttps://your-api-base-url
PROVIDER_API_KEYOpenAI 兼容 API 密钥your-openai-like-api-key
+

大模型配置

+
环境变量描述必填示例
LLM_DEFAULT_MODEL生成页面所使用的主要模型gpt-4-turbo
LLM_MINOR_MODEL辅助页面生成所使用的次级模型gpt-3.5-turbo
+

升级 UPage

+

当有新版本发布时,您可以按照以下步骤升级 UPage:

+
docker-compose pull
docker-compose down
docker-compose up -d
+

下一步

+
+ + \ No newline at end of file diff --git a/upage/deployment/docker.html b/upage/deployment/docker.html new file mode 100644 index 0000000..d7d2988 --- /dev/null +++ b/upage/deployment/docker.html @@ -0,0 +1,62 @@ + + + + + +Docker 部署 | UPage 文档 + + + + + + + +

Docker 部署

+

本文档详细介绍如何使用 Docker 部署 UPage。

+

前置条件

+

在开始之前,请确保您的系统满足以下要求:

+
    +
  • Docker 已安装(推荐 Docker 20.10.0 或更高版本)
  • +
  • 至少 2GB 可用内存
  • +
  • 至少 2GB 可用磁盘空间
  • +
  • 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
  • +
+

安装 Docker

+

如果您的系统未安装 Docker,请参考Docker 官方文档进行安装。

+

使用 Docker 部署

+

拉取镜像

+

首先,拉取 UPage 的最新 Docker 镜像:

+
docker pull halohub/upage:latest
+

您也可以使用特定版本的镜像,例如:

+
docker pull halohub/upage:1.0.0
+

准备目录

+

创建必要的目录用于持久化数据,例如 ~/upage

+
mkdir -p ~/upage/data
mkdir -p ~/upage/logs
mkdir -p ~/upage/storage
+
提示

UPage 所有数据与日志均存储在此目录中,请妥善保管。

+

启动容器

+

使用以下命令启动 UPage 容器:

+
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAILike \
-e PROVIDER_BASE_URL=your-openai-like-api-base-url \
-e PROVIDER_API_KEY=your-openai-like-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ~/upage/data:/app/data \
-v ~/upage/logs:/app/logs \
-v ~/upage/storage:/app/storage \
halohub/upage:latest
+

容器管理

+

常用的容器管理命令:

+
# 停止容器
docker stop upage

# 启动容器
docker start upage

# 重启容器
docker restart upage

# 查看容器日志
docker logs upage

# 查看容器状态
docker ps -a | grep upage
+

环境变量配置

+

UPage 支持通过环境变量进行配置。以下是一些比较重要的环境变量,均可以使用 -e 参数在启动容器时设置:

+
提示

完整的配置请参考配置参考

+

基础配置

+
环境变量描述默认值
PORT服务监听端口3000
NODE_ENVNode.js 环境production
OPERATING_ENV运行环境production
LOG_LEVEL日志级别debug
USAGE_LOG_FILE是否开启文件日志true
MAX_UPLOAD_SIZE_MB附件上传的最大大小 (MB)5
STORAGE_DIR资源文件存储位置/app/storage
+

模型提供商配置

+

根据您选择的 AI 提供商,您还需要配置相应的 API 密钥和基础 URL,例如:

+
环境变量描述必填示例
LLM_PROVIDER默认 LLM 提供商OpenAILike
PROVIDER_BASE_URLOpenAI 兼容 API 基础 URLhttps://your-api-base-url
PROVIDER_API_KEYOpenAI 兼容 API 密钥your-openai-like-api-key
+

大模型配置

+
环境变量描述必填示例
LLM_DEFAULT_MODEL生成页面所使用的主要模型gpt-4-turbo
LLM_MINOR_MODEL辅助页面生成所使用的次级模型gpt-3.5-turbo
+

升级 UPage

+

当有新版本发布时,您可以按照以下步骤升级 UPage:

+
# 拉取最新镜像
docker pull halohub/upage:latest

# 停止并删除旧容器
docker stop upage
docker rm upage

# 使用新镜像启动容器(使用与之前相同的环境变量和挂载)
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAILike \
-e PROVIDER_BASE_URL=your-openai-like-api-base-url \
-e PROVIDER_API_KEY=your-openai-like-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ~/upage/data:/app/data \
-v ~/upage/logs:/app/logs \
-v ~/upage/storage:/app/storage \
halohub/upage:latest
+

下一步

+
+ + \ No newline at end of file diff --git a/upage/deployment/logto.html b/upage/deployment/logto.html new file mode 100644 index 0000000..51f34a8 --- /dev/null +++ b/upage/deployment/logto.html @@ -0,0 +1,88 @@ + + + + + +Logto 认证集成 | UPage 文档 + + + + + + + +

Logto 认证集成

+
信息

UPage 默认仅支持单一匿名用户访问,但您可以通过集成 Logto 实现用户认证,支持多用户登录

+

UPage 支持与 Logto 集成,提供完整的用户认证体系。本文档将指导您如何配置 UPage 与 Logto 的集成。

+

什么是 Logto?

+

Logto 是一个开源的身份验证和授权解决方案,提供了完整的用户管理、身份验证和授权功能。通过与 Logto 集成,UPage 可以支持用户注册、登录、密码重置等功能,同时提供基于角色的访问控制。

+

Logto 接入方式

+

Logto 支持两种接入方式,您可以根据自己的需求选择合适的方式。

+
    +
  1. 使用 Logto 官方提供的托管服务 - Logto Cloud。
  2. +
  3. 本地部署开源版 Logto 服务。
  4. +
+
信息

两种方式仅在接入方式上有所区别,在配置上完全一致。

+

使用官方托管服务

+

访问 Logto 官方网站,注册一个账号即可进行下一步操作。

+

本地部署 Logto

+

UPage 提供了一个简化的 Logto 部署配置。在 UPage 项目目录下,您可以找到 logto/docker-compose.yaml 文件以及 .env 文件。

+

如果是开发环境,执行以下命令:

+
cd ./logto
docker-compose up -d
+

如果是生产环境,执行以下命令:

+
curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/docker-compose.yaml -o ~/upage/logto/docker-compose.yaml
curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/.env -o ~/upage/logto/.env
cd ~/upage/logto
docker-compose up -d
+

这将启动 Logto 服务,默认情况下可以通过 http://localhost:3002 访问 Logto 管理控制台。

+
警告

在生产环境部署时,请务必修改 .env 文件中的 LOGTO_ENDPOINTLOGTO_ADMIN_ENDPOINT 以及 LOGTO_POSTGRES_PASSWORD 配置。

+

配置 Logto

+
    +
  1. 访问 Logto 管理控制台,
  2. +
  3. 创建一个新的应用程序: +
      +
    • 应用类型:传统网页应用
    • +
    • 应用名称:UPage
    • +
    • 重定向 URIs:http://${UPAGE_URL}/api/auth/callback
    • +
    • 退出登录后重定向 URIs:http://${UPAGE_URL}
    • +
    • CORS 允许的来源:http://${UPAGE_URL}
    • +
    • 其他配置根据实际情况填写
    • +
    +
  4. +
  5. 记录应用程序的 ID 和密钥,这些将用于配置 UPage
  6. +
+

配置 UPage 与 Logto 集成

+

环境变量配置

+

在 UPage 的环境变量中配置 Logto 相关参数:

+
# 启用 Logto 认证
LOGTO_ENABLE=true
# Logto LOGTO_ENDPOINT 地址
LOGTO_ENDPOINT=http://localhost:3001
# Logto 应用程序 ID
LOGTO_APP_ID=your-app-id
# Logto 应用程序密钥
LOGTO_APP_SECRET=your-app-secret
# Logto 用于加密 cookie 的密钥,随机生成一个 32 位密钥即可
LOGTO_COOKIE_SECRET=your-cookie-secret
# 填写 UPage 地址,根据实际部署地址修改
LOGTO_BASE_URL=http://localhost:3000
+

如果使用 Docker compose 部署 UPage,在 docker-compose.yml 文件中添加这些环境变量:

+
services:
upage:
# ... 其他配置
environment:
# ... 其他环境变量
- LOGTO_ENABLE=true
- LOGTO_ENDPOINT=http://logto:3001
- LOGTO_APP_ID=your-app-id
- LOGTO_APP_SECRET=your-app-secret
- LOGTO_COOKIE_SECRET=your-cookie-secret
- LOGTO_BASE_URL=http://localhost:3000
+

配置说明

+
环境变量描述示例
LOGTO_ENABLE是否启用 Logto 认证true
LOGTO_ENDPOINTLogto 服务的 URLhttp://localhost:3001
LOGTO_APP_IDLogto 应用程序 IDyour-app-id
LOGTO_APP_SECRETLogto 应用程序密钥your-app-secret
LOGTO_COOKIE_SECRET用于加密 cookie 的密钥00bf44b6ceaa648eca6ad172f0cd8c8c
LOGTO_BASE_URLUPage 地址http://localhost:3000
+

Logto 使用技巧

+
提示

UPage 集成 Logto 步骤已完成,以下内容是 Logto 的特殊使用技巧,供扩展阅读,如无定制化需求可忽略。

+

自定义登录界面

+

Logto 提供了自定义登录界面的功能:

+
    +
  1. 在 Logto 管理控制台中,导航到"外观"
  2. +
  3. 自定义登录页面的样式、颜色和品牌元素
  4. +
  5. 预览并保存更改
  6. +
+

配置社交登录

+

Logto 支持多种社交登录方式:

+
    +
  1. 在 Logto 管理控制台中,导航到"连接器"
  2. +
  3. 添加社交登录连接器(如 Google、GitHub、微信等)
  4. +
  5. 按照向导完成配置
  6. +
+

配置多因素认证

+

启用多因素认证以提高安全性:

+
    +
  1. 在 Logto 管理控制台中,导航到"安全"
  2. +
  3. 启用多因素认证
  4. +
  5. 配置多因素认证方式(如 TOTP、短信等)
  6. +
+

下一步

+
+ + \ No newline at end of file diff --git a/upage/deployment/others.html b/upage/deployment/others.html new file mode 100644 index 0000000..cf23ce9 --- /dev/null +++ b/upage/deployment/others.html @@ -0,0 +1,25 @@ + + + + + +其他配置 | UPage 文档 + + + + + + + +

其他配置

+

本文档提供了部署 UPage 时的一些其他配置选项和最佳实践。

+

使用 Nginx 反向代理

+

如果您需要使用 Nginx 作为反向代理,可以参考以下配置:

+
server {
listen 80;
server_name your-domain.com;

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
+

配置 HTTPS

+

建议使用 Nginx 或其他反向代理来处理 HTTPS 请求。您可以使用 Let's Encrypt 获取免费的 SSL 证书。

+

数据备份

+

UPage 的数据存储在挂载的 data 目录中,您可以定期备份该目录来保护您的数据:

+
# 备份数据目录
tar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./upage/data
+ + \ No newline at end of file diff --git a/upage/deployment/source.html b/upage/deployment/source.html new file mode 100644 index 0000000..0168feb --- /dev/null +++ b/upage/deployment/source.html @@ -0,0 +1,89 @@ + + + + + +源码部署 | UPage 文档 + + + + + + + +

源码部署

+

本文档详细介绍如何从源码构建和部署 UPage。如果您希望自定义 UPage 或者参与开发,这是最合适的部署方式。

+

前置条件

+

在开始之前,请确保您的系统满足以下要求:

+
    +
  • Node.js 18.18.0 或更高版本
  • +
  • pnpm 9.4.0 或更高版本
  • +
  • Git
  • +
+

下载并构建代码

+

克隆代码库

+

首先,克隆 UPage 的代码库:

+
git clone https://github.com/halo-dev/upage.git
cd upage
+

安装依赖

+

使用 pnpm 安装项目依赖:

+
pnpm install
+

配置环境变量

+

拷贝 .env.example 文件,创建 .env 文件:

+
cp .env.example .env
+

配置必要的环境变量:

+
# 基础配置
PORT=3000
NODE_ENV=production
OPERATING_ENV=production
LOG_LEVEL=info
USAGE_LOG_FILE=true
MAX_UPLOAD_SIZE_MB=5
STORAGE_DIR=./storage

# AI 提供商配置
LLM_PROVIDER=OpenAILike
PROVIDER_BASE_URL=your-openai-like-api-base-url
PROVIDER_API_KEY=your-openai-like-api-key
LLM_DEFAULT_MODEL=your-default-model
LLM_MINOR_MODEL=your-minor-model
+

您可以根据需要配置不同的 AI 提供商,详细配置请参考配置参考

+

生成 Prisma 客户端

+
pnpm setup
+

开发模式使用

+

如果您想在开发模式下运行 UPage,可以使用以下命令:

+
pnpm dev
+

开发服务器启动后,您可以通过浏览器访问:

+
http://localhost:5173
+

这将启动开发服务器,支持热重载,方便您进行开发和调试。

+

生产模式使用

+

构建 UPage 项目:

+
pnpm build
+

启动服务

+

启动 UPage 服务:

+
pnpm preview
+

服务启动后,您可以通过浏览器访问:

+
http://localhost:3000
+

使用 PM2 管理服务(可选)

+

在生产环境中,可以使用 PM2 来管理 Node.js 应用程序:

+

全局安装 PM2

+
npm install -g pm2
+

创建 PM2 配置文件

+

创建 ecosystem.config.js 文件:

+
module.exports = {
apps: [{
name: 'upage',
script: './server.mjs',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'production',
OPERATING_ENV: 'production',
PORT: 3000,
LLM_PROVIDER: 'OpenAILike',
PROVIDER_BASE_URL: 'your-openai-like-api-base-url',
PROVIDER_API_KEY: 'your-openai-like-api-key',
LLM_DEFAULT_MODEL: 'your-default-model',
LLM_MINOR_MODEL: 'your-minor-model',
}
}]
};
+

启动服务

+
pm2 start ecosystem.config.js
+

查看日志

+
pm2 logs upage
+

监控服务

+
pm2 monit
+

升级 UPage

+

当有新版本发布时,您可以按照以下步骤升级 UPage:

+
# 拉取最新代码
git pull origin main

# 安装依赖
pnpm install

# 构建项目
pnpm build

# 开发环境使用
pnpm dev

# 生产环境使用
pnpm preview

# 或者如果使用 PM2
pm2 restart upage
+

故障排除

+

依赖安装失败

+

如果依赖安装失败,可以尝试清除 pnpm 缓存:

+
pnpm store prune
pnpm install
+

构建失败

+

如果构建失败,可以尝试清除构建缓存:

+
pnpm clean
pnpm build
+

数据库错误

+

如果遇到数据库相关错误,可以尝试重新初始化数据库

+
pnpm prisma migrate reset
+
危险

请注意,这将清空所有数据并重置数据库,切勿在生产环境中使用。

+

日志查看

+

检查日志文件以获取更多错误信息:

+
cat logs/combined-*.log
cat logs/error-*.log
+

下一步

+
+ + \ No newline at end of file diff --git a/upage/faq.html b/upage/faq.html new file mode 100644 index 0000000..339b64d --- /dev/null +++ b/upage/faq.html @@ -0,0 +1,144 @@ + + + + + +常见问题 | UPage 文档 + + + + + + + +

常见问题

+

本文档整理了使用 UPage 时的常见问题和解答,帮助您快速解决可能遇到的问题。

+

基本问题

+

UPage 是什么?

+

UPage 是一款基于大模型的可视化网页构建平台,支持多种 AI 提供商集成,基于自然语言快速实现定制化网页。它允许用户通过简单的文字描述生成完整的网页,并提供可视化编辑工具进行进一步定制。

+

UPage 适合哪些用户?

+

UPage 适合各类需要快速创建网页的用户,包括但不限于:

+
    +
  • 开发者:快速创建原型和演示页面
  • +
  • 设计师:将设计理念转化为实际网页
  • +
  • 内容创作者:创建展示内容的网页
  • +
  • 营销人员:制作营销着陆页
  • +
  • 小企业主:创建企业网站和产品展示页面
  • +
  • 教育工作者:制作教学资源和课程页面
  • +
+

UPage 是开源的吗?

+

是的,UPage 是一个开源项目,采用 基于 GPLv3 的补充协议许可证。您可以在 GitHub 上查看源代码,也可以参与项目开发和改进。

+

安装和部署

+

如何安装 UPage?

+

UPage 提供多种安装方式,最简单的方法是使用 Docker:

+
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAILike \
-e PROVIDER_BASE_URL=your-openai-like-api-base-url \
-e PROVIDER_API_KEY=your-openai-like-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ./data:/app/data \
-v ./logs:/app/logs \
-v ./storage:/app/storage \
halo-dev/upage:latest
+

详细的安装说明请参考快速开始文档。

+

UPage 的系统要求是什么?

+

UPage 的最低系统要求:

+
    +
  • Docker 20.10.0 或更高版本(如果使用 Docker 部署)
  • +
  • Node.js 18.18.0 或更高版本(如果源码部署)
  • +
  • 至少 2GB 可用内存
  • +
  • 至少 2GB 可用磁盘空间
  • +
  • 互联网连接(用于访问 AI API)
  • +
+

如何更新 UPage?

+

如果使用 Docker 部署,可以按照以下步骤更新 UPage:

+
# 拉取最新镜像
docker pull halo-dev/upage:latest

# 停止并删除旧容器
docker stop upage
docker rm upage

# 使用新镜像启动容器(使用与之前相同的环境变量和挂载)
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
... # 其他环境变量和挂载
halo-dev/upage:latest
+

如果使用 Docker Compose,则可以执行:

+
docker-compose pull
docker-compose down
docker-compose up -d
+

AI 集成

+

UPage 支持哪些 AI 提供商?

+

UPage 支持多种 AI 提供商,包括:

+
    +
  • DeepSeek(DeepSeek-Chat、DeepSeek-Reasoner)
  • +
  • OpenAI(GPT-4o、GPT-5 等)
  • +
  • Anthropic Claude
  • +
  • Google Gemini
  • +
  • 兼容 OpenAI 接口的服务(如 Azure OpenAI、智谱 AI 等)
  • +
  • Ollama(本地部署的开源模型)
  • +
+

所有支持的 AI 提供商请参考配置参考- AI 提供商配置文档。

+

如何配置 AI 提供商?

+

通过环境变量配置 AI 提供商,例如:

+
# OpenAI
-e LLM_PROVIDER=OpenAI \
-e PROVIDER_API_KEY=your-openai-api-key \
-e LLM_DEFAULT_MODEL=gpt-4-turbo \
-e LLM_MINOR_MODEL=gpt-3.5-turbo

# Anthropic Claude
-e LLM_PROVIDER=Anthropic \
-e PROVIDER_API_KEY=your-anthropic-api-key \
-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \
-e LLM_MINOR_MODEL=claude-3-haiku-20240307
+

详细的配置选项请参考配置参考 - AI 提供商配置文档。

+

使用 AI 生成页面需要多少 token?

+

生成一个标准页面通常需要 2,000-10,000 个 token,具体取决于页面的复杂度和内容量。复杂的页面可能需要更多 token。UPage 会尽可能优化 prompt,尽量减少 token 消耗。

+

如何优化 AI 提示以获得更好的结果?

+

有效的 AI 提示应该:

+
    +
  • 明确指定页面类型和目的
  • +
  • 列出所需的主要组件和内容
  • +
  • 描述设计风格和布局偏好
  • +
  • 提供具体的内容示例或要求
  • +
  • 使用清晰、具体的语言
  • +
+

例如:

+
创建一个现代风格的产品登录页面,用于展示我们的智能手表产品。页面应包含:
1. 顶部导航栏,带有品牌标志和菜单
2. 醒目的标题和副标题,强调产品的主要卖点
3. 产品图片展示区,包含至少3张不同角度的产品图
...
+

你可以使用 UPage 的优化提示功能来优化您的提示。

+

使用问题

+

如何编辑 AI 生成的页面?

+
    +
  1. 在页面列表中选择要编辑的页面
  2. +
  3. 使用可视化编辑器点击要修改的页面元素
  4. +
  5. 对于文本组件,可以直接输入文本进行修改
  6. +
  7. 对于图片组件,可以点击上传图片进行替换
  8. +
  9. 使用弹出的属性面板修改组件属性和样式
  10. +
  11. 也可以使用 AI 辅助功能进行局部或整体调整
  12. +
+

UPage 支持响应式设计吗?

+

是的,UPage 生成的页面默认支持响应式设计,可以自动适应不同屏幕尺寸。您可以在编辑器中预览页面在不同设备上的显示效果,并进行针对性调整。如果生成的页面不符合您的预期,您可以尝试使用 AI 辅助调整。

+

数据和安全

+

UPage 如何存储数据?

+

UPage 使用 SQLite 数据库存储页面数据和用户配置,存储在挂载的 data 目录中。上传的文件和资源存储在挂载的 storage 目录中。日志文件存储在挂载的 logs 目录中。

+

如何备份 UPage 数据?

+

备份 UPage 数据的最简单方法是备份挂载的数据目录:

+
# 备份数据目录
tar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./data

# 备份存储目录
tar -czf upage-storage-backup-$(date +%Y%m%d).tar.gz ./storage
+

UPage 如何处理用户隐私?

+

UPage 本身不会收集或传输用户数据,除非明确配置。当使用 AI 功能时,页面内容会发送到配置的 AI 提供商进行处理。请确保您使用的 AI 提供商符合您的隐私要求。

+

如何配置 UPage 的多用户?

+

UPage 支持通过 Logto 进行用户认证和访问控制。详细配置请参考Logto 认证集成文档。

+

故障排除

+

页面生成失败怎么办?

+

如果页面生成失败,可能的原因和解决方法:

+
    +
  1. AI API 连接问题:检查网络连接和 API 密钥是否正确
  2. +
  3. 提示过于复杂:尝试简化页面描述,分步骤生成
  4. +
  5. token 限制:检查是否达到 AI 提供商的 token 限制
  6. +
  7. 模型不支持:尝试使用更强大的模型或不同的 AI 提供商
  8. +
  9. 生成内容超过限制:UPage 默认限制单次回答不超过 3 次 Token 上限,您可以尝试分步骤生成
  10. +
+

如何查看系统日志?

+

默认情况下,UPage 会将日志保存在挂载的 logs 目录中,可以通过以下方式查看系统日志:

+
# 查看容器日志
docker logs upage

# 查看错误日志文件
cat logs/error-*.log

# 查看所有日志文件
cat logs/combined-*.log
+

如何解决数据库错误?

+

如果遇到数据库相关错误,可以尝试:

+
    +
  1. 检查数据目录的权限:chmod -R 755 ./data
  2. +
  3. 备份并重新初始化数据库: +
    # 备份当前数据库
    cp ./data/upage.db ./data/upage.db.bak

    # 删除并重新初始化
    rm ./data/upage.db
    docker restart upage
    +
  4. +
+

容器无法启动怎么办?

+

如果 Docker 容器无法启动,可以尝试:

+
    +
  1. 检查日志:docker logs upage
  2. +
  3. 验证环境变量:确保所有必需的环境变量都已正确设置
  4. +
  5. 检查磁盘空间:确保有足够的磁盘空间
  6. +
  7. 检查端口冲突:确保端口 3000 没有被其他服务占用
  8. +
  9. 检查文件权限:确保挂载的目录具有正确的权限
  10. +
+

高级问题

+

UPage 支持插件系统吗?

+

UPage 不提供正式的插件系统,但作为开源项目,您可以通过 fork 代码库并进行修改来扩展功能。

+

如何与现有系统集成?

+

UPage 提供多种集成方式:

+
    +
  1. API 集成:使用 UPage API 与其他系统交互
  2. +
  3. 导出集成:下载页面源代码(HTML/CSS/JS)并集成到现有系统
  4. +
  5. 部署集成:使用 Vercel 或 Netlify 集成直接部署页面
  6. +
  7. 认证集成:通过 Logto 与现有认证系统集成
  8. +
+ + \ No newline at end of file diff --git a/upage/img/logo.svg b/upage/img/logo.svg new file mode 100644 index 0000000..c68d62f --- /dev/null +++ b/upage/img/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/upage/img/logo1.png b/upage/img/logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae107db82401883e23c1e7a217d4bfe676ea0e9b GIT binary patch literal 25592 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 literal 0 HcmV?d00001 diff --git a/upage/img/logo2.png b/upage/img/logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..665811da998fad0a4853f7ee81745c4b43755507 GIT binary patch literal 26507 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 LGCx^lfD8UFlwPYw literal 0 HcmV?d00001 diff --git a/upage/img/logo3.png b/upage/img/logo3.png new file mode 100644 index 0000000000000000000000000000000000000000..b17364ab886ccaa7bc6c16a3ec59a10f2a4c3c2b GIT binary patch literal 26274 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 l9P2w@gm&}#|DQ(hEbu + + + + +UPage 文档 + + + + + + + +

+

GitHub releaseGitHub last commitGitHub Workflow StatusDocumentation

+

什么是 UPage?

+

UPage 是一款基于大模型的可视化网页构建平台,支持多种 AI 提供商集成,基于自然语言快速实现定制化网页。它利用大语言模型,让用户能够通过自然语言描述来创建和定制网页。无论您是开发者、设计师还是内容创作者,UPage 都能帮助您快速将想法转化为可视化的网页。

+

核心特性

+
    +
  • 基于 LLM 的页面生成:通过自然语言描述生成完整的网页
  • +
  • 多种 LLM 提供商支持:兼容 OpenAI、Anthropic Claude、Google Gemini 等多种 LLM 模型
  • +
  • 可视化编辑器:简洁直观的可视化编辑器界面,实时预览
  • +
  • 多页面生成:支持同时生成多个页面
  • +
  • 代码导出:生成标准的 HTML/CSS/JS 代码,方便集成到现有项目
  • +
  • 响应式设计:自动适应不同屏幕尺寸
  • +
  • 部署集成:支持一键部署到常见托管平台
  • +
+
备注

特别感谢 bolt.diy 项目,UPage 的实现基于该项目的代码结构。

+

快速开始

+

请查看快速开始指南,了解如何安装和使用 UPage。

+

贡献

+

UPage 是一个开源项目,我们欢迎任何形式的贡献。请查看贡献指南了解如何参与项目开发。

+

许可证

+

UPage 采用 基于 GPLv3 的补充协议许可证

+ + \ No newline at end of file diff --git a/upage/quick-start.html b/upage/quick-start.html new file mode 100644 index 0000000..8d8977f --- /dev/null +++ b/upage/quick-start.html @@ -0,0 +1,62 @@ + + + + + +快速开始 | UPage 文档 + + + + + + + +

快速开始

+

本指南将帮助您快速部署和启动 UPage,让您在几分钟内体验基于大模型的网页构建平台。

+
注意

此快速启动方式仅适用于体验和测试目的,如需在生产环境中完整部署,请参考Docker 部署指南

+

前置条件

+

在开始之前,请确保您的系统满足以下要求:

+
    +
  • Docker 已安装(推荐 Docker 20.10.0 或更高版本)
  • +
  • 至少 2GB 可用内存
  • +
  • 至少 2GB 可用磁盘空间
  • +
  • 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
  • +
+

使用 Docker 快速部署

+

UPage 提供了官方 Docker 镜像,可以通过以下命令快速启动:

+
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAILike \
-e PROVIDER_BASE_URL=your-openai-like-api-base-url \
-e PROVIDER_API_KEY=your-openai-like-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ./data:/app/data \
-v ./logs:/app/logs \
-v ./storage:/app/storage \
halo-dev/upage:latest
+

参数说明

+
    +
  • -e LLM_PROVIDER=OpenAILike:设置默认的 LLM 提供商
  • +
  • -e PROVIDER_BASE_URL=your-openai-like-api-base-url:设置 API 基础 URL
  • +
  • -e PROVIDER_API_KEY=your-openai-like-api-key:设置 API 密钥
  • +
  • -e LLM_DEFAULT_MODEL=your-default-model:设置用于页面生成的默认 AI 模型
  • +
  • -e LLM_MINOR_MODEL=your-minor-model:设置用于辅助任务的 AI 模型
  • +
  • -v ./data:/app/data:挂载数据目录,用于存储数据库文件
  • +
  • -v ./logs:/app/logs:挂载日志目录
  • +
  • -v ./storage:/app/storage:挂载存储目录,用于存储上传的文件
  • +
+

访问 UPage

+

服务启动后,您可以通过浏览器访问:

+
http://localhost:3000
+

配置 AI 提供商

+

UPage 支持多种 AI 提供商,您需要至少配置一个 AI 提供商才能使用页面生成功能。以下是常见的 AI 提供商配置示例:

+

DeepSeek

+
-e LLM_PROVIDER=Deepseek \
-e PROVIDER_API_KEY=your-deepseek-api-key \
-e LLM_DEFAULT_MODEL=deepseek-chat \
-e LLM_MINOR_MODEL=deepseek-reasoner
+

兼容 OpenAI 接口的服务

+
-e LLM_PROVIDER=OpenAILike \
-e PROVIDER_BASE_URL=https://your-api-base-url \
-e PROVIDER_API_KEY=your-api-key \
-e LLM_DEFAULT_MODEL=your-model-name \
-e LLM_MINOR_MODEL=your-minor-model-name
+

OpenAI

+
-e LLM_PROVIDER=OpenAI \
-e PROVIDER_API_KEY=your-openai-api-key \
-e LLM_DEFAULT_MODEL=gpt-4-turbo \
-e LLM_MINOR_MODEL=gpt-3.5-turbo
+

Anthropic Claude

+
-e LLM_PROVIDER=Anthropic \
-e PROVIDER_API_KEY=your-anthropic-api-key \
-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \
-e LLM_MINOR_MODEL=claude-3-haiku-20240307
+

Ollama

+
-e LLM_PROVIDER=Ollama \
-e PROVIDER_BASE_URL=http://127.0.0.1:11434 \
-e LLM_DEFAULT_MODEL=llama3 \
-e LLM_MINOR_MODEL=llama3
+
信息

详细的 AI 提供商配置请阅读配置参考

+

下一步

+
    +
  • 探索Docker 部署指南了解生产环境部署方案,包括使用 Docker Compose、数据备份、HTTPS 配置等
  • +
  • 查看配置参考了解所有可用的配置选项
  • +
  • 阅读用户指南学习如何使用 UPage 创建网页
  • +
+ + \ No newline at end of file diff --git a/upage/sitemap.xml b/upage/sitemap.xml new file mode 100644 index 0000000..5c85fc9 --- /dev/null +++ b/upage/sitemap.xml @@ -0,0 +1 @@ +https://halo-dev.github.io/upage/404-pageweekly0.5https://halo-dev.github.io/upage/configurationweekly0.5https://halo-dev.github.io/upage/contributingweekly0.5https://halo-dev.github.io/upage/contributing/code-of-conductweekly0.5https://halo-dev.github.io/upage/contributing/code-standardsweekly0.5https://halo-dev.github.io/upage/contributing/development-setupweekly0.5https://halo-dev.github.io/upage/contributing/ways-to-contributeweekly0.5https://halo-dev.github.io/upage/contributing/workflowweekly0.5https://halo-dev.github.io/upage/deployment-guideweekly0.5https://halo-dev.github.io/upage/deployment/dockerweekly0.5https://halo-dev.github.io/upage/deployment/docker-composeweekly0.5https://halo-dev.github.io/upage/deployment/logtoweekly0.5https://halo-dev.github.io/upage/deployment/othersweekly0.5https://halo-dev.github.io/upage/deployment/sourceweekly0.5https://halo-dev.github.io/upage/faqweekly0.5https://halo-dev.github.io/upage/quick-startweekly0.5https://halo-dev.github.io/upage/user-guideweekly0.5https://halo-dev.github.io/upage/user-guide/basicsweekly0.5https://halo-dev.github.io/upage/weekly0.5 \ No newline at end of file diff --git a/upage/user-guide.html b/upage/user-guide.html new file mode 100644 index 0000000..fc47395 --- /dev/null +++ b/upage/user-guide.html @@ -0,0 +1,16 @@ + + + + + +用户指南 | UPage 文档 + + + + + + + + + + \ No newline at end of file diff --git a/upage/user-guide/basics.html b/upage/user-guide/basics.html new file mode 100644 index 0000000..9b78f04 --- /dev/null +++ b/upage/user-guide/basics.html @@ -0,0 +1,19 @@ + + + + + +基础使用 | UPage 文档 + + + + + + + +

基础使用

+

本文档介绍 UPage 的基本使用方法,帮助您快速上手这款基于大模型的可视化网页构建平台。

+

主界面概览

+

建设中...

+ + \ No newline at end of file