diff --git a/404.html b/404.html index c91c41400..7c37c1376 100644 --- a/404.html +++ b/404.html @@ -2,13 +2,13 @@ - + Page Not Found | GameVault - - - + + + -
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

\ No newline at end of file diff --git a/assets/css/styles.94cfab2b.css b/assets/css/styles.2aa343cc.css similarity index 56% rename from assets/css/styles.94cfab2b.css rename to assets/css/styles.2aa343cc.css index 5b0a16041..aa003228a 100644 --- a/assets/css/styles.94cfab2b.css +++ b/assets/css/styles.2aa343cc.css @@ -1 +1 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal)}.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_QfJ4,html{-webkit-tap-highlight-color:transparent}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-ItemContentTitle,.button,.dropdown__link,.text--truncate,.whitespace-nowrap{white-space:nowrap}.authorListItem_X3Ma,.list-none{list-style-type:none}.aa-List,.clean-list,.containsTaskList_Q9D7,.details_UM4U>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}.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}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{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;-webkit-text-size-adjust:100%;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}.items-center,.menuExternalLink_EnPB,.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);width:100%}.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_EI91 .wordWrapButtonIcon_dvG6{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_VCVJ,.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}.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)}.card--full-height,.navbar__logo img,body,html{height:100%}.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,.inline-block{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)}.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);color:var(--ifm-font-color-base);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:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__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;-webkit-user-select:none;user-select:none}.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)}.button.button--secondary.button--outline:not(.button--active):not(:hover),.text-text-default{color:var(--ifm-font-color-base)}: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__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_CBT2: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}.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_XZTp article>:first-child,.docItemContainer_XZTp header+*,.footer__item{margin-top:0}.admonitionContent_tuR2>:last-child,.collapsibleContent_IfUm p:last-child,.details_UM4U>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_Yei0,[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,.title_c9tz{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_UM4U[data-collapsed=false].isBrowser_HuuV>summary:before,.details_UM4U[open]:not(.isBrowser_HuuV)>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;top:0;left: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{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.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)}.flex,.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_RqlE,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.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__items--right>:last-child{padding-right:0}.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}.cursor-pointer,.dropdownNavbarItemMobile_x5K8,.pills__item,.tabs__item{cursor:pointer}.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}.inline-flex,.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,.sidebarItemLink_HUlZ: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;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_Q9D7>li)>.containsTaskList_Q9D7{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}.aa-Panel,.overflow-hidden{overflow:hidden}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);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}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-font-size-base:105%;--ifm-color-primary:#413a92;--ifm-color-primary-dark:#3a3483;--ifm-color-primary-darker:#37317c;--ifm-color-primary-darkest:#2d2966;--ifm-color-primary-light:#4740a1;--ifm-color-primary-lighter:#4b43a8;--ifm-color-primary-lightest:#5850b9;--ifm-background-surface-color:#d9d7ea!important;--ifm-navbar-background-color:#e2e1ef!important;--ifm-background-color:#e2e1ef!important;--ifm-footer-background-color:#d9d7ea!important;--ifm-font-color-base:#06050a;--ifm-font-color-light:#292244;--ifm-font-color-base-inverse:#f6f5fa;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--docusaurus-blog-social-icon-size:1rem;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg,.absolute{position:absolute}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;right:0;transform:rotate(3deg) translateY(-4px);width:100px}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container,.w-full{width:100%}.relative{position:relative}.left-0{left:0}.right-0{right:0}.top-2\/3{top:66.666667%}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.-mr-1{margin-right:-.25rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.grid{display:grid}.h-48{height:12rem}.h-5{height:1.25rem}.h-\[0\.58em\]{height:.58em}.w-5{width:1.25rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-screen-sm{max-width:640px}.max-w-xl{max-width:36rem}.origin-top-right{transform-origin:top right}@keyframes a{to{transform:rotate(1turn)}}.animate-spin{animation:1s linear infinite a}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.justify-center{justify-content:center}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-y-8{row-gap:2rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.bg-background-dark,.dark-background{background-color:var(--ifm-background-surface-color)}.bg-primary-default{background-color:var(--ifm-color-primary)}.fill-primary-default{fill:var(--ifm-color-primary)}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pb-16{padding-bottom:4rem}.pt-20{padding-top:5rem}.text-left{text-align:left}.content_CsLf,.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-7{line-height:1.75rem}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.text-primary-darker{color:var(--ifm-color-primary-darker)}.text-text-light{color:var(--ifm-font-color-light)}.hover\:text-white:hover,.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.\!no-underline{text-decoration-line:none!important}.opacity-30{opacity:.3}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-text-light{--tw-ring-color:var(--ifm-font-color-light)}[data-theme=dark]{--ifm-color-primary:#5249b6;--ifm-color-primary-dark:#867fcb;--ifm-color-primary-darker:#7a72c6;--ifm-color-primary-darkest:#554ab6;--ifm-color-primary-light:#b8b3e1;--ifm-color-primary-lighter:#c4c0e6;--ifm-color-primary-lightest:#e9e8f6;--ifm-background-surface-color:#171528!important;--ifm-navbar-background-color:#11101e!important;--ifm-background-color:#11101e!important;--ifm-footer-background-color:#171528!important;--ifm-font-color-base:#f6f5fa;--ifm-font-color-light:#b5b4b8;--ifm-font-color-base-inverse:#06050a}img[alt="GameVault+ Banner"]{height:3.75rem}.banner{align-items:flex-end;display:flex;font-size:3.75rem;gap:.5rem;line-height:1;margin-bottom:1rem}button,input[type=reset],input[type=submit]{background:none;border:none;color:inherit;cursor:pointer;font:inherit;outline:inherit;padding:0}.hover\:bg-background-default:hover{background-color:var(--ifm-background-color)}.hover\:bg-primary-darker:hover{background-color:var(--ifm-color-primary-darker)}.hover\:no-underline:hover{text-decoration-line:none}.focus\:outline-none:focus{outline:#0000 solid 2px;outline-offset:2px}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-darkest:focus-visible{outline-color:var(--ifm-color-primary-darkest)}.active\:bg-primary-darkest:active{background-color:var(--ifm-color-primary-darkest)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.themedComponent_EL3c,[data-theme=dark] .lightToggleIcon_SP6E,[data-theme=light] .darkToggleIcon_DyWs,html[data-announcement-bar-initially-dismissed=true] .announcementBar_wEz5{display:none}.skipToContent_N_FB{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_N_FB:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_xADE{line-height:0;padding:0}.content_CsLf{font-size:85%;padding:5px 0}.content_CsLf a{color:inherit;text-decoration:underline}.announcementBar_wEz5{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_e0hD{flex:0 0 10px}.announcementBarClose_hClt{align-self:stretch;flex:0 0 30px}.toggle_Ctpc{height:2rem;width:2rem}.aa-Form,.toggleButton_QfJ4{align-items:center;width:100%;display:flex}.toggleButton_QfJ4{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_QfJ4:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_hyb0{cursor:not-allowed}.darkNavbarColorModeToggle_ul4N:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_Jjwa,[data-theme=light] .themedComponent--light_qtcQ,html:not([data-theme]) .themedComponent--light_qtcQ{display:initial}.iconExternalLink_rK98{margin-left:.3rem}.iconLanguage_QTLV{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.83328px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.sidebar_O_Xz,.tableOfContents_tnIz{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border:3px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right-width:2px}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;-webkit-text-decoration:none;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.tocCollapsibleContent_saQ3 a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{content:"";position:absolute;pointer-events:none;right:0;left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;-webkit-text-decoration:none;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.33333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.33333px;margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedContainer--modal .aa-PanelLayout:empty,.aa-DetachedSearchButtonPlaceholder[hidden],.docSidebarContainer_HC4d,.navbarSearchContainer_ZzhW:empty,.sidebarLogo_rxVR{display:none}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.authorSocialIcon_YEXF,.authorSocialLink_EN0k{width:var(--docusaurus-blog-social-icon-size)}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_XAwL{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_IdZ3{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_yDia{color:red;white-space:pre-wrap}.errorBoundaryFallback_ExJr{color:red;padding:.55rem}.footerLogoLink_WvA8{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_WvA8:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_BnxJ{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_re8X{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_GHU6{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_O_Xz{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.authorSocials_iCqw,.authorTitle_w1Af{overflow:hidden;-webkit-box-orient:vertical}.sidebarItemTitle_NsE9{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_xAnX,.sidebarItemList_yaC1{font-size:.9rem}.sidebarItem_PDlg{margin-top:.7rem}.sidebarItemLink_HUlZ{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_eKb7{color:var(--ifm-color-primary)!important}.yearGroupHeading_ypKa{margin-bottom:.4rem;margin-top:1.6rem}.yearGroupHeading_Zf6e{margin:1rem .75rem .5rem}[data-theme=dark] .githubSvg_ujvF,[data-theme=dark] .xSvg_mPQQ{fill:var(--light)}[data-theme=light] .githubSvg_ujvF,[data-theme=light] .xSvg_mPQQ{fill:var(--dark)}.authorSocials_iCqw{align-items:center;display:flex;flex-wrap:wrap;line-clamp:1;-webkit-line-clamp:1}.authorSocialLink_EN0k,.authorSocials_iCqw{height:var(--docusaurus-blog-social-icon-size);line-height:0}.authorSocialLink_EN0k{margin-right:.4rem}.authorSocialIcon_YEXF{height:var(--docusaurus-blog-social-icon-size)}.authorImage_AQkC{--ifm-avatar-photo-size:3.6rem}.author-as-h1_s179 .authorImage_AQkC{--ifm-avatar-photo-size:7rem}.author-as-h2_BF4G .authorImage_AQkC{--ifm-avatar-photo-size:5.4rem}.authorDetails_ie2u{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-around}.authorName_s97L{display:flex;flex-direction:row;font-size:1.1rem;line-height:1.1rem}.author-as-h1_s179 .authorName_s97L{display:inline;font-size:2.4rem;line-height:2.4rem}.author-as-h2_BF4G .authorName_s97L{display:inline;font-size:1.4rem;line-height:1.4rem}.authorTitle_w1Af{display:-webkit-box;font-size:.8rem;line-height:1rem;line-clamp:1;-webkit-line-clamp:1}.author-as-h1_s179 .authorTitle_w1Af{font-size:1.2rem;line-height:1.6rem}.author-as-h2_BF4G .authorTitle_w1Af{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_fH2W{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.8rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.authorListItem_X3Ma{margin-bottom:2rem}.authorCol_btVC{max-width:inherit!important}.imageOnlyAuthorRow_fBnr{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_Y2d8{margin-left:.3rem;margin-right:.3rem}.backToTopButton_WX52{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)}.buttonGroup_zCn6 button,.codeBlockContainer_Sx4Y{background:var(--prism-background-color);color:var(--prism-color)}.docMainContainer__7rY,.docRoot_rWX7,.features_t9lD{width:100%;display:flex}.backToTopButton_WX52: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_OIBR{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_t0mP{display:none;margin:0}.docsWrapper_n3t2{display:flex;flex:1 0 auto}.features_t9lD{align-items:center;padding:2rem 0}.codeBlockContainer_Sx4Y{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_YnoF{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_CurW{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)}.codeBlock_kXdi{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_CurW+.codeBlockContent_YnoF .codeBlock_kXdi{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_SDaA{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_Akw7{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_zCn6{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_zCn6 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_zCn6 button:focus-visible,.buttonGroup_zCn6 button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_zCn6 button{opacity:.4}: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_myqu{counter-increment:a;display:table-row}.codeLineNumber_CBT2{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_CBT2:before{content:counter(a);opacity:.4}.codeLineContent_LM40{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_OQHi{opacity:1!important}.copyButtonIcons_wv7r{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_Yg7_,.copyButtonSuccessIcon_PaDN{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_PaDN{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_OQHi .copyButtonIcon_Yg7_{opacity:0;transform:scale(.33)}.copyButtonCopied_OQHi .copyButtonSuccessIcon_PaDN{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_idh4{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_idh4:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_OEC8{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_X4qa{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_X4qa:after,.tagWithCount_X4qa:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_X4qa:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_X4qa:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_X4qa 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}.tag_jLS_{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_dvG6{height:1.2rem;width:1.2rem}.tags_gbum{display:inline}.tag_jXtk{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_BjJv{margin-right:.3em;vertical-align:sub}.lastUpdated_w0Sh{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_vn6v{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_vn6v: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_g94R:after,.tocCollapsibleExpanded_jtxX{transform:none}.tocCollapsible_v7jt{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_saQ3>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_saQ3 ul li{margin:.4rem .8rem}.details_UM4U{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_UM4U>summary{cursor:pointer;padding-left:1rem;position:relative}.details_UM4U>summary::-webkit-details-marker{display:none}.details_UM4U>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_IfUm{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_MhMj{--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_sRsS{height:auto}.tableOfContents_tnIz{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_HAC_{margin-bottom:1em}.admonitionHeading_VCVJ{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_VCVJ:not(:last-child){margin-bottom:.3rem}.admonitionHeading_VCVJ code{text-transform:none}.admonitionIcon_vHBt{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_vHBt svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon__ns4{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_SLq6{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media (min-width:640px){.container{max-width:640px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-7xl{font-size:4.5rem;line-height:1}}@media (min-width:997px){.collapseSidebarButton_t0mP,.expandButton_RF0L{background-color:var(--docusaurus-collapse-button-bg)}.container{max-width:997px}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_hClt,.announcementBarPlaceholder_e0hD{flex-basis:50px}.navbarSearchContainer_ZzhW{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_t0mP{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_yoHO{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_KM58,[dir=rtl] .collapseSidebarButtonIcon_yoHO{transform:rotate(0)}.collapseSidebarButton_t0mP:focus,.collapseSidebarButton_t0mP:hover,.expandButton_RF0L:focus,.expandButton_RF0L:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_KuMc{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_R21V{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_R21V{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_BzAP{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_bUer{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_SoJA{padding-top:0}.sidebarHidden_UCvX{opacity:0;visibility:hidden}.sidebarLogo_rxVR{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_rxVR img{height:2rem;margin-right:.5rem}.expandButton_RF0L{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_KM58{transform:rotate(180deg)}.docSidebarContainer_HC4d{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_ZfRM{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_N_1E{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer__7rY{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_dowq{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_ApAT{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_w0Sh{text-align:right}.tocMobile_IH7H{display:none}.docItemCol_oXzR{max-width:75%!important}}@media (min-width:1024px){.container{max-width:1024px}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:max-w-none{max-width:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (min-width:1536px){.container{max-width:1536px}}@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_z0vY,.footer__link-separator,.navbar__item,.sidebar_O_Xz,.tableOfContents_tnIz{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.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}.navbarSearchContainer_ZzhW{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_YM2y{padding:0 .3rem}}@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}.title_c9tz{font-size:2rem}}@media (hover:hover){.backToTopButton_WX52:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.16672px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@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 screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@media print{.announcementBar_wEz5,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_IH7H{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_SDaA{white-space:pre-wrap}} \ No newline at end of file +.col,.container{padding:0 var(--ifm-spacing-horizontal)}.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_MBwj,html{-webkit-tap-highlight-color:transparent}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-ItemContentTitle,.button,.dropdown__link,.text--truncate,.whitespace-nowrap{white-space:nowrap}.authorListItem_EZJ8,.list-none{list-style-type:none}.aa-List,.clean-list,.containsTaskList_FqlQ,.details_aEZs>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}.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}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{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;-webkit-text-size-adjust:100%;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}.items-center,.menuExternalLink_sjV1,.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);width:100%}.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_w1aU .wordWrapButtonIcon_eJM7{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_dgzU,.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}.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)}.card--full-height,.navbar__logo img,body,html{height:100%}.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,.inline-block{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)}.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);color:var(--ifm-font-color-base);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:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__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;-webkit-user-select:none;user-select:none}.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)}.button.button--secondary.button--outline:not(.button--active):not(:hover),.text-text-default{color:var(--ifm-font-color-base)}: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__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_Dp4N: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}.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_O6Hb article>:first-child,.docItemContainer_O6Hb header+*,.footer__item{margin-top:0}.admonitionContent_BiE6>:last-child,.collapsibleContent_UQe9 p:last-child,.details_aEZs>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_lq0i,[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,.title_C9tp{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_aEZs[data-collapsed=false].isBrowser_E9QB>summary:before,.details_aEZs[open]:not(.isBrowser_E9QB)>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;top:0;left: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{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.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)}.flex,.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_PrW2,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.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__items--right>:last-child{padding-right:0}.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}.cursor-pointer,.dropdownNavbarItemMobile_fvxk,.pills__item,.tabs__item{cursor:pointer}.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}.inline-flex,.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,.sidebarItemLink_JEx1: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;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_FqlQ>li)>.containsTaskList_FqlQ{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}.aa-Panel,.overflow-hidden{overflow:hidden}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);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}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-font-size-base:105%;--ifm-color-primary:#413a92;--ifm-color-primary-dark:#3a3483;--ifm-color-primary-darker:#37317c;--ifm-color-primary-darkest:#2d2966;--ifm-color-primary-light:#4740a1;--ifm-color-primary-lighter:#4b43a8;--ifm-color-primary-lightest:#5850b9;--ifm-background-surface-color:#d9d7ea!important;--ifm-navbar-background-color:#e2e1ef!important;--ifm-background-color:#e2e1ef!important;--ifm-footer-background-color:#d9d7ea!important;--ifm-font-color-base:#06050a;--ifm-font-color-light:#292244;--ifm-font-color-base-inverse:#f6f5fa;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--docusaurus-blog-social-icon-size:1rem;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg,.absolute{position:absolute}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;right:0;transform:rotate(3deg) translateY(-4px);width:100px}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container,.w-full{width:100%}.relative{position:relative}.left-0{left:0}.right-0{right:0}.top-2\/3{top:66.666667%}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.-mr-1{margin-right:-.25rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.grid{display:grid}.h-48{height:12rem}.h-5{height:1.25rem}.h-\[0\.58em\]{height:.58em}.w-5{width:1.25rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-screen-sm{max-width:640px}.max-w-xl{max-width:36rem}.origin-top-right{transform-origin:top right}@keyframes a{to{transform:rotate(1turn)}}.animate-spin{animation:1s linear infinite a}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.justify-center{justify-content:center}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-y-8{row-gap:2rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.bg-background-dark,.dark-background{background-color:var(--ifm-background-surface-color)}.bg-primary-default{background-color:var(--ifm-color-primary)}.fill-primary-default{fill:var(--ifm-color-primary)}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pb-16{padding-bottom:4rem}.pt-20{padding-top:5rem}.text-left{text-align:left}.content_W_Jx,.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-7{line-height:1.75rem}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.text-primary-darker{color:var(--ifm-color-primary-darker)}.text-text-light{color:var(--ifm-font-color-light)}.hover\:text-white:hover,.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.\!no-underline{text-decoration-line:none!important}.opacity-30{opacity:.3}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-text-light{--tw-ring-color:var(--ifm-font-color-light)}[data-theme=dark]{--ifm-color-primary:#5249b6;--ifm-color-primary-dark:#867fcb;--ifm-color-primary-darker:#7a72c6;--ifm-color-primary-darkest:#554ab6;--ifm-color-primary-light:#b8b3e1;--ifm-color-primary-lighter:#c4c0e6;--ifm-color-primary-lightest:#e9e8f6;--ifm-background-surface-color:#171528!important;--ifm-navbar-background-color:#11101e!important;--ifm-background-color:#11101e!important;--ifm-footer-background-color:#171528!important;--ifm-font-color-base:#f6f5fa;--ifm-font-color-light:#b5b4b8;--ifm-font-color-base-inverse:#06050a}img[alt="GameVault+ Banner"]{height:3.75rem}.banner{align-items:flex-end;display:flex;font-size:3.75rem;gap:.5rem;line-height:1;margin-bottom:1rem}button,input[type=reset],input[type=submit]{background:none;border:none;color:inherit;cursor:pointer;font:inherit;outline:inherit;padding:0}.hover\:bg-background-default:hover{background-color:var(--ifm-background-color)}.hover\:bg-primary-darker:hover{background-color:var(--ifm-color-primary-darker)}.hover\:no-underline:hover{text-decoration-line:none}.focus\:outline-none:focus{outline:#0000 solid 2px;outline-offset:2px}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-darkest:focus-visible{outline-color:var(--ifm-color-primary-darkest)}.active\:bg-primary-darkest:active{background-color:var(--ifm-color-primary-darkest)}.backToTopButton_YGZV{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_YGZV: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_UULB{opacity:1;transform:scale(1);visibility:visible}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.skipToContent_HFi9{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_HFi9:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_ZG0G{line-height:0;padding:0}.content_W_Jx{font-size:85%;padding:5px 0}.content_W_Jx a{color:inherit;text-decoration:underline}.announcementBar_NWyD{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)}.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.docSidebarContainer_ZiXa,.sidebarLogo_DUBQ,.themedComponent_Zwkh,[data-theme=dark] .lightToggleIcon_QBrn,[data-theme=light] .darkToggleIcon_JpX0,html[data-announcement-bar-initially-dismissed=true] .announcementBar_NWyD{display:none}.announcementBarPlaceholder_gnpf{flex:0 0 10px}.announcementBarClose_NR6a{align-self:stretch;flex:0 0 30px}.aa-Form,.toggleButton_MBwj{align-items:center;width:100%}.toggle_hXnJ{height:2rem;width:2rem}.toggleButton_MBwj{border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_MBwj:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_ODKm{cursor:not-allowed}.darkNavbarColorModeToggle_Pd0z:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_Ll79,[data-theme=light] .themedComponent--light_oZSx,html:not([data-theme]) .themedComponent--light_oZSx{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_yCAH{display:none;margin:0}.iconExternalLink_kYT9{margin-left:.3rem}.docMainContainer__kDR,.docRoot_c4xT{display:flex;width:100%}.docsWrapper_sIP3{display:flex;flex:1 0 auto}.iconLanguage_QjCn{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;display:flex;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.83328px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.sidebar_TT3g,.tableOfContents_Mig1{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border:3px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right-width:2px}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;-webkit-text-decoration:none;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.tocCollapsibleContent_kK8X a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{content:"";position:absolute;pointer-events:none;right:0;left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}#__docusaurus-base-url-issue-banner-container,.aa-DetachedContainer--modal .aa-PanelLayout:empty,.aa-DetachedSearchButtonPlaceholder[hidden],.aa-ItemContentDescription:empty,.navbarSearchContainer_c6_E:empty{display:none}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;-webkit-text-decoration:none;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.33333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.33333px;margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.authorSocialIcon_XqVE,.authorSocialLink_MtYE{width:var(--docusaurus-blog-social-icon-size)}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_xPBf{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_eF4K{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_YIPv{color:red;white-space:pre-wrap}.errorBoundaryFallback_gpsT{color:red;padding:.55rem}.footerLogoLink_CidK{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_CidK:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_Hcr8{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_ZS6d{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_AbkR{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_TT3g{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.authorSocials_o1MA,.authorTitle_piwJ{overflow:hidden;-webkit-box-orient:vertical}.sidebarItemTitle_tDhc{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_eyWC,.sidebarItemList_u3Ih{font-size:.9rem}.sidebarItem_Z1Fj{margin-top:.7rem}.sidebarItemLink_JEx1{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive__p1J{color:var(--ifm-color-primary)!important}.yearGroupHeading_PV9s{margin-bottom:.4rem;margin-top:1.6rem}.yearGroupHeading_MH58{margin:1rem .75rem .5rem}[data-theme=dark] .githubSvg_wObk,[data-theme=dark] .xSvg_r_VL{fill:var(--light)}[data-theme=light] .githubSvg_wObk,[data-theme=light] .xSvg_r_VL{fill:var(--dark)}.authorSocials_o1MA{align-items:center;display:flex;flex-wrap:wrap;line-clamp:1;-webkit-line-clamp:1}.authorSocialLink_MtYE,.authorSocials_o1MA{height:var(--docusaurus-blog-social-icon-size);line-height:0}.authorSocialLink_MtYE{margin-right:.4rem}.authorSocialIcon_XqVE{height:var(--docusaurus-blog-social-icon-size)}.authorImage_Zc7w{--ifm-avatar-photo-size:3.6rem}.author-as-h1_Hbf4 .authorImage_Zc7w{--ifm-avatar-photo-size:7rem}.author-as-h2_w5ag .authorImage_Zc7w{--ifm-avatar-photo-size:5.4rem}.authorDetails_HbMv{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-around}.authorName_ZXAJ{display:flex;flex-direction:row;font-size:1.1rem;line-height:1.1rem}.author-as-h1_Hbf4 .authorName_ZXAJ{display:inline;font-size:2.4rem;line-height:2.4rem}.author-as-h2_w5ag .authorName_ZXAJ{display:inline;font-size:1.4rem;line-height:1.4rem}.authorTitle_piwJ{display:-webkit-box;font-size:.8rem;line-height:1rem;line-clamp:1;-webkit-line-clamp:1}.author-as-h1_Hbf4 .authorTitle_piwJ{font-size:1.2rem;line-height:1.6rem}.author-as-h2_w5ag .authorTitle_piwJ{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_Ez8r{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.8rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.buttonGroup_GmHW button,.codeBlockContainer_refD{background:var(--prism-background-color);color:var(--prism-color)}.authorListItem_EZJ8{margin-bottom:2rem}.authorCol_GZzj{max-width:inherit!important}.imageOnlyAuthorRow_oXEi{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_kgo0{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_refD{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_opIA{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_clxF{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)}.codeBlock_c2k3{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_clxF+.codeBlockContent_opIA .codeBlock_c2k3{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_NviX{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_k8vB{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_GmHW{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_GmHW 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_GmHW button:focus-visible,.buttonGroup_GmHW button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_GmHW button{opacity:.4}: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_rVw9{counter-increment:a;display:table-row}.codeLineNumber_Dp4N{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_Dp4N:before{content:counter(a);opacity:.4}.codeLineContent_W8mn{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_KK14{opacity:1!important}.copyButtonIcons_JSxu{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_Qfqj,.copyButtonSuccessIcon_jdaa{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_jdaa{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_KK14 .copyButtonIcon_Qfqj{opacity:0;transform:scale(.33)}.copyButtonCopied_KK14 .copyButtonSuccessIcon_jdaa{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_krRq{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_krRq:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_XaVR{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_oFAz{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_oFAz:after,.tagWithCount_oFAz:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_oFAz:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_oFAz:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_oFAz 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}.tag_CqWe{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_eJM7{height:1.2rem;width:1.2rem}.tags_cQSw{display:inline}.tag_sv6A{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_dc8Y{margin-right:.3em;vertical-align:sub}.lastUpdated_PoBw{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_Eyxu{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_Eyxu: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__8CK:after,.tocCollapsibleExpanded_Ymhn{transform:none}.tocCollapsible_Tooc{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_kK8X>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_kK8X ul li{margin:.4rem .8rem}.details_aEZs{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_aEZs>summary{cursor:pointer;padding-left:1rem;position:relative}.details_aEZs>summary::-webkit-details-marker{display:none}.details_aEZs>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_UQe9{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_EQ8c{--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_G5X4{height:auto}.tableOfContents_Mig1{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_t9s9{margin-bottom:1em}.admonitionHeading_dgzU{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_dgzU:not(:last-child){margin-bottom:.3rem}.admonitionHeading_dgzU code{text-transform:none}.admonitionIcon_t858{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_t858 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_Hzns{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_yY4f{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media (min-width:640px){.container{max-width:640px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-7xl{font-size:4.5rem;line-height:1}}@media (min-width:997px){.collapseSidebarButton_yCAH,.expandButton_jrzn{background-color:var(--docusaurus-collapse-button-bg)}.container{max-width:997px}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_NR6a,.announcementBarPlaceholder_gnpf{flex-basis:50px}.collapseSidebarButton_yCAH{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_gJMs{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_gDgF,[dir=rtl] .collapseSidebarButtonIcon_gJMs{transform:rotate(0)}.collapseSidebarButton_yCAH:focus,.collapseSidebarButton_yCAH:hover,.expandButton_jrzn:focus,.expandButton_jrzn:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_UfCu{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_Mtze{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_Mtze{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_R37n{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_Xzp7{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_Rm_Q{padding-top:0}.sidebarHidden_JKMG{opacity:0;visibility:hidden}.sidebarLogo_DUBQ{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_DUBQ img{height:2rem;margin-right:.5rem}.expandButton_jrzn{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_gDgF{transform:rotate(180deg)}.docSidebarContainer_ZiXa{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_QvwP{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_A9_Z{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer__kDR{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Fp9U{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_kVnM{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_c6_E{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_PoBw{text-align:right}.tocMobile_HCAe{display:none}.docItemCol_B9FN{max-width:75%!important}}@media (min-width:1024px){.container{max-width:1024px}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:max-w-none{max-width:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (min-width:1536px){.container{max-width:1536px}}@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_kx9A,.footer__link-separator,.navbar__item,.sidebar_TT3g,.tableOfContents_Mig1{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}.navbarSearchContainer_c6_E{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_sJth{padding:0 .3rem}}@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}.title_C9tp{font-size:2rem}}@media (hover:hover){.backToTopButton_YGZV:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.16672px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@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 screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@media print{.announcementBar_NWyD,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_HCAe{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_NviX{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/Scale-EE-Step-3-cd6b7b7f6b38297a5ed5b932453bdae9.png b/assets/images/Scale-EE-Step-3-cd6b7b7f6b38297a5ed5b932453bdae9.png new file mode 100644 index 000000000..d8458546d Binary files /dev/null and b/assets/images/Scale-EE-Step-3-cd6b7b7f6b38297a5ed5b932453bdae9.png differ diff --git a/assets/images/Scale-EE-Step-4b-baaa680295deacd56edaa6c243a71e10.png b/assets/images/Scale-EE-Step-4b-baaa680295deacd56edaa6c243a71e10.png new file mode 100644 index 000000000..7f0d75622 Binary files /dev/null and b/assets/images/Scale-EE-Step-4b-baaa680295deacd56edaa6c243a71e10.png differ diff --git a/assets/images/Scale-EE-Stop1-2eef156d34b62e4d675eac577c2b0c67.png b/assets/images/Scale-EE-Stop1-2eef156d34b62e4d675eac577c2b0c67.png new file mode 100644 index 000000000..ce44decad Binary files /dev/null and b/assets/images/Scale-EE-Stop1-2eef156d34b62e4d675eac577c2b0c67.png differ diff --git a/assets/images/Scale-EE-logs3-d090c6b9335baf3abadb45a30f7408a3.png b/assets/images/Scale-EE-logs3-d090c6b9335baf3abadb45a30f7408a3.png new file mode 100644 index 000000000..b1781c94a Binary files /dev/null and b/assets/images/Scale-EE-logs3-d090c6b9335baf3abadb45a30f7408a3.png differ diff --git a/assets/js/0058b4c6.26316bf2.js b/assets/js/0058b4c6.26316bf2.js new file mode 100644 index 000000000..affff9675 --- /dev/null +++ b/assets/js/0058b4c6.26316bf2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[849],{6164: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":{"docs":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Server Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Setup","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Using Docker Compose","href":"/docs/server-docs/setup/docker-compose","docId":"server-docs/setup/docker-compose","unlisted":false},{"type":"link","label":"Using CapRover","href":"/docs/server-docs/setup/caprover","docId":"server-docs/setup/caprover","unlisted":false},{"type":"link","label":"Using TrueNAS Scale","href":"/docs/server-docs/setup/truenas-scale","docId":"server-docs/setup/truenas-scale","unlisted":false},{"type":"link","label":"Using UNRAID","href":"/docs/server-docs/setup/unraid","docId":"server-docs/setup/unraid","unlisted":false},{"type":"link","label":"Using Synology Container Manager","href":"/docs/server-docs/setup/synology-container-manager","docId":"server-docs/setup/synology-container-manager","unlisted":false},{"type":"link","label":"Using TrueNAS Scale - Legacy","href":"/docs/server-docs/setup/truenas-scale-legacy","docId":"server-docs/setup/truenas-scale-legacy","unlisted":false},{"type":"link","label":"Using Native Approach","href":"/docs/server-docs/setup/native","docId":"server-docs/setup/native","unlisted":false}],"href":"/docs/server-docs/setup/"},{"type":"link","label":"Configuration","href":"/docs/server-docs/configuration","docId":"server-docs/configuration","unlisted":false},{"type":"link","label":"File and Folder Structure","href":"/docs/server-docs/structure","docId":"server-docs/structure","unlisted":false},{"type":"link","label":"Game Types","href":"/docs/server-docs/game-types","docId":"server-docs/game-types","unlisted":false},{"type":"link","label":"Adding Games to GameVault","href":"/docs/server-docs/adding-games","docId":"server-docs/adding-games","unlisted":false},{"type":"link","label":"Updating Games","href":"/docs/server-docs/updating-games","docId":"server-docs/updating-games","unlisted":false},{"type":"link","label":"User Management","href":"/docs/server-docs/user-management","docId":"server-docs/user-management","unlisted":false},{"type":"link","label":"Game Indexing","href":"/docs/server-docs/indexing","docId":"server-docs/indexing","unlisted":false},{"type":"category","label":"Metadata","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Enriching your Games with Metadata","href":"/docs/server-docs/metadata-enrichment/metadata","docId":"server-docs/metadata-enrichment/metadata","unlisted":false},{"type":"link","label":"Provider: IGDB","href":"/docs/server-docs/metadata-enrichment/provider-igdb","docId":"server-docs/metadata-enrichment/provider-igdb","unlisted":false}]},{"type":"link","label":"Database Backup & Restoration","href":"/docs/server-docs/backup-and-restore","docId":"server-docs/backup-and-restore","unlisted":false},{"type":"link","label":"Media","href":"/docs/server-docs/media","docId":"server-docs/media","unlisted":false},{"type":"link","label":"WebSockets","href":"/docs/server-docs/websockets","docId":"server-docs/websockets","unlisted":false},{"type":"link","label":"Plugins","href":"/docs/server-docs/plugins","docId":"server-docs/plugins","unlisted":false},{"type":"link","label":"Parental Control","href":"/docs/server-docs/parental-control","docId":"server-docs/parental-control","unlisted":false},{"type":"link","label":"Server News","href":"/docs/server-docs/server-news","docId":"server-docs/server-news","unlisted":false}]},{"type":"category","label":"Client Documentation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up a GameVault Client","href":"/docs/client-docs/setup","docId":"client-docs/setup","unlisted":false},{"type":"link","label":"How to Use","href":"/docs/client-docs/how-to-use","docId":"client-docs/how-to-use","unlisted":false},{"type":"link","label":"Updating the Client","href":"/docs/client-docs/updating-client","docId":"client-docs/updating-client","unlisted":false},{"type":"link","label":"Data Management","href":"/docs/client-docs/data","docId":"client-docs/data","unlisted":false},{"type":"link","label":"GUI Overview","href":"/docs/client-docs/gui","docId":"client-docs/gui","unlisted":false},{"type":"link","label":"Themes","href":"/docs/client-docs/themes","docId":"client-docs/themes","unlisted":false}]},{"type":"category","label":"Advanced Usage","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"REST API Usage","href":"/docs/advanced-usage/rest-api","docId":"advanced-usage/rest-api","unlisted":false},{"type":"link","label":"Early Access Program","href":"/docs/advanced-usage/early-access-program","docId":"advanced-usage/early-access-program","unlisted":false},{"type":"link","label":"Configuring Fail2Ban for GameVault","href":"/docs/advanced-usage/fail2ban-gamevault-guide","docId":"advanced-usage/fail2ban-gamevault-guide","unlisted":false},{"type":"link","label":"Running the Client on Linux","href":"/docs/advanced-usage/linux-client","docId":"advanced-usage/linux-client","unlisted":false},{"type":"link","label":"Running the Client on Steamdeck","href":"/docs/advanced-usage/steamdeck","docId":"advanced-usage/steamdeck","unlisted":false}]},{"type":"category","label":"GameVault+","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/gamevault-plus/introduction","docId":"gamevault-plus/introduction","unlisted":false},{"type":"link","label":"Client Setup","href":"/docs/gamevault-plus/client-setup","docId":"gamevault-plus/client-setup","unlisted":false},{"type":"link","label":"Themes","href":"/docs/gamevault-plus/themes","docId":"gamevault-plus/themes","unlisted":false},{"type":"link","label":"Client APIs","href":"/docs/gamevault-plus/client-apis","docId":"gamevault-plus/client-apis","unlisted":false}]},{"type":"link","label":"Licensing and Contributions","href":"/docs/license-contribute","docId":"license-contribute","unlisted":false},{"type":"link","label":"Troubleshooting","href":"/docs/troubleshooting","docId":"troubleshooting","unlisted":false}]},"docs":{"advanced-usage/early-access-program":{"id":"advanced-usage/early-access-program","title":"Early Access Program","description":"Welcome","sidebar":"docs"},"advanced-usage/fail2ban-gamevault-guide":{"id":"advanced-usage/fail2ban-gamevault-guide","title":"Configuring Fail2Ban for GameVault","description":"This guide was created and tested by a community member. It hasn\'t been personally tested by our team. We cannot guarantee its effectiveness as we don\'t use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly.","sidebar":"docs"},"advanced-usage/linux-client":{"id":"advanced-usage/linux-client","title":"Running the Client on Linux","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux.","sidebar":"docs"},"advanced-usage/rest-api":{"id":"advanced-usage/rest-api","title":"REST API Usage","description":"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically.","sidebar":"docs"},"advanced-usage/steamdeck":{"id":"advanced-usage/steamdeck","title":"Running the Client on Steamdeck","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS.","sidebar":"docs"},"client-docs/data":{"id":"client-docs/data","title":"Data Management","description":"This page gives you an overview of how GameVault stores and manages its data.","sidebar":"docs"},"client-docs/gui":{"id":"client-docs/gui","title":"GUI Overview","description":"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities.","sidebar":"docs"},"client-docs/how-to-use":{"id":"client-docs/how-to-use","title":"How to Use","description":"File & Folder Structure","sidebar":"docs"},"client-docs/setup":{"id":"client-docs/setup","title":"Setting up a GameVault Client","description":"If you want to use GameVault to download and install games on your computer, you need to follow these steps.","sidebar":"docs"},"client-docs/themes":{"id":"client-docs/themes","title":"Themes","description":"GameVault offers the option to apply different themes to your GameVault client application. With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","sidebar":"docs"},"client-docs/updating-client":{"id":"client-docs/updating-client","title":"Updating the Client","description":"The process for updating the app depends on the installation source.","sidebar":"docs"},"gamevault-plus/client-apis":{"id":"gamevault-plus/client-apis","title":"Client APIs","description":"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you\'re interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)","sidebar":"docs"},"gamevault-plus/client-setup":{"id":"gamevault-plus/client-setup","title":"Client Setup","description":"Setting up your GameVault+ License within your GameVault Client Application is simple and easy.","sidebar":"docs"},"gamevault-plus/introduction":{"id":"gamevault-plus/introduction","title":"Introduction","description":"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features.","sidebar":"docs"},"gamevault-plus/themes":{"id":"gamevault-plus/themes","title":"Themes","description":"With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","sidebar":"docs"},"intro":{"id":"intro","title":"Introduction","description":"What is GameVault?","sidebar":"docs"},"license-contribute":{"id":"license-contribute","title":"Licensing and Contributions","description":"License","sidebar":"docs"},"server-docs/adding-games":{"id":"server-docs/adding-games","title":"Adding Games to GameVault","description":"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server.","sidebar":"docs"},"server-docs/backup-and-restore":{"id":"server-docs/backup-and-restore","title":"Database Backup & Restoration","description":"The Backup and Restoration Mechanisms in GameVault are currently experimental and should not be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing...","sidebar":"docs"},"server-docs/configuration":{"id":"server-docs/configuration","title":"Configuration","description":"Check out configuration.ts for all possible environment variables in case we forgot to update this page.","sidebar":"docs"},"server-docs/game-types":{"id":"server-docs/game-types","title":"Game Types","description":"GameVault recognizes various Game Types, which affect how the application handles games, particularly during installation.","sidebar":"docs"},"server-docs/indexing":{"id":"server-docs/indexing","title":"Game Indexing","description":"The server watches the files directory (by default /files) and creates an index of all games, when changes occur. The indexing can also be triggered via API.","sidebar":"docs"},"server-docs/media":{"id":"server-docs/media","title":"Media","description":"This page outlines how media like images and videos are handled within the backend application.","sidebar":"docs"},"server-docs/metadata-enrichment/metadata":{"id":"server-docs/metadata-enrichment/metadata","title":"Enriching your Games with Metadata","description":"Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.","sidebar":"docs"},"server-docs/metadata-enrichment/provider-igdb":{"id":"server-docs/metadata-enrichment/provider-igdb","title":"Provider: IGDB","description":"Overview","sidebar":"docs"},"server-docs/parental-control":{"id":"server-docs/parental-control","title":"Parental Control","description":"GameVault supports a parental control feature that hides games and game progresses based on the games age rating for some users. By default, age restrictions are disabled.","sidebar":"docs"},"server-docs/plugins":{"id":"server-docs/plugins","title":"Plugins","description":"Plugins are currently in the early stages of development. Things may break, so always make backups before using them.","sidebar":"docs"},"server-docs/server-news":{"id":"server-docs/server-news","title":"Server News","description":"You can keep your users informed by adding a news.md file. Use it to link your game wishlist form, share key updates, or simply greet them.","sidebar":"docs"},"server-docs/setup/caprover":{"id":"server-docs/setup/caprover","title":"Using CapRover","description":"CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.","sidebar":"docs"},"server-docs/setup/docker-compose":{"id":"server-docs/setup/docker-compose","title":"Using Docker Compose","description":"Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.","sidebar":"docs"},"server-docs/setup/native":{"id":"server-docs/setup/native","title":"Using Native Approach","description":"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.","sidebar":"docs"},"server-docs/setup/synology-container-manager":{"id":"server-docs/setup/synology-container-manager","title":"Using Synology Container Manager","description":"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.","sidebar":"docs"},"server-docs/setup/toc":{"id":"server-docs/setup/toc","title":"Setting up a GameVault Server","description":"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you.","sidebar":"docs"},"server-docs/setup/truenas-scale":{"id":"server-docs/setup/truenas-scale","title":"Using TrueNAS Scale","description":"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.","sidebar":"docs"},"server-docs/setup/truenas-scale-legacy":{"id":"server-docs/setup/truenas-scale-legacy","title":"Using TrueNAS Scale - Legacy","description":"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.","sidebar":"docs"},"server-docs/setup/unraid":{"id":"server-docs/setup/unraid","title":"Using UNRAID","description":"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.","sidebar":"docs"},"server-docs/structure":{"id":"server-docs/structure","title":"File and Folder Structure","description":"If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.","sidebar":"docs"},"server-docs/updating-games":{"id":"server-docs/updating-games","title":"Updating Games","description":"Applying an Update to a Game","sidebar":"docs"},"server-docs/user-management":{"id":"server-docs/user-management","title":"User Management","description":"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively.","sidebar":"docs"},"server-docs/websockets":{"id":"server-docs/websockets","title":"WebSockets","description":"GameVault doesn\'t fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it\'s just a basic version to begin with on the server. If you\'re interested in how we\'re doing with implementing Websockets, you can check out this page on GitHub to see our progress.","sidebar":"docs"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can\'t find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via Discord. Alternatively, you may also directly email our company address if the issue is confidential.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0058b4c6.d17a824f.js b/assets/js/0058b4c6.d17a824f.js deleted file mode 100644 index b4bb6f754..000000000 --- a/assets/js/0058b4c6.d17a824f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4088],{6462: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":{"docs":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Server Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Setup","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Using Docker Compose","href":"/docs/server-docs/setup/docker-compose","docId":"server-docs/setup/docker-compose","unlisted":false},{"type":"link","label":"Using CapRover","href":"/docs/server-docs/setup/caprover","docId":"server-docs/setup/caprover","unlisted":false},{"type":"link","label":"Using TrueNAS Scale","href":"/docs/server-docs/setup/truenas-scale","docId":"server-docs/setup/truenas-scale","unlisted":false},{"type":"link","label":"Using UNRAID","href":"/docs/server-docs/setup/unraid","docId":"server-docs/setup/unraid","unlisted":false},{"type":"link","label":"Using Synology Container Manager","href":"/docs/server-docs/setup/synology-container-manager","docId":"server-docs/setup/synology-container-manager","unlisted":false},{"type":"link","label":"Using Native Approach","href":"/docs/server-docs/setup/native","docId":"server-docs/setup/native","unlisted":false}],"href":"/docs/server-docs/setup/"},{"type":"link","label":"Configuration","href":"/docs/server-docs/configuration","docId":"server-docs/configuration","unlisted":false},{"type":"link","label":"File and Folder Structure","href":"/docs/server-docs/structure","docId":"server-docs/structure","unlisted":false},{"type":"link","label":"Game Types","href":"/docs/server-docs/game-types","docId":"server-docs/game-types","unlisted":false},{"type":"link","label":"Adding Games to GameVault","href":"/docs/server-docs/adding-games","docId":"server-docs/adding-games","unlisted":false},{"type":"link","label":"Updating Games","href":"/docs/server-docs/updating-games","docId":"server-docs/updating-games","unlisted":false},{"type":"link","label":"User Management","href":"/docs/server-docs/user-management","docId":"server-docs/user-management","unlisted":false},{"type":"link","label":"Game Indexing","href":"/docs/server-docs/indexing","docId":"server-docs/indexing","unlisted":false},{"type":"category","label":"Metadata","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Enriching your Games with Metadata","href":"/docs/server-docs/metadata-enrichment/metadata","docId":"server-docs/metadata-enrichment/metadata","unlisted":false},{"type":"link","label":"Provider: IGDB","href":"/docs/server-docs/metadata-enrichment/provider-igdb","docId":"server-docs/metadata-enrichment/provider-igdb","unlisted":false}]},{"type":"link","label":"Database Backup & Restoration","href":"/docs/server-docs/backup-and-restore","docId":"server-docs/backup-and-restore","unlisted":false},{"type":"link","label":"Media","href":"/docs/server-docs/media","docId":"server-docs/media","unlisted":false},{"type":"link","label":"WebSockets","href":"/docs/server-docs/websockets","docId":"server-docs/websockets","unlisted":false},{"type":"link","label":"Plugins","href":"/docs/server-docs/plugins","docId":"server-docs/plugins","unlisted":false},{"type":"link","label":"Parental Control","href":"/docs/server-docs/parental-control","docId":"server-docs/parental-control","unlisted":false},{"type":"link","label":"Server News","href":"/docs/server-docs/server-news","docId":"server-docs/server-news","unlisted":false}]},{"type":"category","label":"Client Documentation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up a GameVault Client","href":"/docs/client-docs/setup","docId":"client-docs/setup","unlisted":false},{"type":"link","label":"How to Use","href":"/docs/client-docs/how-to-use","docId":"client-docs/how-to-use","unlisted":false},{"type":"link","label":"Updating the Client","href":"/docs/client-docs/updating-client","docId":"client-docs/updating-client","unlisted":false},{"type":"link","label":"Data Management","href":"/docs/client-docs/data","docId":"client-docs/data","unlisted":false},{"type":"link","label":"GUI Overview","href":"/docs/client-docs/gui","docId":"client-docs/gui","unlisted":false},{"type":"link","label":"Themes","href":"/docs/client-docs/themes","docId":"client-docs/themes","unlisted":false}]},{"type":"category","label":"Advanced Usage","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"REST API Usage","href":"/docs/advanced-usage/rest-api","docId":"advanced-usage/rest-api","unlisted":false},{"type":"link","label":"Early Access Program","href":"/docs/advanced-usage/early-access-program","docId":"advanced-usage/early-access-program","unlisted":false},{"type":"link","label":"Configuring Fail2Ban for GameVault","href":"/docs/advanced-usage/fail2ban-gamevault-guide","docId":"advanced-usage/fail2ban-gamevault-guide","unlisted":false},{"type":"link","label":"Running the Client on Linux","href":"/docs/advanced-usage/linux-client","docId":"advanced-usage/linux-client","unlisted":false},{"type":"link","label":"Running the Client on Steamdeck","href":"/docs/advanced-usage/steamdeck","docId":"advanced-usage/steamdeck","unlisted":false}]},{"type":"category","label":"GameVault+","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/gamevault-plus/introduction","docId":"gamevault-plus/introduction","unlisted":false},{"type":"link","label":"Client Setup","href":"/docs/gamevault-plus/client-setup","docId":"gamevault-plus/client-setup","unlisted":false},{"type":"link","label":"Themes","href":"/docs/gamevault-plus/themes","docId":"gamevault-plus/themes","unlisted":false},{"type":"link","label":"Client APIs","href":"/docs/gamevault-plus/client-apis","docId":"gamevault-plus/client-apis","unlisted":false}]},{"type":"link","label":"Licensing and Contributions","href":"/docs/license-contribute","docId":"license-contribute","unlisted":false},{"type":"link","label":"Troubleshooting","href":"/docs/troubleshooting","docId":"troubleshooting","unlisted":false}]},"docs":{"advanced-usage/early-access-program":{"id":"advanced-usage/early-access-program","title":"Early Access Program","description":"Welcome","sidebar":"docs"},"advanced-usage/fail2ban-gamevault-guide":{"id":"advanced-usage/fail2ban-gamevault-guide","title":"Configuring Fail2Ban for GameVault","description":"This guide was created and tested by a community member. It hasn\'t been personally tested by our team. We cannot guarantee its effectiveness as we don\'t use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly.","sidebar":"docs"},"advanced-usage/linux-client":{"id":"advanced-usage/linux-client","title":"Running the Client on Linux","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux.","sidebar":"docs"},"advanced-usage/rest-api":{"id":"advanced-usage/rest-api","title":"REST API Usage","description":"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically.","sidebar":"docs"},"advanced-usage/steamdeck":{"id":"advanced-usage/steamdeck","title":"Running the Client on Steamdeck","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS.","sidebar":"docs"},"client-docs/data":{"id":"client-docs/data","title":"Data Management","description":"This page gives you an overview of how GameVault stores and manages its data.","sidebar":"docs"},"client-docs/gui":{"id":"client-docs/gui","title":"GUI Overview","description":"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities.","sidebar":"docs"},"client-docs/how-to-use":{"id":"client-docs/how-to-use","title":"How to Use","description":"File & Folder Structure","sidebar":"docs"},"client-docs/setup":{"id":"client-docs/setup","title":"Setting up a GameVault Client","description":"If you want to use GameVault to download and install games on your computer, you need to follow these steps.","sidebar":"docs"},"client-docs/themes":{"id":"client-docs/themes","title":"Themes","description":"GameVault offers the option to apply different themes to your GameVault client application. With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","sidebar":"docs"},"client-docs/updating-client":{"id":"client-docs/updating-client","title":"Updating the Client","description":"The process for updating the app depends on the installation source.","sidebar":"docs"},"gamevault-plus/client-apis":{"id":"gamevault-plus/client-apis","title":"Client APIs","description":"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you\'re interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)","sidebar":"docs"},"gamevault-plus/client-setup":{"id":"gamevault-plus/client-setup","title":"Client Setup","description":"Setting up your GameVault+ License within your GameVault Client Application is simple and easy.","sidebar":"docs"},"gamevault-plus/introduction":{"id":"gamevault-plus/introduction","title":"Introduction","description":"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features.","sidebar":"docs"},"gamevault-plus/themes":{"id":"gamevault-plus/themes","title":"Themes","description":"With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","sidebar":"docs"},"intro":{"id":"intro","title":"Introduction","description":"What is GameVault?","sidebar":"docs"},"license-contribute":{"id":"license-contribute","title":"Licensing and Contributions","description":"License","sidebar":"docs"},"server-docs/adding-games":{"id":"server-docs/adding-games","title":"Adding Games to GameVault","description":"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server.","sidebar":"docs"},"server-docs/backup-and-restore":{"id":"server-docs/backup-and-restore","title":"Database Backup & Restoration","description":"The Backup and Restoration Mechanisms in GameVault are currently experimental and should not be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing...","sidebar":"docs"},"server-docs/configuration":{"id":"server-docs/configuration","title":"Configuration","description":"Check out configuration.ts for all possible environment variables in case we forgot to update this page.","sidebar":"docs"},"server-docs/game-types":{"id":"server-docs/game-types","title":"Game Types","description":"GameVault recognizes various Game Types, which affect how the application handles games, particularly during installation.","sidebar":"docs"},"server-docs/indexing":{"id":"server-docs/indexing","title":"Game Indexing","description":"The server watches the files directory (by default /files) and creates an index of all games, when changes occur. The indexing can also be triggered via API.","sidebar":"docs"},"server-docs/media":{"id":"server-docs/media","title":"Media","description":"This page outlines how media like images and videos are handled within the backend application.","sidebar":"docs"},"server-docs/metadata-enrichment/metadata":{"id":"server-docs/metadata-enrichment/metadata","title":"Enriching your Games with Metadata","description":"Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.","sidebar":"docs"},"server-docs/metadata-enrichment/provider-igdb":{"id":"server-docs/metadata-enrichment/provider-igdb","title":"Provider: IGDB","description":"Overview","sidebar":"docs"},"server-docs/parental-control":{"id":"server-docs/parental-control","title":"Parental Control","description":"GameVault supports a parental control feature that hides games and game progresses based on the games age rating for some users. By default, age restrictions are disabled.","sidebar":"docs"},"server-docs/plugins":{"id":"server-docs/plugins","title":"Plugins","description":"Plugins are currently in the early stages of development. Things may break, so always make backups before using them.","sidebar":"docs"},"server-docs/server-news":{"id":"server-docs/server-news","title":"Server News","description":"You can keep your users informed by adding a news.md file. Use it to link your game wishlist form, share key updates, or simply greet them.","sidebar":"docs"},"server-docs/setup/caprover":{"id":"server-docs/setup/caprover","title":"Using CapRover","description":"CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.","sidebar":"docs"},"server-docs/setup/docker-compose":{"id":"server-docs/setup/docker-compose","title":"Using Docker Compose","description":"Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.","sidebar":"docs"},"server-docs/setup/native":{"id":"server-docs/setup/native","title":"Using Native Approach","description":"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.","sidebar":"docs"},"server-docs/setup/synology-container-manager":{"id":"server-docs/setup/synology-container-manager","title":"Using Synology Container Manager","description":"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.","sidebar":"docs"},"server-docs/setup/toc":{"id":"server-docs/setup/toc","title":"Setting up a GameVault Server","description":"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you.","sidebar":"docs"},"server-docs/setup/truenas-scale":{"id":"server-docs/setup/truenas-scale","title":"Using TrueNAS Scale","description":"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.","sidebar":"docs"},"server-docs/setup/unraid":{"id":"server-docs/setup/unraid","title":"Using UNRAID","description":"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.","sidebar":"docs"},"server-docs/structure":{"id":"server-docs/structure","title":"File and Folder Structure","description":"If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.","sidebar":"docs"},"server-docs/updating-games":{"id":"server-docs/updating-games","title":"Updating Games","description":"Applying an Update to a Game","sidebar":"docs"},"server-docs/user-management":{"id":"server-docs/user-management","title":"User Management","description":"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively.","sidebar":"docs"},"server-docs/websockets":{"id":"server-docs/websockets","title":"WebSockets","description":"GameVault doesn\'t fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it\'s just a basic version to begin with on the server. If you\'re interested in how we\'re doing with implementing Websockets, you can check out this page on GitHub to see our progress.","sidebar":"docs"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can\'t find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via Discord. Alternatively, you may also directly email our company address if the issue is confidential.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/007d2baa.5c11eb62.js b/assets/js/007d2baa.5c11eb62.js deleted file mode 100644 index f04d029d5..000000000 --- a/assets/js/007d2baa.5c11eb62.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6021],{4902:(e,d,i)=>{i.r(d),i.d(d,{assets:()=>c,contentTitle:()=>n,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var s=i(2676),t=i(8358);const r={sidebar_position:8},n="Media",a={id:"server-docs/media",title:"Media",description:"This page outlines how media like images and videos are handled within the backend application.",source:"@site/docs/server-docs/media.md",sourceDirName:"server-docs",slug:"/server-docs/media",permalink:"/docs/server-docs/media",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/media.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"docs",previous:{title:"Database Backup & Restoration",permalink:"/docs/server-docs/backup-and-restore"},next:{title:"WebSockets",permalink:"/docs/server-docs/websockets"}},c={},l=[{value:"Supported Formats",id:"supported-formats",level:2},{value:"Supported Image Formats",id:"supported-image-formats",level:3},{value:"Supported Audio Formats",id:"supported-audio-formats",level:3},{value:"Supported Video Formats",id:"supported-video-formats",level:3},{value:"Media Persistence",id:"media-persistence",level:2},{value:"Media that is stored on the filesystem",id:"media-that-is-stored-on-the-filesystem",level:3},{value:"Media that is stored as an external resource",id:"media-that-is-stored-as-an-external-resource",level:3},{value:"Duplicate Media",id:"duplicate-media",level:3},{value:"Media Garbage Collection",id:"media-garbage-collection",level:2},{value:"Turning off Garbage Collection",id:"turning-off-garbage-collection",level:3}];function o(e){const d={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.header,{children:(0,s.jsx)(d.h1,{id:"media",children:"Media"})}),"\n",(0,s.jsx)(d.p,{children:"This page outlines how media like images and videos are handled within the backend application."}),"\n",(0,s.jsx)(d.p,{children:"Here is the updated markdown table including the format names as a second column:"}),"\n",(0,s.jsx)(d.h2,{id:"supported-formats",children:"Supported Formats"}),"\n",(0,s.jsx)(d.h3,{id:"supported-image-formats",children:"Supported Image Formats"}),"\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:"Format"}),(0,s.jsx)(d.th,{children:"Name"}),(0,s.jsx)(d.th,{children:"MIME Type"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".bmp"})}),(0,s.jsx)(d.td,{children:"Bitmap Image"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/bmp"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".jpeg"})}),(0,s.jsx)(d.td,{children:"JPEG Image"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/jpeg"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".png"})}),(0,s.jsx)(d.td,{children:"Portable Network Graphics"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/png"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".tiff"})}),(0,s.jsx)(d.td,{children:"Tagged Image File Format"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/tiff"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".gif"})}),(0,s.jsx)(d.td,{children:"Graphics Interchange Format"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/gif"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".ico"})}),(0,s.jsx)(d.td,{children:"Icon Format"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"image/vnd.microsoft.icon"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"supported-audio-formats",children:"Supported Audio Formats"}),"\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:"Format"}),(0,s.jsx)(d.th,{children:"Name"}),(0,s.jsx)(d.th,{children:"MIME Type"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mp3"})}),(0,s.jsx)(d.td,{children:"MPEG Audio"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/mpeg"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".wav"})}),(0,s.jsx)(d.td,{children:"Waveform Audio"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/wav"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".ogg"})}),(0,s.jsx)(d.td,{children:"Ogg Vorbis"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/ogg"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".aac"})}),(0,s.jsx)(d.td,{children:"Advanced Audio Codec"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/aac"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".flac"})}),(0,s.jsx)(d.td,{children:"Free Lossless Audio Codec"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/flac"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".wma"})}),(0,s.jsx)(d.td,{children:"Windows Media Audio"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/x-ms-wma"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".amr"})}),(0,s.jsx)(d.td,{children:"Adaptive Multi-Rate"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/amr"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mp4"})}),(0,s.jsx)(d.td,{children:"MPEG-4 Audio"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"audio/mp4"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"supported-video-formats",children:"Supported Video Formats"}),"\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:"Format"}),(0,s.jsx)(d.th,{children:"Name"}),(0,s.jsx)(d.th,{children:"MIME Type"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mp4"})}),(0,s.jsx)(d.td,{children:"MPEG-4 Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/mp4"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".avi"})}),(0,s.jsx)(d.td,{children:"Audio Video Interleave"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/x-msvideo"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mov"})}),(0,s.jsx)(d.td,{children:"QuickTime"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/quicktime"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".wmv"})}),(0,s.jsx)(d.td,{children:"Windows Media Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/x-ms-wmv"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".flv"})}),(0,s.jsx)(d.td,{children:"Flash Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/x-flv"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mkv"})}),(0,s.jsx)(d.td,{children:"Matroska Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/x-matroska"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".webm"})}),(0,s.jsx)(d.td,{children:"WebM Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/webm"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".mpeg"})}),(0,s.jsx)(d.td,{children:"MPEG Video"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/mpeg"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:".3gp"})}),(0,s.jsx)(d.td,{children:"3GPP Multimedia File"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"video/3gpp"})})]})]})]}),"\n",(0,s.jsx)(d.h2,{id:"media-persistence",children:"Media Persistence"}),"\n",(0,s.jsxs)(d.p,{children:["GameVault stores media either by persisting them to the filesystem using the media directory (by default ",(0,s.jsx)(d.code,{children:"/media"}),") or by saving a link to an external URL."]}),"\n",(0,s.jsx)(d.h3,{id:"media-that-is-stored-on-the-filesystem",children:"Media that is stored on the filesystem"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"game_metadata.cover"}),": Game Box Arts"]}),"\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"game_metadata.background"}),": Game Background Images"]}),"\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"gamevault_user.avatar"}),": User Avatars"]}),"\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"gamevault_user.background"}),": User Background Images"]}),"\n"]}),"\n",(0,s.jsx)(d.h3,{id:"media-that-is-stored-as-an-external-resource",children:"Media that is stored as an external resource"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"game_metadata.url_screenshots"}),": Game Screenshots"]}),"\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"game_metadata.url_trailers"}),": Game Trailers"]}),"\n",(0,s.jsxs)(d.li,{children:[(0,s.jsx)(d.code,{children:"game_metadata.url_gameplays"}),": Gameplay Videos"]}),"\n"]}),"\n",(0,s.jsx)(d.admonition,{type:"note",children:(0,s.jsxs)(d.p,{children:["Note the ",(0,s.jsx)(d.code,{children:"url_"})," prefix."]})}),"\n",(0,s.jsx)(d.h3,{id:"duplicate-media",children:"Duplicate Media"}),"\n",(0,s.jsx)(d.p,{children:"GameVault stores each media resource referenced in the database as one-to-one, with no media reuse. So it's normal to see duplicates."}),"\n",(0,s.jsx)(d.h2,{id:"media-garbage-collection",children:"Media Garbage Collection"}),"\n",(0,s.jsx)(d.admonition,{title:"Potential data loss",type:"danger",children:(0,s.jsxs)(d.p,{children:["Garbage collection ",(0,s.jsx)(d.strong,{children:"can result in data loss"}),", as it will ",(0,s.jsx)(d.strong,{children:"delete any files inside the media folder"})," without an association in the database. For example if you set up a new, empty database. It is advisable to regularly back up your media just to be safe. If you don't want to lose any data, you can disable garbage collection by setting the ",(0,s.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})," environment variable to ",(0,s.jsx)(d.code,{children:"true"}),"."]})}),"\n",(0,s.jsx)(d.p,{children:"GameVault regularly cleans up its media in the database and filesystem to keep things tidy. We call this process garbage collection."}),"\n",(0,s.jsxs)(d.p,{children:["You can control how often the garbage colletion happens by changing the value of ",(0,s.jsx)(d.code,{children:"MEDIA_GC_INTERVAL_IN_MINUTES"}),"."]}),"\n",(0,s.jsx)(d.p,{children:"During cleanup, GameVault first gets rid of all media in the database that aren't used. Afterwards, it deletes all media files in the media folder that don't match any database entries. So please don't put any files in the media folder that you don't want to be deleted."}),"\n",(0,s.jsx)(d.h3,{id:"turning-off-garbage-collection",children:"Turning off Garbage Collection"}),"\n",(0,s.jsxs)(d.p,{children:["If you want to turn off this feature, you can disableit by setting the ",(0,s.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})," environment variable to ",(0,s.jsx)(d.code,{children:"true"}),"."]})]})}function h(e={}){const{wrapper:d}={...(0,t.a)(),...e.components};return d?(0,s.jsx)(d,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8358:(e,d,i)=>{i.d(d,{Z:()=>a,a:()=>n});var s=i(5271);const t={},r=s.createContext(t);function n(e){const d=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function a(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(r.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/007d2baa.c943cc30.js b/assets/js/007d2baa.c943cc30.js new file mode 100644 index 000000000..54bb0a23f --- /dev/null +++ b/assets/js/007d2baa.c943cc30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5112],{3434:(e,d,i)=>{i.r(d),i.d(d,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"server-docs/media","title":"Media","description":"This page outlines how media like images and videos are handled within the backend application.","source":"@site/docs/server-docs/media.md","sourceDirName":"server-docs","slug":"/server-docs/media","permalink":"/docs/server-docs/media","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/media.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8},"sidebar":"docs","previous":{"title":"Database Backup & Restoration","permalink":"/docs/server-docs/backup-and-restore"},"next":{"title":"WebSockets","permalink":"/docs/server-docs/websockets"}}');var t=i(6070),r=i(8591);const n={sidebar_position:8},a="Media",c={},l=[{value:"Supported Formats",id:"supported-formats",level:2},{value:"Supported Image Formats",id:"supported-image-formats",level:3},{value:"Supported Audio Formats",id:"supported-audio-formats",level:3},{value:"Supported Video Formats",id:"supported-video-formats",level:3},{value:"Media Persistence",id:"media-persistence",level:2},{value:"Media that is stored on the filesystem",id:"media-that-is-stored-on-the-filesystem",level:3},{value:"Media that is stored as an external resource",id:"media-that-is-stored-as-an-external-resource",level:3},{value:"Duplicate Media",id:"duplicate-media",level:3},{value:"Media Garbage Collection",id:"media-garbage-collection",level:2},{value:"Turning off Garbage Collection",id:"turning-off-garbage-collection",level:3}];function o(e){const d={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.header,{children:(0,t.jsx)(d.h1,{id:"media",children:"Media"})}),"\n",(0,t.jsx)(d.p,{children:"This page outlines how media like images and videos are handled within the backend application."}),"\n",(0,t.jsx)(d.p,{children:"Here is the updated markdown table including the format names as a second column:"}),"\n",(0,t.jsx)(d.h2,{id:"supported-formats",children:"Supported Formats"}),"\n",(0,t.jsx)(d.h3,{id:"supported-image-formats",children:"Supported Image Formats"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Format"}),(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"MIME Type"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".bmp"})}),(0,t.jsx)(d.td,{children:"Bitmap Image"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/bmp"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".jpeg"})}),(0,t.jsx)(d.td,{children:"JPEG Image"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/jpeg"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".png"})}),(0,t.jsx)(d.td,{children:"Portable Network Graphics"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/png"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".tiff"})}),(0,t.jsx)(d.td,{children:"Tagged Image File Format"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/tiff"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".gif"})}),(0,t.jsx)(d.td,{children:"Graphics Interchange Format"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/gif"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".ico"})}),(0,t.jsx)(d.td,{children:"Icon Format"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"image/vnd.microsoft.icon"})})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"supported-audio-formats",children:"Supported Audio Formats"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Format"}),(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"MIME Type"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mp3"})}),(0,t.jsx)(d.td,{children:"MPEG Audio"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/mpeg"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".wav"})}),(0,t.jsx)(d.td,{children:"Waveform Audio"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/wav"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".ogg"})}),(0,t.jsx)(d.td,{children:"Ogg Vorbis"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/ogg"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".aac"})}),(0,t.jsx)(d.td,{children:"Advanced Audio Codec"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/aac"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".flac"})}),(0,t.jsx)(d.td,{children:"Free Lossless Audio Codec"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/flac"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".wma"})}),(0,t.jsx)(d.td,{children:"Windows Media Audio"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/x-ms-wma"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".amr"})}),(0,t.jsx)(d.td,{children:"Adaptive Multi-Rate"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/amr"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mp4"})}),(0,t.jsx)(d.td,{children:"MPEG-4 Audio"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"audio/mp4"})})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"supported-video-formats",children:"Supported Video Formats"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Format"}),(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"MIME Type"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mp4"})}),(0,t.jsx)(d.td,{children:"MPEG-4 Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/mp4"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".avi"})}),(0,t.jsx)(d.td,{children:"Audio Video Interleave"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/x-msvideo"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mov"})}),(0,t.jsx)(d.td,{children:"QuickTime"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/quicktime"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".wmv"})}),(0,t.jsx)(d.td,{children:"Windows Media Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/x-ms-wmv"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".flv"})}),(0,t.jsx)(d.td,{children:"Flash Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/x-flv"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mkv"})}),(0,t.jsx)(d.td,{children:"Matroska Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/x-matroska"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".webm"})}),(0,t.jsx)(d.td,{children:"WebM Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/webm"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".mpeg"})}),(0,t.jsx)(d.td,{children:"MPEG Video"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/mpeg"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:".3gp"})}),(0,t.jsx)(d.td,{children:"3GPP Multimedia File"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"video/3gpp"})})]})]})]}),"\n",(0,t.jsx)(d.h2,{id:"media-persistence",children:"Media Persistence"}),"\n",(0,t.jsxs)(d.p,{children:["GameVault stores media either by persisting them to the filesystem using the media directory (by default ",(0,t.jsx)(d.code,{children:"/media"}),") or by saving a link to an external URL."]}),"\n",(0,t.jsx)(d.h3,{id:"media-that-is-stored-on-the-filesystem",children:"Media that is stored on the filesystem"}),"\n",(0,t.jsxs)(d.ul,{children:["\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"game_metadata.cover"}),": Game Box Arts"]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"game_metadata.background"}),": Game Background Images"]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"gamevault_user.avatar"}),": User Avatars"]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"gamevault_user.background"}),": User Background Images"]}),"\n"]}),"\n",(0,t.jsx)(d.h3,{id:"media-that-is-stored-as-an-external-resource",children:"Media that is stored as an external resource"}),"\n",(0,t.jsxs)(d.ul,{children:["\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"game_metadata.url_screenshots"}),": Game Screenshots"]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"game_metadata.url_trailers"}),": Game Trailers"]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.code,{children:"game_metadata.url_gameplays"}),": Gameplay Videos"]}),"\n"]}),"\n",(0,t.jsx)(d.admonition,{type:"note",children:(0,t.jsxs)(d.p,{children:["Note the ",(0,t.jsx)(d.code,{children:"url_"})," prefix."]})}),"\n",(0,t.jsx)(d.h3,{id:"duplicate-media",children:"Duplicate Media"}),"\n",(0,t.jsx)(d.p,{children:"GameVault stores each media resource referenced in the database as one-to-one, with no media reuse. So it's normal to see duplicates."}),"\n",(0,t.jsx)(d.h2,{id:"media-garbage-collection",children:"Media Garbage Collection"}),"\n",(0,t.jsx)(d.admonition,{title:"Potential data loss",type:"danger",children:(0,t.jsxs)(d.p,{children:["Garbage collection ",(0,t.jsx)(d.strong,{children:"can result in data loss"}),", as it will ",(0,t.jsx)(d.strong,{children:"delete any files inside the media folder"})," without an association in the database. For example if you set up a new, empty database. It is advisable to regularly back up your media just to be safe. If you don't want to lose any data, you can disable garbage collection by setting the ",(0,t.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})," environment variable to ",(0,t.jsx)(d.code,{children:"true"}),"."]})}),"\n",(0,t.jsx)(d.p,{children:"GameVault regularly cleans up its media in the database and filesystem to keep things tidy. We call this process garbage collection."}),"\n",(0,t.jsxs)(d.p,{children:["You can control how often the garbage colletion happens by changing the value of ",(0,t.jsx)(d.code,{children:"MEDIA_GC_INTERVAL_IN_MINUTES"}),"."]}),"\n",(0,t.jsx)(d.p,{children:"During cleanup, GameVault first gets rid of all media in the database that aren't used. Afterwards, it deletes all media files in the media folder that don't match any database entries. So please don't put any files in the media folder that you don't want to be deleted."}),"\n",(0,t.jsx)(d.h3,{id:"turning-off-garbage-collection",children:"Turning off Garbage Collection"}),"\n",(0,t.jsxs)(d.p,{children:["If you want to turn off this feature, you can disableit by setting the ",(0,t.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})," environment variable to ",(0,t.jsx)(d.code,{children:"true"}),"."]})]})}function h(e={}){const{wrapper:d}={...(0,r.R)(),...e.components};return d?(0,t.jsx)(d,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8591:(e,d,i)=>{i.d(d,{R:()=>n,x:()=>a});var s=i(758);const t={},r=s.createContext(t);function n(e){const d=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function a(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(r.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/009c376a.06db26bf.js b/assets/js/009c376a.19eca2ed.js similarity index 84% rename from assets/js/009c376a.06db26bf.js rename to assets/js/009c376a.19eca2ed.js index ec4533caa..d824d6fae 100644 --- a/assets/js/009c376a.06db26bf.js +++ b/assets/js/009c376a.19eca2ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8847],{9062:a=>{a.exports=JSON.parse('{"tag":{"label":"support","permalink":"/blog/tags/support","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/support","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1122],{2516:a=>{a.exports=JSON.parse('{"tag":{"label":"support","permalink":"/blog/tags/support","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/support","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/00dfabf5.e80e1c37.js b/assets/js/00dfabf5.0fa9877a.js similarity index 84% rename from assets/js/00dfabf5.e80e1c37.js rename to assets/js/00dfabf5.0fa9877a.js index 73d4d77f3..5a1908d21 100644 --- a/assets/js/00dfabf5.e80e1c37.js +++ b/assets/js/00dfabf5.0fa9877a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4956],{1410:a=>{a.exports=JSON.parse('{"tag":{"label":"subscription","permalink":"/blog/tags/subscription","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2079],{4632:a=>{a.exports=JSON.parse('{"tag":{"label":"subscription","permalink":"/blog/tags/subscription","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/00fcf151.fc36d5e7.js b/assets/js/00fcf151.6bd3021f.js similarity index 84% rename from assets/js/00fcf151.fc36d5e7.js rename to assets/js/00fcf151.6bd3021f.js index 24e50b4ee..004406484 100644 --- a/assets/js/00fcf151.fc36d5e7.js +++ b/assets/js/00fcf151.6bd3021f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1693],{912:a=>{a.exports=JSON.parse('{"tag":{"label":"transparency","permalink":"/blog/tags/transparency","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/transparency","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[315],{9771:a=>{a.exports=JSON.parse('{"tag":{"label":"transparency","permalink":"/blog/tags/transparency","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/transparency","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/013bccfd.ff7437d6.js b/assets/js/013bccfd.81dd0c01.js similarity index 84% rename from assets/js/013bccfd.ff7437d6.js rename to assets/js/013bccfd.81dd0c01.js index fe3816366..1f0880748 100644 --- a/assets/js/013bccfd.ff7437d6.js +++ b/assets/js/013bccfd.81dd0c01.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6835],{8325:e=>{e.exports=JSON.parse('{"tag":{"label":"improvement","permalink":"/blog/tags/improvement","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/improvement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7145],{8928:e=>{e.exports=JSON.parse('{"tag":{"label":"improvement","permalink":"/blog/tags/improvement","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/improvement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.a3a8d5c8.js b/assets/js/01a85c17.a3a8d5c8.js deleted file mode 100644 index f4d19a534..000000000 --- a/assets/js/01a85c17.a3a8d5c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4013],{5023:(e,t,a)=>{a.d(t,{n4:()=>c,Ne:()=>_,ci:()=>P,CS:()=>f,wj:()=>l,nO:()=>m,iZ:()=>b,cH:()=>y});var s=a(5271),n=a(8274),i=a(4268),r=a(2676);function l(){const e=(0,i.Z)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const i=function(e){let{content:t,isBlogPostPage:a}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return(0,r.jsx)(o.Provider,{value:i,children:t})}function m(){const e=(0,s.useContext)(o);if(null===e)throw new n.i6("BlogPostProvider");return e}var d=a(285),u=a(6172);const g=e=>new Date(e).toISOString();function h(e){const t=e.map(j);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:x({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function f(e){const{siteConfig:t}=(0,u.Z)(),{withBaseUrl:a}=(0,d.Cg)(),{metadata:{blogDescription:s,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:s,blogPost:e.items.map((e=>function(e,t,a){const{assets:s,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,m=s.image??n.image,d=n.keywords??[],u=`${t.url}${i.permalink}`,f=c?g(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...f?{dateModified:f}:{},...h(i.authors),...p(m,a,l),...d?{keywords:d}:{}}}(e.content,t,a)))}}function b(){const e=l(),{assets:t,metadata:a}=m(),{siteConfig:s}=(0,u.Z)(),{withBaseUrl:n}=(0,d.Cg)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:f}=a,b=t.image??c.image,j=c.keywords??[],x=f?g(f):void 0,N=`${s.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":N,mainEntityOfPage:N,url:N,headline:r,name:r,description:o,datePublished:i,...x?{dateModified:x}:{},...h(a.authors),...p(b,n,r),...j?{keywords:j}:{},isPartOf:{"@type":"Blog","@id":`${s.url}${e.blogBasePath}`,name:e.blogTitle}}}function j(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function x(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}var N=a(3225),v=a(6527),C=a(2347),k=a(6422);function y(e){const{pathname:t}=(0,N.TH)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,k.Mg)(e.permalink,t))}(e,t)))),[e,t])}function P(e){const t=(0,C.vM)(e,(e=>`${new Date(e.date).getFullYear()}`)),a=Object.entries(t);return a.reverse(),a}function _(e){let{items:t,ulClassName:a,liClassName:s,linkClassName:n,linkActiveClassName:i}=e;return(0,r.jsx)("ul",{className:a,children:t.map((e=>(0,r.jsx)("li",{className:s,children:(0,r.jsx)(v.Z,{isNavLink:!0,to:e.permalink,className:n,activeClassName:i,children:e.title})},e.permalink)))})}},6566:(e,t,a)=>{a.d(t,{Z:()=>M});var s=a(5271),n=a(4814),i=a(3557),r=a(3320),l=a(2922),o=a(5023),c=a(9364),m=a(3221),d=a(2676);function u(e){let{year:t,yearGroupHeadingClassName:a,children:s}=e;return(0,d.jsxs)("div",{role:"group",children:[(0,d.jsx)(m.Z,{as:"h3",className:a,children:t}),s]})}function g(e){let{items:t,yearGroupHeadingClassName:a,ListComponent:s}=e;if((0,c.L)().blog.sidebar.groupByYear){const e=(0,o.ci)(t);return(0,d.jsx)(d.Fragment,{children:e.map((e=>{let[t,n]=e;return(0,d.jsx)(u,{year:t,yearGroupHeadingClassName:a,children:(0,d.jsx)(s,{items:n})},t)}))})}return(0,d.jsx)(s,{items:t})}const h=(0,s.memo)(g),p="sidebar_O_Xz",f="sidebarItemTitle_NsE9",b="sidebarItemList_yaC1",j="sidebarItem_PDlg",x="sidebarItemLink_HUlZ",N="sidebarItemLinkActive_eKb7",v="yearGroupHeading_ypKa",C=e=>{let{items:t}=e;return(0,d.jsx)(o.Ne,{items:t,ulClassName:(0,n.Z)(b,"clean-list"),liClassName:j,linkClassName:x,linkActiveClassName:N})};function k(e){let{sidebar:t}=e;const a=(0,o.cH)(t.items);return(0,d.jsx)("aside",{className:"col col--3",children:(0,d.jsxs)("nav",{className:(0,n.Z)(p,"thin-scrollbar"),"aria-label":(0,l.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,d.jsx)("div",{className:(0,n.Z)(f,"margin-bottom--md"),children:t.title}),(0,d.jsx)(h,{items:a,ListComponent:C,yearGroupHeadingClassName:v})]})})}const y=(0,s.memo)(k);var P=a(3158);const _={yearGroupHeading:"yearGroupHeading_Zf6e"},Z=e=>{let{items:t}=e;return(0,d.jsx)(o.Ne,{items:t,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"})};function w(e){let{sidebar:t}=e;const a=(0,o.cH)(t.items);return(0,d.jsx)(h,{items:a,ListComponent:Z,yearGroupHeadingClassName:_.yearGroupHeading})}function B(e){return(0,d.jsx)(P.Zo,{component:w,props:e})}const H=(0,s.memo)(B);function L(e){let{sidebar:t}=e;const a=(0,r.i)();return t?.items.length?"mobile"===a?(0,d.jsx)(H,{sidebar:t}):(0,d.jsx)(y,{sidebar:t}):null}function M(e){const{sidebar:t,toc:a,children:s,...r}=e,l=t&&t.items.length>0;return(0,d.jsx)(i.Z,{...r,children:(0,d.jsx)("div",{className:"container margin-vert--lg",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(L,{sidebar:t}),(0,d.jsx)("main",{className:(0,n.Z)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:s}),a&&(0,d.jsx)("div",{className:"col col--2",children:a})]})})})}},7484:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});a(5271);var s=a(4814),n=a(2922);const i=()=>(0,n.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var r=a(9967),l=a(3509),o=a(6566),c=a(8213),m=a(3221);const d={tag:"tag_jLS_"};var u=a(2676);function g(e){let{letterEntry:t}=e;return(0,u.jsxs)("article",{children:[(0,u.jsx)(m.Z,{as:"h2",id:t.letter,children:t.letter}),(0,u.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,u.jsx)("li",{className:d.tag,children:(0,u.jsx)(c.Z,{...e})},e.permalink)))}),(0,u.jsx)("hr",{})]})}function h(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return(0,u.jsx)("section",{className:"margin-vert--lg",children:a.map((e=>(0,u.jsx)(g,{letterEntry:e},e.letter)))})}var p=a(8625);function f(e){let{tags:t,sidebar:a}=e;const n=i();return(0,u.jsxs)(r.FG,{className:(0,s.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,u.jsx)(r.d,{title:n}),(0,u.jsx)(p.Z,{tag:"blog_tags_list"}),(0,u.jsxs)(o.Z,{sidebar:a,children:[(0,u.jsx)(m.Z,{as:"h1",children:n}),(0,u.jsx)(h,{tags:t})]})]})}},8213:(e,t,a)=>{a.d(t,{Z:()=>l});a(5271);var s=a(4814),n=a(6527);const i={tag:"tag_idh4",tagRegular:"tagRegular_OEC8",tagWithCount:"tagWithCount_X4qa"};var r=a(2676);function l(e){let{permalink:t,label:a,count:l,description:o}=e;return(0,r.jsxs)(n.Z,{href:t,title:o,className:(0,s.Z)(i.tag,l?i.tagWithCount:i.tagRegular),children:[a,l&&(0,r.jsx)("span",{children:l})]})}}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.ee1c5da9.js b/assets/js/01a85c17.ee1c5da9.js new file mode 100644 index 000000000..c69cefa46 --- /dev/null +++ b/assets/js/01a85c17.ee1c5da9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8209],{7073:(e,t,a)=>{a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>k});var s=a(758),n=a(7888),i=a(4017),r=a(6070);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const i=function(e){let{content:t,isBlogPostPage:a}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return(0,r.jsx)(o.Provider,{value:i,children:t})}function m(){const e=(0,s.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var d=a(2235),u=a(4480);const g=e=>new Date(e).toISOString();function h(e){const t=e.map(x);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function b(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:a}=(0,d.hH)(),{metadata:{blogDescription:s,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:s,blogPost:e.items.map((e=>function(e,t,a){const{assets:s,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,m=s.image??n.image,d=n.keywords??[],u=`${t.url}${i.permalink}`,b=c?g(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...b?{dateModified:b}:{},...h(i.authors),...p(m,a,l),...d?{keywords:d}:{}}}(e.content,t,a)))}}function f(){const e=l(),{assets:t,metadata:a}=m(),{siteConfig:s}=(0,u.A)(),{withBaseUrl:n}=(0,d.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:b}=a,f=t.image??c.image,x=c.keywords??[],j=b?g(b):void 0,v=`${s.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":v,mainEntityOfPage:v,url:v,headline:r,name:r,description:o,datePublished:i,...j?{dateModified:j}:{},...h(a.authors),...p(f,n,r),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${s.url}${e.blogBasePath}`,name:e.blogTitle}}}function x(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}var v=a(5557),N=a(88),C=a(5182),A=a(1197);function k(e){const{pathname:t}=(0,v.zy)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,A.ys)(e.permalink,t))}(e,t)))),[e,t])}function y(e){const t=(0,C.$z)(e,(e=>`${new Date(e.date).getFullYear()}`)),a=Object.entries(t);return a.reverse(),a}function P(e){let{items:t,ulClassName:a,liClassName:s,linkClassName:n,linkActiveClassName:i}=e;return(0,r.jsx)("ul",{className:a,children:t.map((e=>(0,r.jsx)("li",{className:s,children:(0,r.jsx)(N.A,{isNavLink:!0,to:e.permalink,className:n,activeClassName:i,children:e.title})},e.permalink)))})}},8777:(e,t,a)=>{a.d(t,{A:()=>H});var s=a(758),n=a(3526),i=a(3385),r=a(7569),l=a(8072),o=a(7073),c=a(9618),m=a(8038),d=a(6070);function u(e){let{year:t,yearGroupHeadingClassName:a,children:s}=e;return(0,d.jsxs)("div",{role:"group",children:[(0,d.jsx)(m.A,{as:"h3",className:a,children:t}),s]})}function g(e){let{items:t,yearGroupHeadingClassName:a,ListComponent:s}=e;if((0,c.p)().blog.sidebar.groupByYear){const e=(0,o.Ki)(t);return(0,d.jsx)(d.Fragment,{children:e.map((e=>{let[t,n]=e;return(0,d.jsx)(u,{year:t,yearGroupHeadingClassName:a,children:(0,d.jsx)(s,{items:n})},t)}))})}return(0,d.jsx)(s,{items:t})}const h=(0,s.memo)(g),p="sidebar_TT3g",b="sidebarItemTitle_tDhc",f="sidebarItemList_u3Ih",x="sidebarItem_Z1Fj",j="sidebarItemLink_JEx1",v="sidebarItemLinkActive__p1J",N="yearGroupHeading_PV9s",C=e=>{let{items:t}=e;return(0,d.jsx)(o.OU,{items:t,ulClassName:(0,n.A)(f,"clean-list"),liClassName:x,linkClassName:j,linkActiveClassName:v})};function A(e){let{sidebar:t}=e;const a=(0,o.Gx)(t.items);return(0,d.jsx)("aside",{className:"col col--3",children:(0,d.jsxs)("nav",{className:(0,n.A)(p,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,d.jsx)("div",{className:(0,n.A)(b,"margin-bottom--md"),children:t.title}),(0,d.jsx)(h,{items:a,ListComponent:C,yearGroupHeadingClassName:N})]})})}const k=(0,s.memo)(A);var y=a(5508);const P={yearGroupHeading:"yearGroupHeading_MH58"},_=e=>{let{items:t}=e;return(0,d.jsx)(o.OU,{items:t,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"})};function w(e){let{sidebar:t}=e;const a=(0,o.Gx)(t.items);return(0,d.jsx)(h,{items:a,ListComponent:_,yearGroupHeadingClassName:P.yearGroupHeading})}function B(e){return(0,d.jsx)(y.GX,{component:w,props:e})}const G=(0,s.memo)(B);function U(e){let{sidebar:t}=e;const a=(0,r.l)();return t?.items.length?"mobile"===a?(0,d.jsx)(G,{sidebar:t}):(0,d.jsx)(k,{sidebar:t}):null}function H(e){const{sidebar:t,toc:a,children:s,...r}=e,l=t&&t.items.length>0;return(0,d.jsx)(i.A,{...r,children:(0,d.jsx)("div",{className:"container margin-vert--lg",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(U,{sidebar:t}),(0,d.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:s}),a&&(0,d.jsx)("div",{className:"col col--2",children:a})]})})})}},5735:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});a(758);var s=a(3526),n=a(8072);const i=()=>(0,n.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var r=a(5003),l=a(8539),o=a(8777),c=a(5524),m=a(8038);const d={tag:"tag_CqWe"};var u=a(6070);function g(e){let{letterEntry:t}=e;return(0,u.jsxs)("article",{children:[(0,u.jsx)(m.A,{as:"h2",id:t.letter,children:t.letter}),(0,u.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,u.jsx)("li",{className:d.tag,children:(0,u.jsx)(c.A,{...e})},e.permalink)))}),(0,u.jsx)("hr",{})]})}function h(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return(0,u.jsx)("section",{className:"margin-vert--lg",children:a.map((e=>(0,u.jsx)(g,{letterEntry:e},e.letter)))})}var p=a(4981);function b(e){let{tags:t,sidebar:a}=e;const n=i();return(0,u.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,u.jsx)(r.be,{title:n}),(0,u.jsx)(p.A,{tag:"blog_tags_list"}),(0,u.jsxs)(o.A,{sidebar:a,children:[(0,u.jsx)(m.A,{as:"h1",children:n}),(0,u.jsx)(h,{tags:t})]})]})}},5524:(e,t,a)=>{a.d(t,{A:()=>l});a(758);var s=a(3526),n=a(88);const i={tag:"tag_krRq",tagRegular:"tagRegular_XaVR",tagWithCount:"tagWithCount_oFAz"};var r=a(6070);function l(e){let{permalink:t,label:a,count:l,description:o}=e;return(0,r.jsxs)(n.A,{href:t,title:o,className:(0,s.A)(i.tag,l?i.tagWithCount:i.tagRegular),children:[a,l&&(0,r.jsx)("span",{children:l})]})}}}]); \ No newline at end of file diff --git a/assets/js/01fcf7cb.48bd04c7.js b/assets/js/01fcf7cb.3ef8e3bb.js similarity index 84% rename from assets/js/01fcf7cb.48bd04c7.js rename to assets/js/01fcf7cb.3ef8e3bb.js index 28e30b9bf..58cc0e152 100644 --- a/assets/js/01fcf7cb.48bd04c7.js +++ b/assets/js/01fcf7cb.3ef8e3bb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5789],{8196:e=>{e.exports=JSON.parse('{"tag":{"label":"engagement","permalink":"/blog/tags/engagement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/engagement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9809],{9887:e=>{e.exports=JSON.parse('{"tag":{"label":"engagement","permalink":"/blog/tags/engagement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/engagement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/03919031.e92f7a9d.js b/assets/js/03919031.b2df7caa.js similarity index 84% rename from assets/js/03919031.e92f7a9d.js rename to assets/js/03919031.b2df7caa.js index f15743795..842e6764f 100644 --- a/assets/js/03919031.e92f7a9d.js +++ b/assets/js/03919031.b2df7caa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7951],{3868:a=>{a.exports=JSON.parse('{"tag":{"label":"gratitude","permalink":"/blog/tags/gratitude","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gratitude","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9161],{1854:a=>{a.exports=JSON.parse('{"tag":{"label":"gratitude","permalink":"/blog/tags/gratitude","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gratitude","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/04a3aba4.8bc321d3.js b/assets/js/04a3aba4.8bc321d3.js new file mode 100644 index 000000000..4b92c1232 --- /dev/null +++ b/assets/js/04a3aba4.8bc321d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[753],{8150:a=>{a.exports=JSON.parse('{"tag":{"label":"market analysis","permalink":"/blog/tags/market-analysis","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/market-analysis","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/04a3aba4.a65ff355.js b/assets/js/04a3aba4.a65ff355.js deleted file mode 100644 index 01d2b46ba..000000000 --- a/assets/js/04a3aba4.a65ff355.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2873],{2896:a=>{a.exports=JSON.parse('{"tag":{"label":"market analysis","permalink":"/blog/tags/market-analysis","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/market-analysis","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/063ffaec.bf3c46a7.js b/assets/js/063ffaec.92bf17ab.js similarity index 85% rename from assets/js/063ffaec.bf3c46a7.js rename to assets/js/063ffaec.92bf17ab.js index 242ee58cd..b22bc1dbb 100644 --- a/assets/js/063ffaec.bf3c46a7.js +++ b/assets/js/063ffaec.92bf17ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9399],{3875:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-community-launch","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5173],{1940:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-community-launch","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/065dfc11.021b191d.js b/assets/js/065dfc11.92b139c0.js similarity index 85% rename from assets/js/065dfc11.021b191d.js rename to assets/js/065dfc11.92b139c0.js index 605c48c21..e44e2a890 100644 --- a/assets/js/065dfc11.021b191d.js +++ b/assets/js/065dfc11.92b139c0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2314],{3114:a=>{a.exports=JSON.parse('{"tag":{"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/domain-acquisition","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4469],{4820:a=>{a.exports=JSON.parse('{"tag":{"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/domain-acquisition","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0748c3bc.089fb55d.js b/assets/js/0748c3bc.089fb55d.js new file mode 100644 index 000000000..2b2cc4d90 --- /dev/null +++ b/assets/js/0748c3bc.089fb55d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5723],{6786:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"server-docs/metadata-enrichment/metadata","title":"Enriching your Games with Metadata","description":"Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.","source":"@site/docs/server-docs/metadata-enrichment/metadata.md","sourceDirName":"server-docs/metadata-enrichment","slug":"/server-docs/metadata-enrichment/metadata","permalink":"/docs/server-docs/metadata-enrichment/metadata","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/metadata-enrichment/metadata.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":0.01,"frontMatter":{"title":"Enriching your Games with Metadata","sidebar_position":0.01},"sidebar":"docs","previous":{"title":"Game Indexing","permalink":"/docs/server-docs/indexing"},"next":{"title":"Provider: IGDB","permalink":"/docs/server-docs/metadata-enrichment/provider-igdb"}}');var r=a(6070),n=a(8591);const d={title:"Enriching your Games with Metadata",sidebar_position:.01},s=void 0,l={},o=[{value:"Setting Up a Metadata Provider",id:"setting-up-a-metadata-provider",level:2},{value:"Built-In Metadata Providers",id:"built-in-metadata-providers",level:3},{value:"Community-Maintained Metadata Providers",id:"community-maintained-metadata-providers",level:3},{value:"How Metadata Enrichment in GameVault Works",id:"how-metadata-enrichment-in-gamevault-works",level:2},{value:"Editing Metadata",id:"editing-metadata",level:2},{value:"Remapping a Game",id:"remapping-a-game",level:2},{value:"Unmapping a Game",id:"unmapping-a-game",level:2},{value:"How GameVault Merges Metadata",id:"how-gamevault-merges-metadata",level:2},{value:"Developing a New Metadata Provider Plugin",id:"developing-a-new-metadata-provider-plugin",level:2}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some ",(0,r.jsx)(t.strong,{children:"juicy metadata"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["GameVault supports a ",(0,r.jsx)(t.strong,{children:"vast plugin framework"})," that supports connecting to various metadata providers simultaneously. In the following sections, you'll learn how to set up a metadata provider and get started."]}),"\n",(0,r.jsx)(t.h2,{id:"setting-up-a-metadata-provider",children:"Setting Up a Metadata Provider"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Click on any of the entries below to get to their dedicated page."})}),"\n",(0,r.jsx)(t.h3,{id:"built-in-metadata-providers",children:"Built-In Metadata Providers"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/docs/server-docs/metadata-enrichment/provider-igdb",children:(0,r.jsx)(t.strong,{children:"IGDB (via Client-ID and Client-Secret)"})})}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"community-maintained-metadata-providers",children:"Community-Maintained Metadata Providers"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Not yet available"}),", but you can ",(0,r.jsx)(t.a,{href:"#developing-a-new-metadata-provider-plugin",children:"build the first one!"})]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"how-metadata-enrichment-in-gamevault-works",children:"How Metadata Enrichment in GameVault Works"}),"\n",(0,r.jsx)(t.p,{children:"The GameVault Server includes a metadata service that allows various Metadata Provider Plugins to register. Each provider registers with a numerical priority value - the higher the priority, the more important the metadata is treated."}),"\n",(0,r.jsxs)(t.p,{children:["After ",(0,r.jsx)(t.a,{href:"../indexing",children:"indexing the games"}),", GameVault automatically searches for relevant metadata. It uses a standard interface search method to find games on the metadata provider (often based on Game Title and Release Year) and determines the best match using a probability index calculated with an NLP Levenshtein algorithm and the release-year-offset. The further away the title and release date, the less probable the match. For each game file, only one game can be mapped per metadata provider."]}),"\n",(0,r.jsx)(t.h2,{id:"editing-metadata",children:"Editing Metadata"}),"\n",(0,r.jsxs)(t.p,{children:["To edit metadata, Users need to have the role ",(0,r.jsx)(t.code,{children:"EDITOR"})," or higher. Data provided by users are always treated with ",(0,r.jsx)(t.strong,{children:"the highest priority"}),". Only one user-provided metadata object per game is allowed and it is the same for all users. This can be used to fill in missing data manually or change it."]}),"\n",(0,r.jsx)(t.h2,{id:"remapping-a-game",children:"Remapping a Game"}),"\n",(0,r.jsx)(t.p,{children:"It is possible to search the registered Metadata Providers to find a better matching game and remap the current match to it."}),"\n",(0,r.jsx)(t.h2,{id:"unmapping-a-game",children:"Unmapping a Game"}),"\n",(0,r.jsx)(t.p,{children:"It is possible to unmap a game from a Metadata Provider, which will disconnect the mapped metadata from the game."}),"\n",(0,r.jsx)(t.h2,{id:"how-gamevault-merges-metadata",children:"How GameVault Merges Metadata"}),"\n",(0,r.jsxs)(t.p,{children:["GameVault always applies the metadata detached and by priority, by creating an ",(0,r.jsx)(t.strong,{children:"effective"})," metadata object ",(0,r.jsx)(t.code,{children:"game.metadata"}),'. We call this process "merging". It works as follows:']}),"\n",(0,r.jsx)(t.p,{children:'Let\'s say we have a game: "Grand Theft Auto: San Andreas" with two Metadata Providers and a user-provided edit.'}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Provider"}),(0,r.jsx)(t.th,{children:"Priority"}),(0,r.jsx)(t.th,{children:"Title"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Age Rating"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"STEAM"}),(0,r.jsx)(t.td,{children:"1"}),(0,r.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,r.jsx)(t.td,{children:"All you had to do is to follow the damn train, CJ."}),(0,r.jsx)(t.td,{children:"18"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"IGDB"}),(0,r.jsx)(t.td,{children:"2"}),(0,r.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,r.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"USER"}),(0,r.jsx)(t.td,{children:"\u221e"}),(0,r.jsx)(t.td,{children:"N/A"}),(0,r.jsx)(t.td,{children:"N/A"}),(0,r.jsx)(t.td,{children:"12"})]})]})]}),"\n",(0,r.jsx)(t.p,{children:'GameVault begins creating the "effective" metadata object by starting with the lowest priority provider and working its way up. In our case, the lowest priority provider is Steam with a priority of 1.'}),"\n",(0,r.jsx)(t.p,{children:"So the generated metadata object initially looks like this:"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Provider"}),(0,r.jsx)(t.th,{children:"Title"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Age Rating"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"GameVault"}),(0,r.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,r.jsx)(t.td,{children:"All you had to do is to follow the damn train, CJ."}),(0,r.jsx)(t.td,{children:"18"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"Next, the IGDB provider is used. As you can see, it has a different description, but the age rating is missing. GameVault will overwrite the description with the more important one. However, the missing age rating will be ignored, as some data from a lower priority provider is always preferred over having no data in a field. So the merged metadata object now looks like:"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Provider"}),(0,r.jsx)(t.th,{children:"Title"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Age Rating"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"GameVault"}),(0,r.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,r.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,r.jsx)(t.td,{children:"18"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"Finally, we get to the user-provided metadata. This one is special because the user always has the highest priority. So it will always be used. In our case, we want to let our underage kid play some San Andreas, so we overwrote the age rating to 12. Again, missing fields will be ignored."}),"\n",(0,r.jsx)(t.p,{children:"So the merged metadata object now looks like:"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Provider"}),(0,r.jsx)(t.th,{children:"Title"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Age Rating"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"GameVault"}),(0,r.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,r.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,r.jsx)(t.td,{children:"12"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"This is the final result. The merge is done by the GameVault Server."}),"\n",(0,r.jsx)(t.p,{children:"The server will trigger a new merge whenever a relevant metadata object is changed (e.g., Edit of Game Metadata, Recache, Remap, etc.)."}),"\n",(0,r.jsx)(t.h2,{id:"developing-a-new-metadata-provider-plugin",children:"Developing a New Metadata Provider Plugin"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"/docs/server-docs/plugins",children:"Click here"})," to learn how to develop your own metadata provider plugin."]})]})}function c(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>d,x:()=>s});var i=a(758);const r={},n=i.createContext(r);function d(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0748c3bc.bbf473ea.js b/assets/js/0748c3bc.bbf473ea.js deleted file mode 100644 index ddf10b9ec..000000000 --- a/assets/js/0748c3bc.bbf473ea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6241],{3785:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>o});var i=a(2676),r=a(8358);const n={title:"Enriching your Games with Metadata",sidebar_position:.01},d=void 0,s={id:"server-docs/metadata-enrichment/metadata",title:"Enriching your Games with Metadata",description:"Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.",source:"@site/docs/server-docs/metadata-enrichment/metadata.md",sourceDirName:"server-docs/metadata-enrichment",slug:"/server-docs/metadata-enrichment/metadata",permalink:"/docs/server-docs/metadata-enrichment/metadata",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/metadata-enrichment/metadata.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:.01,frontMatter:{title:"Enriching your Games with Metadata",sidebar_position:.01},sidebar:"docs",previous:{title:"Game Indexing",permalink:"/docs/server-docs/indexing"},next:{title:"Provider: IGDB",permalink:"/docs/server-docs/metadata-enrichment/provider-igdb"}},l={},o=[{value:"Setting Up a Metadata Provider",id:"setting-up-a-metadata-provider",level:2},{value:"Built-In Metadata Providers",id:"built-in-metadata-providers",level:3},{value:"Community-Maintained Metadata Providers",id:"community-maintained-metadata-providers",level:3},{value:"How Metadata Enrichment in GameVault Works",id:"how-metadata-enrichment-in-gamevault-works",level:2},{value:"Editing Metadata",id:"editing-metadata",level:2},{value:"Remapping a Game",id:"remapping-a-game",level:2},{value:"Unmapping a Game",id:"unmapping-a-game",level:2},{value:"How GameVault Merges Metadata",id:"how-gamevault-merges-metadata",level:2},{value:"Developing a New Metadata Provider Plugin",id:"developing-a-new-metadata-provider-plugin",level:2}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some ",(0,i.jsx)(t.strong,{children:"juicy metadata"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["GameVault supports a ",(0,i.jsx)(t.strong,{children:"vast plugin framework"})," that supports connecting to various metadata providers simultaneously. In the following sections, you'll learn how to set up a metadata provider and get started."]}),"\n",(0,i.jsx)(t.h2,{id:"setting-up-a-metadata-provider",children:"Setting Up a Metadata Provider"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Click on any of the entries below to get to their dedicated page."})}),"\n",(0,i.jsx)(t.h3,{id:"built-in-metadata-providers",children:"Built-In Metadata Providers"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"/docs/server-docs/metadata-enrichment/provider-igdb",children:(0,i.jsx)(t.strong,{children:"IGDB (via Client-ID and Client-Secret)"})})}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"community-maintained-metadata-providers",children:"Community-Maintained Metadata Providers"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Not yet available"}),", but you can ",(0,i.jsx)(t.a,{href:"#developing-a-new-metadata-provider-plugin",children:"build the first one!"})]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"how-metadata-enrichment-in-gamevault-works",children:"How Metadata Enrichment in GameVault Works"}),"\n",(0,i.jsx)(t.p,{children:"The GameVault Server includes a metadata service that allows various Metadata Provider Plugins to register. Each provider registers with a numerical priority value - the higher the priority, the more important the metadata is treated."}),"\n",(0,i.jsxs)(t.p,{children:["After ",(0,i.jsx)(t.a,{href:"../indexing",children:"indexing the games"}),", GameVault automatically searches for relevant metadata. It uses a standard interface search method to find games on the metadata provider (often based on Game Title and Release Year) and determines the best match using a probability index calculated with an NLP Levenshtein algorithm and the release-year-offset. The further away the title and release date, the less probable the match. For each game file, only one game can be mapped per metadata provider."]}),"\n",(0,i.jsx)(t.h2,{id:"editing-metadata",children:"Editing Metadata"}),"\n",(0,i.jsxs)(t.p,{children:["To edit metadata, Users need to have the role ",(0,i.jsx)(t.code,{children:"EDITOR"})," or higher. Data provided by users are always treated with ",(0,i.jsx)(t.strong,{children:"the highest priority"}),". Only one user-provided metadata object per game is allowed and it is the same for all users. This can be used to fill in missing data manually or change it."]}),"\n",(0,i.jsx)(t.h2,{id:"remapping-a-game",children:"Remapping a Game"}),"\n",(0,i.jsx)(t.p,{children:"It is possible to search the registered Metadata Providers to find a better matching game and remap the current match to it."}),"\n",(0,i.jsx)(t.h2,{id:"unmapping-a-game",children:"Unmapping a Game"}),"\n",(0,i.jsx)(t.p,{children:"It is possible to unmap a game from a Metadata Provider, which will disconnect the mapped metadata from the game."}),"\n",(0,i.jsx)(t.h2,{id:"how-gamevault-merges-metadata",children:"How GameVault Merges Metadata"}),"\n",(0,i.jsxs)(t.p,{children:["GameVault always applies the metadata detached and by priority, by creating an ",(0,i.jsx)(t.strong,{children:"effective"})," metadata object ",(0,i.jsx)(t.code,{children:"game.metadata"}),'. We call this process "merging". It works as follows:']}),"\n",(0,i.jsx)(t.p,{children:'Let\'s say we have a game: "Grand Theft Auto: San Andreas" with two Metadata Providers and a user-provided edit.'}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Provider"}),(0,i.jsx)(t.th,{children:"Priority"}),(0,i.jsx)(t.th,{children:"Title"}),(0,i.jsx)(t.th,{children:"Description"}),(0,i.jsx)(t.th,{children:"Age Rating"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"STEAM"}),(0,i.jsx)(t.td,{children:"1"}),(0,i.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,i.jsx)(t.td,{children:"All you had to do is to follow the damn train, CJ."}),(0,i.jsx)(t.td,{children:"18"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"IGDB"}),(0,i.jsx)(t.td,{children:"2"}),(0,i.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,i.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,i.jsx)(t.td,{})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"USER"}),(0,i.jsx)(t.td,{children:"\u221e"}),(0,i.jsx)(t.td,{children:"N/A"}),(0,i.jsx)(t.td,{children:"N/A"}),(0,i.jsx)(t.td,{children:"12"})]})]})]}),"\n",(0,i.jsx)(t.p,{children:'GameVault begins creating the "effective" metadata object by starting with the lowest priority provider and working its way up. In our case, the lowest priority provider is Steam with a priority of 1.'}),"\n",(0,i.jsx)(t.p,{children:"So the generated metadata object initially looks like this:"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Provider"}),(0,i.jsx)(t.th,{children:"Title"}),(0,i.jsx)(t.th,{children:"Description"}),(0,i.jsx)(t.th,{children:"Age Rating"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"GameVault"}),(0,i.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,i.jsx)(t.td,{children:"All you had to do is to follow the damn train, CJ."}),(0,i.jsx)(t.td,{children:"18"})]})})]}),"\n",(0,i.jsx)(t.p,{children:"Next, the IGDB provider is used. As you can see, it has a different description, but the age rating is missing. GameVault will overwrite the description with the more important one. However, the missing age rating will be ignored, as some data from a lower priority provider is always preferred over having no data in a field. So the merged metadata object now looks like:"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Provider"}),(0,i.jsx)(t.th,{children:"Title"}),(0,i.jsx)(t.th,{children:"Description"}),(0,i.jsx)(t.th,{children:"Age Rating"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"GameVault"}),(0,i.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,i.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,i.jsx)(t.td,{children:"18"})]})})]}),"\n",(0,i.jsx)(t.p,{children:"Finally, we get to the user-provided metadata. This one is special because the user always has the highest priority. So it will always be used. In our case, we want to let our underage kid play some San Andreas, so we overwrote the age rating to 12. Again, missing fields will be ignored."}),"\n",(0,i.jsx)(t.p,{children:"So the merged metadata object now looks like:"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Provider"}),(0,i.jsx)(t.th,{children:"Title"}),(0,i.jsx)(t.th,{children:"Description"}),(0,i.jsx)(t.th,{children:"Age Rating"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"GameVault"}),(0,i.jsx)(t.td,{children:"Grand Theft Auto: San Andreas"}),(0,i.jsx)(t.td,{children:"I'll have two number 9s, a number 9 large..."}),(0,i.jsx)(t.td,{children:"12"})]})})]}),"\n",(0,i.jsx)(t.p,{children:"This is the final result. The merge is done by the GameVault Server."}),"\n",(0,i.jsx)(t.p,{children:"The server will trigger a new merge whenever a relevant metadata object is changed (e.g., Edit of Game Metadata, Recache, Remap, etc.)."}),"\n",(0,i.jsx)(t.h2,{id:"developing-a-new-metadata-provider-plugin",children:"Developing a New Metadata Provider Plugin"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"/docs/server-docs/plugins",children:"Click here"})," to learn how to develop your own metadata provider plugin."]})]})}function c(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>s,a:()=>d});var i=a(5271);const r={},n=i.createContext(r);function d(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0766ce7b.6aec0bf0.js b/assets/js/0766ce7b.d16dcd6d.js similarity index 83% rename from assets/js/0766ce7b.6aec0bf0.js rename to assets/js/0766ce7b.d16dcd6d.js index c5a30ad52..b325fbfdc 100644 --- a/assets/js/0766ce7b.6aec0bf0.js +++ b/assets/js/0766ce7b.d16dcd6d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6987],{1411:a=>{a.exports=JSON.parse('{"tag":{"label":"update","permalink":"/blog/tags/update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5455],{6563:a=>{a.exports=JSON.parse('{"tag":{"label":"update","permalink":"/blog/tags/update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/077db3c5.0999319f.js b/assets/js/077db3c5.2de3d644.js similarity index 85% rename from assets/js/077db3c5.0999319f.js rename to assets/js/077db3c5.2de3d644.js index 41913772c..89c2f4b81 100644 --- a/assets/js/077db3c5.0999319f.js +++ b/assets/js/077db3c5.2de3d644.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6807],{6380:a=>{a.exports=JSON.parse('{"tag":{"label":"Client Application update","permalink":"/blog/tags/client-application-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/client-application-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1028],{4819:a=>{a.exports=JSON.parse('{"tag":{"label":"Client Application update","permalink":"/blog/tags/client-application-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/client-application-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0a27b0d0.5f4c1fad.js b/assets/js/0a27b0d0.6794e881.js similarity index 84% rename from assets/js/0a27b0d0.5f4c1fad.js rename to assets/js/0a27b0d0.6794e881.js index ffd7497cc..fc5e80e6d 100644 --- a/assets/js/0a27b0d0.5f4c1fad.js +++ b/assets/js/0a27b0d0.6794e881.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9518],{3170:a=>{a.exports=JSON.parse('{"tag":{"label":"code access","permalink":"/blog/tags/code-access","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/code-access","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3537],{6529:a=>{a.exports=JSON.parse('{"tag":{"label":"code access","permalink":"/blog/tags/code-access","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/code-access","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0ad562e6.6f0e84be.js b/assets/js/0ad562e6.54f6d3f4.js similarity index 85% rename from assets/js/0ad562e6.6f0e84be.js rename to assets/js/0ad562e6.54f6d3f4.js index a413a6911..2540d0b58 100644 --- a/assets/js/0ad562e6.6f0e84be.js +++ b/assets/js/0ad562e6.54f6d3f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2275],{6923:e=>{e.exports=JSON.parse('{"tag":{"label":"Development Milestones","permalink":"/blog/tags/development-milestones","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/development-milestones","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3362],{2079:e=>{e.exports=JSON.parse('{"tag":{"label":"Development Milestones","permalink":"/blog/tags/development-milestones","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/development-milestones","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0b705c82.2a66ee95.js b/assets/js/0b705c82.2a66ee95.js new file mode 100644 index 000000000..1fa7281c1 --- /dev/null +++ b/assets/js/0b705c82.2a66ee95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9030],{8410:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var r=a(3143),n=a(6070),s=a(8591);const i={title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},l=void 0,o={authorsImageUrls:[void 0]},c=[{value:"What's the Early-Access Program?",id:"whats-the-early-access-program",level:2},{value:"How to Join",id:"how-to-join",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Important Note",id:"important-note",level:3}];function u(e){const t={a:"a",br:"br",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Hey, Guys!"}),"\n",(0,n.jsxs)(t.p,{children:["For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want ",(0,n.jsx)(t.strong,{children:"YOU"})," to be a part of it!"]}),"\n",(0,n.jsx)(t.h2,{id:"whats-the-early-access-program",children:"What's the Early-Access Program?"}),"\n",(0,n.jsx)(t.p,{children:"Early-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You'll be part of an exclusive group and get a sneak peek into the latest features, but here's the deal \u2013 it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else."}),"\n",(0,n.jsx)(t.h2,{id:"how-to-join",children:"How to Join"}),"\n",(0,n.jsxs)(t.p,{children:["\ud83d\udccb"," Complete the ",(0,n.jsx)(t.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Application Form"}),(0,n.jsx)(t.br,{}),"\n","\ud83d\udcc5"," The first early-access phase kicks off on December 17 and lasts for one week."]}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(t.p,{children:["\ud83d\udcac"," Active participation in the designated Discord channel.",(0,n.jsx)(t.br,{}),"\n","\ud83c\udfae"," GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it ",(0,n.jsx)(t.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"here"}),".",(0,n.jsx)(t.br,{}),"\n","\ud83d\ude80"," A GameVault Server running the ",(0,n.jsxs)(t.strong,{children:["phalcode/gamevault-backend",":early-access"]})," image. (Only run this if you are accepted as a Tester as it could break things!)"]}),"\n",(0,n.jsx)(t.h3,{id:"important-note",children:"Important Note"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"There are only a limited number of slots in the Early-Access Program. Supporters and Trusted Members are prioritized."}),"\n",(0,n.jsx)(t.li,{children:"If you're accepted and later found not meeting the requirements, you might be removed from future testing and the next applicant on our list gets the opportunity."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Apply here!"})})]})}function m(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>l});var r=a(758);const n={},s=r.createContext(n);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(s.Provider,{value:t},e.children)}},3143:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/12/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md","source":"@site/blog/2023-12-09.md","title":"Join the GameVault Early-Access Program Now!","description":"Hey, Guys!","date":"2023-12-09T00:00:00.000Z","tags":[{"inline":true,"label":"Gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Early Access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"UI Update","permalink":"/blog/tags/ui-update"},{"inline":true,"label":"Beta Testing","permalink":"/blog/tags/beta-testing"},{"inline":true,"label":"Community Feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview"},{"inline":true,"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers"}],"readingTime":1.135,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Join the GameVault Early-Access Program Now!","authors":["alfagun74"],"tags":["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},"unlisted":false,"prevItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"},"nextItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"}}')}}]); \ No newline at end of file diff --git a/assets/js/0b705c82.3d4a2b17.js b/assets/js/0b705c82.3d4a2b17.js deleted file mode 100644 index 97c124b3e..000000000 --- a/assets/js/0b705c82.3d4a2b17.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2510],{3476:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=a(2676),r=a(8358);const s={title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},i=void 0,l={permalink:"/blog/2023/12/09/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md",source:"@site/blog/2023-12-09.md",title:"Join the GameVault Early-Access Program Now!",description:"Hey, Guys!",date:"2023-12-09T00:00:00.000Z",tags:[{inline:!0,label:"Gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"Early Access",permalink:"/blog/tags/early-access"},{inline:!0,label:"UI Update",permalink:"/blog/tags/ui-update"},{inline:!0,label:"Beta Testing",permalink:"/blog/tags/beta-testing"},{inline:!0,label:"Community Feedback",permalink:"/blog/tags/community-feedback"},{inline:!0,label:"Exclusive Preview",permalink:"/blog/tags/exclusive-preview"},{inline:!0,label:"Microsoft Store",permalink:"/blog/tags/microsoft-store"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"Gaming Servers",permalink:"/blog/tags/gaming-servers"}],readingTime:1.135,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},unlisted:!1,prevItem:{title:"Announcing GameVault+ (coming soon)",permalink:"/blog/2024/03/28/"},nextItem:{title:"A Look Back and a Glimpse Forward",permalink:"/blog/2023/11/20/"}},o={authorsImageUrls:[void 0]},c=[{value:"What's the Early-Access Program?",id:"whats-the-early-access-program",level:2},{value:"How to Join",id:"how-to-join",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Important Note",id:"important-note",level:3}];function u(e){const t={a:"a",br:"br",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Hey, Guys!"}),"\n",(0,n.jsxs)(t.p,{children:["For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want ",(0,n.jsx)(t.strong,{children:"YOU"})," to be a part of it!"]}),"\n",(0,n.jsx)(t.h2,{id:"whats-the-early-access-program",children:"What's the Early-Access Program?"}),"\n",(0,n.jsx)(t.p,{children:"Early-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You'll be part of an exclusive group and get a sneak peek into the latest features, but here's the deal \u2013 it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else."}),"\n",(0,n.jsx)(t.h2,{id:"how-to-join",children:"How to Join"}),"\n",(0,n.jsxs)(t.p,{children:["\ud83d\udccb"," Complete the ",(0,n.jsx)(t.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Application Form"}),(0,n.jsx)(t.br,{}),"\n","\ud83d\udcc5"," The first early-access phase kicks off on December 17 and lasts for one week."]}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(t.p,{children:["\ud83d\udcac"," Active participation in the designated Discord channel.",(0,n.jsx)(t.br,{}),"\n","\ud83c\udfae"," GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it ",(0,n.jsx)(t.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"here"}),".",(0,n.jsx)(t.br,{}),"\n","\ud83d\ude80"," A GameVault Server running the ",(0,n.jsxs)(t.strong,{children:["phalcode/gamevault-backend",":early-access"]})," image. (Only run this if you are accepted as a Tester as it could break things!)"]}),"\n",(0,n.jsx)(t.h3,{id:"important-note",children:"Important Note"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"There are only a limited number of slots in the Early-Access Program. Supporters and Trusted Members are prioritized."}),"\n",(0,n.jsx)(t.li,{children:"If you're accepted and later found not meeting the requirements, you might be removed from future testing and the next applicant on our list gets the opportunity."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Apply here!"})})]})}function m(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>l,a:()=>i});var n=a(5271);const r={},s=n.createContext(r);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0bd541ed.643c34a6.js b/assets/js/0bd541ed.643c34a6.js deleted file mode 100644 index 6aed2c1dc..000000000 --- a/assets/js/0bd541ed.643c34a6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4023],{7434:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var t=i(2676),a=i(8358);const o={title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},l=void 0,r={permalink:"/blog/2023/07/19/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md",source:"@site/blog/2023-07-19.md",title:"Quick Migration Update and new Logo",description:"Hey guys,",date:"2023-07-19T00:00:00.000Z",tags:[{inline:!0,label:"name migration progress",permalink:"/blog/tags/name-migration-progress"},{inline:!0,label:"backend application migration",permalink:"/blog/tags/backend-application-migration"},{inline:!0,label:"documentation migration",permalink:"/blog/tags/documentation-migration"},{inline:!0,label:"domain acquisition",permalink:"/blog/tags/domain-acquisition"},{inline:!0,label:"Subreddit migration",permalink:"/blog/tags/subreddit-migration"},{inline:!0,label:"Lemmy community",permalink:"/blog/tags/lemmy-community"},{inline:!0,label:"Client Application update",permalink:"/blog/tags/client-application-update"},{inline:!0,label:"testing",permalink:"/blog/tags/testing"},{inline:!0,label:"new logo",permalink:"/blog/tags/new-logo"},{inline:!0,label:"speculation",permalink:"/blog/tags/speculation"},{inline:!0,label:"Discord channel",permalink:"/blog/tags/discord-channel"},{inline:!0,label:"migration finalization",permalink:"/blog/tags/migration-finalization"}],readingTime:.965,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},unlisted:!1,prevItem:{title:"The Migrations are finally completed",permalink:"/blog/2023/07/20/"},nextItem:{title:"A New Name",permalink:"/blog/2023/07/15/"}},s={authorsImageUrls:[void 0]},c=[];function m(n){const e={code:"code",p:"p",...(0,a.a)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:"Hey guys,"}),"\n",(0,t.jsx)(e.p,{children:"We have a brief update on the progress of the name migration."}),"\n",(0,t.jsxs)(e.p,{children:["We've successfully completed the migration of the backend application, which is now accessible as ",(0,t.jsx)(e.code,{children:"gamevault-backend"}),"."]})]})}function g(n={}){const{wrapper:e}={...(0,a.a)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(m,{...n})}):m(n)}},8358:(n,e,i)=>{i.d(e,{Z:()=>r,a:()=>l});var t=i(5271);const a={},o=t.createContext(a);function l(n){const e=t.useContext(o);return t.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(a):n.components||a:l(n.components),t.createElement(o.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/0bd541ed.714aef32.js b/assets/js/0bd541ed.714aef32.js new file mode 100644 index 000000000..bfa9e5e22 --- /dev/null +++ b/assets/js/0bd541ed.714aef32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2230],{6263:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var i=t(4502),a=t(6070),o=t(8591);const l={title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},r=void 0,s={authorsImageUrls:[void 0]},c=[];function m(e){const n={code:"code",p:"p",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Hey guys,"}),"\n",(0,a.jsx)(n.p,{children:"We have a brief update on the progress of the name migration."}),"\n",(0,a.jsxs)(n.p,{children:["We've successfully completed the migration of the backend application, which is now accessible as ",(0,a.jsx)(n.code,{children:"gamevault-backend"}),"."]})]})}function g(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>r});var i=t(758);const a={},o=i.createContext(a);function l(e){const n=i.useContext(o);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(a):e.components||a:l(e.components),i.createElement(o.Provider,{value:n},e.children)}},4502:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/19/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md","source":"@site/blog/2023-07-19.md","title":"Quick Migration Update and new Logo","description":"Hey guys,","date":"2023-07-19T00:00:00.000Z","tags":[{"inline":true,"label":"name migration progress","permalink":"/blog/tags/name-migration-progress"},{"inline":true,"label":"backend application migration","permalink":"/blog/tags/backend-application-migration"},{"inline":true,"label":"documentation migration","permalink":"/blog/tags/documentation-migration"},{"inline":true,"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition"},{"inline":true,"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration"},{"inline":true,"label":"Lemmy community","permalink":"/blog/tags/lemmy-community"},{"inline":true,"label":"Client Application update","permalink":"/blog/tags/client-application-update"},{"inline":true,"label":"testing","permalink":"/blog/tags/testing"},{"inline":true,"label":"new logo","permalink":"/blog/tags/new-logo"},{"inline":true,"label":"speculation","permalink":"/blog/tags/speculation"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"},{"inline":true,"label":"migration finalization","permalink":"/blog/tags/migration-finalization"}],"readingTime":0.965,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Quick Migration Update and new Logo","authors":["alfagun74"],"tags":["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},"unlisted":false,"prevItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"},"nextItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"}}')}}]); \ No newline at end of file diff --git a/assets/js/0bfa7fcc.74ed2bb5.js b/assets/js/0bfa7fcc.74ed2bb5.js new file mode 100644 index 000000000..aeedbec0c --- /dev/null +++ b/assets/js/0bfa7fcc.74ed2bb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1199],{7223:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>u});var n=o(9335),a=o(6070),r=o(8591);const i={title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},s=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={a:"a",code:"code",p:"p",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey everyone,"}),"\n",(0,a.jsx)(t.p,{children:'today i want to clarify why GameVault isn\'t considered "open-source" by definition. '}),"\n",(0,a.jsxs)(t.p,{children:["You see, GameVault is what we like to call ",(0,a.jsx)(t.a,{href:"https://wikipedia.org/wiki/Source-available_software",children:'"source-available"'})," software. This means that our code is open for you to explore and modify, but it doesn't fully meet all the criteria of being considered open-source. I want to take a moment to explain what open-source truly means and why we've taken a slightly different approach."]}),"\n",(0,a.jsxs)(t.p,{children:["According to the widely recognized definitions, ",(0,a.jsx)(t.a,{href:"https://wikipedia.org/wiki/Open-source_software",children:'"open-source"'})," software, as one would think, not only provides access to the source code but also offers certain freedoms to its users. It allows them to use, modify, and distribute the software freely, even for commercial purposes."]}),"\n",(0,a.jsx)(t.p,{children:"For a self-hosted app like GameVault, we believe it's crucual to disclose the source code. We want you, our users, to have full transparency and control over the software you use on your servers. We don't want you to be unaware of what's happening behind the scenes, as is sometimes the case with closed-source applications like Plex, for example."}),"\n",(0,a.jsx)(t.p,{children:"Now, you may be wondering why we didn't make GameVault fully open-source. The answer lies in our desire to protect our code from unauthorized use and commercial exploitation. While we absolutely encourage you to copy, modify, and share our code for personal use, we want to prevent others from profiting off our hard work by selling our software without our consent."}),"\n",(0,a.jsx)(t.p,{children:"It's important to acknowledge that maintaining and developing a software project requires resources. While we admire the open-source community and its valuable contributions, sustaining GameVault solely through donations or offering it for free indefinitely is not feasible. For instance, Jellyfin, a popular open-source app developed over a decade, generates only around $13,500 per year (according to their opencollective page). In contrast, Plex, a closed-source alternative, earns a significant $8.5 million annually. Our company's main goal is to keep the core functionality of GameVault free, but we also need to explore ways to generate revenue in order to support its future growth and improvement. We are currently considering monetizing additional convenience features for the Client Application in the future, although nothing has been finalized yet."}),"\n",(0,a.jsx)(t.p,{children:'We genuinely appreciate your understanding. As a small business with just two members, we strive to provide you with a valuable product but cannot continue to do so as volunteers indefinitely. Sustaining losses in the long term would not be sustainable, especially considering our local tax obligations. We have families and commitments that cannot be neglected, and this project is not our primary job. Therefore, please understand that GameVault may not strictly align with the traditional definition of "open-source," and we no longer characterize it as such. Our intention is to be transparent and present our perspective. Your understanding, support, and empathy mean a great deal to us.'}),"\n",(0,a.jsxs)(t.p,{children:["If you have any thoughts or comments on this topic, we'd be more than happy to hear from you. Feel free to share your feedback on our ",(0,a.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server. We truly value your input and look forward to engaging with you there."]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.code,{children:"EDIT: Updated Application Name"})})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8591:(e,t,o)=>{o.d(t,{R:()=>i,x:()=>s});var n=o(758);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}},9335:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/13/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md","source":"@site/blog/2023-07-13.md","title":"A Closer Look at GameVaults \'Source-Available\' Nature","description":"Hey everyone,","date":"2023-07-13T00:00:00.000Z","tags":[{"inline":true,"label":"source-available software","permalink":"/blog/tags/source-available-software"},{"inline":true,"label":"open-source","permalink":"/blog/tags/open-source"},{"inline":true,"label":"transparency","permalink":"/blog/tags/transparency"},{"inline":true,"label":"control","permalink":"/blog/tags/control"},{"inline":true,"label":"software development","permalink":"/blog/tags/software-development"},{"inline":true,"label":"code access","permalink":"/blog/tags/code-access"},{"inline":true,"label":"hybrid model","permalink":"/blog/tags/hybrid-model"},{"inline":true,"label":"software licensing","permalink":"/blog/tags/software-licensing"},{"inline":true,"label":"revenue generation","permalink":"/blog/tags/revenue-generation"},{"inline":true,"label":"user engagement","permalink":"/blog/tags/user-engagement"}],"readingTime":2.57,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","authors":["alfagun74"],"tags":["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},"unlisted":false,"prevItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"},"nextItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"}}')}}]); \ No newline at end of file diff --git a/assets/js/0bfa7fcc.b01db92e.js b/assets/js/0bfa7fcc.b01db92e.js deleted file mode 100644 index a9bbc8c2d..000000000 --- a/assets/js/0bfa7fcc.b01db92e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6071],{3533:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=t(2676),a=t(8358);const r={title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},i=void 0,s={permalink:"/blog/2023/07/13/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md",source:"@site/blog/2023-07-13.md",title:"A Closer Look at GameVaults 'Source-Available' Nature",description:"Hey everyone,",date:"2023-07-13T00:00:00.000Z",tags:[{inline:!0,label:"source-available software",permalink:"/blog/tags/source-available-software"},{inline:!0,label:"open-source",permalink:"/blog/tags/open-source"},{inline:!0,label:"transparency",permalink:"/blog/tags/transparency"},{inline:!0,label:"control",permalink:"/blog/tags/control"},{inline:!0,label:"software development",permalink:"/blog/tags/software-development"},{inline:!0,label:"code access",permalink:"/blog/tags/code-access"},{inline:!0,label:"hybrid model",permalink:"/blog/tags/hybrid-model"},{inline:!0,label:"software licensing",permalink:"/blog/tags/software-licensing"},{inline:!0,label:"revenue generation",permalink:"/blog/tags/revenue-generation"},{inline:!0,label:"user engagement",permalink:"/blog/tags/user-engagement"}],readingTime:2.57,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},unlisted:!1,prevItem:{title:"A New Name",permalink:"/blog/2023/07/15/"},nextItem:{title:"Battling Harassment and Trolls in Our App Community",permalink:"/blog/2023/07/09/"}},l={authorsImageUrls:[void 0]},u=[];function c(e){const o={a:"a",code:"code",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"Hey everyone,"}),"\n",(0,n.jsx)(o.p,{children:'today i want to clarify why GameVault isn\'t considered "open-source" by definition. '}),"\n",(0,n.jsxs)(o.p,{children:["You see, GameVault is what we like to call ",(0,n.jsx)(o.a,{href:"https://wikipedia.org/wiki/Source-available_software",children:'"source-available"'})," software. This means that our code is open for you to explore and modify, but it doesn't fully meet all the criteria of being considered open-source. I want to take a moment to explain what open-source truly means and why we've taken a slightly different approach."]}),"\n",(0,n.jsxs)(o.p,{children:["According to the widely recognized definitions, ",(0,n.jsx)(o.a,{href:"https://wikipedia.org/wiki/Open-source_software",children:'"open-source"'})," software, as one would think, not only provides access to the source code but also offers certain freedoms to its users. It allows them to use, modify, and distribute the software freely, even for commercial purposes."]}),"\n",(0,n.jsx)(o.p,{children:"For a self-hosted app like GameVault, we believe it's crucual to disclose the source code. We want you, our users, to have full transparency and control over the software you use on your servers. We don't want you to be unaware of what's happening behind the scenes, as is sometimes the case with closed-source applications like Plex, for example."}),"\n",(0,n.jsx)(o.p,{children:"Now, you may be wondering why we didn't make GameVault fully open-source. The answer lies in our desire to protect our code from unauthorized use and commercial exploitation. While we absolutely encourage you to copy, modify, and share our code for personal use, we want to prevent others from profiting off our hard work by selling our software without our consent."}),"\n",(0,n.jsx)(o.p,{children:"It's important to acknowledge that maintaining and developing a software project requires resources. While we admire the open-source community and its valuable contributions, sustaining GameVault solely through donations or offering it for free indefinitely is not feasible. For instance, Jellyfin, a popular open-source app developed over a decade, generates only around $13,500 per year (according to their opencollective page). In contrast, Plex, a closed-source alternative, earns a significant $8.5 million annually. Our company's main goal is to keep the core functionality of GameVault free, but we also need to explore ways to generate revenue in order to support its future growth and improvement. We are currently considering monetizing additional convenience features for the Client Application in the future, although nothing has been finalized yet."}),"\n",(0,n.jsx)(o.p,{children:'We genuinely appreciate your understanding. As a small business with just two members, we strive to provide you with a valuable product but cannot continue to do so as volunteers indefinitely. Sustaining losses in the long term would not be sustainable, especially considering our local tax obligations. We have families and commitments that cannot be neglected, and this project is not our primary job. Therefore, please understand that GameVault may not strictly align with the traditional definition of "open-source," and we no longer characterize it as such. Our intention is to be transparent and present our perspective. Your understanding, support, and empathy mean a great deal to us.'}),"\n",(0,n.jsxs)(o.p,{children:["If you have any thoughts or comments on this topic, we'd be more than happy to hear from you. Feel free to share your feedback on our ",(0,n.jsx)(o.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server. We truly value your input and look forward to engaging with you there."]}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.code,{children:"EDIT: Updated Application Name"})})]})}function d(e={}){const{wrapper:o}={...(0,a.a)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8358:(e,o,t)=>{t.d(o,{Z:()=>s,a:()=>i});var n=t(5271);const a={},r=n.createContext(a);function i(e){const o=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0c6a4732.5416241e.js b/assets/js/0c6a4732.cf16bcab.js similarity index 84% rename from assets/js/0c6a4732.5416241e.js rename to assets/js/0c6a4732.cf16bcab.js index d0fea419b..b78d4ab89 100644 --- a/assets/js/0c6a4732.5416241e.js +++ b/assets/js/0c6a4732.cf16bcab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9338],{1415:a=>{a.exports=JSON.parse('{"tag":{"label":"RAWG API","permalink":"/blog/tags/rawg-api","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/rawg-api","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1415],{1784:a=>{a.exports=JSON.parse('{"tag":{"label":"RAWG API","permalink":"/blog/tags/rawg-api","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/rawg-api","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0d3164f5.2cd8823e.js b/assets/js/0d3164f5.a346424b.js similarity index 84% rename from assets/js/0d3164f5.2cd8823e.js rename to assets/js/0d3164f5.a346424b.js index f1445afaa..157625885 100644 --- a/assets/js/0d3164f5.2cd8823e.js +++ b/assets/js/0d3164f5.a346424b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4649],{5918:a=>{a.exports=JSON.parse('{"tag":{"label":"Reddit forum","permalink":"/blog/tags/reddit-forum","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/reddit-forum","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2278],{9758:a=>{a.exports=JSON.parse('{"tag":{"label":"Reddit forum","permalink":"/blog/tags/reddit-forum","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/reddit-forum","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.9312608c.js b/assets/js/0e384e19.9312608c.js deleted file mode 100644 index f1d85daa3..000000000 --- a/assets/js/0e384e19.9312608c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9671],{4816:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>c});var s=n(2676),i=n(8358);const t={sidebar_position:1},a="Introduction",o={id:"intro",title:"Introduction",description:"What is GameVault?",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/intro.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"docs",next:{title:"Setting up a GameVault Server",permalink:"/docs/server-docs/setup/"}},l={},c=[{value:"What is GameVault?",id:"what-is-gamevault",level:2},{value:"Who Can Enjoy GameVault?",id:"who-can-enjoy-gamevault",level:3},{value:"What GameVault is not",id:"what-gamevault-is-not",level:3},{value:"Features",id:"features",level:2},{value:"Client Features",id:"client-features",level:3},{value:"Server Features",id:"server-features",level:3},{value:"Support",id:"support",level:2},{value:"License",id:"license",level:2},{value:"Legal Disclaimer",id:"legal-disclaimer",level:2}];function d(e){const r={a:"a",admonition:"admonition",br:"br",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,s.jsx)(r.h2,{id:"what-is-gamevault",children:"What is GameVault?"}),"\n",(0,s.jsxs)(r.p,{children:["GameVault is an innovative gaming platform providing a self-hosted, ",(0,s.jsx)(r.a,{href:"https://wikipedia.org/wiki/Source-available_software",children:"source-available"})," alternative to popular gaming platforms. It lets you and your friends enjoy DRM-free games stored ",(0,s.jsx)(r.strong,{children:"on your file server"})," in an organized way."]}),"\n",(0,s.jsx)(r.p,{children:"Think of it as your personal Steam or Plex server, but for your personal video game collection (and without streaming). It lets you and your friends enjoy your games from anywhere."}),"\n",(0,s.jsx)(r.p,{children:"You put your game files (installers, binaries, etc.) from wherever you have them into a folder and the platform detects them, enriches them with metadata and offers a user-friendly interface to easily organize, download, install, and play your games. It even tracks your playtimes and progress."}),"\n",(0,s.jsx)(r.p,{children:"GameVault consists of two components:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"A self-hosted backend server served with Docker"}),"\n",(0,s.jsx)(r.li,{children:"A client application to use this server"}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{title:"Try it out!",type:"tip",children:(0,s.jsxs)(r.p,{children:["If you don't have a server yet, but want to try it out, you can connect your GameVault Client to our demo server get a feel for how it works.",(0,s.jsx)(r.br,{}),"\n",(0,s.jsx)(r.a,{href:"client-docs/setup#option-2-using-the-demo-server",children:"Click here to learn more."})]})}),"\n",(0,s.jsx)(r.h3,{id:"who-can-enjoy-gamevault",children:"Who Can Enjoy GameVault?"}),"\n",(0,s.jsx)(r.p,{children:"Whether you're into the classics or the cutting-edge, GameVault is the perfect companion for:"}),"\n",(0,s.jsxs)(r.p,{children:["\ud83c\udfae ",(0,s.jsx)(r.strong,{children:"DRM-free Gamers:"})," Enjoy your games from anywhere.",(0,s.jsx)(r.br,{}),"\n","\ud83c\udfe0 ",(0,s.jsx)(r.strong,{children:"Self Hosters:"})," Keep your game collection on your own server.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udcda ",(0,s.jsx)(r.strong,{children:"Game Collectors:"})," Organize and cherish your growing library.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udcbe ",(0,s.jsx)(r.strong,{children:"Data Hoarders:"})," Archive every gigabyte of gaming history.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udc7e ",(0,s.jsx)(r.strong,{children:"Indie Gamers:"})," Keep track of your independent gems.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udd79\ufe0f ",(0,s.jsx)(r.strong,{children:"Retro Gamers:"})," Relive the golden era of gaming.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udee0\ufe0f ",(0,s.jsx)(r.strong,{children:"Game Developers:"})," Test and distribute your creations.",(0,s.jsx)(r.br,{}),"\n","\ud83d\udc6a ",(0,s.jsx)(r.strong,{children:"And their Friends & Family:"})," Share the joy of gaming with loved ones."]}),"\n",(0,s.jsx)(r.h3,{id:"what-gamevault-is-not",children:"What GameVault is not"}),"\n",(0,s.jsx)(r.p,{children:"Listed below are some examples of what GameVault is not:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Game Pirating Application"}),"\n",(0,s.jsx)(r.li,{children:"Game Streaming Application (e.g. Geforce NOW, Sunshine)"}),"\n",(0,s.jsx)(r.li,{children:"Game Server Management Application (e.g. Pterodactyl)"}),"\n",(0,s.jsx)(r.li,{children:"Local Game Library / Library Merging Application (e.g Playnite, Heroic, Launchbox) - although you might just run the server on your local machine, then it basically is."}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"features",children:"Features"}),"\n",(0,s.jsx)(r.p,{children:"Let's take a look at all the main functions of GameVault:"}),"\n",(0,s.jsx)(r.h3,{id:"client-features",children:"Client Features"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\ud83d\udd0e ",(0,s.jsx)(r.a,{href:"./client-docs/gui#library",children:"Browse your server's game collection"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udce5 ",(0,s.jsx)(r.a,{href:"./client-docs/how-to-use#downloading-games",children:"Securely download your games from your server"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,s.jsx)(r.a,{href:"./client-docs/how-to-use#1-extracting-the-game",children:"Automatically extract and install games"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83c\udfae ",(0,s.jsx)(r.a,{href:"./client-docs/how-to-use#playing-a-game",children:"Launch and play the games on your PC"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u23f1\ufe0f ",(0,s.jsx)(r.a,{href:"./client-docs/how-to-use#tracking-your-game-progress",children:"Track playtimes and progress (even when the server is offline)"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udc65 ",(0,s.jsx)(r.a,{href:"./client-docs/gui#community",children:"Compare game progress with other users on the server"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u270f\ufe0f ",(0,s.jsx)(r.a,{href:"./client-docs/gui#metadata",children:"Edit any game metadata"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udd12 ",(0,s.jsx)(r.a,{href:"./client-docs/gui#administration",children:"Manage your users and games with a powerful Admin UI"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"server-features",children:"Server Features"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\u267b\ufe0f ",(0,s.jsx)(r.a,{href:"/docs/server-docs/indexing",children:"Automatically indexes games from the file system into a database"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udcda ",(0,s.jsx)(r.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Automatically enriches games with metadata like box arts, tags, genres, description and more using various APIs"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udc65 ",(0,s.jsx)(r.a,{href:"/docs/server-docs/user-management",children:"Supports Multi-User Authentication"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udd12 ",(0,s.jsx)(r.a,{href:"./server-docs/user-management#user-roles",children:"Supports Role-Based Access Control"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 ",(0,s.jsx)(r.a,{href:"./server-docs/parental-control",children:"Supports Parental Control Features"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u23f1\ufe0f ",(0,s.jsx)(r.a,{href:"./client-docs/how-to-use#tracking-your-game-progress",children:"Keeps track of your users' game progress and state"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udea8 ",(0,s.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Health Monitoring and Logging"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udd0e ",(0,s.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Full-Text Search, Filters, Sorting, Pagination"})]}),"\n",(0,s.jsxs)(r.li,{children:["\ud83d\udd0c ",(0,s.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Fully Documented API"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,s.jsx)(r.a,{href:"./server-docs/configuration",children:"Highly Configurable"})]}),"\n",(0,s.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,s.jsx)(r.a,{href:"/docs/server-docs/plugins",children:"Modular Plugin Framework"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"support",children:"Support"}),"\n",(0,s.jsxs)(r.p,{children:["We're working hard in our free time to provide you, your friends, and families with the best self-hosted gaming experience. It would mean a lot to us if you could support us developers by ",(0,s.jsx)(r.a,{href:"/docs/gamevault-plus/introduction",children:"getting GameVault+"}),"."]}),"\n",(0,s.jsx)(r.p,{children:"Alternatively you can support us by donating us some spare dollars on any of these platforms:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"https://ko-fi.com/phalcode",children:"Ko-Fi"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"https://liberapay.com/Phalcode",children:"Liberapay"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"https://github.com/sponsors/Phalcode",children:"GitHub Sponsors"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"https://paypal.me/phalcode",children:"PayPal"})}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{title:"Tip for donators",type:"tip",children:(0,s.jsxs)(r.p,{children:["If you connect your ",(0,s.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),' account to Ko-Fi, you\'ll automatically receive the "@Supporters"-Role and permanently stand out in our ',(0,s.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," members list. If you donate through a different platform and want to obtain the role, simply send us a message with your receipt as proof that you're truly a Supporter."]})}),"\n",(0,s.jsx)(r.h2,{id:"license",children:"License"}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:(0,s.jsx)(r.img,{src:"https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg",alt:"CC BY-NC-SA 4.0"})})}),"\n",(0,s.jsxs)(r.p,{children:["This work is licensed under a\n",(0,s.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"}),"."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:(0,s.jsx)(r.img,{src:"https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png",alt:"CC BY-NC-SA 4.0"})})}),"\n",(0,s.jsx)(r.h2,{id:"legal-disclaimer",children:"Legal Disclaimer"}),"\n",(0,s.jsxs)(r.admonition,{title:"Legal Disclaimer",type:"warning",children:[(0,s.jsx)(r.p,{children:"GameVault manages DRM-free games and is solely a tool to address this need. We are not responsible for the content or files users store or share."}),(0,s.jsxs)(r.p,{children:["When we say DRM-free games, we only mean games obtained legally. While GameVault ",(0,s.jsx)(r.em,{children:"can"})," theoretically be used with illegally obtained games, we do not endorse or support piracy."]}),(0,s.jsx)(r.p,{children:"Users must be aware of and comply with copyright laws in their respective jurisdictions. We encourage responsible and legal use of GameVault. Unlawful use is strictly improper and unauthorized."})]})]})}function h(e={}){const{wrapper:r}={...(0,i.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8358:(e,r,n)=>{n.d(r,{Z:()=>o,a:()=>a});var s=n(5271);const i={},t=s.createContext(i);function a(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.b3de6757.js b/assets/js/0e384e19.b3de6757.js new file mode 100644 index 000000000..a199c0f6e --- /dev/null +++ b/assets/js/0e384e19.b3de6757.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3976],{6187:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"intro","title":"Introduction","description":"What is GameVault?","source":"@site/docs/intro.md","sourceDirName":".","slug":"/intro","permalink":"/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/intro.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"docs","next":{"title":"Setting up a GameVault Server","permalink":"/docs/server-docs/setup/"}}');var i=n(6070),t=n(8591);const a={sidebar_position:1},o="Introduction",l={},c=[{value:"What is GameVault?",id:"what-is-gamevault",level:2},{value:"Who Can Enjoy GameVault?",id:"who-can-enjoy-gamevault",level:3},{value:"What GameVault is not",id:"what-gamevault-is-not",level:3},{value:"Features",id:"features",level:2},{value:"Client Features",id:"client-features",level:3},{value:"Server Features",id:"server-features",level:3},{value:"Support",id:"support",level:2},{value:"License",id:"license",level:2},{value:"Legal Disclaimer",id:"legal-disclaimer",level:2}];function d(e){const r={a:"a",admonition:"admonition",br:"br",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,i.jsx)(r.h2,{id:"what-is-gamevault",children:"What is GameVault?"}),"\n",(0,i.jsxs)(r.p,{children:["GameVault is an innovative gaming platform providing a self-hosted, ",(0,i.jsx)(r.a,{href:"https://wikipedia.org/wiki/Source-available_software",children:"source-available"})," alternative to popular gaming platforms. It lets you and your friends enjoy DRM-free games stored ",(0,i.jsx)(r.strong,{children:"on your file server"})," in an organized way."]}),"\n",(0,i.jsx)(r.p,{children:"Think of it as your personal Steam or Plex server, but for your personal video game collection (and without streaming). It lets you and your friends enjoy your games from anywhere."}),"\n",(0,i.jsx)(r.p,{children:"You put your game files (installers, binaries, etc.) from wherever you have them into a folder and the platform detects them, enriches them with metadata and offers a user-friendly interface to easily organize, download, install, and play your games. It even tracks your playtimes and progress."}),"\n",(0,i.jsx)(r.p,{children:"GameVault consists of two components:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"A self-hosted backend server served with Docker"}),"\n",(0,i.jsx)(r.li,{children:"A client application to use this server"}),"\n"]}),"\n",(0,i.jsx)(r.admonition,{title:"Try it out!",type:"tip",children:(0,i.jsxs)(r.p,{children:["If you don't have a server yet, but want to try it out, you can connect your GameVault Client to our demo server get a feel for how it works.",(0,i.jsx)(r.br,{}),"\n",(0,i.jsx)(r.a,{href:"client-docs/setup#option-2-using-the-demo-server",children:"Click here to learn more."})]})}),"\n",(0,i.jsx)(r.h3,{id:"who-can-enjoy-gamevault",children:"Who Can Enjoy GameVault?"}),"\n",(0,i.jsx)(r.p,{children:"Whether you're into the classics or the cutting-edge, GameVault is the perfect companion for:"}),"\n",(0,i.jsxs)(r.p,{children:["\ud83c\udfae ",(0,i.jsx)(r.strong,{children:"DRM-free Gamers:"})," Enjoy your games from anywhere.",(0,i.jsx)(r.br,{}),"\n","\ud83c\udfe0 ",(0,i.jsx)(r.strong,{children:"Self Hosters:"})," Keep your game collection on your own server.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udcda ",(0,i.jsx)(r.strong,{children:"Game Collectors:"})," Organize and cherish your growing library.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udcbe ",(0,i.jsx)(r.strong,{children:"Data Hoarders:"})," Archive every gigabyte of gaming history.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udc7e ",(0,i.jsx)(r.strong,{children:"Indie Gamers:"})," Keep track of your independent gems.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udd79\ufe0f ",(0,i.jsx)(r.strong,{children:"Retro Gamers:"})," Relive the golden era of gaming.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udee0\ufe0f ",(0,i.jsx)(r.strong,{children:"Game Developers:"})," Test and distribute your creations.",(0,i.jsx)(r.br,{}),"\n","\ud83d\udc6a ",(0,i.jsx)(r.strong,{children:"And their Friends & Family:"})," Share the joy of gaming with loved ones."]}),"\n",(0,i.jsx)(r.h3,{id:"what-gamevault-is-not",children:"What GameVault is not"}),"\n",(0,i.jsx)(r.p,{children:"Listed below are some examples of what GameVault is not:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Game Pirating Application"}),"\n",(0,i.jsx)(r.li,{children:"Game Streaming Application (e.g. Geforce NOW, Sunshine)"}),"\n",(0,i.jsx)(r.li,{children:"Game Server Management Application (e.g. Pterodactyl)"}),"\n",(0,i.jsx)(r.li,{children:"Local Game Library / Library Merging Application (e.g Playnite, Heroic, Launchbox) - although you might just run the server on your local machine, then it basically is."}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"features",children:"Features"}),"\n",(0,i.jsx)(r.p,{children:"Let's take a look at all the main functions of GameVault:"}),"\n",(0,i.jsx)(r.h3,{id:"client-features",children:"Client Features"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["\ud83d\udd0e ",(0,i.jsx)(r.a,{href:"./client-docs/gui#library",children:"Browse your server's game collection"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udce5 ",(0,i.jsx)(r.a,{href:"./client-docs/how-to-use#downloading-games",children:"Securely download your games from your server"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,i.jsx)(r.a,{href:"./client-docs/how-to-use#1-extracting-the-game",children:"Automatically extract and install games"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83c\udfae ",(0,i.jsx)(r.a,{href:"./client-docs/how-to-use#playing-a-game",children:"Launch and play the games on your PC"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u23f1\ufe0f ",(0,i.jsx)(r.a,{href:"./client-docs/how-to-use#tracking-your-game-progress",children:"Track playtimes and progress (even when the server is offline)"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udc65 ",(0,i.jsx)(r.a,{href:"./client-docs/gui#community",children:"Compare game progress with other users on the server"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u270f\ufe0f ",(0,i.jsx)(r.a,{href:"./client-docs/gui#metadata",children:"Edit any game metadata"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udd12 ",(0,i.jsx)(r.a,{href:"./client-docs/gui#administration",children:"Manage your users and games with a powerful Admin UI"})]}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"server-features",children:"Server Features"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["\u267b\ufe0f ",(0,i.jsx)(r.a,{href:"/docs/server-docs/indexing",children:"Automatically indexes games from the file system into a database"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udcda ",(0,i.jsx)(r.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Automatically enriches games with metadata like box arts, tags, genres, description and more using various APIs"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udc65 ",(0,i.jsx)(r.a,{href:"/docs/server-docs/user-management",children:"Supports Multi-User Authentication"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udd12 ",(0,i.jsx)(r.a,{href:"./server-docs/user-management#user-roles",children:"Supports Role-Based Access Control"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 ",(0,i.jsx)(r.a,{href:"./server-docs/parental-control",children:"Supports Parental Control Features"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u23f1\ufe0f ",(0,i.jsx)(r.a,{href:"./client-docs/how-to-use#tracking-your-game-progress",children:"Keeps track of your users' game progress and state"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udea8 ",(0,i.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Health Monitoring and Logging"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udd0e ",(0,i.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Full-Text Search, Filters, Sorting, Pagination"})]}),"\n",(0,i.jsxs)(r.li,{children:["\ud83d\udd0c ",(0,i.jsx)(r.a,{href:"./advanced-usage/rest-api",children:"Fully Documented API"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,i.jsx)(r.a,{href:"./server-docs/configuration",children:"Highly Configurable"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u2699\ufe0f ",(0,i.jsx)(r.a,{href:"/docs/server-docs/plugins",children:"Modular Plugin Framework"})]}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"support",children:"Support"}),"\n",(0,i.jsxs)(r.p,{children:["We're working hard in our free time to provide you, your friends, and families with the best self-hosted gaming experience. It would mean a lot to us if you could support us developers by ",(0,i.jsx)(r.a,{href:"/docs/gamevault-plus/introduction",children:"getting GameVault+"}),"."]}),"\n",(0,i.jsx)(r.p,{children:"Alternatively you can support us by donating us some spare dollars on any of these platforms:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"https://ko-fi.com/phalcode",children:"Ko-Fi"})}),"\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"https://liberapay.com/Phalcode",children:"Liberapay"})}),"\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"https://github.com/sponsors/Phalcode",children:"GitHub Sponsors"})}),"\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"https://paypal.me/phalcode",children:"PayPal"})}),"\n"]}),"\n",(0,i.jsx)(r.admonition,{title:"Tip for donators",type:"tip",children:(0,i.jsxs)(r.p,{children:["If you connect your ",(0,i.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),' account to Ko-Fi, you\'ll automatically receive the "@Supporters"-Role and permanently stand out in our ',(0,i.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," members list. If you donate through a different platform and want to obtain the role, simply send us a message with your receipt as proof that you're truly a Supporter."]})}),"\n",(0,i.jsx)(r.h2,{id:"license",children:"License"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:(0,i.jsx)(r.img,{src:"https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg",alt:"CC BY-NC-SA 4.0"})})}),"\n",(0,i.jsxs)(r.p,{children:["This work is licensed under a\n",(0,i.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"}),"."]}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"http://creativecommons.org/licenses/by-nc-sa/4.0/",children:(0,i.jsx)(r.img,{src:"https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png",alt:"CC BY-NC-SA 4.0"})})}),"\n",(0,i.jsx)(r.h2,{id:"legal-disclaimer",children:"Legal Disclaimer"}),"\n",(0,i.jsxs)(r.admonition,{title:"Legal Disclaimer",type:"warning",children:[(0,i.jsx)(r.p,{children:"GameVault manages DRM-free games and is solely a tool to address this need. We are not responsible for the content or files users store or share."}),(0,i.jsxs)(r.p,{children:["When we say DRM-free games, we only mean games obtained legally. While GameVault ",(0,i.jsx)(r.em,{children:"can"})," theoretically be used with illegally obtained games, we do not endorse or support piracy."]}),(0,i.jsx)(r.p,{children:"Users must be aware of and comply with copyright laws in their respective jurisdictions. We encourage responsible and legal use of GameVault. Unlawful use is strictly improper and unauthorized."})]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8591:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>o});var s=n(758);const i={},t=s.createContext(i);function a(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/10d38074.62bfa264.js b/assets/js/10d38074.af3ca555.js similarity index 83% rename from assets/js/10d38074.62bfa264.js rename to assets/js/10d38074.af3ca555.js index 5052f35df..9b598c28a 100644 --- a/assets/js/10d38074.62bfa264.js +++ b/assets/js/10d38074.af3ca555.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8823],{2379:a=>{a.exports=JSON.parse('{"tag":{"label":"app","permalink":"/blog/tags/app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5662],{7465:a=>{a.exports=JSON.parse('{"tag":{"label":"app","permalink":"/blog/tags/app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/113d89da.c4b27d8e.js b/assets/js/113d89da.be8b3509.js similarity index 85% rename from assets/js/113d89da.c4b27d8e.js rename to assets/js/113d89da.be8b3509.js index dc1be0d62..bacd9c442 100644 --- a/assets/js/113d89da.c4b27d8e.js +++ b/assets/js/113d89da.be8b3509.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9099],{1707:a=>{a.exports=JSON.parse('{"tag":{"label":"spreading the word","permalink":"/blog/tags/spreading-the-word","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/spreading-the-word","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1340],{6855:a=>{a.exports=JSON.parse('{"tag":{"label":"spreading the word","permalink":"/blog/tags/spreading-the-word","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/spreading-the-word","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/1334883d.14400a3c.js b/assets/js/1334883d.b4836a24.js similarity index 85% rename from assets/js/1334883d.14400a3c.js rename to assets/js/1334883d.b4836a24.js index 7b6a4b823..dddd0f216 100644 --- a/assets/js/1334883d.14400a3c.js +++ b/assets/js/1334883d.b4836a24.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4895],{7574:e=>{e.exports=JSON.parse('{"tag":{"label":"safe environment","permalink":"/blog/tags/safe-environment","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/safe-environment","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6039],{3850:e=>{e.exports=JSON.parse('{"tag":{"label":"safe environment","permalink":"/blog/tags/safe-environment","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/safe-environment","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/14b6aafb.4ad56301.js b/assets/js/14b6aafb.4ad56301.js new file mode 100644 index 000000000..eeee711dd --- /dev/null +++ b/assets/js/14b6aafb.4ad56301.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3290],{7544:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"server-docs/adding-games","title":"Adding Games to GameVault","description":"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server.","source":"@site/docs/server-docs/adding-games.md","sourceDirName":"server-docs","slug":"/server-docs/adding-games","permalink":"/docs/server-docs/adding-games","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/adding-games.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_title":"Adding Games"},"sidebar":"docs","previous":{"title":"Game Types","permalink":"/docs/server-docs/game-types"},"next":{"title":"Updating Games","permalink":"/docs/server-docs/updating-games"}}');var i=t(6070),n=t(8591);const r={sidebar_position:3,sidebar_title:"Adding Games"},o="Adding Games to GameVault",l={},d=[{value:"Before You Begin",id:"before-you-begin",level:2},{value:"Step 1: Preparing",id:"step-1-preparing",level:2},{value:"Step 2: Compression",id:"step-2-compression",level:2},{value:"Method 1: The Fast Way",id:"method-1-the-fast-way",level:3},{value:"Method 2: The Hardcore Way",id:"method-2-the-hardcore-way",level:3},{value:"Method 3: The Balanced Way",id:"method-3-the-balanced-way",level:3},{value:"Step 3: Naming the Archive",id:"step-3-naming-the-archive",level:2},{value:"Adding the same game multiple times",id:"adding-the-same-game-multiple-times",level:3},{value:"Step 4: Deploy \ud83e\udd73",id:"step-4-deploy-",level:2}];function h(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"adding-games-to-gamevault",children:"Adding Games to GameVault"})}),"\n",(0,i.jsx)(s.p,{children:"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server."}),"\n",(0,i.jsx)(s.h2,{id:"before-you-begin",children:"Before You Begin"}),"\n",(0,i.jsxs)(s.p,{children:["Please read the ",(0,i.jsx)(s.a,{href:"/docs/server-docs/structure",children:"File and Folder Structure"})," chapter first."]}),"\n",(0,i.jsx)(s.p,{children:"Adding games to your server is a manual process that demands effort and expertise. However, it is worth the effort. To execute the task accurately, follow the steps outlined below for each game. With practice, you will become more proficient and adept at performing these steps with ease."}),"\n",(0,i.jsx)(s.h2,{id:"step-1-preparing",children:"Step 1: Preparing"}),"\n",(0,i.jsx)(s.p,{children:'Suppose you have obtained a DRM-free copy of "Crawl," and it is located in your file system as follows:'}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Crawl/","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"setup.bin"}),"\n",(0,i.jsx)(s.li,{children:"setup.exe"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{type:"note",children:(0,i.jsx)(s.p,{children:"This is not a real-world example."})}),"\n",(0,i.jsx)(s.p,{children:'If the game files are already compressed in a format that GameVault can understand, such as "Crawl.zip", you can skip the next step. However, if you want to maximize disk space and repack the files, you can do that. Datahoarders, for example, rely on every bit and byte on their disks and tend to repack everything to the maximum compression available.'}),"\n",(0,i.jsx)(s.h2,{id:"step-2-compression",children:"Step 2: Compression"}),"\n",(0,i.jsxs)(s.p,{children:["To make your game files compatible with GameVault, you need to archive them. We recommend using ",(0,i.jsx)(s.a,{href:"https://www.7-zip.org/",children:"7Zip"})," for this. There are different approaches to this."]}),"\n",(0,i.jsx)(s.admonition,{title:"single-file executables",type:"tip",children:(0,i.jsxs)(s.p,{children:["If the game you're about to add only consists of a single executable file such as ",(0,i.jsx)(s.code,{children:"setup_game.exe"})," or ",(0,i.jsx)(s.code,{children:"setup_game.sh"}),", you can choose to skip this stage and proceed with ",(0,i.jsx)(s.a,{href:"#step-3-naming-the-archive",children:"naming it"}),". See ",(0,i.jsx)(s.a,{href:"structure#single-file-executable",children:"here"})," for more details."]})}),"\n",(0,i.jsx)(s.h3,{id:"method-1-the-fast-way",children:"Method 1: The Fast Way"}),"\n",(0,i.jsx)(s.p,{children:"The fastest way to compress your game files into a .7z archive is by copying them without compression, which takes little to no time or effort. However, the resulting archive will be as large as the original folder."}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"7z a -mx=0 -ms=off game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,i.jsx)(s.p,{children:"This command uses the following options:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"a"}),": Add files to the archive"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-mx=0"}),": Sets the compression level to 0"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-ms=off"}),": Turns off solid block compression"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"method-2-the-hardcore-way",children:"Method 2: The Hardcore Way"}),"\n",(0,i.jsx)(s.p,{children:"To achieve the smallest possible archive size, use the maximum settings of 7zip. The resulting archive may or may not be much smaller than before, but it will definitely be as small as possible. However, this process could take a long time, depending on your hardware, and is very resource-intensive."}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"7z a -mx=9 -mfb=64 -md=32m -ms=on game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,i.jsx)(s.p,{children:"This command uses the following options:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"a"}),": Add files to the archive"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-mx=9"}),": Use the maximum compression level"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-mfb=64"}),": Set the number of fast bytes to 64"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-md=32m"}),": Set the dictionary size to 32MB"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"-ms=on"}),": Enable solid block compression"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"method-3-the-balanced-way",children:"Method 3: The Balanced Way"}),"\n",(0,i.jsx)(s.p,{children:"If you are not happy with either method, you can use the preselected options of 7zip to compress the files as effectively and balanced as possible:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"7z a game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,i.jsx)(s.h2,{id:"step-3-naming-the-archive",children:"Step 3: Naming the Archive"}),"\n",(0,i.jsx)(s.p,{children:"Before naming the archive, take a moment to research the game you're about to add. Ask yourself questions or use a search engine to answer the following questions:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:'"What version is the game?"'}),"\n",(0,i.jsx)(s.li,{children:'"What year was the game released?"'}),"\n",(0,i.jsx)(s.li,{children:'"Is the game still in early access?"'}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Once you have gathered all the necessary information, you can name the archive using the ",(0,i.jsx)(s.a,{href:"/docs/server-docs/structure",children:"GameVault Naming Structure"}),"."]}),"\n",(0,i.jsx)(s.p,{children:"In our fictitious example we have a copy of Crawl Version 1.0.1 released in 2014, so we named the archive:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"Crawl (v1.0.1) (2014).7z\n"})}),"\n",(0,i.jsx)(s.h3,{id:"adding-the-same-game-multiple-times",children:"Adding the same game multiple times"}),"\n",(0,i.jsxs)(s.p,{children:["If you wish to add the same game multiple times to your GameVault server for any specific reason, it is important to ensure that you rename it slightly differently. This is to prevent the indexer from detecting it as a duplicate entry. We recommend using square brackets ",(0,i.jsx)(s.code,{children:"[]"})," as your personal discriminator for these games. Avoid using regular parentheses ",(0,i.jsx)(s.code,{children:"()"})," as they will be removed by the title extraction regex. It also does not matter if the files are in the same sub-folder or in different ones."]}),"\n",(0,i.jsx)(s.p,{children:"By using this approach, the indexer will treat these two games as separate entities."}),"\n",(0,i.jsx)(s.p,{children:"In case the Auto-Matching feature does not work accurately for these games, you have the option to manually remap them in the client if you have the Role Editor or higher privileges."}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"Here's a good example:"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Game 1: ",(0,i.jsx)(s.code,{children:"Minecraft [Tekkit Modpack] (v1.7.10) (2011).zip"})]}),"\n",(0,i.jsxs)(s.li,{children:["Game 2: ",(0,i.jsx)(s.code,{children:"Minecraft [Hexxit Modpack] (v1.13.2) (2011).zip"})]}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{type:"info",children:(0,i.jsx)(s.p,{children:"Will result in two seperate games"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"And here's a bad example:"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Game 1: ",(0,i.jsx)(s.code,{children:"Minecraft (v1.7.10) (2011).zip"})]}),"\n",(0,i.jsxs)(s.li,{children:["Game 2: ",(0,i.jsx)(s.code,{children:"Minecraft (v1.13.2) (2011).zip"})]}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{type:"danger",children:(0,i.jsx)(s.p,{children:"Will result in a single game that gets overwritten!"})}),"\n",(0,i.jsx)(s.h2,{id:"step-4-deploy-",children:"Step 4: Deploy \ud83e\udd73"}),"\n",(0,i.jsxs)(s.p,{children:["Once you have named the archive, place it into the folder on your host system that is mounted to GameVault's files folder (by default ",(0,i.jsx)(s.code,{children:"/files"}),"). Once the archive is in place, GameVault will automatically index the game, enrich it with metadata, and save it in your database."]}),"\n",(0,i.jsx)(s.p,{children:"Congratulations! You have successfully added a game to your GameVault server. Repeat the process for any additional games you want to add."})]})}function c(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8591:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>o});var a=t(758);const i={},n=a.createContext(i);function r(e){const s=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/14b6aafb.891b74dd.js b/assets/js/14b6aafb.891b74dd.js deleted file mode 100644 index 685790637..000000000 --- a/assets/js/14b6aafb.891b74dd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8495],{5479:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>d});var a=t(2676),i=t(8358);const n={sidebar_position:3,sidebar_title:"Adding Games"},r="Adding Games to GameVault",o={id:"server-docs/adding-games",title:"Adding Games to GameVault",description:"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server.",source:"@site/docs/server-docs/adding-games.md",sourceDirName:"server-docs",slug:"/server-docs/adding-games",permalink:"/docs/server-docs/adding-games",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/adding-games.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_title:"Adding Games"},sidebar:"docs",previous:{title:"Game Types",permalink:"/docs/server-docs/game-types"},next:{title:"Updating Games",permalink:"/docs/server-docs/updating-games"}},l={},d=[{value:"Before You Begin",id:"before-you-begin",level:2},{value:"Step 1: Preparing",id:"step-1-preparing",level:2},{value:"Step 2: Compression",id:"step-2-compression",level:2},{value:"Method 1: The Fast Way",id:"method-1-the-fast-way",level:3},{value:"Method 2: The Hardcore Way",id:"method-2-the-hardcore-way",level:3},{value:"Method 3: The Balanced Way",id:"method-3-the-balanced-way",level:3},{value:"Step 3: Naming the Archive",id:"step-3-naming-the-archive",level:2},{value:"Adding the same game multiple times",id:"adding-the-same-game-multiple-times",level:3},{value:"Step 4: Deploy \ud83e\udd73",id:"step-4-deploy-",level:2}];function h(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.header,{children:(0,a.jsx)(s.h1,{id:"adding-games-to-gamevault",children:"Adding Games to GameVault"})}),"\n",(0,a.jsx)(s.p,{children:"If you wish to add games to your server but are struggling with unorganized files, varying file formats, and compressed files, you have come to the right place. In this chapter, you will learn the correct process to add games to your GameVault server."}),"\n",(0,a.jsx)(s.h2,{id:"before-you-begin",children:"Before You Begin"}),"\n",(0,a.jsxs)(s.p,{children:["Please read the ",(0,a.jsx)(s.a,{href:"/docs/server-docs/structure",children:"File and Folder Structure"})," chapter first."]}),"\n",(0,a.jsx)(s.p,{children:"Adding games to your server is a manual process that demands effort and expertise. However, it is worth the effort. To execute the task accurately, follow the steps outlined below for each game. With practice, you will become more proficient and adept at performing these steps with ease."}),"\n",(0,a.jsx)(s.h2,{id:"step-1-preparing",children:"Step 1: Preparing"}),"\n",(0,a.jsx)(s.p,{children:'Suppose you have obtained a DRM-free copy of "Crawl," and it is located in your file system as follows:'}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["Crawl/","\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"setup.bin"}),"\n",(0,a.jsx)(s.li,{children:"setup.exe"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.admonition,{type:"note",children:(0,a.jsx)(s.p,{children:"This is not a real-world example."})}),"\n",(0,a.jsx)(s.p,{children:'If the game files are already compressed in a format that GameVault can understand, such as "Crawl.zip", you can skip the next step. However, if you want to maximize disk space and repack the files, you can do that. Datahoarders, for example, rely on every bit and byte on their disks and tend to repack everything to the maximum compression available.'}),"\n",(0,a.jsx)(s.h2,{id:"step-2-compression",children:"Step 2: Compression"}),"\n",(0,a.jsxs)(s.p,{children:["To make your game files compatible with GameVault, you need to archive them. We recommend using ",(0,a.jsx)(s.a,{href:"https://www.7-zip.org/",children:"7Zip"})," for this. There are different approaches to this."]}),"\n",(0,a.jsx)(s.admonition,{title:"single-file executables",type:"tip",children:(0,a.jsxs)(s.p,{children:["If the game you're about to add only consists of a single executable file such as ",(0,a.jsx)(s.code,{children:"setup_game.exe"})," or ",(0,a.jsx)(s.code,{children:"setup_game.sh"}),", you can choose to skip this stage and proceed with ",(0,a.jsx)(s.a,{href:"#step-3-naming-the-archive",children:"naming it"}),". See ",(0,a.jsx)(s.a,{href:"structure#single-file-executable",children:"here"})," for more details."]})}),"\n",(0,a.jsx)(s.h3,{id:"method-1-the-fast-way",children:"Method 1: The Fast Way"}),"\n",(0,a.jsx)(s.p,{children:"The fastest way to compress your game files into a .7z archive is by copying them without compression, which takes little to no time or effort. However, the resulting archive will be as large as the original folder."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-bash",children:"7z a -mx=0 -ms=off game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,a.jsx)(s.p,{children:"This command uses the following options:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"a"}),": Add files to the archive"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-mx=0"}),": Sets the compression level to 0"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-ms=off"}),": Turns off solid block compression"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"method-2-the-hardcore-way",children:"Method 2: The Hardcore Way"}),"\n",(0,a.jsx)(s.p,{children:"To achieve the smallest possible archive size, use the maximum settings of 7zip. The resulting archive may or may not be much smaller than before, but it will definitely be as small as possible. However, this process could take a long time, depending on your hardware, and is very resource-intensive."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-bash",children:"7z a -mx=9 -mfb=64 -md=32m -ms=on game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,a.jsx)(s.p,{children:"This command uses the following options:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"a"}),": Add files to the archive"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-mx=9"}),": Use the maximum compression level"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-mfb=64"}),": Set the number of fast bytes to 64"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-md=32m"}),": Set the dictionary size to 32MB"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.code,{children:"-ms=on"}),": Enable solid block compression"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"method-3-the-balanced-way",children:"Method 3: The Balanced Way"}),"\n",(0,a.jsx)(s.p,{children:"If you are not happy with either method, you can use the preselected options of 7zip to compress the files as effectively and balanced as possible:"}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-bash",children:"7z a game.7z /path/to/game/folder/Crawl/*\n"})}),"\n",(0,a.jsx)(s.h2,{id:"step-3-naming-the-archive",children:"Step 3: Naming the Archive"}),"\n",(0,a.jsx)(s.p,{children:"Before naming the archive, take a moment to research the game you're about to add. Ask yourself questions or use a search engine to answer the following questions:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:'"What version is the game?"'}),"\n",(0,a.jsx)(s.li,{children:'"What year was the game released?"'}),"\n",(0,a.jsx)(s.li,{children:'"Is the game still in early access?"'}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["Once you have gathered all the necessary information, you can name the archive using the ",(0,a.jsx)(s.a,{href:"/docs/server-docs/structure",children:"GameVault Naming Structure"}),"."]}),"\n",(0,a.jsx)(s.p,{children:"In our fictitious example we have a copy of Crawl Version 1.0.1 released in 2014, so we named the archive:"}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-bash",children:"Crawl (v1.0.1) (2014).7z\n"})}),"\n",(0,a.jsx)(s.h3,{id:"adding-the-same-game-multiple-times",children:"Adding the same game multiple times"}),"\n",(0,a.jsxs)(s.p,{children:["If you wish to add the same game multiple times to your GameVault server for any specific reason, it is important to ensure that you rename it slightly differently. This is to prevent the indexer from detecting it as a duplicate entry. We recommend using square brackets ",(0,a.jsx)(s.code,{children:"[]"})," as your personal discriminator for these games. Avoid using regular parentheses ",(0,a.jsx)(s.code,{children:"()"})," as they will be removed by the title extraction regex. It also does not matter if the files are in the same sub-folder or in different ones."]}),"\n",(0,a.jsx)(s.p,{children:"By using this approach, the indexer will treat these two games as separate entities."}),"\n",(0,a.jsx)(s.p,{children:"In case the Auto-Matching feature does not work accurately for these games, you have the option to manually remap them in the client if you have the Role Editor or higher privileges."}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.strong,{children:"Here's a good example:"})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["Game 1: ",(0,a.jsx)(s.code,{children:"Minecraft [Tekkit Modpack] (v1.7.10) (2011).zip"})]}),"\n",(0,a.jsxs)(s.li,{children:["Game 2: ",(0,a.jsx)(s.code,{children:"Minecraft [Hexxit Modpack] (v1.13.2) (2011).zip"})]}),"\n"]}),"\n",(0,a.jsx)(s.admonition,{type:"info",children:(0,a.jsx)(s.p,{children:"Will result in two seperate games"})}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.strong,{children:"And here's a bad example:"})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["Game 1: ",(0,a.jsx)(s.code,{children:"Minecraft (v1.7.10) (2011).zip"})]}),"\n",(0,a.jsxs)(s.li,{children:["Game 2: ",(0,a.jsx)(s.code,{children:"Minecraft (v1.13.2) (2011).zip"})]}),"\n"]}),"\n",(0,a.jsx)(s.admonition,{type:"danger",children:(0,a.jsx)(s.p,{children:"Will result in a single game that gets overwritten!"})}),"\n",(0,a.jsx)(s.h2,{id:"step-4-deploy-",children:"Step 4: Deploy \ud83e\udd73"}),"\n",(0,a.jsxs)(s.p,{children:["Once you have named the archive, place it into the folder on your host system that is mounted to GameVault's files folder (by default ",(0,a.jsx)(s.code,{children:"/files"}),"). Once the archive is in place, GameVault will automatically index the game, enrich it with metadata, and save it in your database."]}),"\n",(0,a.jsx)(s.p,{children:"Congratulations! You have successfully added a game to your GameVault server. Repeat the process for any additional games you want to add."})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},8358:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>r});var a=t(5271);const i={},n=a.createContext(i);function r(e){const s=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1630eae8.accef326.js b/assets/js/1630eae8.accef326.js deleted file mode 100644 index 4a6975b3c..000000000 --- a/assets/js/1630eae8.accef326.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1105],{943:(A,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>g,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=t(2676),a=t(8358);const s={title:"Using TrueNAS Scale",sidebar_position:4},r=void 0,i={id:"server-docs/setup/truenas-scale",title:"Using TrueNAS Scale",description:"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.",source:"@site/docs/server-docs/setup/truenas-scale.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/truenas-scale",permalink:"/docs/server-docs/setup/truenas-scale",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/truenas-scale.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:4,frontMatter:{title:"Using TrueNAS Scale",sidebar_position:4},sidebar:"docs",previous:{title:"Using CapRover",permalink:"/docs/server-docs/setup/caprover"},next:{title:"Using UNRAID",permalink:"/docs/server-docs/setup/unraid"}},c={},o=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Log in to your TrueNAS Scale Dashboard",id:"step-1-log-in-to-your-truenas-scale-dashboard",level:2},{value:"Step 2: Navigate to the catalog Page in TrueNas Scale",id:"step-2-navigate-to-the-catalog-page-in-truenas-scale",level:2},{value:"Step 3: Navigate to Apps and Disover Page",id:"step-3-navigate-to-apps-and-disover-page",level:2},{value:"Step 4: Configure and Install gamevault-backend",id:"step-4-configure-and-install-gamevault-backend",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function l(A){const e={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:"https://www.truenas.com/truenas-scale/",children:"TrueNAS Scale"})," is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system."]}),"\n",(0,n.jsxs)(e.p,{children:["Setting up a GameVault Server on TrueNAS Scale is just a click away by using our template from the ",(0,n.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/getting-started",children:"Truecharts Catalog"}),",\na community based catalog for TrueNAS Scale."]}),"\n",(0,n.jsx)(e.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"a running TrueNAS Scale Server!"}),"\n",(0,n.jsxs)(e.li,{children:["add the TrueCharts",(0,n.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/getting-started",children:"Catalog"})]}),"\n",(0,n.jsxs)(e.li,{children:["Install the following ",(0,n.jsx)(e.a,{href:"https://truecharts.org/manual/FAQ#operators",children:"operators"})," from TrueCharts; ",(0,n.jsx)(e.strong,{children:"prometheus-operator"})," and ",(0,n.jsx)(e.strong,{children:"cloudnative-pg"}),"."]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"step-1-log-in-to-your-truenas-scale-dashboard",children:"Step 1: Log in to your TrueNAS Scale Dashboard"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 1",src:t(3346).Z+"",width:"1919",height:"943"})}),"\n",(0,n.jsx)(e.h2,{id:"step-2-navigate-to-the-catalog-page-in-truenas-scale",children:"Step 2: Navigate to the catalog Page in TrueNas Scale"}),"\n",(0,n.jsxs)(e.p,{children:["Go to ",(0,n.jsx)(e.strong,{children:"apps"})," -> ",(0,n.jsx)(e.strong,{children:"discover"})," -> ",(0,n.jsx)(e.strong,{children:"catalogs"}),"."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 2",src:t(1947).Z+"",width:"1918",height:"592"})}),"\n",(0,n.jsx)(e.p,{children:"Validate that TrueCharts catalog was added to the server, if not refer back to the Prerequisites section."}),"\n",(0,n.jsx)(e.h2,{id:"step-3-navigate-to-apps-and-disover-page",children:"Step 3: Navigate to Apps and Disover Page"}),"\n",(0,n.jsxs)(e.p,{children:["Go to ",(0,n.jsx)(e.strong,{children:"apps"})," -> ",(0,n.jsx)(e.strong,{children:"discover"})," and search for ",(0,n.jsx)(e.strong,{children:"gamevault-backend"})]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 3",src:t(7664).Z+"",width:"1919",height:"587"})}),"\n",(0,n.jsx)(e.h2,{id:"step-4-configure-and-install-gamevault-backend",children:"Step 4: Configure and Install gamevault-backend"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 4",src:t(1759).Z+"",width:"1919",height:"374"})}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 4a",src:t(1465).Z+"",width:"1488",height:"752"})}),"\n",(0,n.jsxs)(e.p,{children:["Scroll down to ",(0,n.jsx)(e.strong,{children:"App Configuration"}),"."]}),"\n",(0,n.jsxs)(e.p,{children:["Set your ",(0,n.jsx)(e.code,{children:"Admin User"})," and ",(0,n.jsx)(e.code,{children:"Admin Password"}),"."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 4b",src:t(3099).Z+"",width:"1485",height:"874"})}),"\n",(0,n.jsx)(e.admonition,{type:"note",children:(0,n.jsx)(e.p,{children:"Leave the Logs and Images storage options as PVC."})}),"\n",(0,n.jsxs)(e.p,{children:["Games storage option can be safely set hostpath if not using using any shares or switch to NFS otherwise; please follow the ",(0,n.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/dataset",children:"Dataset and Share Setup"})," guide."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Step 4c",src:t(3099).Z+"",width:"1485",height:"874"})}),"\n",(0,n.jsxs)(e.p,{children:["Scroll down to ",(0,n.jsx)(e.strong,{children:"Documentation"})," and click install, wait a few minutes and the app should deploy!"]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Installed",src:t(1679).Z+"",width:"1919",height:"949"})}),"\n",(0,n.jsx)(e.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,n.jsx)(e.p,{children:"You have now successfully set up your GameVault Server using TrueNAS Scale."}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,n.jsx)(e.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,n.jsx)(e.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,n.jsxs)(e.p,{children:["To stop the server in TrueNAS Scale, you can click on the gamevault-backend app and then edit the app; set the replicas to 0 or use the ",(0,n.jsx)(e.a,{href:"https://truecharts.org/news/stop-all/",children:'"stop-all"'}),' feature. When editing an application, checking the "stop-all" box and saving the changes accomplishes this. If you\'re working with applications based on CNPG (cloudnative-postgres), the same methods apply, ensuring a safe shutdown.']}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"stop-all",src:t(3757).Z+"",width:"394",height:"423"})}),"\n",(0,n.jsxs)(e.p,{children:["If you prefer using ",(0,n.jsx)(e.a,{href:"https://github.com/Heavybullets8/heavy_script",children:"Heavyscript"}),", a specialized script for TrueNAS Scale, it offers a secure way to stop apps, including those utilizing CNPG. By default, Heavyscript employs the ",(0,n.jsx)(e.a,{href:"https://truecharts.org/news/stop-all/",children:'"stop-all"'})," function to ensure a graceful shutdown."]}),"\n",(0,n.jsx)(e.p,{children:"Simple commands for heavyscript:"}),"\n",(0,n.jsxs)(e.p,{children:["stop: ",(0,n.jsx)(e.code,{children:"heavyscript app -x gamevault-backend"})]}),"\n",(0,n.jsxs)(e.p,{children:["start: ",(0,n.jsx)(e.code,{children:"heavyscript app -s gamevault-backend"})]}),"\n",(0,n.jsx)(e.p,{children:'Keep in mind that TrueNAS Scale does not support third-party operators. Consequently, relying on the stop button within the TrueNAS Scale GUI, often considered an IX (iXsystems) hack in the Kubernetes space, is not recommended. For a dependable and supported approach, opt for the replica settings, "stop-all" checkbox, or leverage Heavyscript.'}),"\n",(0,n.jsx)(e.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,n.jsx)(e.p,{children:'Navigate to "Apps" and choose the GameVault-backend App you have created.'}),"\n",(0,n.jsx)(e.p,{children:"In workloads, select any of the white boxes with lines icon; thats the logs button."}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"gamevault-workloads-logs-1",src:t(8611).Z+"",width:"422",height:"809"})}),"\n",(0,n.jsx)(e.p,{children:"You have to select the correct main pod and container"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"gamevault-workloads-logs-2",src:t(2248).Z+"",width:"598",height:"352"})}),"\n",(0,n.jsx)(e.p,{children:"Once you selected the main pod and container pod; you should see the logs for the app"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"gamevault-workloads-logs-3",src:t(2856).Z+"",width:"1881",height:"235"})}),"\n",(0,n.jsx)(e.p,{children:"You can then download the logs, but you might have to reselect the correct pods again when downloading the logs."}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"gamevault-workloads-logs-4",src:t(8017).Z+"",width:"588",height:"421"})})]})}function g(A={}){const{wrapper:e}={...(0,a.a)(),...A.components};return e?(0,n.jsx)(e,{...A,children:(0,n.jsx)(l,{...A})}):l(A)}},3757:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/gamevault-stop-all-1f3a1e720ade3ecba89c0d63e6ee9bc1.png"},8611:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/gamevault-workloads-logs-1-0a2a9337c9356c4acd287492e815ee01.png"},2248:(A,e,t)=>{t.d(e,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAFgCAIAAAD2DKBlAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAkj0lEQVR42u3df3xT9aHw8b72vO7r2e697tl2HC0gaYsIsW5lSOp1ckXGAN3lutU7uqowFn0CVYfuoeMGEZRgAW2rhRGNivgDmfxKFAoWehUC+upaAzRFSEtLE1rSAuWHQKGUkrY5zx9f/HpISlfW8iPp5/3qH+3JycnJSc2H7/ec1Jh+0SVpRMKIyYOv6C6J+ltuG6brP6Bfv379BsT3Hzxcl5h0S7/+/RKTBujvjh98p27wcF38oP7xg/oPvlM3IL5/v/79bk0ecOsdAwYk9B98py5+UP9+/fol3j5g0M90A+L7Dxo6IDFpwC3x/UJuSron4Zd/Sho2/lb93fE//UXiL56+fdj4W/v1v4L9HDF5cNKIhAh6LZ599tnf/e53/XCtjBkzJjs7e9HlZWdnjxkzplv/fXVEuRK8TNdO/0T5bewv5sU8+Ejk7PoD/+eRF3446Fo8UkwUvhFkJg28Y8CNtldD7oofk5l07+NDUn47aIRx8C//lHT7z+O7fveBdwwYk5kUWS8ECbzGBg8ePHr06DGXN3r06MGDB3fnIUhgBOkzbt73xv4mrn+/frc+ctPEl//l3nti/vByZH8Zsy/zlRNjzIl5LLeDr8c7/Hrl269r+ZL0vSaG3j/w7odv63uD6de/75AU3fDfDBr+61uT/j1BN6j/Fd397odvG3r/wL7AddX9BHIMr52E8T/8teV//eGlmN/P/+f7f3sj7+l1/IdCTOSmrhMjpw75yaiEqPlN/smohJFTh/BfNEggepWISeCNduAG3nHL2BlJQ/5NFwW/BEP+TTd2RtLAO27hvwdcd7d3hAQicosYEzXZCzF4uG7sjKQ77ovsseAd9yWMnZE0eLiO336QQKDHcxiawIEDBw4ZMkQPAEAkGzJkyMCBA68ggQMHDuSoAQCiRucVvCSBjP8AAFE2FuxqAjlYAIAoQwIBACTw8gns27cvRwoAEGU6vIL05l/nfHf0L2K0n3DgSAEAoi+B4RX8NoHykxYcKQBAVCYwpIIXE6j9sCFHCgAQZW7+z4XfHTXqYgVT/hzzuydi+/W7+cFsEggAiHLK+AUygX1TMr9J4MskEADQGxJ4XwcJ/AUJBAD02gQmanCkAADRnEDD9Ji0jNi+fRkFAgCiX5/75sRMmNKnX9++A375o19ndZzAuLg4jhQAIMrEDXjgB6lZ35k0/zsTZ3//gWdj0qbG9u17838u/DaBcXFxJBAAEIUJjIuLi4vr8P87SAIBANEs5tF5MRNfjJmUFTNpfsyk+TG/XxAzeeHFL9k/EggAiNZRYIcDQRIIAOitCYzT4EgBAKI1geEVJIEAABJIAgEAUZ3AkAqSQAAACSSBAIBoT6C2giQQANDrExgbG8uRAgBEmdjYWBIIACCBl1SQBAIAekcCbzf979Q/9AlPYGxsLAkEAERlAmNjY+PidMqYOf9y1+1x1zGBDodDVVVVVR0OR9Qfd7PZ3NTUpKqq1+vltxAArmcC+6be9PAzP7olLi7u3h/817x/HvfUdyfO7/kEjho1Kj8///Tp08FgUFXVc+fOFRcXm0wmEggAuF4JjDU8/U9jHoyLu5jA7zw09ebBhhjZvx5J4Pjx4/ft2yfip3X69GmLxUICAQDXI4GGHzz43PcvToLe+4P/mvevhviLE6E9mMBNmzYFg8FgMOjz+V566aXZs2d//vnnbW1tqqpWVVU98MADJBAAcK0TmDjxew89/uO4bxN4051xPZxAo9HY0NCgquqJEyemTZsmFg4fPryiokJV1bNnz86aNUsmcOvWrbW1tcFgsK2tbe/evZMnT5brr1+/vrGxUaT0+PHj77zzjvZR3nnnnePHj4tbGxsb169fP3z4cHHT5MmTd+/e3dLSoqpqW1tbXV3dyy+/LO9oMpn27t174cIFVVVbWlqKi4vT09PDn4XX61VV9eDBg3v37m1rawsGg0ePHtVuJ+RRqqqqzGazvPXll18WuxcIBHbv3n3u3DkSCADXN4E33zvjez9PibuqCczNzT1//ryqqm63W7t8zZo1lZWVHo9n3rx5MoEhSkpKRP+Ki4tD5lHb2trWr18vNrV+/XoxppSCwWBxcfHw4cPT09Pr6urEkubmZrFaU1NTVlaWXq+fOnXqkSNHQh60srJy/PjxHSYwRGNj4+zZsy+3nTNnzohpXovFcubMmfC7k0AAuH4JHHfTb5/5QXzs1U2gzWYLBAKyZx2SCdy/f//UqVMXLFhw8uRJVVWPHDkyceLEV199VUTU5/NNmzZt3rx5R48eFQWaMWNGZmbm6dOnVVU9evTovHnzpk2b5vP5xJAuLy9vyZIlFy5caG9vt9vter0+Ly9PDNSKior0ev2uXbtUVQ0EAna7PS0tbcuWLW1tbe3t7R9++GGHCWxpaVmzZo1cUz4pp9MpRq5btmxJS0tbs2aNeJSKiorhw4eLR2lraysoKEhLSysoKBD3JYEAcN0S+JPH/+n+hzQfkL+YwLi4uJ5M4Jo1a8QArisJlOcCRXLOnDkzY8aMrVu3ilDZbDa5fjAYFK368MMP29vbg8GgvK+M7tatW0UCVVUtKyubPHnyqFGjMjMzzWaz0WiUM7Q+n0/Mmj755JMnTpzocFfF/jQ0NBiNRr1mdre+vv7ZZ5+tr6/X3jp8+PDq6mpxvc+SJUvEADH8viQQAK6XH47975t+OqDDvxETE6txLUeBIQlsamoym81ut1t+H7LNTZs2bdq0KSSQ8noTt9s9fvz4yspKOfd47tw5t9sttiNX68oUZUgCtUsWL14swqm9V0lJiaqqzc3N69atE7Og8lYSCADXXcyEZ2PSnov53ZyY9DkxD78Q88jcmEfnxTw6L2biiz2ZwMudC8zNzc3Pz//oo4/++Mc/Xr0E6vX6UaNG2e12cTWKeJTm5ubc3Fy52oULF5outWfPnp5KoMPhEPO0JBAAbhzazF3FUeDUqVNFIU6cODF16lSxUF4R2tzcnJWV1XkCxUSoOLcnR40hE6Ht7e2rVq0KCeTWrVuNRqPZbM7MzBw1atT48ePtdrs4S/fll1/Kac+DBw/K61/EauHPIiSBjz/++LFjx8R9n3nmGTEReujQIXE1aYcTofJWEggAvSWB+m+uFgkGg5WVleJzgSUlJeKSkAMHDnT4uUBtAuU1LB1eDjNjxozGxsbLXQ4jx4hvvfWWXq+XK4sBorhQJRgMlpaWTp48eerUqaWlpUeOHJGpDkmguBxm/Pjxn332mdj/7du36/X67du3iwteuBwGAEjgJUJOyHXlr8NoE9idD0XIjytoPxTR0tLy2muv6S/zYQZ5a3gC+VAEAPSiBPbp06dHHkz8jVDx2XZxWcquXbs6+Ruh2gTqu/fReJPJpP3Qen19/SuvvCLvKD7SLs5Wilu1H3gPSeCJEyd27doVCAS689H44uLigwcPkkAAuI769Olz7RIY6cIvhwEAkEASCAAggSQQAEACSSAAICISGFJBEggAIIEkEABAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBADgRk9gfHx8fHy8TqfT6XQcKQAAo0AAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAEACSSAAgASSQAAACSSBAIBekMDbRj/69Kx5gnnKr4bExcXFTfrvl0ggACCaDerT54Gpsy3PTvmPn8bG/vQ/pj0///knfkUCAQDRb0yfPkl3jfj5nbeJ2P3qiefn//lREggA6BUJjL3rN1P+fHEidP78+SQQANBLEvizR/70wpxp6aN+yigQANC7EniPccYLszIevHNw7E9GpU2bwygQANBbEthn0Dhj5mzLvHnz5s2ZPu3/PT/f/JjhOibQbDZ7vV6j0djhrU6n02az8bIBALrv2n0u0GazBQIBVVVVVfV6vVeaQKPR2NDQIO5eUlLCKwcAiKQEOp1OETOv12s2m0tKSlRVDQQCYmAnfmxoaBAJ9Hq94keZQ4fD4ff7/X4/A0EAQAQncPXq1aWlpXLYl5+f7/f7jUajw+FoaGhYunSpuNXhcDgcDl4nAEBkJ1A7ERpSxC1btogf5USoGAU2NTWZzWZeJwBANIwC5Y/l5eXho0Dx49KlSwsKChgFAgCiMIH6b07+hZwLFOf/li5d6na7GQUCAKIhgQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAuJoJjI+P132DIwUAYBT4j0hOTjYYDCkAAHSbwWBITk6OmAQaDIbExEQdAADdlpiYaDAYIiaBKSkpvGYAgJ6SkpJCAgEAJJAEAgBIIAkEAJBAEggAIIEkEABAAkkgAIAEkkAAAAnsrQk0mUxOpzM1NVWn0xUWFloslpAVLBZLYWHhlW62w011ndPptFqt4Qt9GlarNTU11eVyVVVVWSwWq9Uqb3K5XOIZXY7FYikqKkpNTQ3fpvaAdPJ07HZ7+B52/oiXO4xWq9Vut4cstNvt4QsBIDoTaLfb/+4bdy9PYH5+vslk0ul0qampRUVFFovFZDK5XC6x0Gq1dr1JMoEdbpMEAiCB1yKBcuwi+ieGNXJEIt46nU6nWCjeFn0+n8fjEW/cFoulqqpKLFm4cKHL5RL3km/oYn2fz+d0OrVv/fJNXL7jy/FQyDu7dgfERsJ3UjtEE0tEM8Sa4l5yBfHOHr5ZuY7H45FPpMMEWq1Wsc/i7mIU2GGTQvZKHq6ioqKQBIptyn8TFBUVaUeThYWFGzZskI8ljt6GDRvE1i53ELTHUKzpcrmWLVsmvhfPtKCgQPsCiderqqqqqKhIHCjx0PJxAUSTtLS0zZeRlpYW5QmUoZLjnpycHPGjLJPFYvF4PGJ04vF4xNuiaKHolmxhYWGhfB8XP5pMprfffls7jukkgdqdCXn7FjsgdtJut4fvpLYfYlgmHk4O5rQDHbkn8nm53W4xkyk34vF4Ohljyc1qR4F2uz2kQCF7tXDhQvkEw8fc2m3KRxfbFLfKA+t2u00mk9xCh/sv90r7bx1Z+pBxnvxGvjqi7mKhfGgA0VpBr9erPSPj9Xo771/UJlC8/2rHhXICTbuyKIocW8j1Fy5cKJokh0SyCmIY0ZUEhoyutDN44n08fCfD5y0LCwuLiopChnfaU27azYb0Uh4NOUTWNkD7FMITqK1UyF5p76j9PnybciJULpcTodrhdcjehjycPEpiyB6SQO2P4S3Uft/NKWUAkVXBrvQveiZCZcbkPJh449OOAjtJoPZ9XOYkJydHhEq7QndGgSEJDN/J8ASK1eTy8BW6ksAOj5i2Ex2Ot+QT6XoCQ7bZIwkMn/GWzQs53UgCAYgKdrF/0ZNAeS4q5I1Pvvl2ksCQJeId1mq1FhYW5ufnh0yshV8/IsedfzeBshayfyE7KR9dzs2KN275cNoVxKOEJ1C7TofnAsObJ3/U3kWOAkP2SjsRarVa5UTo5bYZMhEasnHtvwNCJkK1E9ThCQw/zuHHUx5qEgj0qgp2sX/RMxFaWFgopwe1c4wul0tcENFJAnWXXg4j3nNDTqSJGciqqqoNGzaIN315gUxZWZmcetVesRI+XCsrK9MOVcN3UneZy2HE+7vYt/DLYUISqN3by50LlE0Kz5XcK+2VI5e7HMbj8WhHw+HblFevyDF0yMbtdntZWVnn1wSFD/fFGT75iss50pDLYcSrQwIBRHMCtRnocOgAAEDUjgLlpwvk8AgAgOhPIAAAJBAAABIIAAAJBACABAIAQAIBACSQBAIASOANnUCDwZCYmMhrBgDovsTERIPBEDEJTE5ONhgMKQAAdJvBYEhOTo6YBAIAcKMhgQAAEkgCAQAkkAQCAEggCQQAkEAAAEggAACRTn7QMF4jISEhISGBBAIAGAWSQAAACQQAgAQCAEACAQAggQAAkEAAAEggAAARlMD4+Hj5sUGOFACAUSAAACQQAAASCAAACQQAgAQCAEACAQAggQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAAJBAAACiLoElJSUOh6M7WzAajW6322g08vIDAAm8RgksKSlRVVVV1a40zGw2l5aW9vgTttlsgUBAVdVAIGCz2fgNAAASeNUTaLPZ/H6/GHuVl5fbbDaHw6EtYmlpaUNDg6qqJSUlRqNRfO/1es1mc1NTk/her9c7HA6Hw2Gz2bxebyAQaGpqMpvNcv2Ghgaj0ShubWpqys/Pl9uRe+L1et1ut9wZAAAJvLoJ1E5gGo3Gt956S8xGGo1G0Tmv1+twOMQ3ImPl5eV6vb6goMBsNotGms1mmUDRMLFZufGQW202m9Pp1Ov1TqeTMR8A4PonUH/pPKcYFIrCyRN1MoFysCgGfDJyom3iRznFKgaR8taQ0SGvNwDgOiRQJk2v13u93h07dojRnhwFXi6BIpDho8CQBIq+ii3IW2022/LlyxkFAgCuZwL1YZfDhJ8LDElgIBAQbROrnTp1SvwYnkA52hNbk7eazWa/388oEABwnRMIAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAAASCADADZvA5ORkg8GQAgBAtxkMhuTk5IhJoMFgSExM1AEA0G2JiYkGgyFiEpiSksJrBgDoKSkpKSQQAEACSSAAgASSQAAACSSBAAAS2LEfXupHGiQQAEACSSAAgARGXwJNJpPT6UxNTdXpdIWFhRaLJWQFi8VSWFh4pZvtcFNd53Q6rVYrv+UA0CsSaLfbXS6XSBEJJIEAcD0TGB8fLx/s6iXQarX6fD6fzyf6l5qa6nK5xBLRAIvF4nQ6xUK73W63230+n8fjMZlM4taqqiqxZOHChS6XS9wrNTW1qKjIYrGI9X0+n9PpFOsXFRWJ4NntdqvVKhPodDq1j6tNoNwBsZHwnRTR0i4RCRRrinvJFex2e4eblet4PB75RAAA0TkKlKGS456cnBzxoyyTxWLxeDwWi8VkMnk8HtEP0ULRLdnCwsJCq9UqU1dYWGgymd5++23tsKyTBGp3JiSBYgfETtrt9vCdlI9rMplcLpfJZBIPJwdzVqtV7Ll2T+TzcrvdFotFuxGPx0MCAUS9tLS0zZeRlpbW6xIo3v2140I5D6ldWRRFDgHl+gsXLhRNEnnTjr2qqqq6mEA5yJN3kROholLhOxk+b1lYWFhUVBQyvJOsVqt2syG9ZCIUQK+qoNfr1b5Der3ezvuni5rPBcqMiVqI4V3IKLCTBMqeaduTk5MjQqVdoTujwJAEhu9keLHEanJ5+AokEADCK9iV/kVPAvPz88VMpiDrIlvVSQJDloiIWq3WwsLC/Px87UbkmnKiUjvu/LsJlNWU/QvZSfnocm5WVE0+nHYF8SjhCdSuw7lAAL2wgl3sX5QkMDU1tbCwUA5+tXOMLperqKhIDPUul0DdpZfDiLCFnEgTM5BVVVUbNmwQk5byApmysjI59aq9YiV8uFZWVqYdqobvpO4yl8OIqIt9C78cJiSB2r3lXCCAXljBLvYvShKozYD22hYAAKJ/FCg/XSCHRwAARH8CAQAggQAAkEAAAEggAAAkEAAAEggAIIEkEABAAkkgAIAE3ngJNBgMiYmJvGYAgO5LTEw0GAwRk8Dk5GSDwZACAEC3GQyG5OTkiEkgAAA3GhIIACCBJBAAQAJJIACABJJAAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAAASCAAACQQAgAQCAEACAQAggQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAABJIAgEAJFCTwPj4eN03OFIAAEaBAACQQAAASCAAACQQAAAS2DVms9nr9RqNxtLSUrPZ3OE6JSUlDofjH9t4aWkprzQA4Pok0Gg0NjQ0qN9oamrqMHXaBBqNRq/Xe7kidpHD4ej8EQEAJPBajAK1VSspKVFVNRAI2Gw2o9HodrtDRoEhCXQ4HA6Hw2azeb3eQCAgkibL2tDQYDQabTZbIBBQVVWOF41Go9/vd7vdXq+XFxsAcP0TaDabCwoK9Hq9zWZzOp1XlEC/3280GsW8qJwdFbc6nU5tUHl1AQA3XAK186IlJSVXlECn0yl/FENJuR05CiwpKeGlBQB0Tv75l3iNhISEhISEq5hAm81WXl7+j40CQxIoRoEiqwUFBeIbRoEAgBt9FNjU1HTy5Mm33npLRMvr9cqTdtqRotfr7TCB2nUcDsfy5cubmpoYBQIAbrgEAgBAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBACABAIAcMMmMDk52WAwpAAA0G0GgyE5OTliEmgwGBITE3UAAHRbYmKiwWCImASmpKTwmgEAekpKSgoJBACQQBIIACCBJBAAQAJJIACABJJAAMANKSkpaezYsffff//YsWOTkpJIIAAg+g0aNCgjIyM3N3fRN3JzczMyMgYNGkQCAQDR3L/p06fn5eUtulReXt706dM7r2CUJNBqtfq+YbfbdTqdyWTyeDw+n8/lcqWmpna4BAAQ6SZNmvTqq6/m5eW9+OKLIoTy+1dffXXSpEnRn0C73e50OrVLnE6n3W5PTU11uVxWq7XDJQCASB8CzpkzZ9GiRTk5OQ8//HBGRsYrr7ySkZHx8MMP5+TkLFq0aM6cOZ0MBKMkgSJv8kcx4BOdE3UMX8KvDgBEuhEjRmRlZYmZz+zs7PT09HHjxqWnp2dnZ4uFWVlZI0aMiOYEyhlOn8/n8XhMJpPJZHK73RaLRQTP5XItXLgwZAlzoQAQTQnMy8ubMmXK0KFDp0yZIk8NRn8CtS4XPBIIANFn6NChc+fOFf3LyMhIT0/PyspKT0/PyMgQFZw7d+7QoUN7SwKtVqvH43nttdeYCAWA3uCJJ57Iy8vLzc19+umnxfxndnb2008/nZubm5eX98QTT3Ry3yiZCHW5XCaTSafTOZ1OkTcuhwGA3mDYsGGzZ89e1JHZs2cPGzYsyhOo03woQpwL1GlOEMoBX/gSAEAUuOeee2bNmqX9aGBeXt6sWbPuueeezu/IR+MBANFg3LhxTz755KxZs5588slx48Z15S4kEADQS5FAAAAJJIEAABJIAgEAJLC7CYyPj5cPRgIBAIwCSSAAgASSQAAACSSBAAAS2AGDwZCYmMhrBgDovsTERIPBEDEJTE5ONhgMKQAAdJvBYEhOTo6YBAIAcKMhgQAAEkgCAQAkkAQCAEggCQQAkEAAAEggAAAkEAAAEggAvUnM6+UR+tXh05kQaUggAJBAEkgCAYAEkkASCAAkkASSQAAggSSQBAIACSSBJBAASCAJJIEAQAJJIAkEABJIAkkgAJBAEkgCAYAEkkAAwBUm8G7HgelFDU9sP3zL8v0xr5cnrfQuqzi1an/jvR/XRGgCX3jhhTfeeGPBggUTJ068GmGbO3fu5s2bV69enZGRQQIBICITeMvy/e9UnDrX2q6qqqqqZwPt7+47lVZYV3Gypb6p9eFP6yIugWazedu2bfX19YcPHz58+HBlZeXbb7/d4wlcvHjx/v37S0pKMjMzSSAARGQCX9x57GygvfFC+6aDZ+3exiPnWs8G2v9adTpCE/jYY49t3Lixrq5u3759BQUFW7ZsqampqaioyMnJIYEAQAK//Upa6d1+6Nz5tuBre7++aem+mNfL//y3Bru38XnXsYqTLWcC7b7GC82twcpTF6YXNcS8Xn7vxzWFB8+eCbS3BdXaM4H5u47ftHRfhwsf/bT+y4bm5tbgoabWFVWn73YcGLii+r19p441t7UF1WPNbcsqTg1cUd3jCbRYLHv27Kmurl6yZIko4sqVK9etWzd37tzVq1eXl5f7/f49e/YsW7Zs4sSJy5Yt2717986dO6urq30+3+bNm6dPnz5x4sT333/f4/HU1dVVVVUVFBRkZmbm5ubu2LHD7/f7/X6Xy5WdnU0CASCyEzh6fe2+ky1Hm1v/r/OQdvmo9bUVJ1uCquprvOA/G1BVtfxkS/r/1H3sO9MWVE+1tPkaL7S2B481t80qORq+MLfsxO7j5wPtwcpTF46caz3fFlyy5+vFX33d3Bo8fr5tz4mW823Bs4H2eTuP9XgCFy9eXF1dvWvXrpkzZ2qXL1u27MCBA/v37y8tLa2pqamsrMzNzV21apXf76+pqdm1a1dtba3f71+5cuWiRYuqqqpqampcLldlZWVdXd22bdt27dpVV1fndrsrKioOHz5cXFy8YsUKEggAEZzA8Z8cPNAYOHKu9Q9bOkjgoabWSZ/Vj15fW3Gy5fC51tyyE9WnLxxqav39lvo+71b9ter0+bbg1vomX2MHC2vOBOrOBiZ9Vj/i45o//61h3IaDzvqmxgvtlh3Hblq6b/FXX59rbf+k9qy4+qYHE2iz2Q4cOLBjx44ZM2Zolz/11FNvvvnmc889ZzKZxOzoe++9t2rVqtra2oKCApPJtHr16tra2k8//XTjxo21tbUbN2587LHHsrOzCwoKNm/e7PV6i4uLMzMzn3vuudLS0v3792/atIkEAkAEJ3Dshtrq0xeONbd1OAoU5wLvdhxwHz9/tLn1/cpTDedaK062jFpfG/N6ebb7xLnW9r1ftxw/3xay8PND5zYdPNvaHlRV9UJ78PND5zKLGr46cV691JcNzcmrfT2bQKvV6vV6w0eBs2fPdjqd+/fvP3To0OHDh2tra5cvXy4S+Mknnzz22GPvv/9+TU3N9u3bt2/fXltbu2rVKnnfFStWHDx48LBGTU3Ntm3bSCAARHAC71zr+7Kh+Wygfe6Oi3OST35+2OFtfHHnsfAELi0/Wd/Uuv/0hbEbamNeL1+0++tzre27jp0/ci50YX7NmZ+t8c0sPrr54NnaM4HW9uD/+M+WHT9/NtC+cv/pV3efWPzV1294Tk774kifd6t6NoELFiyoqKioqKhYsGDBhAkTJk6cuHz58o0bN27fvt3v9+/cudPhcHz55Zc1NTUdJnDbtm1btmypra1du3atOJU4c+bMDz74oKamZufOnStXrvzrX/+6du3aFStWrF69mgQCQAQn8Kal+17fe7KlLXigMfCC61jWzuO1ZwItbcF1B85UnroQksCsncf/duRcc2twTXXjrJKj5SdbmluDyytPhy/cWHNm17Hz+TVnxn9y8A3PSRHFDTVnLrQHt9Q1Pfpp/Xv7Th0/37Zkz8VrcHowgU899ZTT6ayvry8uLl6yZInD4fB6vQcOHNi7d6/f71+3bt0LL7xQUlLi9/s3btxYUFAQksBPP/107dq1tbW1ZWVlNptt3bp1Xq93x44d+/fvr6ysfP/991955RW3271z50673V5dXf3VV1+99tprnX/0kAQCwI2YQPGheGd9U3vw4uTkhfbgJ7Vnn9h+OHwUOGXb4ZnFR0+2tMmZzJKG5hEf14QvnLrt8Gd1TW3fbLO+qXXqtsOPflp/oDEgVzvQGPj9lvqr8bnAl156qaysTE5a+ny+tWvXfvjhh16vVyw5cOCA3++vrKz84osvwhOYlZVVXFws715dXf3BBx/k5+fX1dWJJSKfixcvLi8vP3z4cFFR0TPPPEMCASDyEhjzevngD6tzy058Vte0prrRuPWQ+Lz89KKGWSVHk1Z6+7xb9fQXR+a4jt651hfzevnvt9R/5GvcWt/0l6++lmfywhf2ebdq2hdH1nob3y4/JeZIxanH5ZWnNx08u7D0eOdnAbv512Fmzpz58ccfb9u27aOPPnr++efFwqysrPz8/LVr186cOfPFF1984403/vKXv7z33ntiynT27Nnvvvtudnb2hAkTpk+fvmrVqq1bt65Zs+a5554TM6JvvvnmZ599tmHDBrHOhAkTsrOzP/jgg0WLFjEKBIBITSB/I5S/EQoAJJAEkkAAIIEkkAQCAAkkgSQQAEggCSSBAEACSSAJBAASSAJJIACQQBJ4bRMYHx+v+wa/6wBAAhkFAgBIIAkEACBikUAAAAkkgQCA3prAuEuRQAAACSSBAAASCAAACQQAINoTGBsby5ECAESZy10OSgIBACSQBAIASCAAACQQAAASCABAlCUwLi6OBAIAoj6BcWFIIACgNyawb9++JBAAQAJJIACABAIA0CsSKCvIkQIARGUCw6+FCU3gkCFDOFgAgKgxZMiQriYwISGB4wUAiBoJCQldTaCoIGNBAEAUjP9k/zo8EdhBAsX/OFD6scbNl1JuSI8oSr9/9L6xijJaUcYoSryiPKgoyYrSR1FGKcpoRemjKDcryt2K8itFSVaU3yhKvKIoivITRXlIUW5VlLGKcrei3KwofRXlV4ry74rya0V5QFHuUpS7FCVFUW5TlPsU5ZeKEqsoP1aUkYpyn6L8+Ar3sJ+iPHLjHfORI0dOmjRJr9dffAkeeWTcuHGKoqSnp48cOVJRFL1eP2nSJPG98NBDDz300EPabxRFGTdu3COPfPv85Hbk99oHEhvXblm7fm82cuTIKVOmZGhMmjRp2LBhPbLx+I58/0rwAqFHhPRImyptwjr5uzAigf8fP6hVgMUTDXgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjQtMDEtMDZUMTU6NDk6MzkrMDA6MDADtVRTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI0LTAxLTA2VDE1OjQ5OjM5KzAwOjAwcujs7wAAAABJRU5ErkJggg=="},2856:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/gamevault-workloads-logs-3-1baf7d54cd87481af3685e08c77f9d0d.png"},8017:(A,e,t)=>{t.d(e,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkwAAAGlCAIAAACHpT5DAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAjA0lEQVR42u3cb3AbZZ7gcb2Zuh1up+ZmtyovtjjXaY9Lqbg7sSztqinYmUttFRn2srfnu8VrhoScqBMxMGFqkk0pFcIQgS8G28HJRCAgCX9CIH/cAiIHJ1pIOoHSWCixZUgkx7JbtiM7jvOHJI5lx5Zl9b14hmcbyTYGh0Fyvp+aF3ar1WpLlL7ze9SKZeHChTYAAOaLhQsXWiSeDgDAPEPkAABEDgAAIgcAAJEDAIDIAQBA5AAAIHIAACIHAACRAwCAyAEAQOQAACByAAAQOQAAkQMAgMgBAEDkAAAgcgAAEDkAAIgcAIDIETkAAJEDAIDIAQBA5AAAIHIAABA5AAC+j8j5fD7DMAzD8Pl8hfl0hEIhwzBSqZTL5eI/DgAgcl+xaNEiv99/9erVbDZrGMbIyEhzc7PT6SRyAIDijtySJUtOnz4t8mZ29epVt9tN5AAARRy5gwcPZrPZbDabSCSee+659evXf/zxx5lMxjCMeDx+3333ETkAQFFGzuFwDA4OGoZx6dKllStXio133XVXe3u7YRjDw8Pr1q2TkTty5Ehvb282m81kMqdOnVq+fLncf//+/UNDQyKWFy9efO2118yP8tprr128eFHcOjQ0tH///rvuukvctHz58s8++2xsbMwwjEwm09fX9/zzz8s7Op3OU6dOjY+PG4YxNjbW3NxcUVExm8jN8Ig2m23Tpk3i1kwmE4vF+vr6DMPQdZ3/sABgXkWurq7u+vXrhmFEIhHz9n379nV0dESj0WeeeUZGLkcoFBKFa25uzlntzGQy+/fvF4fav3+/mAulbDbb3Nx81113VVRUiMBks9nR0VGxWyqVqqqqstlsK1asOHfuXM6DdnR0LFmyZObIzfCINpvthRdeEH9yDiIHAPMtcl6vN51Oy2JNSUaus7NzxYoVGzduvHz5smEY586dW7p0qWxGIpFYuXLlM888c/78ecMwhoaG1qxZs3r16qtXrxqGcf78+WeeeWblypWJREKMZfX19Vu3bh0fH5+cnFRV1Waz1dfXi5EuGAzabLaWlhbDMNLptKqq5eXlhw8fzmQyk5OT77zzzgyRm/kR5ZCayWSamprKy8v9fv/ExASRA4B5GLl9+/aJIWw2kZOfyem6bhjGtWvX1qxZc+TIEZEir9cr989ms6JG77zzzuTkZDablfeVWT1y5IiInGEYbW1ty5cvX7Ro0erVq10ul8PhkOuoiURCTGCPPfbYpUuXpjxVc+RmfsTf/OY3IoFnzpy57777bKYFWyIHADf1JJcTORGVSCSS83mYPObBgwcPHjyYk0CXy5VKpcQC6ZIlSzo6OuSC4cjISCQSEceRu81mXdEcuZkfUf4s/14iBwDzNnLTfSZXV1fn9/vffffdX/3qV99d5Gw226JFi1RVFZeBiEcZHR2tq6uTu42Pj6e+6uTJk0QOAIjc11uxYoVYA7x06dKKFSvERvnB1ejoaFVV1cyRE8uV4hMvOfnlLFdOTk7u2bMnJ4FHjhxxOBziU7RFixYtWbJEVVXxmdynn34qFyfPnDkjrzQRu+X/FfnLldM9ojxsd3c3y5UAMM8jZ7PZNE0Tl9p3dHSI78mFQiFxdaIowcyRk1eLTHnhyZo1a4aGhqa7DEROXa+++qrNZpM7iyFPXHiSzWZbW1uXL1++YsWK1tbWc+fOyRhPGbmZH5ELTwDg5opczgdjs/kXT8yRm8tXCOSXBMxfIRgbG3vxxRdt03yFQN46XeRsfIUAAIicmfi3K8W3ucUFIC0tLTP825XmyNnm9mVwp9Np/jJ4f3//pk2b5B3FV8VFk8St5q+KTxc529d9Gfz5558Xt6bT6ZaWFrGASeQAYH5G7mZTWVkpm7d+/fqRkRHDMGKxGM8MABC54rZ69epLly6FQqGKiorly5fHYjHDMMwXqgAAiFyxamhoyPnEbrp/LQwAQOSKz6ZNm/r7+zOZTDabHR4e/vjjj6f8d58BAEQOAAAiBwAAkQMAEDkiBwAgcgAAEDkAAIgcAABEDgAAIgcAAJEDABA5AACIHAAARA4AACIHAACRAwCAyAEAiBwAAEQOAAAiBwAAkQMAgMgBAEDkAABEDgAAIgcAAJEDAIDIAQBA5AAAIHIAABA5AACRAwCAyAEAQOQAACByAAAQOQAAiBwAgMgBAEDkAAAgcgAA3MyRczgckUjE4XDw2gAACityDodjcHAwFAp9u7t7vd50Om0YRjqd9nq9vDwAgAKKnNfrbW5ulqOYz+fTdd0wjFQq5XK5vF6vruvpdFo0TBTRMAxd1+URdF2PRCLJZJJhDgBQWJFrampyuVw+n8/n88nIiR9CoZDX6xX18nq9sVjM6/Vqmmaz2TRNY24DABR05ORkJoczWbucqrlcLl3Xa2pqxP6Dg4PMbQCAgo6cGNfEz62trTkjnZjkRORk83bu3MkkBwAo9Mg5HI5kMilbJarm8/nEYCc/kzNfV+JyuZLJJJMcAKAIJrkpZzsxyQlykgMAgMgBAFCokQMAgMgBAEDkAAAgcgAAEDkAAJEDAIDIAQAw3yJnt9sVRSkFAGDOFEWx2+0FFDlFUaxWawkAAHNmtVoVRSmgyJWWlvKqAABulNLSUiIHACByRA4AQOSIHACAyBE5AACRAwCAyAEAQOS+MafTqWlaWVlZSUlJIBBwu905O7jd7kAg8E0PO+WhZk/TNI/Hw3/HADBPIqeqajgcFrEhckQOAOZD5DweTyKRSCQSonBlZWXhcFhsEe/ybrdb0zSxUVVVVVUTiUQ0GnU6neLWeDwutlRXV4fDYXGvsrKyYDDodrvF/olEQtM0sX8wGBRJU1XV4/HIyGmaZn5cc+TkCYiD5J+kyJJ5i4ic2FPcS+6gquqUh5X7RKNR+YcAAIo1cjJFcnapra0Vv8r2uN3uaDTqdrudTmc0GhWFELUTZZK1CwQCHo9HxiwQCDidzu3bt5tHqxkiZz6ZnMiJExAnqapq/knKx3U6neFw2Ol0ioeTA5nH4xFnbj4T+XdFIhG3220+SDQaJXIA5r3y8vJD0ygvL5+HkRPv7+bZTq4WmncWzZBjnNy/urpaVEcEzDw/xePxWUZODmryLnK5UnQo/yTzVxcDgUAwGMwZ0SSPx2M+bE4RWa4EcFN1Ttd18zukruszF66YlitlqEQPxIiWM8nNEDlZLHNdamtrRYrMO8xlksuJXP5J5jdJ7Ca35+9A5AAgv3OzKVwxRc7v94v1RkH2Q9ZohsjlbBGZ9Hg8gUDA7/ebDyL3lMuJ5tnxayMnuygLl3OS8tHlCqrolnw48w7iUfIjZ96Hz+QA3ISdm2Xhimm5MhAIyBHVvBIYDoeDwaAY16aLXMlXLzwR6cr5QEusE8bj8cbGRrG0KC9FaWtrkwuk5mtD8keutrY287iZf5Il01x4IrItzi3/wpOcyJnPls/kANyEnZtl4YomcuY3evNVJAAAzIdJTl6LL0ccAADmQ+QAACByAAAQOQAAkSNyAAAiR+QAAESOyAEAiBwAAEQOAIBiiJyiKFarlVcFADB3VqtVUZQCipzdblcUpRQAgDlTFMVutxdQ5AAAKDREDgBA5AAAIHIAABA5AACIHAAARA4AACIHACByAAAQOQAAiBwAAEQOAAAiBwAAkQMAEDkAAIgcAABEDgAAIgcAAJEDAIDIAQCIHJEDABA5AACIHAAARA4AACIHAACRAwCAyAEAiBwAAEQOAAAiBwAAkQMAoMgi53K5dF13OBxT3qppmtfr5YUBABRW5LxebzqdNgzDMAxd179p5BwOx+DgoLh7KBTitQEAFFbkNE0TudJ13eVyhUIhwzDS6bQYzsSvg4ODInK6rotfZfB8Pl8ymUwmkwxzAICCjtzevXtbW1vl6Ob3+5PJpMPh8Pl8g4OD27ZtE7f6fD6fz8crAQAo9MiZlytzmnf48GHxq1yuFJNcKpVyuVy8EgCA4pjk5K+xWCx/khO/btu2rampiUkOAFCUkbN9+SFczmdy4nO4bdu2RSIRJjkAQHFEDgAAIgcAAJEDAIDIAQBA5AAARA4AACIHAACRAwCAyAEAUGiRs9vtiqKUAgAwZ4qi2O32AoqcoihWq7UEAIA5s1qtiqIUUORKS0t5VQAAN0ppaSmRAwAQOSIHACByRA4AQOSIHACAyAEAQOQAACByAAAiR+S+5HQ6NU0rKysrKSkJBAJutztnB7fbHQgEvulhpzzU7Gma5vF48jcmTDweT1lZWTgcjsfjbrfb4/HIm8LhsPiLpuN2u4PBYFlZWf4xzU/IDH+Oqqr5ZzjzI073NHo8HlVVczaqqpq/EQCKNXKqqn7tW/NNHjm/3+90OktKSsrKyoLBoNvtdjqd4XBYbPR4PLOvjozclMckcgCI3I2JnJw/ROHEaCKnCvHmqGma2Cje+BKJRDQaFW/Nbrc7Ho+LLdXV1eFwWNxLvmWL/ROJhKZp5jd3+TYt39PlTJPz3m0+AXGQ/JM0j1lii6iC2FPcS+4g3rvzDyv3iUaj8g+ZMnIej0ecs7i7mOSmrE7OWcmnKxgM5kROHFNWPxgMmifCQCDQ2NgoH0s8e42NjeJo0z0J5udQ7BkOh3fs2CF+Fn9pU1OT+QUSr1c8Hg8Gg+KJEg8tHxcAiiZyMkVydqmtrRW/yva43e5oNComjGg0Kt74RO1EmWTtAoGAfKcWvzqdzu3bt5tnkRkiZz6ZnDdocQLiJFVVzT9JcyHEaCUeTg5k5mFFnon8uyKRiFhvlAeJRqMzzEnysOZJTlXVnMbknFV1dbX8A/PnZvMx5aOLY4pb5RMbiUScTqc8wpTnL8/K/P9mZMtzZjX5g3x1RL/FRvnQAOaf8vLyQ9MoLy+fh5ET77Dm2U4uc5l3Fs2Q84Hcv7q6WlRHjjXyfV+MArOJXM6EZF5nE+/U+SeZv7oYCASCwWDOiGb+6Mt82JwiymdDjrnmd3nzn5AfOXOHcs7KfEfzz/nHlMuVcrtcrjSPyDlnm/Nw8lkSY3dO5My/5tfO/PMcF34BFH7ndF03v0Pquj5z4YppuVKGSq5Wibc28yQ3Q+TM79QyGLW1tSJF5h3mMsnlRC7/JPMjJ3aT2/N3mE3kpnzGzCWYcmaSf8jsI5dzzBsSufx1aVm1nI/9iBxA52TnZlO4Yoqc/Ewo561Nvr3OELmcLeI91OPxBAIBv9+fs/yVf6WGnB2/NnKyB7JwOScpH12uoIq3Zvlw5h3Eo+RHzrzPlJ/J5VdN/mq+i5zkcs7KvFzp8XjkcuV0x8xZrsw5uLn0OcuV5mXk/MjlP8/5z6d8qokccFN1bpaFK6blykAgIEdU80pgOBwWlx7MELmSr154It5Vcz7QEuuE8Xi8sbFRvK3LS1Ha2trkAqn52pD8kautrc08buafZMk0F56Id3BxbvkXnuREzny2030mJ6uTHyR5VuZrNKa78CQajZon2vxjyutE5Bycc3BVVdva2ma++iZ/ZBeftMlXXK5k5lx4Il4dIgfcbJ2bZeGKJnLmN/op/+8/AABFPMnJa/HliAMAwHyIHAAARA4AACIHACByRA4AQOSIHACAyBE5AACRAwBgXkVOURSr1cqrAgCYO6vVqihKAUXObrcrilIKAMCcKYpit9sLKHIAABQaIgcAIHIAABA5AACIHAAARA4AACIHAACRAwAQOQAAiBwAAEQOAAAiBwAAkQMAgMgBAIgcAABEDgAAIgcAAJEDAIDIAQBA5AAARI7IAQCIHAAARA4AACIHAACRAwCAyAEAQOQAAEQOAAAiBwAAkQMAgMgBAEDkAAAoksiFQiGfzzeXIzgcjkgk4nA4eIEBgMjdsMiFQiHDMAzDmE2lXC5Xa2vrDf+TvF5vOp02DCOdTnu9Xl5jACByNyByXq83mUyK+SkWi3m9Xp/PZ25ea2vr4OCgYRihUMjhcIifdV13uVypVEr8bLPZfD6fz+fzer26rqfT6VQq5XK55P6Dg4MOh0Pcmkql/H6/PI48E13XI5GIPBkAAJG7AWOcHOAcDserr74q1gwdDocoma7rPp9P/CBCFYvFbDZbU1OTy+USFXS5XDJyolLisPLgObd6vV5N02w2m6ZpzG0AgD9G5GxfXY0Ug51omPzATEZODnxiaJMZE/USv8qFUDEIyltzJjxeUQDAdxI5GS2bzabr+vHjx8XEJie56SInEpg/yeVEThRUHEHe6vV6d+7cySQHAPhuI2fLu/Ak/zO5nMil02lRL7HblStXxK/5kZMTmziavNXlciWTSSY5AMB3HjkAAIgcAABEDgAAIgcAAJEDABA5AACIHAAARA4AACIHAEBBRc5utyuKUgoAwJwpimK32wsocoqiWK3WEgAA5sxqtSqKUkCRKy0t5VUBANwopaWlRA4AQOSIHACAyBE5AACRI3IAACIHAACRAwCAyAEAiByR+5LT6dQ0raysrKSkJBAIuN3unB3cbncgEPimh53yULOnaZrH4+G/YwCYJ5FTVTUcDovYEDkiBwDzIXIejyeRSCQSCVG4srKycDgstoh3ebfbrWma2KiqqqqqiUQiGo06nU5xazweF1uqq6vD4bC4V1lZWTAYdLvdYv9EIqFpmtg/GAyKpKmq6vF4ZOQ0TTM/rjly8gTEQfJPUmTJvEVETuwp7iV3UFV1ysPKfaLRqPxDAGAeKy8vPzSN8vLyoo+cTJGcXWpra8Wvsj1utzsajbrdbqfTGY1GRSFE7USZZO0CgYDH45ExCwQCTqdz+/bt5tFqhsiZTyYncuIExEmqqpp/kvJxnU5nOBx2Op3i4eRA5vF4xJmbz0T+XZFIxO12mw8SjUaJHICbpHO6ridMdF2fuXBFHDnx/m6e7eRqoXln0Qw5xsn9q6urRXVEwMzzUzwen2Xk5KAm7yKXK0WH8k8yf3UxEAgEg8GcEU3yeDzmw+YUkeVKADdt52ZTuGJarpShEj0QI1rOJDdD5GSxzHWpra0VKTLvMJdJLidy+SeZ3ySxm9yevwORA4Cczs2ycMUUOb/fL9YbBdkPWaMZIpezRWTS4/EEAgG/328+iNxTLieaZ8evjZzsoixczknKR5crqKJb8uHMO4hHyY+ceR8+kwNwE3ZuloUrpuXKQCAgF/HMK4HhcDgYDIpxbbrIlXz1whORrpwPtMQ6YTweb2xsFEuL8lKUtrY2uUBqvjYkf+Rqa2szj5v5J1kyzYUnItvi3PIvPMmJnPls+UwOAIo+cuY3evNVJAAAzIdJTl6LL0ccAADmQ+QAACByAAAQOQAAkSNyAAAiR+QAAESOyAEAiBwAAPMqcoqiWK1WXhUAwNxZrVZFUQoocna7XVGUUgAA5kxRFLvdXkCRAwCg0BA5AACRAwCAyAEAQOQAACByAAAQOQAAiBwAgMgBAEDkAAAgcgAAEDkAAIgcAABEDgBA5AAAIHIAABA5AACIHAAARA4AACIHACByRA4AQOQAACByAAAQOQAAiBwAAEQOAAAiBwAgcgAAEDkAAIgcAABEDgCAIoicy+XSdd3hcLS2trpcrin3CYVCPp/v2x28tbWV1xIA8F1FzuFwDA4OGl9KpVJTxswcOYfDoev6dM2bJZ/PN/MjAgCI3I2Z5MzdCoVChmGk02mv1+twOCKRSM4klxM5n8/n8/m8Xq+u6+l0WkRLtnNwcNDhcHi93nQ6bRiGnPkcDkcymYxEIrqu83ICAP4YkXO5XE1NTTabzev1apr2jSKXTCYdDodYvZRrmOJWTdPMyeT1AwB8D5Ezr16GQqFvFDlN0+SvYhyUx5GTXCgU4sUDAHw/kfN6vbFY7NtNcjmRE5OcCGdTU5P4gUkOAPD9T3KpVOry5cuvvvqqyJKu6/LDM/O0p+v6lJEz7+Pz+Xbu3JlKpZjkAADfQ+QAACByAAAQOQAAiBwAAEQOAEDkAAAgcgAAEDkAAIgcAABEDgCAP0bk7Ha7oiilAADMmaIodru9gCKnKIrVai0BAGDOrFaroigFFLnS0lJeFQDAjVJaWkrkAABEjsgBAIgckQMAEDkiBwCYrdtvv/3ee+/9xS9+ce+9995+++1EDgAwH9x2222VlZV1dXWbv1RXV1dZWXnbbbcROQBAcRdu1apV9fX1m7+qvr5+1apVM3eOyAEACtqyZcteeOGF+vr6Z599VqRO/vzCCy8sW7ZsPkTO4/EkvqSqaklJidPpjEajiUQiHA6XlZVNuQUAUOxj3FNPPbV58+ba2toHHnigsrJy06ZNlZWVDzzwQG1t7ebNm5966qkZhrmiiZyqqpqmmbdomqaqallZWTgc9ng8U24BABS1e+65p6qqSqxP1tTUVFRULF68uKKioqamRmysqqq65557ij5yImDyVzG0iZKJ/uVv4T8OAJhPkauvr3/kkUfuuOOORx55RH5ENx8iJ9chE4lENBp1Op1OpzMSibjdbpG0cDhcXV2ds4UVSwAodnfccceGDRtE4SorKysqKqqqqioqKiorK0XnNmzYcMcddxT9JCdNlzQiBwDz0qOPPlpfX19XV/fEE0+IVcqamponnniirq6uvr7+0UcfneG+xRc5j8cTjUZffPFFlisB4GZw5513rl+/fvNU1q9ff+eddxZ95JxOZzgcdjqdJSUlmqaJgHHhCQDcJO6+++5169aZvypXX1+/bt26u+++e+Y7Ft9XCMRnciWmD+rk0Ja/BQAwbyxevPixxx5bt27dY489tnjx4tnchS+DAwDmLSIHACByRA4AQOSIHACAyBE5AACRAwCAyAEAQOQAAETujx45RVGsViuvCgBg7qxWq6IoBRQ5u92uKEopAABzpiiK3W4voMgBAFBoiBwAgMgBAEDkAAAgcgAAEDkAAIgcAABEDgBA5ADgJn+LfClWpP+b8s+5v9gQOQAgckSOyAEAkSNyAAAiR+QAgMgROSIHAESOyBE5ACByRI7IAQCRI3JEDgCIHJEjcgBA5IgcABA5IkfkAOCmidxPfd2rgoOPHhu4dWen5aXY7bv1He1X9nQO/ey9niKN3NNPP/3yyy9v3Lhx6dKl30W6NmzYcOjQob1791ZWVhI5ACjQyN26s/O19isjE5OGYRiGMZyefP30lfJAX/vlsf7UxAMf9hVd5Fwu19GjR/v7+wcGBgYGBjo6OrZv337DI7dly5bOzs5QKLR69WoiBwAFGrlnT1wYTk8OjU8ePDOs6kPnRiaG05Nvx68WaeQefvjhAwcO9PX1nT59uqmp6fDhwz09Pe3t7bW1tUQOAG6uyN2+Wz92duR6JvviqS9+tO205aXYP/9+UNWHfhu+0H557Fp6MjE0PjqR7bgyvio4aHkp9rP3egJnhq+lJzNZo/da+v+1XPzRttNTbnzww/5PB0dHJ7JnUxO74ld/6uv+y11db5y+cmE0k8kaF0YzO9qv/OWurhseObfbffLkya6urq1bt4rm7d69+/3339+wYcPevXtjsVgymTx58uSOHTuWLl26Y8eOzz777MSJE11dXYlE4tChQ6tWrVq6dOmbb74ZjUb7+vri8XhTU9Pq1avr6uqOHz+eTCaTyWQ4HK6pqSFyAFDokfvb/b2nL4+dH534v9pZ8/ZF+3vbL49lDSMxNJ4cThuGEbs8VvEvfe8lrmWyxpWxTGJofGIye2E0sy50Pn9jXdulzy5eT09mO66MnxuZuJ7Jbj35xZbPvxidyF68njl5aex6JjucnnzmxIUbHrktW7Z0dXW1tLSsXbvWvH3Hjh3d3d2dnZ2tra09PT0dHR11dXV79uxJJpM9PT0tLS29vb3JZHL37t2bN2+Ox+M9PT3hcLijo6Ovr+/o0aMtLS19fX2RSKS9vX1gYKC5uXnXrl1EDgAKOnJLPjjTPZQ+NzLxfw5PEbmzqYllH/X/7f7e9stjAyMTdW2Xuq6On01NPHS4f8Hr8bfjV69nskf6U4mhKTb2XEv3DaeXfdR/z3s9//z7wcWNZ7T+1ND4pPv4hR9tO73l8y9GJiY/6B0W17ncwMh5vd7u7u7jx4+vWbPGvP3xxx9/5ZVXnnzySafTKdYw33jjjT179vT29jY1NTmdzr179/b29n744YcHDhzo7e09cODAww8/XFNT09TUdOjQIV3Xm5ubV69e/eSTT7a2tnZ2dh48eJDIAUBBR+7ext6uq+MXRjNTTnLiM7mf+rojF6+fH514s+PK4MhE++WxRft7LS/FaiKXRiYmT30xdvF6Jmfjx2dHDp4ZnpjMGoYxPpn9+OzI6uDg55euG1/16eCofW/ixkbO4/Houp4/ya1fv17TtM7OzrNnzw4MDPT29u7cuVNE7oMPPnj44YfffPPNnp6eY8eOHTt2rLe3d8+ePfK+u3btOnPmzIBJT0/P0aNHiRwAFHTk/roh8eng6HB6csPxP6wcPvbxgE8fevbEhfzIbYtd7k9NdF4dv7ex1/JSbPNnX4xMTLZcuH5uJHejv+faX+1LrG0+f+jMcO+19MRk9l+Sw20Xrw+nJ3d3Xn3hs0tbPv/i5ejllZ+cW/B6/MZGbuPGje3t7e3t7Rs3brz//vuXLl26c+fOAwcOHDt2LJlMnjhxwufzffrppz09PVNG7ujRo4cPH+7t7W1oaBAf6a1du/att97q6ek5ceLE7t2733777YaGhl27du3du5fIAUBBR+5H206/dOryWCbbPZR+Onyh6sTF3mvpsUz2/e5rHVfGcyJXdeLi78+NjE5k93UNrQudj10eG53I7uy4mr/xQM+1lgvX/T3Xlnxw5uXoZZG9xp5r45PZw32pBz/sf+P0lYvXM1tP/uFqlxsYuccff1zTtP7+/ubm5q1bt/p8Pl3Xu7u7T506lUwm33///aeffjoUCiWTyQMHDjQ1NeVE7sMPP2xoaOjt7W1ra/N6ve+//76u68ePH+/s7Ozo6HjzzTc3bdoUiUROnDihqmpXV9fnn3/+4osvzvxVPCIHAN9P5MTXwLX+1GT2D0uI45PZD3qHHz02kD/JPXJ0YG3z+ctjGbneGBocvee9nvyNK44OfNSXynx5zP7UxIqjAw9+2N89lJa7dQ+lHzrc/118T+65555ra2uTS4uJRKKhoeGdd97RdV1s6e7uTiaTHR0dn3zySX7kqqqqmpub5d27urreeustv9/f19cntohAbtmyJRaLDQwMBIPBX//610QOAAoxcpaXYgvf6apru/RRX2pf15DjyFnxDfFVwcF1ofO379YXvB5/4pNzT4XP/3VDwvJS7KHD/e8mho70p373+RfyE7X8jQtej6/85FyDPrQ9dkWsZIqPAHd2XD14Zri69eLMn8bN8V88Wbt27XvvvXf06NF33333t7/9rdhYVVXl9/sbGhrWrl377LPPvvzyy7/73e/eeOMNsbC5fv36119/vaam5v7771+1atWePXuOHDmyb9++J598UqxbvvLKKx999FFjY6PY5/7776+pqXnrrbc2b97MJAcAhRs5/u1K/u1KACByRI7IAQCRI3JEDgCIHJEjcgBA5IgckQMAIkfkAIDIETkiBwBEjsgROQAgckSOyAEAkSNyRA4AiByRI3IAgHn/f1OIHACAyAEAQOQAACByAAAQOQAAiBwAAEQOAEDkAAAgcgAAEDkAAIgcAABEDgAAIgcAIHIAABA5AACIHAAARA4AgO8mcgsXLuTpAADMGwsXLvzXyC1YsIBnBAAwbyxYsMBitmDBAuY5AMA8mOFyC/cVf/JDyz/90mL/K8vM/uNtlr9b8pUtP/kzyz+UWW7995Zv55ZbLP/97y1//udT3/qz/2ZZttzyy2WWXy6z3P6fLRaL5T9YLeUPWB58yPI//5fl3/3EYrFYfvADy88XWR58yPKP//TtT+Nf13BtlooHLb9cZrlLsQAAbi75kZujW26xLPkf00bu54tyu/vDWyz/9k8tFovl7r+x/M3PLRaL5b/8V8vfLbH84AeW2/6T5e//wfJv/uQbPPoPf2hZfJ/lJ3/2h19//GNL2T9a/uIvLD/+saXsf1tuvZUXHACK1P8Hlud5fY7GZwwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjQtMDEtMDZUMTU6NDk6MzkrMDA6MDADtVRTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI0LTAxLTA2VDE1OjQ5OjM5KzAwOjAwcujs7wAAAABJRU5ErkJggg=="},1947:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-add-truecharts-catalog-201abb147a45192270d8978f1d560324.png"},1465:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-configure-gamevault-app-install-1-f77e819fe4925ed18904f80e6f0d613e.png"},3099:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-configure-gamevault-app-install-3-ac408b5dfd46341a7f7c77f6196fd506.png"},1679:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-configured-gamevault-app-installed-db255883caaf34572f6403034d11f56a.png"},1759:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-discover-gamevault-app-install-203a397bf7abfccc33be4462ec225bb5.png"},7664:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-discover-gamevault-app-search-042a9ac7bc7a5ce195b085144c4a3e60.png"},3346:(A,e,t)=>{t.d(e,{Z:()=>n});const n=t.p+"assets/images/scale-login-248c8e0a2719f7dc7db7893a7d97dc3b.png"},8358:(A,e,t)=>{t.d(e,{Z:()=>i,a:()=>r});var n=t(5271);const a={},s=n.createContext(a);function r(A){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function i(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(a):A.components||a:r(A.components),n.createElement(s.Provider,{value:e},A.children)}}}]); \ No newline at end of file diff --git a/assets/js/1630eae8.fbfdbf06.js b/assets/js/1630eae8.fbfdbf06.js new file mode 100644 index 000000000..178f36657 --- /dev/null +++ b/assets/js/1630eae8.fbfdbf06.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2858],{3731:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>A,frontMatter:()=>a,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"server-docs/setup/truenas-scale","title":"Using TrueNAS Scale","description":"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.","source":"@site/docs/server-docs/setup/truenas-scale.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/truenas-scale","permalink":"/docs/server-docs/setup/truenas-scale","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/truenas-scale.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":4,"frontMatter":{"title":"Using TrueNAS Scale","sidebar_position":4},"sidebar":"docs","previous":{"title":"Using CapRover","permalink":"/docs/server-docs/setup/caprover"},"next":{"title":"Using UNRAID","permalink":"/docs/server-docs/setup/unraid"}}');var n=s(6070),o=s(8591);const a={title:"Using TrueNAS Scale",sidebar_position:4},i=void 0,l={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Log in to your TrueNAS Scale Dashboard",id:"step-1-log-in-to-your-truenas-scale-dashboard",level:2},{value:"Step 2: Configure User/Storage for GameVault",id:"step-2-configure-userstorage-for-gamevault",level:2},{value:"Step 2a: Setting your GameVault Admin user",id:"step-2a-setting-your-gamevault-admin-user",level:2},{value:"Step 3: Navigate to Apps and Disover Page",id:"step-3-navigate-to-apps-and-disover-page",level:2},{value:"Step 4: Select "Install via YAML"",id:"step-4-select-install-via-yaml",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3}];function g(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://www.truenas.com/truenas-scale/",children:"TrueNAS Scale"})," is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system."]}),"\n",(0,n.jsx)(t.p,{children:"Since the release of TrueNAS Scale version 24.10 (Electric Eel), Docker is now used to run apps on TrueNAS Scale. With the use of Docker Compose, setting up a GameVault Server on TrueNAS Scale is quick and easy!"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsxs)(t.strong,{children:["If you are using an older version of TrueNAS Scale, please use the legacy documentation: ",(0,n.jsx)(t.a,{href:"/docs/server-docs/setup/truenas-scale-legacy",children:"TrueNAS Scale - Legacy"})]})}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"a running TrueNAS Scale Server (version 24.10 or newer)"}),"\n",(0,n.jsx)(t.li,{children:"an understanding of storage/users in TrueNAS Scale"}),"\n",(0,n.jsxs)(t.li,{children:["a docker-compose.yml file that you have already configured by following the ",(0,n.jsx)(t.a,{href:"/docs/server-docs/setup/docker-compose",children:"Using Docker Compose"})," and ",(0,n.jsx)(t.a,{href:"/docs/server-docs/configuration",children:"Configuration"})," pages."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"step-1-log-in-to-your-truenas-scale-dashboard",children:"Step 1: Log in to your TrueNAS Scale Dashboard"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 1",src:s(3927).A+"",width:"1919",height:"943"})}),"\n",(0,n.jsx)(t.h2,{id:"step-2-configure-userstorage-for-gamevault",children:"Step 2: Configure User/Storage for GameVault"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Configuring User"})}),"\n",(0,n.jsx)(t.p,{children:"By default, GameVault will try to run as user ID 1000 and group ID 1000. However, this will not normally work in TrueNAS Scale. Instead, you will need to specify which user/group ID GameVault should use. You can create a new user, or use an existing one!"}),"\n",(0,n.jsx)(t.p,{children:'In your docker-compose.yml, file add the PUID and PGID variables to the gamevault-backend environment variables.\nFor simplicity, we will use the "apps" user/group which is built-in to TrueNAS Scale and uses ID number 568 for both PUID and PGID.'}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-plaintext",children:"PUID: 568\nPGID: 568\n"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Configuring Storage"})}),"\n",(0,n.jsx)(t.p,{children:"GameVault expects three directories:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"a directory where your games are located - mounted to the /files directory internally"}),"\n",(0,n.jsx)(t.li,{children:"a directory for GameVault to store the database files - mounted to the /var/lib/postgresql/data directory internally"}),"\n",(0,n.jsx)(t.li,{children:"a database for GameVault to store its media - mounted to the /media directory internally"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"These directories will need to be created before you can deploy GameVault on your TrueNAS Scale server.\nIf you have not yet done so, create the needed directories before continuing, and ensure your chosen user has read/write access to all three of the directories."}),"\n",(0,n.jsx)(t.h2,{id:"step-2a-setting-your-gamevault-admin-user",children:"Step 2a: Setting your GameVault Admin user"}),"\n",(0,n.jsx)(t.p,{children:"You can specify a username that will be given the Admin role upon registration in GameVault. Add the following variable to your docker-compose.yml file under the gamevault-backend environment variables. Set it to your desired GameVault username, and your account will be given the Admin role once you register!"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-plaintext",children:"SERVER_ADMIN_USERNAME: YourUsernameHere\n"})}),"\n",(0,n.jsx)(t.p,{children:"Make sure to register your admin account using the same username!"}),"\n",(0,n.jsx)(t.p,{children:"When finished, your docker-compose.yml file should look something like this:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-yaml",children:"services:\n gamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n PUID: 568\n PGID: 568\n SERVER_ADMIN_USERNAME: YourUsernameHere\n DB_HOST: db\n DB_USERNAME: gamevault\n DB_PASSWORD: YOURPASSWORDHERE\n volumes:\n # Mount the folder where your games are\n - /mnt/yourgames:/files\n # Mount the folder where GameVault should store its media\n - /mnt/GameVault/media:/media\n ports:\n - 8080:8080/tcp\n db:\n image: postgres:16\n restart: unless-stopped\n environment:\n POSTGRES_USER: gamevault\n POSTGRES_PASSWORD: YOURPASSWORDHERE\n POSTGRES_DB: gamevault\n volumes:\n # Mount the folder where your PostgreSQL database files should land\n - /mnt/GameVault/database:/var/lib/postgresql/data\n"})}),"\n",(0,n.jsx)(t.p,{children:"You are now ready to deploy GameVault!"}),"\n",(0,n.jsx)(t.h2,{id:"step-3-navigate-to-apps-and-disover-page",children:"Step 3: Navigate to Apps and Disover Page"}),"\n",(0,n.jsxs)(t.p,{children:["Go to ",(0,n.jsx)(t.strong,{children:"apps"})," -> ",(0,n.jsx)(t.strong,{children:"discover"})]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Step-3",src:s(5441).A+"",width:"1457",height:"695"})}),"\n",(0,n.jsx)(t.h2,{id:"step-4-select-install-via-yaml",children:'Step 4: Select "Install via YAML"'}),"\n",(0,n.jsx)(t.p,{children:'Click the three dot icon next the the "Custom App" button:'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Step-4",src:s(2350).A+"",width:"149",height:"54"})}),"\n",(0,n.jsx)(t.p,{children:'Then, select the option to "Install via YAML":'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Step-4a",src:s(9813).A+"",width:"158",height:"100"})}),"\n",(0,n.jsx)(t.p,{children:'In the pop-out window, enter the name of the custom app: for this example we used "gamevault-backend"'}),"\n",(0,n.jsx)(t.p,{children:'Then, paste the entire contents of your docker-compose.yml file into the "Custom Config" section:'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Step-4b",src:s(9438).A+"",width:"768",height:"724"})}),"\n",(0,n.jsx)(t.p,{children:'Make sure you have all your needed changes per the rest of the documentation, then click "Save".'}),"\n",(0,n.jsxs)(t.p,{children:["The system will automatically do all the setup and return you to the main ",(0,n.jsx)(t.strong,{children:"Apps"})," pages when complete!"]}),"\n",(0,n.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,n.jsx)(t.p,{children:"You have now successfully set up your GameVault Server using TrueNAS Scale!"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,n.jsx)(t.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,n.jsx)(t.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,n.jsxs)(t.p,{children:["To stop the GameVault server, navigate to the main ",(0,n.jsx)(t.strong,{children:"Apps"})," page, and check the box next to your running instance of gamevault:"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Stop1",src:s(638).A+"",width:"703",height:"342"})}),"\n",(0,n.jsx)(t.p,{children:'Then, click the drop-down menu for "Select action", and choose "Stop All Selected"'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-Stop2",src:s(6389).A+"",width:"175",height:"250"})}),"\n",(0,n.jsx)(t.p,{children:"This will shutdown GameVault and the database."}),"\n",(0,n.jsx)(t.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,n.jsx)(t.p,{children:'Navigate to "Apps" and choose the GameVault-backend App you have created.'}),"\n",(0,n.jsx)(t.p,{children:'Under the "Workloads" section, you will see two "Containers" running:'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-logs1",src:s(9933).A+"",width:"343",height:"116"})}),"\n",(0,n.jsx)(t.p,{children:'Click the "veiw logs" icon next to either the database container (db) or the gamevault container (gamevault-backend) to open the logs:'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-logs2",src:s(2374).A+"",width:"346",height:"95"})}),"\n",(0,n.jsx)(t.p,{children:'In the new window that opens, choose the number of previous log lines you would like to view (500 is normal), then click "Connect":'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Scale-EE-logs3",src:s(1391).A+"",width:"574",height:"392"})}),"\n",(0,n.jsx)(t.p,{children:"You will see the previous number of log lines up to the number you entered, and all new log entries will appear as they are written!"}),"\n",(0,n.jsx)(t.h3,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsx)(t.p,{children:"If you recieve any errors while trying to save your GameVault configuration, be sure that all indents/spacing is correct YAML syntax.\nYou can try a few things to ensure proper formatting:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Use a text editor that maintains indents properly, such as Notepad++"}),"\n",(0,n.jsx)(t.li,{children:"Copy the example docker-compose.yml file from above, paste it directly into the configuration window, and add your changes directly. This can help ensure consistent formatting."}),"\n"]})]})}function A(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(g,{...e})}):g(e)}},5441:(e,t,s)=>{s.d(t,{A:()=>r});const r=s.p+"assets/images/Scale-EE-Step-3-cd6b7b7f6b38297a5ed5b932453bdae9.png"},2350:(e,t,s)=>{s.d(t,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAAA2CAYAAADOKtsPAAAGlElEQVR4Xu2c208kVRCHf7Dc79cAyvCwrIIXiGRNyPICcSOiMTGa+OzG+OSLmmj8G4wm6otPxqzPxvXFKGI08KCGxA0GvDC6rImwAgGG+2UYLp463T3MpYc+PXN6Bnuqk06GmdN1qup8XVWnpoeCjo6OU/DBHtDogQKGSqM3WZT0AEPFIGj3AEOl3aUskKFiBrR7gKHS7lIWyFAxA9o9wFBpdykLZKiYAe0ecITqn7e/1j4pC3TngY53nnZ3QY5HM1Q5XgCV6RkqFS/xGFceYKhcuYsHq3hAF1SBQABNTU2oqalBaWkpCgsL5fQnJycIh8PY2trC6uoq5ufnVdRKOYbTX0buy87FmUBVUlKC7u5utLa2oqioSAJ0dHQkT3pNB8FFn9FJr+mzpaUlzM7O4vDw0LWRDJVrl2X/gnSh6uzsBJ0Ey8HBAfb39x0hIQjLy8tRVlYm4Zqbm5Onm4OhcuOtHI1NB6q+vj60tbVJiHZ2dhCJRFxpX1xcjKqqKhBki4uLmJqaUr6eoVJ2Ve4GuoWqv78fjY2NEqbd3d2MFK+srJRwra2tYXJyUkkWQ6XkptwOcgOVFaG2t7ext7enRfGKigpUV1crRyyGSovbvRWiChXVT11dXVoiVKJFVsQKBoOONRZD5S0PWqSrQEW1z9DQkNzRra+vO8575ZnX8PJTD6AGW/jrm0/w4Vd3HK+pr6+Xu8Px8fFzC36GytGVuR+gAlVvby/a29sRCoUUivIRvP7+s7hSbNoWuYMv3/gAow6mUvHe0NCAhYUFTE9PpxzNUOWeGUcNVKAaHh6WLYDNzU1HeUB6UJHg2tpa2aIYGxvzHqp3X3wYbzbHz3P7l9/x+I8KNl74IS34+dVGXJV6HuC9j+7irSzq7AQVdcp7enpk2lNtVqaT/shkSrOUBmdmZlJ23jVEqjrcunEfni8VM4bWUPDZMtAVwOL1atSJt37TAhYtag0acIzPs7ygkp2Byzh9SOSK4kvYEO2euT+ye7M4QUU7vpaWFqysrGQF9ebmZiwvL6fsXWUOFTn8MUrOkfg7eECA0CBIC4VFtBKgZXTkFiqKwq9UAkeRYzSRqbsbxs2TpcMJqsHBQVC9o1Kg61CZIhU1UycmJmzFZQzVSyMP4mZrgYOjk6FIus6Mbq0xai7d/Rdtf4v+iIh6se9jxYyIiE1LxoXymtEN8cqIoNcEBHXiLLPk7u3ie1TiiYqzic5P0zRHHe7HKX66vY9rV8VXGDjCx9GIaX1egCoUitM6YtKkjHRF9CWbiHbGl7jyiNpx/lI7QUX1FKU96k2pHummP5JPPStKg6nqqoyhsu7igyVrMe3McoIqbABwCbgnUwsB0YJHC0/x6w9/4oWgXaQygOoU082ZKTZeFxhpmWg62MaNm9t4jv6WMB3hi++E3MYUUTbWBAuI4/2ojDM9aWAM2Hs0j/iGn260gIAnsiv//lRGcwNrA3pDtycF7Dvz5/nNUMQJqpGREdnoVO+ep1+okz7Us6KG6Oio/X7xQkGV2sk2UMUttlg4slZGOyuShNAZByqQHFVjohBBFky+IRJvGjUZCXIJXopUEkxTVzv9U4SZvINKW/qzSWXxaS6+ULed1wEqWXBfFuEwvGXWRE5QJafXs3W30pudjIQoihRQ2dWiNmA5QeW79GfsjBLuQnLMQAC3KNWIB77s0tf5MJr1UDQd6olUrqGytc1ON7Pmika77EYq3xXqVkFs11KQxbUsRo2a6Sy9mfWO1YaYFo9XxLUgFKAyI5tTTRVX/7iMVKnqxfgbArK2e0SYumFuEuTnSTUVGXts1HJBwz5dNZX/WgoyXJu9qpgdVbQYtuqUpN2d+A9GYfHk4Za5PU+1+4vZyRlFduwOT2H3F412FD1dpD+pj3jsAyf4NrHeivtsEx3X68SGoVB4QeyCo0fi7s/oc4lhZ4em3Z8Pm58pqsu8edupLjNhtisRFH3kVFORGF9+TaPoHx8OuxhQ8RfKvkLrYkDFj774CirvjVFJf6QFP6Tn/Vr4ZgZVqMhgfpzYN8vurSFuoCJN+IcP3q6HL6S7hSo2YvFPtHyBgH4j0oHKqrH4x6T618MXEtOFioznn737AgH9RmQCVaw2/A869K/N/1aiLqiy5YCMn6fKlqL5PA9Dlc+r75HtvoPKIz+xWB97wDH9+dh2Ns0jDzBUHjk2n8UyVPm8+h7ZzlB55Nh8FstQ5fPqe2Q7Q+WRY/NZLEOVz6vvke0MlUeOzWex/wErMgpIc+mOLwAAAABJRU5ErkJggg=="},9813:(e,t,s)=>{s.d(t,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ4AAABkCAYAAAB3jIkEAAAO5ElEQVR4Xu2df0gc6RnHv3reVYwNS26bBrssIqGIDV7IBZEgIeSOIwQJqQQJQcRKCIeVIDaISAgSRGSxiwQrh4StSJBDQhqOQ8KRC/4hQY5cSIMNclgRsWLTbdhaE7bHnunzvjOzzs7O7A93Z2fdPAMh68z78/t+5vu878zuTJHX630L3liBHCtQxODlWHGuTirA4DEIjijA4DkiO1fK4DEDjijA4DkiO1fK4DEDjijA4DkiO1fK4DEDjijA4DkiO1fK4DEDjijA4DkiO1fK4DEDjijA4DkiO1fK4DEDjijA4DkiO1eaEXirPTOsoMMKeH1nHW7B7qrPHLyiot3VzLkyV+DtWzB4mcvIJaSrAIOXrmKcPisKMHhZkZELSVcBBi9dxTh9VhRg8LIiIxeSrgIMXrqKcfqsKMDgZUVGLiRdBRi8dBXj9FlRgMHLioxcSLoK2ARebZsf/S1H4UIIz+70o3viebotS5qe71wklSiPE9gCXitufdOGIyVqvyMLmPjsKiazLENuwCOBTLdCuN1m1rdc9YvBszgd1EEZbv4N/vCL2DTf//VvOD5H+zIdJOPAZ1peOme2rPsQnvz+Q3ws8/0Pf/zTEq6Jj7lohy3gAXs71MpBceFe26/w21L6+OrfKJreAKq92Pjk53QEWMgUvujA78cBbONeLgddwCXqbziMt9UUl0rew38iwNJilk6oVE4Am8BLpepM09gXarVB+UhMFiI7TiBa3EAu4SIaQ2FyPYJRvwmn0LuY8e+4HgvHMQEvUXi3OmalppV7UTnCzS+XUQ8jP+FD0dU3IeUES9pu1RUTtSWZazJ4JiNGorSdqcafDxkGQ3OKaJZ4cOLyqS75S101//z7P3BoZb90T/1+/Et11pgQqGSUeR6Eok584gPy5PeBn2nlvn6Nb7EPn+zbqchyShB1Wxc8lPzx929w4uMylNJJdltzXtkG5Xg53qOStU0XkjXHLKZj77+3U7HWj0Tw2QTeng+1mhuEN9QBN4poESpjwQvLcH2C3GRNhjERvg/JVdfC3CKaFk0cT4XuMA3jkhrOY9uCnSlA+L/43cQmzokpgSTjJ/zlWyrXTSHU6Nb69uvDbORNtIyddoqydPO/16KeVUCcjF469KPIs4oJAd5HCvrKiaG07TM6KbZWLXTT8LQFvL2+qtWFoWyAFzMQMQZrAp7mIhIIGlyRXrqm5khBVMXAjHh31rnVYwHiIpVhAM94YsU5tVkZxn0CcDFH1LfVrP1mzsfgxZCg/JHNUCsGq+MAjumrefkKxXfF/FAcK6fFCi0uxpbRQ3vazvwagUMUu7ZCahoBngfrp1Xwxl4ReBXSRddfvMDxx3T8RBW2qyhPeEtXrgsVVO7jRz/gggDPCLyxTdHjYQzLtoi2GctQ+lJFaZefUd30abtGAa99Yk05SURbjpLl4Ue1HBN91V12fANZhtpL6gXkqb12ATkuFKnOIwRr8OKeWOmurUZDpettJDE4Ue1duBsDTTx4cuCMg5lt8MzqIPzj22YGnm7fAQvwjO23YM8O8Kwxz94Re1e1CS6nHBRgStcKy8H6jE76rbV1VNAcR/zdJMAM0vGFEnKq/fLyywvhEI9TAE91yKirkKP5LtTgcjkZ2sZOHZk4Xmx5YsGibLFuC+luNbQ/tCzqDSnHPeSskS3F4aLuRo4tnVXp344eO2WbDTuDZ6aK/lqeuqR7K/eRu+nDl3Sj/YSLtm2LKEOjpYZK3fHtbTpG28bKBjzqCvUuLTbOC1Bj9h/Ed5/Hhmdjnnoa//UXi6ibp4z1lYgcJvrDmyi5+5J2iPyKM83PLqmhVrSdLvdQe9ZOldNKNYKHCY9twnvKRcG0WJ44O1sY/i9W5LRA1ltDYfUDsazVbXTSKe1I9FD+Ilt+7FPb6scNuld7AK/oXu1NdE/uxXu16V4ziwNYHWwzsOWgmP3KLd08xvRm+fUAGOu0OmYGr6EjEjwCfjssHTD2nmiyN0HYAV4LRmbaUaueyAg/R+BsF+6Y6r/7nfaFWn2bEsKXRNyMwd29OBnllGxq4AHzwuF/MBiYSFNfhYhY1QrwJlcV8JLxpjWM8nt9jRk1Mz5zC/wzbagVaxux/fgcE2e79yB4puBYKLtXITMb+j0LHt2rlaG2Vn4t6vmeC7WWEBmgKyTYjAAmisg614rJlqrbiUy2OF6WDdSiOHtCbSoulwy4TMJzbrTLi1o8FGqLkt3TtbGlu607R+DpTmMroKL71bTK4pW3JAp4hp0FT9+8dCDMPnhxYCWAToQi9fIIXbXQbUbqmEIr/jzD5x11PKt2JYMwu+ClCp0GnClstPOtbnJUROAmujqi9fwdZdPjz0/w5BQ0wRQge+Almtfpj4nP25oLiv+1zyo5GmRxIL2jZCULtf6mvHS8ZCHYRvBUoIzQib/lPgNwoqVRttQPWhjmmZ6lAp6RC3mnjpnTGffZBF4K0An4KIyWBlfgfnIf5WsLdCctnHcicoNSVyASidA3sZV/caAZwm52wLOa22n7NZeLOp3iaKUvV1D51QADl/rY7omU4XA4KXyZg2cphS5cxkzP6Bcxalj1fDOC8pUne0JMbmTqCgjHE/AlCrkZgZdqU7RvlBjTl5fT95R4K0gFtra2LBc9AkjbwVO+BhW/if0MXkEyJzuVl+BpMDJ4hQ2e6J1VuM254+kdkMErfPAs4fN6vel8HyItpYxh1vg3g5eWnHsqsQi1Yrw1x8vqdbxkSuhBM34WDamoqEhWBB/fowqsr6/HgGd0PltDLYO3R6nJQrPzEjzRL3Gth8J8FrrIReSjAqurqygpKbEMtzlxPLMwy+DlIy7Za5MZePpwaxt4ycIsg5e9Qc7HkvISPAGluJvBoTYfkclOmwR4xcXFclWrX9FGV7l2XU5J5HgMXnYGN59LYfDyeXQKuG2Og2d2EZkdr4CJU7tmBZ62wLB9ccHgFT5kZj10DDyrr0KJRopjvLgobCCTgldXV5fVe7VWwGmwaXKLyyllZfTUat4KUgENPNE5sbrVb7Z+Hy8RgJrr8eWUgmROdsox8LS5nXGOpwH5boXaClQf24/Np4tYL1zWYnqmB8/sWl7OFxfZBa8VvukGBMeuwDe7yxFt9WG6IYixKz4kLkLUdQQLzT30KDH95xTqbbiKsc4qPLvZhfEXKaTHKfSMd6ByYRgdt75TM7jRdHMEF0ofYqBnArKYppuYungAj4c6Mfp0p9xTPePoOB7B3HAHotnlYTdafWNorFzB17IfoL+n0RAcw5VdC2jeHwYv2TjnArxkbTA57m4ewK1z27jbdQP3gpSgjuC6VovV6EnmRvPALZyn5+2G5kd0gAIKeC5sPQugfZCe7attVe3wD56Bp5jB28WQ6LPoHU+4xCWULqzDc6IGruIIgvO3ccP/CEE600939qG1wYOy4m28WZvD5OAottuVAVI2dTDcp9HZ14oGTxmKt99gbW4Sg6OijGSOp4BwcmMYndJ+FHepXxOuVa1zS6CmuR9d56mN4mHvoRe4P9KP6TgnrKNyulG96Kf/l3H2ug8tpQ9w9fo0tUUU34yBW/VYfbCFU/VBjHTcguaNArxLh7ZQ4gpiun0QGnrHOkfR632DlUp6Rwg7XibsGcHrQG1oBj7fBILH+tB/2Y353m4EKrox3nEI80M+BII16O7tRNUPQwogBsc70xdAq2sOQ75AtIwnVMb4cjLwiAUqa+zoEnq7x7GMJtycOo2XwyIM6vIK1xmqR/B2PwafutHe04tTm3fQOjATJ4SbQulIE71wxbeGhr5aLPupLJUuWVfdKoY613F+6gy2xnemGxI8PMRC5XkcnL2K69PSMnF1rAsHv5tD2dlKPGPwsgneJWBKGwAdlJs0YL212JgOYGp2HsvSMtTNAF5F9THs33yKRbkKOI2e2xeBO6LM5OARefCNHcWSALX6OibPhjBCLvNU75buKtTSF6/Xny9L53K3EUA1C2juMXsjbA2u+G+gwR1B8co9dN24p7gdPc673T+EY8vKydN0cwqN4cloWBXgtX9wH6Objeg6OKu45Jk+BJqB6ckImjrcmGPwcgDerBu1TZfQ8mkdvO4ShNVQ+0iMogE894k2dLV8isPuD+hZ7WIL4YmcV6UAngyvoziy0IlZrx+Nm6Pq3Euftwbnei7j/FEPyrWXEa98bQEegXnuBvwt5Nz9tEDRwnHVFXJNckB1USHng41h3GkdgPBNOcdzz6H5ixKa09GCqK8b6xcDaMY02h/XkvszeJlQJ6jRrWqVOZ6p483qqqk4jitd3Ti+QSs5P70wNwY84SSDqN+YxFBghpxRX34q4CnhdvRIEE9dlQjf1laVurzCeVpcmBsZQeDJ+g4kpo4nKYoBRfREztVOHjRoF8Hil5dApqgrc0bOM4+uzOBNQx1ejlB7ymLL41XtrhBMDby7VX4M0QR8YmgcM5sVcl5Vr4F3aRDTp0P44rIPj+ilVZ2jvah6MYDBMXohSlMHOi96sJSy44nYSW0aoZXj5rxuwq8DT1wCaYzgy+s38RVOouPa5zgVeWDpePHgibnaNVp0xF5qkStc3Jdh9YjmeASzdENa+m5vPMSN7gCWDSAzeDaC55utQXN/J85Vu+k9JjurWhlq3U3o919ETekS7jf34ZvTnbjedhIVpZRuZQHrB2qBR83om0rN8WJXs9o6MzbUNvd3oanGheJIEM8WIzjqWcGtK36IF5bHbUbHq6OQe60SYsETWNalFk7a7sJsRw9WxWpdhFrpomfQF2iHe64X3SKDCXiNlbG1hp5kfl2vwK/j7YpWzpQDBRi8HIjMVcQrwOAxFY4owOA5IjtXyuAxA44owOA5IjtXyuAxA44owF8EdUR2rpTBYwYcUYDBc0R2rpTBYwYcUYDBc0R2rpTBYwYcUSCvwXO5tN87OKINV2qjAqFQKPpD7pz+oFv0SfymNtHvahk8G0fe4aLzDjwNRvH7WgbPYTpsrJ7Bs1FcLtpaAQ0841MERA5bn51iFWrZ8d4NXPMOPCG79uQo8WYf8Uh63gpLAfEkMPFmH7GoMC4sHHM8zQkFfAK6ffv2FZbq3Bu8fv1avsdEe/i2URIRav8P6GrPOLR3FJEAAAAASUVORK5CYII="},9438:(e,t,s)=>{s.d(t,{A:()=>r});const r=s.p+"assets/images/Scale-EE-Step-4b-baaa680295deacd56edaa6c243a71e10.png"},638:(e,t,s)=>{s.d(t,{A:()=>r});const r=s.p+"assets/images/Scale-EE-Stop1-2eef156d34b62e4d675eac577c2b0c67.png"},6389:(e,t,s)=>{s.d(t,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAAD6CAYAAADX0RcxAAAgAElEQVR4Xu2dD0gb3dfnvxURCSLZEkQkBHGDiIiIBJESRIqIlCIiUopIkSJdKaWUUkSKFCl9i4gUKUX6llLkQYorIvJQuiLFVyQUEXFD1xXpI75BRMR1SxBXguRn99xJJpkZ8/+PzSRnHsqjycydc8/5zLnfe03OvWaxWH6DD/aADj1wjeHVYdTYZMkDDC+DoFsPMLy6DR0bzvAyA7r1AMOr29Cx4QwvM6BbDzC8ug0dG87wMgO69QDDq9vQseEMLzOgWw8wvLoNHRvO8DIDuvUAw6vb0LHhDC8zoFsPMLy6DR0bzvAyA7r1AMOr29Cx4QwvM6BbDzC8ug0dG87wMgO69QDDq9vQseEMLzOgWw8kDG//hyXcsQb77XaMoPPFYlhH9H+YQ9lsJ17gJea6DtD54H1Ep0ntYwY3o5ynaqT/A+bKZiPaodtIseGXPJAEvH4YJV778WGpHhs3HyAckvHBS+19ADbQ6gM+/DOB1pdz6DroRDyMMwfZ4YHUwTtXhtnOF1hUZr/WYJYNBa8Ab7BmEyPiOqU/qY0PeED/aTIpvb7kT/c7Mzel97W/BzKv4lzs+DO4sK2ebmS1wkj/k9qgp02ywy5eccMxEvlhyY6wZ0cvkoBXLRtkEBAjvO8PWylfvw85xPeLtPtAZHHKwPJDofq5FS/nunDQ+QC7yswbuHeF4joaF0iC1G/4YW899D0sgQcL6ntIt44sabIj9PrvRRLwKmWDAMT/e4UiW4bLvIN2VeZTu1FIkDsIyml/NgyjlVWyQYbXYVfravn1g66gJlbYFsy8lHujaHf9hzx7epBCeIPZLTB0R5QNu4Hsqcpz2klX2Gzqe1gcdoXmjSHzXraNMm8g2yozffYEOVt7kgS8atkQ0JU0yXo5NwhJQorDrzd9qxM7mBk5RKu82iDgHizFYmCiJ7JuKw5VulMxGdRqXoVelTVwVM0rr0bID9bsLlorujCo1NKsGnTBe8Lw6qJ3bGRWe4DhzerwZnfnGN7sjm9W947hzerwZnfnGN7sjm9W947hzerwZnfnGN7sjm9W9y4heEtLS7PaKdw5tQcODw8z0iUJw5upHcpIL+vYKJGoMjXWDK+OwboK0xneq/Ay3yMtHmB40+JWbvQqPMDwXoWX+R5p8QDDmxa3cqNX4QGG9yq8zPdIiwcyBl7p47O+LzGI49q1a4lt35oxHUpLuLhRpQcyJtYKeAW4EsCJbJydMR1iztLugYyJNcOb9lhn3Q0yEV7hZPHNGc68WYdbajuU0fD+u8Xy+9/i7G/GdChOu/n0+D2QMbHWTNikzMvwxh/QXLqC4U0m2uKJe1iOvAsXJrSVdZJpNx3XStnBhkJ4sJ4llXcYXgkUzVfixUtux+VST1qoUgSvKCzSTZ/kPN9IYV0zYZuv0aiFA9PxrFxFmwwveVnUbbhlArybvmqSUpUaWyHgWY8MMMMbhlEL2l+P4UkjOTXCcbw6jmfP/8ZegqQzvH54m4qA0xVfcbvLCVYudud/R87Kl+C9nMGDJZouvyeE/UZ9uAIpQSu0JVuVo4KyHJR0hSikslEfKPLna4UKqtzcQP1SE4pwihWpkIq2dJW6uN/D8kIYzIXIl82QCwLGDFoJbr18h2d2H8Dy4v3v37+l348dY3j04iuOYm7v8okMr/CJZraokgyiEo6PbF89XuXvs2UqzVtBGVz5EAjo5N8FpMHsTsX2lm7BBC82SX8edKmvU4WJbHtpo1d+vcAL6faKc0UlSl+j0ggh7h+4B9U+U9ktwSrDO4syqhxUQ2QefxUPrHiwHqI87wKuCV+ZqkE79Rkugl57bjy0qQGWr0wFuKIthlcTC21hO5GhfCVGNYfIvgKmwITNAbuylJTidLdjEZs1jQE4tDV9VUBeyvwh9LiUYG9itmwOD8vzcOGauFzRUvvQqeDVZmFfKVW5LdFnZbuR7YsGsxrgVIHL8Ibzu0IO7B7bYVXoYW1WDK42HKBLkU3VgIqsF8y0ccGrgTB8NtdUuY4Er6jJNlhDkuAYX/212NIHr/CYD+BeTCYtFZT+58zr137l5JVTfwlRX2FpaUz16UfF0CwKVAeG4xCyQTnxCw8aVMN0JNmgsuWBqF6pGO41soHeDGbMJGVD6jJvtMyc+PuZCG/ggzlX90eKyEtllyZFgWU0qn++dNdXr3dnmjSxS12Fkl6OOGGbJr1JJUxV7Uvt0IuBQ2vbOb0j/h1imrKmK1A53X+BfL1Kx+/QueuwLTVLE7Zluk5Udw/YHrg0aE+/eJpdvgLbD0hLNwvZv+x7P1MOhjdTIsF2xO2BTIRXdII/zxt3KHPvgoyBN4Tr+VNlucdjXD1meONyF5+cSR5geDMpGmxLXB4oKSnB0VEyf6OL63ZxncyyIS535d7JWQdvJnco9/BKb48zOdYJZd5wHZI/EJJed3LrV+UBEU9Z88p/GIj33oleF8t9koaXgY3Fzfo8JxXwKnueapAThleUvUy1MfoMcfZanWp4Uw1y3PBeXFwkPZRkb7izq2fphFf+K1kyHosZXlkeKDuUzI35Wn14IFnNG0svEx3BY4JXqWtleGMxis/JDg+kujJ6KFgTATgqvKEmZOK1/Pz8wL/sCBH3It0e8Hq9kP+lAuC44ZXBLSykL0/ywR5IwAMej0eCWAtwvNk3Irzhsq4AV2RePtgDiXhAgCsATjb7hoU33PqteL2oSHxxkA/2QOIeOD09DbvUGmsGZngT9z9fmYQHrhxeORtz5k0ianyp5AEBrziSkQ4hM284rSv7neFlApP1gAxvMgDHBK/yDxTiSWF4kw0dXy/gFVwFvgnsL9UveyYW3RsVXu0fKBheBi8VHtDCq83ACcGrlQzKrCvfgDNvKsKX223I8CqhjXfd91LmjQSvaFys0RmNIUoz5XYsuPdxesDtdkt/K0hGOlyCV3xqLNLB8MYZJT49pAdCwRuvdLhWVVXlq4epOWSItTCL3wsKCjgk7IGkPBAPvAaDIeS9VPBqJ2fiCqXmFT+LfwxvUnHji8kDAt68vDxf5RvFSkOon1MCr/C6kA38oRzmL1kPMLzJepCv/2MeUMIbbsVBzsJJZV6lnODM+8finVU3DgdvKJAZ3qwKvf47w/DqP4Y52wOGN2dDr/+Oy/DKMiHUKgNrXv3HOSt7kHZ4tZ9r4KWyrOToj3RK1/CWVDWhoaYMxsJ8XHg9ODnYxNrKtrThXUVTF24YdjG1sBG/Y+vb0FNxhu+zK9gNd3VNC+7WFcG1NI/Vg+BJ4r712MDsyi7q23pQcjSFSyaUVKGpoQZlRvoe3wV9F+vkAJtrK9iOWAW0Hm09VCp0aoFaT+SoQFPXDRh2Q9gTpbmw/UjEjBReo194yxrR3mzG2Q8Hvm8eIt9cg4bGWhS6FvFl/TjN8BpQ29qO6uu0c+y+A/OO/UBIosNbhsb2ZpjPfsDxfROH+WbUNDSittCFxS/rtGlVuIPh1XpGv/BWU+ar9mJ9dpk2PfUdZXXNBMEhjow2VMvb6Xr2fBm0pBYt9mqUGOgby94zHG058O0HpbqKJnTVF8HtKUIJXbt/VAKLRf5K/jG2QmU6Qy1a2y1w//SgwuKBY94BGd/o8Faj5W41vOuzWA4ajubaQhwurGKb+lFS2wJ7dQkM+RfwHG5h5dsPGk3U8BqsjbhZV06jTh7O3bvYWFrFzhldbLCgoakBFSbK6jQauV1OLK0Wo6mnmnby9B2eve/SyBC+DSsab9ajwliAC88hfp2XIm8//oydwiQbsin9wmuoQUt7LYzun3Cub2HnWEROPXwHZYMJttutKD9dw+LyAQy2ZjRXeOCcWcK2gPdGCdxOXwaXWokiGwz0fofFjeX5U1TfrcL52iyIBemIDq8BNS3tqDW68dO5jq2dY9895aPCjs6G6zhaXYbjVwmaW2woPljB36ulQdlgqkNbixUX2w44fgLVTc2wen9g+tsWKptJthj24HCs4ZfBhqbmcng26EH5qZENEdqobrmL2oIdLC+v4+y6DTfsVcBPhlcKUcr+wlZCGaK+BuVG+sSQ9wQH2+tY9wOo1rwGmEqLgZNDSIxTUG91mnAosqqUeYENpb6NCK/vQTAfL2OexG4NBbrKSxp3mSiKCV5xVgmsjfWoKTfCQPsanxxsY32dJATZVm7vRGPhTwJxU2rPYLuFTtMhaXcE4a1rQ3e5eHhWIcltazO66i6oDwewUGfyNmewJFI4HcUmMwrO93F8ooE3jjZyRvMqk4j46GOoz/amDF75ZgYTLBXVqKPJ2/n2Nyw4L2teeXJXTJO7POk6vySIF15TA263leHYP1Ez1Laivcrry+IxwxswHCZLBarraPJ2vo1vC05YaJIXkDzyaZL0OUWlf8LmFpPRgLSRTxL9OUJJTwXOvgdHAkVKV03YpIc7xjayGt6GhobfkT6AroVYrjWlBD3en2V9u7DqTzF+cGSpoM68lWimjFToImmwvo8TSSoYsJtA5i1r7MBNq7ZgiheHzmmIZBlVNpTVqfStP10H7DkRw37eJmbk1BlwTFDzbotsXHqMhS9rmgmeyK425MeQeaWMHrINq+QrZfbOanitVmvcH0YP90GJWCE20FJVe00R9kmrbmzTHN1URROVeph+rUtDuBh+7cV7mPtKug2kj0mbwrmIb8R6eWMTGq1eknFhZIMYUq0erCkmgz67zLB3NMMkJENghcG/8oAt/L34A6XRlsokrV6Don0nHBvbBJ8JVQ1NqDf9kiafPytJAtQbcbi+BAdN6My2BtTk72Bh9bpC89pwu7Uc5zTpdDhPYKiywUYgri5voUSleetgJ716sUUP1lY57J12FO/N4es66RNTtDZcuaF5lfBG+zC6QEBk4mThJTWI0roGNFhLUSSkAH1G+NS9g42VdewJXWumpTS7FcXnLjjmHDijGXxTdSkK8+i8g2NcmIvxyzEHR14IzSsAu12L0vxf2Py8AKf8RJnt6GgyYn/xC2g1LngI4GyF2J1fgNsWfZ3XUFqHhgYrSotoRYDs8Z66sbOxgnXJcAMstibYrNdptUEsjBxhy/ENP47Uqw3KNW6vxw2XcwmrYrkh5GrDjjQpNDe2w24txjmNQHMOF8K3kUOrDX8G3lhzNJ+XrR5IyVIZw5uteGR2vxjezI4PWxfBAwwv46FbDzC8ug0dG87wMgO69QDDq9vQseEMLzOgWw8wvLoNHRvO8DIDuvUAw6vb0LHhDC8zoFsPMLy6DR0b/sfgFTuB88EeSMYDe3t7UolTcYQrcxq16EgiH8xheJMJG18rPMDwMge69QDDq9vQseEMLzOgWw8wvLoNHRvO8DIDuvUAw6vb0LHhDC8zoFsPMLy6DR0bzvAyA7r1AMOr29Cx4QwvM6BbDzC8ug0dG65reKvbB9DXWQ+zgT5Z5D2lonvz+Dj6N5W8A5oHPuChyYE7A3+lOMr1ePRuEDd+TaP7xZyi7XsYnanB5p0B/AXlz+rbR7I5rKHNA/jQDXx+MIrlRHpzbxQz9mNMxHt9svdNxNY4rtEvvPUP8XawDsfT7zAx9wMFVOCu78EdGFcH8fTTbvrgbXiMiSeNMNJWK/OPhzATKLgXA7xRbGZ44yCXTtUvvB3DmLp9hk99o1jy97m++zm6jE5sl/fidrn/Rfe6L+OUteLxs27cMBuooiSV1F+cxPjkdyox2oyBDz0wHZ6gpNIMQ54HByuTePVuKeTmJg2PJ/CoeBVrpW0oXXmMoQC9McAbwebnE1+p7OhNPHp+D3Zho+cAK5Ov8G6Jng5NBqy+M4wnHdUw0p4V7q05jA/PSKMNqtvx/NFd1JlEeUk3tubHsVz+BA9tRr8zXPgijQzVuDP8BB3VRtqNiM6bG8fwjNQCpLY7qW3hh+1DFFHp1Kl4M3Z8DCZ8tn7hNXXi5fhdmPcWMPXxbyztqvfRUcuGCtwbfYVWLGJ0dBLH1Q/xrN+G47/u4/WCgPchrPvTeDcxh+P6AQz3VcH1Sbyn9as49wGKFroxX/YOg5Y1PCRZ4rtzDPBGtLkC3a9fosX7BeNvvwG3BzDQcobZnmHMK+FtfooP/eXYnhjBm50aDAzfh9k5iscTbtx/M4LG40mMfPgKj+jH/VKsPn+KT3a1bGh++gH95duYGHmDnRpxnhnOURpR4BvNDj8O4/VGIW7dH0SvdSd+uZEwjvFdmHJ4lbeXq6Vrq6aL31PyYfTqVjzs7sANqwl5Z/twfpnEJ5IQAiYVvKZejE7YsDfyCO/8m5jdGvoLdzGNe6/OJHhNjjvwyWMTekcncOPwLR68cai92fYcn+4V4kv3C8zVU1uDFdgYJDikzVRigFdKbeFs7sbrmRs4CNh4EwMf74LSHkYR1LxeAu+hcSGgt029o5io3sSd0TzqYy12yJ4Pkj0mVNSWAQc/sHtLCa8dT6m/RnoAfZLd19/qzTsYzaO2ancwSPeQmsgFzZtIWf/ki0sruDJVoJEqgnd31OL06ws8/6zRvCIID01wSEOm7wjCvaeB1/deNz7jweiyCl4BfE/BvB+cBsp2z1DuJI0t0RIjvHKLWpsPushGG2lp9eH6Qg/VXhBey+hMUBLJpwpp9Bno1vQx0JJqwibsvI1yzX3c6xPU4271JDcX4K2qqgpb1j/chiolJSXxjRGas2V9K2nFS0D+FSLzKrMSEH/mJZnymXb+ITmpOo5WMPLoHe1KGR3eiDZfypyKuyggyhv4iN6CORoxgv32nSnuXxdD5hUZvRcFc/egbULK4rmWeZXwasv6h9t7OFl4TZ0vMd51HRtTb/DXV8p8Fbdwf7AXVa5PuE9i1U5D3+PS76RJSeMiXs1rxc4EDdeKxGu68wpvO6BeYRArD8+qsD1GWnEtOryRbf4paVb72TzGxz/joJj601+Hn+9eY75CsVQmSZcybE6+xptFwHb/Abryv2Hww4Fa81Y/xeBD0sZCy1a9xsxNN977J7dtzz/hXtkmJl+/oVmADfcfdCH/2yA+HNzHm5FGHOeS5v0T8AqtVtv9AH0tNbS3A6XDi3Mc73zD1PgkvgvR20BAPW1G6ckq3j54A0fE1QaasHn2UVASbrXBhDuv3qLt7C/pwQgeFT5gDidIYlhiWOeNYjOtFgz0daJerDZcnGHf8Rdei1UP1fBtwo3eJ+htraTVBrGosIX58WFIiwUhVhukVQSaKA6/uYvqwh3M33mOz6Yb6H3Si9ZKWm2gfeDcW/TA+Fcscm614c/Am5TqUI7JlzRvqlrmdtLrgZSsNjC86Q0Stx7aA/HAK2SqXONB2do1fcPLaOjVA/HAG251i+HVa/R1bjfDq/MA5rL5DG8uR1/nfWd4dR7AXDaf4c3l6Ou87wyvzgOYy+YzvLkcfZ33neHVeQBz2XyGN5ejr/O+pxxepT/ExyHT9ZFInfudzU+BB1ICr8ViUX2eNxSwwlblNyuMRu3HrlPQG24ipzyQkg1VtPCG+gyveE1+XUDM8OYUZ2npLMObFrdyo1fhAYb3KrzM90iLBxjetLiVG70KDzC8V+FlvkdaPMDwpsWt3OhVeIDhvQov8z3S4gGGNy1u5UavwgMM71V4me+RFg8wvGlxKzd6FR5geK/Cy3yPtHiA4U2LW7nRq/AAw3sVXuZ7pMUD+oW3ogldNwzYnVqgCo3+I9RraXFbqEYr0NRVD2zMYkUqbhvPUYOWu3Uoci1hfvUgeKHoj9TkCnaVP6uaNsBia4LNeh2G/Dx4aW8O984GVtb3cBbBhIqmLtST52bjN1ZqVVx/w7CLqYWA92PrcH0bekqO4r8uROsMb2wuj+GsxOE11Laivfo6QMX+HPMO7CsfxmjwVrfgbm0hXKsrWHV5YbLWotFmxik9RMs/w5vN8Pp8c+2PfCQyWuaVMlUR3B4DTMZC5J27sbuxhNUdkY8MsDbeRH2FEQUXHhz+OkdpsRvfRYYTmcF8gcOC6yg9/YmplRM03qxDObWR7/XA7XJiaXXHl9VKatHSVI3Swjycu49wWmiUoJGSmcEauE59by1QBtS2tsPi/glPhQUexzwcMr0xZN7Sxna0XD/A3Nf1QKataqT9Mjw/sOw8IDMacbOuHEbJxl1sLK1CuEAFb1hbKas3NKGhwoTCfC88bhecdH1xUw+qTf5+ePZ8fovQxiVf5+1z5o0oGyS4S+B2OvB98wxlzS1oMP3C+uwyflY2S2Dvi2x1ZICtqRlVRQdBeCvzsSNlshNUUsX1eoMLy8sER1kzWhuLsLfwBWvHZWhsb4b5ZA2LywcoqGpAU70Jx6sCXhPq2lpgvdiGw0Hpr7oJzVYvfkx/8218ojwM9WjrsMC9PI/Taipefb4WHMpjgBfmRnQ0leNifxMbzk3snygaN9WhrcWKi20HfGY0w+r9gelvWwp4T8LbKvnJgD2HA2u/fH4q95DUoJSulg0R+iuNDAXYWV7G+tl12G7YUQVKCvHKjZySDdrMbLDhVqcFJ445HFi60FCwTUHc9LlEZNuKsyC8Ck1WbDKj4HwfxxIUVjR31eFCZNdD0V4pjiWQJRWo0LwETXe5BKRPwiqu0+hhk+02Ws3HWJ5fxUENBbrKSxqXHjCpyVg0LyV5Sx0aaq00elDB3jM3dpzfsU4PHlGJ7nK3r23JDIKx7kLS0GSsX/MWh7VV+Kk+bxMzS9s+PxWbYC44xz45Qw1v+P5eaoM1rz+wkSZsl2RFEK7Tyh5UnH0PZrgI8BosNsqoVhipgLWvor8He98JXmgnjAp4pfcsKNRki+OtKagTjgkNt9tQduyfqBlq0dpeBa9zBhIvMcIbuA3BZa20oc5qwOEaPaRmmlRZLlmBLZrkumV4981hbT0q0fhJ0R8VvJKvQ/f3UhuZDm+o77Cl/GtA5XZ02ouxN/eVhiO/V0VmaSjEzucFOFOSeU2w3W6B5dSJlbVtHJ/REN9TgTMBb6TMe+m9EGOeeKmMhvybVhRp3vYeOn2jQgzwKvWt3Ex9mw+6r2dV6KR91Ba+rF3aUy6gedeva0aQoDHiHFt+DJlXGtWUo1CwDauQXcrsnWnw/vO///n9r//872h9+EGyum9iEXaDFycrbXj00deRlMMrDdONMB3TspAAK98s6SkrtvFtwYnjkJr3GKtichFN8wZkA+najmbaYHCJJmknKK65AXudEUcCXtK1ttutKD8NrXml9863SPM6cWKogs1GwV1dxpY7GFizvQPNJiEZgisMvpUHYOvvRfwojS4bzI0daDKfYWt1FU4SvMVmG27YK5G/s4gvrnLcbi3H+RZpXucJDFU22Ajm1eUtXA/IhhNfP0LZWqLWvHV20qsXW5JmLrd3wl68558o+n0RoQ1Xpmref/4heP/1f/F97A6GaZOPUPCKkKX628OG0jrcaKyCSQzpF16c/XLhx4pvNi1lLZqw0SIDDFFWG47d5zAVHmFJaENNZpBm6/UVMBZcwHNMKwpFpaDUDno+Iq82lFShqaEGZaFWKSR+zbB3NMG4T5CtKzdArCRdbUPh7jwW3LYY1nmLaeXkBmrKjSjKz8cFrYicHGxibWUbR8LEKlotqCmj1QbafcLjhsvpW3FRrTaEtTX0aoPkX5oottutKD53wTHngCtCGxm92vAf//N//f4vv/8PvNSRCdr+s1ybeXvfYPa2hRbQvdK/8/OfePz4TZixNEUvR/qDhaEU1rICuA/2AhlbnkWn6O7czBV4ICV/pPiP9bXf/89djDISb+ebo1gsHQjKht0hTPaW0WY9u/h0fxQrTU/xtqsEQ0Ov09u9SPAW0xrsjVqUXzdIu+F4Tnzrl1JG4UM3HkgZvP/5fhElz27RBlO0pZTLCEOBX/N6xzHfUR7Iur7Me06Z97FunMSGZqYHUghvF4bLJ7Bop/RLuvDgxAfvXOkUHltpv7CjRXQ+m5S8wEVHMhMGvVmVWnhpsvaA9G6XgJUy7M4srTYI2eCjF4udzzB1VbJBb5Fge+P2QMrhRcsLTA/YYSB4XQJesVT2JyZscbuCL9CbB1ICLxfa01vYs8PetMDLhfayA45M7wXDm+kRYvvCeoDhZTh06wGGV7ehY8MZXmZAtx5geHUbOjac4WUGdOsBhle3oWPDGV5mQLceYHh1Gzo2nOFlBnTrAYZXt6FjwxleZkC3HmB4dRs6NpzhZQZ06wGGV7ehY8MZXmZAtx5IC7yhyj0JD6W66Ihuvc6Gp8QDKYG3oaHhdzhgZWiV78vFR1LSA24kZz2QEnj5O2w5y88f7Xha4L2a77D14d1CFxXW8x1ezxF+LnzA6/eOSxURtR5uGfqM+/iE7lffIji/BUOfn6F0KVgsMK5I3R3FfG8JHEO9GFsPXqm8d1g7THb0P+9HW6W/IvnRTyx8eI33DmVNs8vW9L1bQJ0zQXuReH+Tu29cXlWdrHN4b+JwrBuvvlFd2pYePHvUAnwbRP87f9HoMH5JP7wm9Ix9lOpXuL+PoHd0NWBJLPB2jcyjx+jA+KsxLHusaOl9hkcNR/h45wW+RIh1chAxvJJrry7zyvD6ImrqGcPH9rNAkE1tz/Cqj0rRUxGf071lfHw+hgVKXmp4a9AzMoiuGspy+AXn9GsMTjWqsvovx5iUpcO1d4knUw/GPtrh+nKCFvsxRnpHIeMbHd5aPPk4Cut6Dx69lzNtO56+qcevz8OYpCxe0zOCwa4aqmwJ/HJO4/XgFMTjqoLX1IZnr/rQ7Os8lj8+x5joPBXksj8axpM2qgtM+0ycusgvQ27cngqOYlH7K9p+TW1bqO1fTmyf1aFwNdGMn/OZV3aAkBLNOBjpweuDXoyP3oJ3bhQjX4Gu4SG0nU6hY3BWBW/L8yk8sW5i7MUIduqGMdJvxvpwH8bXNZmoMnx7Wveb+t5h0u7CcO8+7sy34+SdGB18Z0WHF2ikslhDdi9WZz5i8vNqcHcgqYHnmHpixebYC4zs1GF4pB/m9WH0ja8r4K1E7/gobnnnMOrrPIbaTjHVMUjVOl9ipu86VkZG8G6nFN/2qPUAAAaaSURBVP3kl5u/PuLOC49aJkXorzQyFC3g1fB7HFr7MTjYAXxheON4DAWo6sxLuSf4mnkcX5r3CaAxSJKzbRjT97z42P0KFCW/5vXi+dQTGL90YGBayt0kOaZQI+lGDby94dtTK+dKPHz/Bg07w+glsXt3dB6dHgGHb8CPBV4pO957jJ5btTCL5PZzAZ/evMcy7RLULB424xd0+AyGqf8dpmqcaKPSRMHMSw/al2bsD8t6uw3D0/fg/diNdfs0+vKn0TU07/O1uQYNRjfWNqvU8Ibt7zrs033In+6C3ERyciWOkGtOzRLNeznzrtk/45md9jZTHTuYbXsEVwDecpU8kE/1DZuC8eCETUAXrj1/8Xff5ZWP8P6tDTv+iZokZTo8mOwagsAlNniDRptrbuF23z3cNv3AeM9rlNOkTGhp1fHLgTEyWLwnTdhcQ/j8zI5LvafyW866Bdw89Mkg9aF+WMP314k6TdJgeON+AC9nXqXmXRUZqW4bj+n/2r30ggDlU0ZSZ5GgGepgShkuTHtK02005L9qoerpqsODH5O+7B4dXrW+9TUT7OulzKm4TwCi+X68m6rD9mP6v6bz4v79hTNRM2/4/ooszpk3blzVFyjhDbHaUPkQ798043SWNO+kC8aOfjyxbWNsaBZWxVLZ7Zcz6LNs0KRlhGbyjeh/dBcFC0/wdrmZJMUgyhz+iVOE9lwBwxoxMDmM6i2SDIEVBv/KA2bR92wKdYp7h171aMSzySE0HM/jzfhHrNJuPY39gxi8nY/Fp/2YqBSa1YKNj0MYISXS2P8IdwsW8OTtskrzCunSfDpLmncSLmMH+p/YsD02hNkatea9NziATu8MzQWOY+5vjfDZ9SXWvIkTrFnnPT3A5rdPGFOs89bQUP3obiOtNlD981PaCJACLmbcKmiUa6q0TdXx5ixG/LP3xicfaaJjhntlBD2vlxGuvSC7A5gcqsCagEyZ8cQkqf86FntJsvQH15jDLtmZb+PJ4B1aKSjx7zy5T5sfvsOrWbGmQHq4/zn62yql1QbP8SZmabVkit5SDd81pEnpQWyk1YZ82o/YtUx9GVugNfBQqw2+VZiY+8urDcbEueUr2QPkAR1P2Dh+ue4BhjfXCdBx/xleHQcv101neHOdAB33n+HVcfBy3XSGN9cJ0HH/GV4dBy/XTWd4c50AHff/yuAVPuIvYOqYlAw0/crgvTc6i+ofnRj4i7dvzUAOdGlSSuBd++ef38X/+pfkgJ3ZVvS/v8C1a9cC36gQrzO8uuQjo41OCbz/498sv//bv1M/W4cx86wEiy39+KDpNsOb0Rzo0jglvHl5eao+iOQpDvn/BoMhZB+v9Vksv2nPbOkQG2fXbbSgX0OvBO/RKorq6lBE+xI/evRIlw5jozPHAymHt+UFfdaT8u6dYRlnX2cFvLeKV/HuwSiWLy5gNPKnyjIHA31acqXw8oRNn5BkqtUphzesbBgj2eDk1YZMBUGPdqUE3pgmbASv/fAt+kaXab3XDlPJT3jPPXr0GducIR5IDby0VPZff/+W/gghlsoe0mRNFB6Ri49ImpfgbaKvWBcVFcHjoW/TToxgfYu+y80HeyABD4hijaenpxCrDNqVBnmVQV5pEL+HXW3QFtoTJ2vhle0TgIt/+fn5Esh8sAcS8YAAVwB8pfAKQ8VNxSEANtfacba3iXP/a4l0hK/JHQ8IdsTIrWQoVO9F1k0484bLvnJGDpWZ5aycO6HgnsbigVDZVYZTC2koyRC3bIgEr7ih/OTI58mdUL6nfHJi6SSfkz0ekOdLYnRWzp2UTMjvaTkJBXRcmjcSvPLToQRYCbFsTKRq69kTJu5JKA/IkzAZXC2gSqjTAq8wKhSAyhKo0QBVPnUc5tzwQLQRV4Ct/eyC0jOhVh/izrzRsm+4DJwbIeJeJuKBSDIinN5NSPPKxmmzqzabiqdInBOqKHUiHeRrsscDygwrMmoodqJl3aTgDbWyEEoORJIILB+yB8hwPYkkF0K9F4vWle+VkGxQTsS0AEYDMtr72R/O3O1hNN0bClxZNoTyWsLwKgGO9HPuhop7Ho8HlOCG+1nbXlLwxgItZ9p4Qphb50aTDdEyddLwagGW3R8N2mjv51YYs7u30SCMBnE476QE3nAAxwpydoeOexfKA/FO5FKuebUNcjZlUJP1QLQsrWw/ZZmXQU42bLl7fTzAXgm8oULBmTl3AZV7niioaZcNHBr2wFV6IG2y4So7wffKTQ+Eg/f/AytxQsmG2tqyAAAAAElFTkSuQmCC"},9933:(e,t,s)=>{s.d(t,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVcAAAB0CAYAAAAxfnE0AAAY6ElEQVR4Xu2df0Td3x/Hn59kMpnkmkxmJrmSayaTTDKZTCaTJJl8JfnIZK7JZK4k11yT5CMzH5kkycd8ZDJJkmSSJHNNZpLJ5EqSZNr3vH/cuj/e977P+977vvd2P8/r88dn3fM+73Me59zH+/V+nXPv+w+n0/kbfJEACZAACaSEwO/fmlL/oFxTwpOVkAAJkIBKgHLlRCABEiABGwhQrjZAjVXl1atXceXKlYTPeHp6iuPj44SP54EkQALpI0C5pol1smINNpOCTdOA8TQkkCQByjVJgLKHFxUVyRY1LXdwcGBahgVIgAQyS4ByTRN/yjVNoHkaEsgSAjkg13r0T7pRdRU4XvOhbXA+S9CGN4NyzcphYaNIwDYCEnLtxOhcM8rCmhDAsq8NKfdY5yjm7hcCR8to6Hkn2WlNrveFXLE7Y+E4yepTVCy2XOvgftuNqmuhJzrE2lgXfIvGJ2daIEWDwmpIwEYC8eVa349J931o3mqA6jtFgM2aareDf0tVAxOSa6pObm89xnLVxaoCnkVr3wTQ7sVUY6n4w3FMwVKu9o4VayeBVBCIK9fO0Tk0l4jT7IVHhPX9o+i8VYiz78viNlwxrh49Foc0KbAMX9sgtJt07f0KsQvpighMxX/66yICVs8VHh4jsKzd5ke/Fx45K+83iHOfftHTAoqklT/kC2sVFFw0ajsisg25UAQLhV4wgvWGVqO8/6FkEu77oZ01v9AYyrWuHd72ahSeHWG1qw9CreIl/jbVCFWva2PoMghfKddUTH3WQQL2EogjVy0doLlVj1oN2xKd86zvF/LRkqC6YEPlu42Zhh58jyojFKz8TTFwQMhSTwtE/U0VotoqtR4tmDaQq25qTdC3ovsSVU90fy+kHiJzNZqvwBUEhMCV8yvHNaAYp/gSJ1Uin3PV5Hpd9OvnbCuUYDbyRbna+6Fg7SSQCgKx5apKpEqkBMTtabz8apRswiPVgBBPz7uLyFX7txLMRtdvJNfoTkbLLGbkevrlPHoOj8K/n0fS5+1RmxR+UbgVKW2lMcGoOKRumYGQlquaFlDVitnWYDQbfgbKVYY4y5BAZgkkLdfoKFXrULjwYCCzaEkay9Ug5aCeITylYJgWCBFgeN0wWKQLGQg9pWEo16gUiNzinpRc69x4261c0JQUrHHUqrSScs3sh4ZnJwEZAkmnBeyWa3TeN7HI1UiuZimPqIg4gqha53nuVUt3xNrjYCpXiYWs4OkpV5mpzTIkkFkCpgtaYRGh3lZFKkra89dGG3q+R+YglUKRaQCDtIBBrjI6cpU7TiYtEF63lhYw2xtrJlcNh1Ebowc1nlzr3G/RrTQGuzFTAaE1Uq6Z/dDw7CQgQyCprVhiOV/kNFdRHSGqWAta2lpVcHFMLi0QGblq0aKyKfTwfK+tdbmK+FJd0NK2PGl7dkP28+q7CozkerHIpUeqkrnpWHJt905B23m1hrEuHxYlRo1ylYDEIiSQYQIp+hKB/FaseHLVFrnui5V37aVti4r+EsNRQGznUgtpghMJVOOtWDFzrvrNu+RWrPMtXiGRe0q2Yunbrm7FmgSHxsKlXDP8qeHpSUCCgIRcJWphEVMCpjlX0xouClCuFmCxKAlkiADlmibwlGuaQPM0JJAlBCjXNA0Ef881TaB5GhLIEgKUaxoHIlnB8oey0zhYPBUJJEmAck0SIA8nARIgASMClCvnBQmQAAnYQIBytQEqqyQBEiABypVzgARIgARsIEC52gCVVZIACZAA5co5QAIkQAI2EKBcbYDKKkmABEggplx//fpFOiRAAiRAAnEI5Ofnx3yXcuXUIQESIIEECVCuCYLjYSRAAiQQjwDlyvlBAiRAAjYQoFxtgMoqSYAESIBy5RwgARIgARsIUK42QGWVJEACJEC5cg6QAAmQgA0EKFcboLJKEiABEqBcOQdIgARIwAYClKsNUFklCZAACVCunAMkQAIkYAMBytUGqKySBEiABChXzgESIAESsIEA5WoDVFZJAiRAApQr5wAJkAAJ2ECAcrUBKqskARIgAcqVc4AESIAEbCBAudoAlVWSQKYJuJ768LLNheK8JFtyFsDm5BDc7zeTrMj+w5Puc4r7GkuuwacQKET+cDqdv0PR8DEv9k8UnoEEEifQBt9sB1xXEq8h7MjTTYw3ujEpUV18wZ0hsDKMHs8c9iXqslYkRX220Fez9lGuZoT4PglcOgKdGP3UgvKUtfsrph/24J1pfTKCs0uwqeqzbF9NYSBjcu0c/YSWcr0jDz2YctcAKz60ej6ZtzoXSzhq0dpyAz+mp7CU+st6LhJjn2ISSJVogieQFU4Kz2v5Fj1V55btq/n0o1zPGT2EZ8qNmuILaGenh9jzz+Nv75j9wqvrw0TffeyNN8I9ZT5wLEECsQkERZOsKKzWkyrB6T2zdIseeW7Zvid6nPn8o1wj5Or069GzowxV1Y/R3d2AEv84OtyTNuSJzAeIJUjAOgGrUox1Bqv1WC2fqvMq9SQqyUSPMx+VtMnVUdsLT28DyguB08AWtk9cqLgRnhbI+7aJw+uVuKmW8WP2r0GMpe0eWYtcz+Wqs6t6MY6hmj2MNfXhyDMFt2MeD3uC2SdtYERCCsqflFRH/cEHbJTUo07rBLamgyutStl6HHzYQEl9nd7HLUwPuaEuxKqpESf8vlYomZH4dQGOhhfwdj04Z7W2V4KaEj98rR78RxMr5rP9P1MiXHIfqjrQ19cK17U8nAXW8fdQH6alFv+tytJqeTvlmuhgy0a85vWnSa6PMTjTg3uFYlvH3BK+FTjxoM6Ja3nhci0+O4R/cQF+6O8frKRRFsZydfa+w0j9gbpaui8h15ayANYnhjG6eITq7n503dnVV1q1iVcmJvfE8CgWj6rR3d+FO7vjaBRRsZFcY9blEAsH4x24tT2N4dFFHDgfo1dE2DeP0snLfHKxRKYIGEjO9RS+V20WBWtVllbLU67Jb8Vq82G2w4WDBQ/avSsqUaMFrbzVN2h5Nae+/3hwBj33zrD6pgX6n2yeqdFyLX3wHJ7nF2mBuxJybTwaQ1PfP1pb9Wh0a6gVg4vKxGvE0VgTLt4WkbBzC0Otg1g0iFxj1TVWNoqJZmCmXazg6otfD5W2ORm52jxJLkn1MSQXKtjDTUwO6HdNMXtlVZZWy9spV9kI9JKnBdTo75ED6yFiMd0t0DmKTy3l+Krfcsef1XES6QHZaC56QQs4w6H/A0YGtAUtVWBmaYH9kB0PYcLU0gL7+m2/5t4QIRqlBWLUtVITLVLK9ZJ4Ly3NjCO5sAh2CW/EhT12GsmqLK2Wp1yTjlwd3WOYfFIcFoWmVq6pmLERkat66/0UjqUBdLzWom3KNRWcWYf9BCjXxBnLRrzmZ0hPzjUqLeBA99gkntyOWNDKsrSAS0Tcr+tPMOMWt99+Xa4li2gTFwvtbtxgQSsNkaundARzT84w2dGL90wLmM/y/1wJibTAsR8zr57hXdyFLauRqNXydkauiQ76ZZMrggtaP7Ext4LvhS48vH8bV7N+QUuLZiu/j6FbSZSKVMVEcyGW3wxi/FsJ6jp70H63GNuhuwXSIdd1Laou3ZrA6LtVLmgl+jnK2eNMFrTCxGqUUgsKxqosrZa3U67xJBknjYhLJ1exdai2G/1/NqFCbNJXtlmt791AdcVP7Wt1+je0Dj4vIL8iuE0pO7ZiOUTUPd5RijU1V+rCU99LtLmKkXd2ip9b2/jlqsBRuuUqkmSRW7FUniVf0ri7ImfNlAMdi5CcqwXel//DXfErLmdRESvlGj7gl1CuOTBjs6oLDocD+/sX35N94v2A7sLZkD24WdVcNiatBCL2uUbMFfmmWI1ErZa3M3KV7yXlmiirXDzuVgeGhxtwMiP2005so6DpGQa772J/xi2+zCCSw3z9xwlkSnIyP9xiYWiS+vqrhfOEFWXkmii5nDnO1eLBs5YqlF4TvysnfgNhd3kcHu8sdnOmh+xI4gQyJ7mkf1M12GnLP9ySoj5bEnr8EUrPboHEZwmPJAESSIBA5iSXQGNTdEjSfbYsdMo1RUPHakiABEhAngAjV3lWLEkCJEAC0gQoV2lULEgCJEAC8gQoV3lWLEkCJEAC0gQoV2lULEgCJEAC8gQoV3lWLEkCJEAC0gQoV2lULEgCJEAC8gQoV3lWLEkCJEAC0gQoV2lULEgCJEAC8gQoV3lWLEkCJEAC0gQoV2lULEgCJEAC8gQoV3lWLEkCJEAC0gQoV2lULEgCl4dA0j9iEuxqin/MxE6CSfc5xX2lXO0cbdZNAhkhkKKf3wu23cLP8MUX3BkCK8Po8czpz6BLJZwU9dlCX81aT7maEeL7JHDpCMR7RlQinZH9AWkZwdkl2FT1Wbav5hwpV3NG0iXCHhcuc5T+7DCs+NDqif30eJmqosrYWXfkycSDGz+1lOOr/iyxhNp7yQ5yNXbiHj7j3Wzcx6dmqFepEk2w+bLCSeF5Ld+ip+rcsn01H1rK1ZyRdIlwuWpPjq3BSuyHBtopQDvrzga56kK/aMoZTn9uY/nft/BO2y+8juE5tBbNo7/DhzXpGZKugpl6zEuqBKdzsnSLHnluWUkmepz5WFKu5oykS1CuD8UzvKRxJVdQlSu0pweLmkorH6CuvQvtd06wMNCB1yvJVX+5j860XGXFFotyIu1PVJKJHmc+Q9ImV0dtLzy9DSgvFI/3PfqKjZ3ruBt8tLZop6ulD11P7qOs+Ir+2OoZDHvHsSYecKpKq2wH66tAefVNFOIUga1pvP18G22t1bhZqDyuewvTQ26814MW9VHeXY1wXlfqO8LO6hRGPAu4NzqBlvJdfHzWiWHlWX5VLzA+VA/Hlwl09L7HDbN2lIdMnIjo8Fyuvn3Uu2sgniKuvwLizl95NHfEgOjH533bxOH1Sr0f4Y8Uj8dFKAWN7j6015Wh+IrCdQerUyPwKJFbRNtcQkZD4tZd3LvjpTDgpnjcsudZC6pKr+GKwtM/i78Gx7B0zvsbVhfzUVl3wXvI/R4qXkctej29aChXwWNr+wSuihvpTQtEyFUjq+X8iuafoXP4PkY/1WM/hPtDzxTcTr92J6HyKcHa5BGqmisFP+BoZwFv+15jTjBQy5asYfKoCs2VxYKRmEMLb9H3WluMUcca0+rTds3KitmtPpK9JVjP6leg+q54wKRdF6OIp79WdaCvrxWua2KOBNbx91Af5IJ7q5KzWt5OuZrLz7hEsheGi1rTI1eHmPTjHXDlH8K/uAA/nHhQ58S1PL0jThF9DD9G6cEmZiY+4uTeU7RWl2B/fgAdIgTRpHWGQ/8iFvwnuF3bAJcw19nxHtYWP2PfcQ/1924Am+NCNpPiw6+dr/LEj8UFP05uKO9r9bkDbZhouYWt8UYoRZ297zDyqEQcKv69LtMOCbm2DWOjTHwon4tnxUNM5jczWNtew/bFk7C1EdAFWHwWweVATyWYcHGJtr9+VIojlYvoy4M6OAt38W+vmOQ3FXnUQMnn9qzWYLS3BkWi3uEej5BHDV6Mv0K9Yw+f5z/jR4E2HgVb4+gQUJpU3sKbPz5j/vM+HPfqoeHVmD0enEHPvUIENuew9K1AO6/44KY152oo1yfwfuhGycpLMW/uSMi1BoU7cxjxTuNbyRO4+xpRsKQcu6YJs6YQO3MjIs3wDSVP3OhrLMDSSxEVizxAlFzjlK15MY5XtcDyuA9TG0Wo7uxB+91ibNuWozaQnOspfK/aLArWqiytlqdc/3A6nb9DMfz69cvaZaHNh9kOFw4WPGj3avdrDQPTeF79U7utc1bhflE+Tva3hYTUuEB8MFpQLqIsJTLQ5PoN/7R1Y0wLG9QFlJ/n9TVgYPo5qs80Ke2ownRgfawJff+oFtPzn0sY8hygXYjcsTGGpr4lUZWIZG9tYbzRjUmpdkjIVb1Vlc+55q2+QcurOZWLJq4zrL5pwavv8bhsCEEOob5oHWNNfVC7+cSLD+IR27vKh3ZHl+v6CvYrayCWmzD9UrRLCT31cvsflQhPCd8dGoeyr5hqeIa8SN56+ZOlIbQO3lCjQ9fBAjztXpFRvhiPjMrVUYVWtxsd52kBZQ6ZRa6lWA3ewejRaPPZFBqe/a3JtXQVzzqHRTCgdlLU14yzqQaIt6PlGrOsNg+c/tBFS21+i8lvUxolhuRCBXu4icmBizs94w+0VVlaLW+nXGUj0EueFqjrn8LL2oIQ2em3XTX7es7MgaqOXvQ03kGJeFR0XpB5mFxDYEWtToeLzOGbRYdL3OdFvgKKfKdQ/m4YjwtXxf9/xUMhCue2lhIQMZq1dsRKCxjKNXwQA8oOgZWa8+jyfLdAWN/itQdhF6CovgajYv2NfSHGtsFF9V9VIpIaqhehaNRLYywqFhezGBeRqQq8G3kEx7pycVKVfn6xk5WrFhVeJE1CmyFbR/ACG9aF0x9Yef9GS4uoMjSTqwPzes5W60bErb5jXr24650ME6J8WSORZkiuSkfCItglvGkdROx9KlZlabU85Zp05GoqV10EhV8/wDs8jeXtJoPIVV6upSNiJdcp8px/jWBuL2QAf+1je20bDvGBGX6cj4XpPdS0VOL7RAd636uJNlV20u2wJNcaNP95B9f15hx/W8D4WWt8uerRp3F7ZOV6iuPjfFwt2MO8vtCjjcc1fP0wgIn10Al+hN3VLTTEk+vobYxNPkFxSLQdFJ20GGN9pqz8PSItoN167+N9h7gDUdMvlKt6txJy8VDx/mfkamUyhV3eo5klWFV6cq5maYHISNQhbv/FB/h2gpFrQI3MSrDzb6/43Gs3dXBVoerHmrpAJhKtavRVGAiguEhEz+3idjkk3XAuCcN2hKQnGgYw/bwaZ/o+1UR3C8RMC5RG7B8Na49BWqCmUyxaVSKw2AvfsXahKFgXaZWFcow+r0XR7ke8ELe5m/p4nHweRXP/vxofcVtddUPwEUFf1H7dsIuIIyot4Ogew+ST25nNuTpEvnWsG7e2grffilwfIqCkV7SMi3arH7aglY7ItQ79Uy/h3LhIiQXTXhlNCxz7MfPqmZYmivmyGolaLW9n5JqgEY0uSAlWlR656hP/bmGMBa1WkZP9nwsIW0ARt/Umcg2oOcBF5WMTvqfU+T+MiFViZ34AXxaX8PXkBu7WVcHxbQK9zyfwXSyo9b4bwaObYlFMnKNdRLJqsGPSDu12uiRqIUe9xRdbAcKlpH2oagt3sPJxGasL45jTPX8+VmYLWibtCV/Q0hf6isROiBdiJ0TJxYJWq2dd5LhHRY67CDsfX4g8a4lo23PUFp1gZ20R6z8KUF4rFqVOFzH41AtnvMhV9DO4oPVzYw4r3wvhengft69mfkHLKS7SvuYCzCv939TmROXeNHy+ORzdaUFvdwNuHumLhSr7dMgV0KLqX/g0Nox//VmwoBUmVqO9qcGI16osrZa3U67xcq5GfQ62RTZXa27c9MhVCYwitmLtHpfj5vVgRxxoeOFF14Pgtp9V7N6shUtfoLoZ+WHXI92g1KLkqp4vdCuW2Gq0vYx/3nrPt6BouwRKhb/bxaJCcBk/fjs+ORrwwtuFB2Lvl7K96+vGDq7frYgRuYpgWUSJnuYKsXXsJxa87fAq14HQly7Xg88LyK+oM9iKZdKesK1YYnX/cFesSHvgnd2N2ooF0faBUbHoV7SjyVdsJDrfipV3hqMfW/j0txdjYi9W/MhVZOjEVqzu/j/RVCHypmIrln99DzeqK/DTtgUag4lsuFtA2wVRezQDt3LBbHgBb/cD3LyqsfHvX4Or6EvIVqz0yNVoK1Z+zV0c2cYrQnJi2533pdi5Uiy2YkVFrJRr+Oy6jHKtqsKNtTVtn2Qwciz1q6vTYvGVLxLIYQIOOBz72A9ew9W0VDV2jfY+p4RCxD5Xh0OcO3IfoMyJrEaiVsvbGbnK9M+ozKWT6yMMzDxDxQ9lP+Yhrqj7TrV9qcq+ykSGPVF0PI4E0k2grk+ko8rW8Zf3PT6dlOHPvn40OdZify066QZmSnIyP9xioXNJff3VwnnCil46uRp8A0t8I+it/o2gRDHwOBK4FATUNEoXGp3XcUWkYE5/bmFm2ItxdXXVjlfmJJf0b6oGcVj+4ZYU9dmS0OOPXdpyrnZMIdZJAiRgTCBzksvciCTdZ8tCty7X37/Dvo+FpPe5Zg43z0wCJEACmSFgFLlSrpkZC56VBEgghwhQrjk0mOwKCZBA9hCgXLNnLNgSEiCBHCJAuebQYLIrJEAC2UOAcs2esWBLSIAEcogA5ZpDg8mukAAJZA8ByjV7xoItIQESyCEClGsODSa7QgIkkD0EKNfsGQu2hARIIIcIUK45NJjsCgmQQPYQoFyzZyzYEhIggRwiQLnm0GCyKyRAAtlDgHLNnrFgS0iABHKIAOWaQ4PJrpAACWQPAco1e8aCLSEBEsghApRrDg0mu0ICJJA9BCjX7BkLtoQESCCHCCQk1xzqP7tCAiRAAmkjYPokgrS1hCciARIggRwiQLnm0GCyKyRAAtlDIFKu/wdc+3gxygQ2XAAAAABJRU5ErkJggg=="},2374:(e,t,s)=>{s.d(t,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVoAAABfCAYAAACp6w9xAAAYW0lEQVR4Xu2dD0Rk6xvHv5vszd6xkrGSZK1kJGNlJGMlSTcrK1kjyRrX6mYlYyXJWiPJWCNJru7KGitJsrKykpVkJekmyTXSzUrSb410k5Ws2d/7vudMzUwzc87MnPnT9ByyOzPvef983/d8znOe9znve8tgMPwEHaQAKUAKkAJxK/DzZ2ic3iLQxq0tZUAKkAKkgFCAQEsDgRQgBUiBBCtAoE2wwJQ9KUAKkAIEWhoDpAApQAokWAFVoP3x40eCq0HZkwKkAClwvRXIzs4O2wAC7fXuW6o9KUAKpIkCBNo06QiqBilACmSuAgTazO1bahkpQAqkiQIE2jTpCKoGKUAKZK4CBNrM7VtqGSlACqSJAgTaNOkIqgYpcBMV0Ol0uH//PvR6PbKysjJOAq/XG9Am/vno6Aj7+/s4PT0Vv1HUQcZ1OzWIFEgfBThkTSZTRgLWp3IwRH2fOXA3NzcFbAm06TMmqSakQMYpUFZWhnv37mVcu/wbFA6i/HuPxwO3202gzegRQI0jBVKsQHV1dUZbs5HcAhy03KpdXl4m0KZ4HFLxpEBGK1BTU5PR7YsEWt9vX758IdBm/CigBpICKVSAQPsTBNoUDkAqmhS4CQoQaAm0N2GcUxtJgZQqQKAl0KZ0AFLhpMBNUIBAS6C9CeOc2kgKpFQBAi2BNqUDkAonBW6CAgRaAu1NGOfURlIgpQoogba7uxs7Ozv48OGDqGdeXh7sdjtGRkZQVVWFu3fvYnBwMO42NDU1gW04i4GBgbjzCs4g3AsLPB3/jaIONJecMiQFUqOA8ZkTvS1G5MW7lID3CJsTA+h6v6lJQ5RA++TJEzx8+BB9fX2ivODPmlSCZUKg1UpJyocUuLEKtMA5a4XxtkYCnG/C1dCFCRXZRQa8Fw7HG8VcuMU6PDyMr1+/ore3F1tbW/j48aOAI399d3R0FI8ePRKff/31V/z777948+YNuDW8traGhYUFYalyy/HTp0/i/1NTU9jY2LgoOxxo6+rq0NDQgF9++QX/+9//MD4+ju3tbQH8+vp6cf7x8bGo29u3b9Hc3CwsbX5wS5zXnSxaxS6mBKRAJijwHCPzFpRo1pRtTNV1YEwxP2XAOxwOxVw6OzvFmgBzc3PCbcA/88MftE6nU8CXQ/jFixdYX19HTk4OCgsLBWhbWlrEilnv3r1DT0+PgLD/EQ60HJQzMzNYWlq6KJdDf2hoSLgzeHlWq1UsDMNBy9vDF4rhfxzSs7OzYi2DW7duhWxn0l0Hz0fmYSmRO7DOjskuM7DsRLN9XrEjMjKBvgrNlgIcTE1iyZORLaRGJU2BVIFWuVw1oOWug8bGRmFJ8qUUOeiCQfvXX38FqPn3339jfn5eQJeDjoO6srJSWLVFRUXCClYDWp9lzNOazWbwtRm4Rez/fVtbm8iKg7aiokJYuryeHOy8rrxsAm3YwV4H+2QXzHmXCbznJzh0f8Y7x2ji4Vfdg/GeRzh0NaBrMmlXJBWUkQr4gKfWEg0nQrT5aANaXhsON75wNn/0X1xcvAJaDjT+WL+6ugqj0SjWeuWg4xbwnTt3hKVpsVjw4MEDYRlzK1cNaHm+09PTVyxan6UbbNFyALtcLhweHsJms4n68kVjCLQKoDW4ZataXwxT5RO0t9cj3+2CtWsCZGhmJJUysFHRAlJr0IYHvNJkmK8m/NGfL6nIfbS+w991wB/TuSXJfbT//fcfxsbGhAXMz+PuAw5AbpFy2HIABh88r99++y3g6z/++EM8/iv5aL9//y7K4hYtdyNwq5YvYM6/S7mPVl9lg91WjxIdcH60hZ0zI0oLAl0HWbubOLlXhiKRxo3ZP/sxmrTnaMmivQCt3AWmbhcGzIcYbezBqX0SXfrPqOvweaukAc0cWOBfcXdI7fEMNvJrUS01AltTvhlbnrYWxzMbyK+tltu4hamBLogJXeE+McDtbAb3nkTOC9DXd8PRVnOh1dphPsz5bjib7bihzpcMBGasTQoE7YzJyvyUzTDezYL3aB3vBnowpSqIIFpgK6dXC9pYW56o8/iEFwfp+fk5M77ahXvCF4IWXGYKJ8OeoH+6AxU6Fioyt4TdHANqqg24mxUI2jzvCdyLC3BD/v14OYngCA1ag20Mw7XHYtbVowK0luIjrI8PYWTxFJXtr9D2cF+esZUGYTEb6ONDI1g8rUT7qzY83HehgVnLoUAbNi89m3RwWXF/ZwpDI4s4NjyBjVneRafJ1CtRQ5ryjV+BEMAzPoPzdUuUsFUGZ2BdldNfV9Byn3Ftba1wZxwcHIi4Xu6qCHWkDrQtTsxajThesKPVsSzqFmoyLGtlEJbXc+L3J/3T6KjwYmXQAvmr+MdfxByugraw5iXsLy9dB+UqQNtwOorGHinY2gfPrYFm9C/yQdiA09FGXP7MLGTDFgaa+7EYwqINl9do8QjGnwLTrWwmWPZn1PG6GciiTfAguSbZhwGeP2xPNjHRJz9NhW2VMjhvCmij6fiUgVZYhY/1WPeDjGLUwfMRzFtKsC0/lkduaAQn/JFaK+/qZBjgxYl7BsN90mSYgJmS68DjFzkRAE/JdeCRXQMSh/3gGMp1ECavZfNVqBJoo7kUMj1tBEAGWLZLGGQ3+fCuJgJtLCMlZaDVt49ioikvwDrVFrSxyBF8TpBFKx7Pn0G/1AfrG8kKJ9BqoTPlkXgFCLSJ1zh8CSkDLa64DvRoH51A04OgybA0cx0YmSX+pvYM013sEd0tgzZ/ES3sxiE9sYeYDEuCRWsvHMZckxcTVhvek+sglddUmpatwnXw3Y3p150YizgpRhZtLB2cOtDCNxn2DRtzy/iqM6Lu0QPcSfvJMMnKLfs6inbuWGXujPGnOnwZ7IdrNx/VzzvQWp6HHf+og2SAdl2ytgu3xjEytkKTYbFcDRl9jsJkWABkQ7ndfOFZ2oOWNmdM8OaM+qp2vHrRiFL2QgAP3Vo/LEBl6Tfp1T75zbDj1QVkl/pCn9IjvEvPrHGXtRBrwrdqxDNnL1qMecjynuPb1g5+GEtxmmzQMqdacHiX0DP/nyRGaWQ0qa5544IAabTA0fs7ytkKM94rlmxyQUvbjdN249fq4uKv/PFX/XxHk2MG7bpZvxjfa9UcqqymCgTF0QaNFfVFaW/R6nQ6mEymjN5yPNh14PvMtxrnayLwdRLCuRdusbUbf/o66MePH+r7ilJqr8B9K1vkoh5n0yxed3wHOY2d6G8vh2e6i704wZzJdNxwBaIFZDi5os1HeVEZXhJ/XZW/prq7u4tMZAkHqv/BP/OYW/6acCTI8nMItGl26RotbFUjiwmFd9laeGxNhv0vLtgds9hPs3pSdVKhgDrgqa6ZZsskqi6RRVZGuw6uRm2Ooq1KreEvN4Q6Ik2WEWiVVKXfSYE0UiBdF/5OpERxtzlquEduDYE2kb1NeZMCpAApwBQg0NIwIAVIAVIgwQoQaBMsMGVPCpACpACBlsYAKUAKkAIJVoBAm2CBKXtSgBQgBQi0NAZIAVKAFEiwAgTaBAtM2ZMCpEB6KBApZpXXMNzeXlrUnkCrhYqUBylACqSlAkpwDVdpraFLoE3L4UGVIgVIgXgUiBWwwWVqBVwCbTy9SeeSAqRA2imgFWR9DdMCtgTatBsmVCFSgBSIVQGtIasVbAm0sfYonUcKkAJppYA/ZLWwQnnjtMqTQJtWQ4UqQwpor0DcC6z4qqTxQitatjQYiGWtTrxqNYKtbx7bwds63o+u8S1NYEugja0b6CxS4JoooNGSgb7WRrF0YGTAs3VZl4fQYZ+T99yLT04faCVLVqM2+7U1MP/o60qgjV4zOoMUuEYKhNqeJp7q+/YQU8pDDey0ge3Vx3ut2nzZ1nhdCARapfES4+8BW6iryUPeKw3LTjTb2UZgWh6JzDu4nmzTynlLCbblvdO0bEa65mVseI4KrGJsNuI2simqvlbQ8VVfLWg1LFfBZUGgTdHQSodiA0Er7aBrxnL4DRMTCcNE5p0OoJXhflkVL86/7eDLx7dwTCUeftahOTTnfsYrqxNr6TD4AuoQ7RY04RoQbT4agpZXKYLLQhm0sd4cyKJNu+F8lTfzsJT4OopAm9AOE6CFtIsyK6iwrAbVrW1ofXiGhT4r3iwntPQ0zzxaQGoNWrWQi63c4HAuyUcbDHm1dQh/Xuhy1Hd9SlwH+iob7LZ6lOjYlsen29jYu4dy33bjrO5GSw/amh6hOO+2vJX3NIYcLqyxjV6FpVi8h/UVoKSyCDqc42hrCm9XH6CluRJFOr6F+RamBrrwXjZmxPbmbQ0w3OP5nWJvZRLD9gVUjIwzGO7jU+dzDPF9DE3dcA3UQv/POKy29yhQqscFSNm5QVbjhUXr9KC2ywy2s7p8HDHvAN+uPKiT5POzdjdxcq9MbkfgNuuRdGF4QUNXD1qri5F3m+u6h5XJYdi5RRdUNyMD0wB7vGfP9+jtGMMm24La3mmBqfAubnM93bP4s38USxd672JlMRtl1Zd6D3S9h5BXXwWb3Yb6EiE8tnbOYCwtSK7rIAi0krKSjzD3cyeeDz3CyHwtPH6619kn0WVwS08YQp98rE2cwvS0jOkHnO4t4G3PG8wxDUTa/DVMnJrwtCyPacTG0MJb9LyRJnJEX2NK7DqslJaNbrFNvcWXz8o2UFnONtesY5tpqr9w1acM2gXXZEVPTzOMd9kYOVrHu4EeqDP6owV2tOkTCVr1agWmDG3R8jTRho8lH7R6dgG4rDBmn8C9uAA3DKipNuBultwoA7NKhp6g8HgT0+OfcFbxDM2V+fB87oOVmSYSwLw4cS9iwX2GB1X1MDKKeb8fYm1xFR59BWorCoBNFwPPBAOBVF7ZmRuLC26cFfDfpfy6jlowbrmPLVcDeFKDbQzDj/PZqezzupp6+N0pw4G2ZQgbxewCffk7ysEG9uA01nbWsHO5O7jUt/L5ed4gXY5ld4OCLkZW9zePC3EqdGFtqamGQbePjzY24Is4SMzg/t+OFTNGbGbksnyHOuwMJGZ0u16jVn+I1c+rOMiR+iNnywUrE6VR6M0YerCKz6se6CtqIckrafakfxodFTocbc5haTdHKpddxEn10YYEbRMcM+3IX+5l4+ahCtCaodubw7BjCrv5TejqaUDOEj93TYKnWYe9uWHmithFflMXehpysNTLrGXmK7gC2ghpzd0uvK4CvricmNzIReXzDrSW52EnYT7tEMAzPoPzdUuUsI0WnNGmJ9AGKxDf5owtTsxajThesKPVIT3T1fdN4WXlN+nRz2DCo9xsnHl2GJCEvcAuEgtKmPXFLQYJtLv40NKOUcmcEJMv3y7yq0ff1EtUeiVA7Ql46rE+2oieD4Josr90CQP2Y7QyqOs3RtHYs8SyYhbu/S24GrowoaoeKkArHmfVuw6yVgZheT0ndJEg5sXKoAWvv0bSZYPBcgC1uesYbeyBaGaTAzNs2/F9fgHvyaBdX4anzAw2VYWpXlYvbpLK6TyfuOXHzXq9pEPxNibrO5EVrLec/mxpAM39BcJqNB4vwN7qYB7oy/5IKWj1JjR3dcF64TrgY0jJoi3Eiu/JRrZSn3onUd/5TgJt4Qo6nw8xw0A0kuX3FN7JerCfr4I2bFppHBjc/hOe0vhmgz8pFu2F0ewP25NNTPRdPgGGRl604Iw2fSJBewNdB9WvJtFbleMHPvnRzOyRfWx6mKw2dDQ8RD7bPvsi3jgAtH7CXZnlDoSa3jkLq5E9CwYfRxzEkygZG8IT3Qr7/zbqGDQMO5LbgNlu0dUjnEUbErSBvqAjHmmwbL6wOi+iDgLaFqk+CLgZXWmrz1qWf/AwSLb0L4pPJmZhDdQyE/XKIWnMMvbzNfP71KV13DxZirHhx9Cv8xuVwPvFjU8taCVr8dKx4l8NtXn4brYBTTg/wPL7Qcl1IsCoBFo9Pss+XqkZQe4A/Wdxo5cbGQBH9WlDQTVFoOUNCbBslzDY3I/w8S7RgjPa9ATaYAXismgVQStfyLrtGTiGpvBlpzGERasetIXDbEbYwPyifw5j7tCvKT882FnbgZ5dPENPsrEwdQizpQxfx62wvReOOQE+1fWICrRmPH3xEPfk6nzfXYDL2xwZtLJVGro+akF7ju/fs3En5xCf5UkiqT/uYnumD+Pr/l19iv2VLdRHAu3IA4xONCHPzwr3QU81JMNdX9F8H+Q6kB7PPXhvZU8mwkVDoBVPMX43EiHvjQFtNIMp4FZ/odn1mwxTch0EW6h65iJgF/ODGC3aI2Gx5WPvo40xQHrwg9EE08GamFxjjllhlemOjpCXy6zqVvZI7eeSuABGyHr4uTDq+zD1shJeOQ421vCusK6DwqD41ID6hHAdmJ+zCa8yHC3a4Pwu3TRy1pnrZaEEIy+rkLv/Cd3sUXhT7o+z1RE8ffVR0oc9epsKmD7MGLwSDxxwQ9FfcR3o20cx0fQgtT5aPfPPjrbj/pbvEZ2Dtg5H3AUjeWUkd0DAZFgyLNpqvJrshWHj0m3mc42l1HXw3Y3p152SKynsEa2FGm36RFq0NxG08kVQrgszGdbMfLi/G4GAyRf26K8A2iPhM1zkl1BgzKrhdwyz2WZD9hH+WVzC9lkByqtN0O+Ow/ZyHF/ZZJxtbBiPi9iEGiujlVm4wghSqIf0yJ1/ZRJIuAFYSEEgoKQLrEq3h+VPX7Cy4MKczPyLIaA0GaZQn8DJMHmSMJdFVHSziIp8v8d9+zrziY8wn3gu9j51M79sPqvbS1TlnmFvbRHrBzkoqWITWueL6H/mgCGSRcva6ZsM+7Yxh+WvOhjrHuHBndRPhhnYDdv5NAefefs3pTFRdjgFp3MOpw8tsLXXo+hUnmgU2icDtIBkbf/A/OgQPrrTYDIsALKhYl99lnC04Iw2fSJBG8lHGyne9zpHHXCDKSi8a/97CYru+RqlR323A201vlCiFewXVcEoT24VBV/4sgXsA9wV0Iry/MO7WPjSzhd8eOu4CGuRog0KGctb2YSELxwgcj3m9fXodrShhsWT8ZCx7Y093CsvDWPRMiOaWY/2p6UsHO0bFhytcPB7gv8hg/Z4dQHZpdUhwrsU6hMQ3sWiBE722cy2HY7Z/SvhXWB17xthE4a5exKIWXDSRXhXlhenB1uYf+fAKIvvimzRMo8eC+9qf/UCjaXMz8rCu9zrhyioLMW3hE3uhLggQ0YdSNEUVafT6OI3z/puONprUHRH0sbtuQtj7j9+4V3JAW2o8K5sczlOE6ZXEPBYKJ+jl0XAsNVWvFcs2esHWj4a4nthIXrQRhvaxeuY/PAu8WRqQsHamhSH6bMoC91ilptN4tJBCmSwAnro9R54fPdz4bqqxH6o2GpNVAiKo9XrWdnBsYVqCorWQo02fWwWrTrQqmlfqDTX+s2wx+ib7kTpAY/3PMFtEdcqxb3yuM1YhkCsMtJ5pECyFajuYS6r4nX86XiP+bNivOh5hUb9WvhXs+OuYPKAF1hVNYvKRNG4uF7BjaKcgKTXGrQh3vxibyK9ld9EilUSOo8UuBYKCFdLGxoM93CbuWnOv21hesgBl5iZTcSRPOAF1z6Z6+DSMomJGDuUJylACqhWIJnAU10pjRNex4W/lbbdiSuOVmN9KTtSgBQgBYQC8a4ZG0pGrfIMNRlGoKWBSwqQAtdSASV4xdqoWCIN/Msi0MaqPJ1HCpACaamA1rCNF7JcJAJtWg4VqhQpQArEo4BWsNUCsgTaeHqSziUFSIG0VyBW4GoFWJ9AZNGm/VChCpICpMB1V4BAe917kOpPCpACl8uppkgLr0K5BNoUdQwVSwqQAvEpwFdR7jw/Rzb7t8KrhLr4ylI6ezUrCx72N5KdzTY6unoQaJUUpN9JAVIg7RSo+fEDr9gfh6w4fv5MbR3FppBgS0YBDgbbNfbnfxBoU9s9VDopQApEqUAxs17fMUs2LQAbXHcZuI9zcgIsWwJtlJ1MyUkBUiC1CrQyS7aN/aXcig0nA4NtP7No5/2sWgJtascMlU4KkAJRKjB2dsY2GE0Dd0EE0C4yf+3r25d7FRJoo+xkSk4KkAKpVeA6gHaBgdZOoE3tQKHSSQFSIHYFyHUQu3Z0JilACpACqhSgyTBVMlEiUoAUIAXiU6BaDu+69ILGl59WZx+wjJzMZbDGXAf+B/lotVKY8iEFSIGkKpDPSrPxMC8W7lWZ1JKvFrbCvjpmUQZD7O8sRF0ItCnuICqeFCAFMl+BuEGb+RJRC0kBUoAU0F4BpZXFAray0b54ypEUIAVIgcxXgECb+X1MLSQFSIEUK0CgTXEHUPGkACmQ+QoQaDO/j6mFpAApkGIFCLQp7gAqnhQgBTJfASXQ/h9RsamJK4lLFAAAAABJRU5ErkJggg=="},1391:(e,t,s)=>{s.d(t,{A:()=>r});const r=s.p+"assets/images/Scale-EE-logs3-d090c6b9335baf3abadb45a30f7408a3.png"},3927:(e,t,s)=>{s.d(t,{A:()=>r});const r=s.p+"assets/images/scale-login-248c8e0a2719f7dc7db7893a7d97dc3b.png"},8591:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var r=s(758);const n={},o=r.createContext(n);function a(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1649.c21acdfc.js b/assets/js/1649.c21acdfc.js deleted file mode 100644 index 50310e761..000000000 --- a/assets/js/1649.c21acdfc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1649],{195:(e,t,n)=>{n.d(t,{Z:()=>r});n(5271);var i=n(4814),o=n(2922),s=n(3221),a=n(2676);function r(e){let{className:t}=e;return(0,a.jsx)("main",{className:(0,i.Z)("container margin-vert--xl",t),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,a.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,a.jsx)("p",{children:(0,a.jsx)(o.Z,{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.Z,{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."})})]})})})}},1649:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});n(5271);var i=n(2922),o=n(9967),s=n(3557),a=n(195),r=n(2676);function l(){const e=(0,i.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.d,{title:e}),(0,r.jsx)(s.Z,{children:(0,r.jsx)(a.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.5148359f.js b/assets/js/17896441.5148359f.js deleted file mode 100644 index 6069f66c9..000000000 --- a/assets/js/17896441.5148359f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7918],{7491:(e,t,n)=>{n.d(t,{Z:()=>c});n(5271);var s=n(4814),a=n(4022),i=n(3509),o=n(44),l=n(2676);function r(e){let{className:t}=e;return(0,l.jsx)(o.Z,{type:"caution",title:(0,l.jsx)(a.cI,{}),className:(0,s.Z)(t,i.k.common.unlistedBanner),children:(0,l.jsx)(a.eU,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.T$,{}),(0,l.jsx)(r,{...e})]})}},1892:(e,t,n)=>{n.d(t,{Z:()=>d});n(5271);var s=n(4814),a=n(4022),i=n(3509),o=n(44),l=n(2676);function r(e){let{className:t}=e;return(0,l.jsx)(o.Z,{type:"caution",title:(0,l.jsx)(a.ht,{}),className:(0,s.Z)(t,i.k.common.draftBanner),children:(0,l.jsx)(a.xo,{})})}var c=n(7491);function d(e){let{metadata:t}=e;const{unlisted:n,frontMatter:s}=t;return(0,l.jsxs)(l.Fragment,{children:[(n||s.unlisted)&&(0,l.jsx)(c.Z,{}),s.draft&&(0,l.jsx)(r,{})]})}},4863:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ae});var s=n(5271),a=n(9967),i=n(8274),o=n(2676);const l=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,o.jsx)(l.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(l);if(null===e)throw new i.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,o.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(4814),m=n(3320),h=n(2922),v=n(5066);function x(e){const{previous:t,next:n}=e;return(0,o.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,o.jsx)(v.Z,{...t,subLabel:(0,o.jsx)(h.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,o.jsx)(v.Z,{...n,subLabel:(0,o.jsx)(h.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=c();return(0,o.jsx)(x,{previous:e.previous,next:e.next})}var f=n(6172),p=n(6527),g=n(5364),j=n(3509),L=n(1777),C=n(5219);const N={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function Z(e){const t=N[e.versionMetadata.banner];return(0,o.jsx)(t,{...e})}function k(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,o.jsx)("b",{children:(0,o.jsx)(p.Z,{to:n,onClick:s,children:(0,o.jsx)(h.Z,{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 _(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,f.Z)(),{pluginId:a}=(0,g.gA)({failfast:!0}),{savePreferredVersionName:i}=(0,L.J)(a),{latestDocSuggestion:l,latestVersionSuggestion:r}=(0,g.Jo)(a),c=l??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,o.jsxs)("div",{className:(0,u.Z)(t,j.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,o.jsx)("div",{children:(0,o.jsx)(Z,{siteTitle:s,versionMetadata:n})}),(0,o.jsx)("div",{className:"margin-top--md",children:(0,o.jsx)(k,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:t}=e;const n=(0,C.E)();return n.banner?(0,o.jsx)(_,{className:t,versionMetadata:n}):null}function H(e){let{className:t}=e;const n=(0,C.E)();return n.badge?(0,o.jsx)("span",{className:(0,u.Z)(t,j.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(h.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}var I=n(9813),M=n(3362);function y(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,l=!!(t||n||s);return i||l?(0,o.jsxs)("footer",{className:(0,u.Z)(j.k.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,o.jsx)("div",{className:(0,u.Z)("row margin-top--sm",j.k.docs.docFooterTagsRow),children:(0,o.jsx)("div",{className:"col",children:(0,o.jsx)(I.Z,{tags:a})})}),l&&(0,o.jsx)(M.Z,{className:(0,u.Z)("margin-top--sm",j.k.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var B=n(3955),w=n(783);const E={tocCollapsibleButton:"tocCollapsibleButton_vn6v",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_g94R"};function A(e){let{collapsed:t,...n}=e;return(0,o.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",E.tocCollapsibleButton,!t&&E.tocCollapsibleButtonExpanded,n.className),children:(0,o.jsx)(h.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const V={tocCollapsible:"tocCollapsible_v7jt",tocCollapsibleContent:"tocCollapsibleContent_saQ3",tocCollapsibleExpanded:"tocCollapsibleExpanded_jtxX"};function O(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:l}=(0,B.u)({initialState:!0});return(0,o.jsxs)("div",{className:(0,u.Z)(V.tocCollapsible,!i&&V.tocCollapsibleExpanded,n),children:[(0,o.jsx)(A,{collapsed:i,onClick:l}),(0,o.jsx)(B.z,{lazy:!0,className:V.tocCollapsibleContent,collapsed:i,children:(0,o.jsx)(w.Z,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const S={tocMobile:"tocMobile_IH7H"};function R(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(O,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(j.k.docs.docTocMobile,S.tocMobile)})}var U=n(9298);function P(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(U.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:j.k.docs.docTocDesktop})}var z=n(3221),F=n(2714);function D(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,o.jsxs)("div",{className:(0,u.Z)(j.k.docs.docMarkdown,"markdown"),children:[n&&(0,o.jsx)("header",{children:(0,o.jsx)(z.Z,{as:"h1",children:n})}),(0,o.jsx)(F.Z,{children:t})]})}var $=n(4376),q=n(6422),X=n(285);function J(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.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 G={breadcrumbHomeIcon:"breadcrumbHomeIcon__ns4"};function Q(){const e=(0,X.ZP)("/");return(0,o.jsx)("li",{className:"breadcrumbs__item",children:(0,o.jsx)(p.Z,{"aria-label":(0,h.I)({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,o.jsx)(J,{className:G.breadcrumbHomeIcon})})})}const Y={breadcrumbsContainer:"breadcrumbsContainer_SLq6"};function K(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,o.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,o.jsx)(p.Z,{className:a,href:n,itemProp:"item",children:(0,o.jsx)("span",{itemProp:"name",children:t})}):(0,o.jsx)("span",{className:a,children:t})}function W(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,o.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,o.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,$.s1)(),t=(0,q.Ns)();return e?(0,o.jsx)("nav",{className:(0,u.Z)(j.k.docs.docBreadcrumbs,Y.breadcrumbsContainer),"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,o.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,o.jsx)(Q,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,o.jsx)(W,{active:s,index:n,addMicrodata:!!a,children:(0,o.jsx)(K,{href:a,isLast:s,children:t.label})},n)}))]})}):null}var te=n(1892);const ne={docItemContainer:"docItemContainer_XZTp",docItemCol:"docItemCol_oXzR"};function se(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,o.jsx)(R,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,o.jsx)(P,{})}}(),{metadata:s}=c();return(0,o.jsxs)("div",{className:"row",children:[(0,o.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&ne.docItemCol),children:[(0,o.jsx)(te.Z,{metadata:s}),(0,o.jsx)(T,{}),(0,o.jsxs)("div",{className:ne.docItemContainer,children:[(0,o.jsxs)("article",{children:[(0,o.jsx)(ee,{}),(0,o.jsx)(H,{}),n.mobile,(0,o.jsx)(D,{children:t}),(0,o.jsx)(y,{})]}),(0,o.jsx)(b,{})]})]}),n.desktop&&(0,o.jsx)("div",{className:"col col--3",children:n.desktop})]})}function ae(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,o.jsx)(r,{content:e.content,children:(0,o.jsxs)(a.FG,{className:t,children:[(0,o.jsx)(d,{}),(0,o.jsx)(se,{children:(0,o.jsx)(n,{})})]})})}},9298:(e,t,n)=>{n.d(t,{Z:()=>c});n(5271);var s=n(4814),a=n(783);const i={tableOfContents:"tableOfContents_tnIz",docItemContainer:"docItemContainer_YM2y"};var o=n(2676);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,o.jsx)("div",{className:(0,s.Z)(i.tableOfContents,"thin-scrollbar",t),children:(0,o.jsx)(a.Z,{...n,linkClassName:l,linkActiveClassName:r})})}},783:(e,t,n)=>{n.d(t,{Z:()=>x});var s=n(5271),a=n(9364);function i(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 o(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=o({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>l(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:n.current}),d=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===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}var u=n(6527),m=n(2676);function h(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function x(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,a.L)(),b=c??x.tableOfContents.minHeadingLevel,f=u??x.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>o({toc:i(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:b,maxHeadingLevel:f});return d((0,s.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:b,maxHeadingLevel:f}}),[l,r,b,f])),(0,m.jsx)(v,{toc:p,className:n,linkClassName:l,...h})}},4022:(e,t,n)=>{n.d(t,{T$:()=>r,cI:()=>o,eU:()=>l,ht:()=>c,xo:()=>d});n(5271);var s=n(2922),a=n(2791),i=n(2676);function o(){return(0,i.jsx)(s.Z,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(s.Z,{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 r(){return(0,i.jsx)(a.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.Z,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.Z,{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."})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.79e68f9b.js b/assets/js/17896441.79e68f9b.js new file mode 100644 index 000000000..ab1271891 --- /dev/null +++ b/assets/js/17896441.79e68f9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8401],{6252:(e,t,n)=>{n.d(t,{A:()=>c});n(758);var s=n(3526),a=n(384),i=n(8539),o=n(2683),l=n(6070);function r(e){let{className:t}=e;return(0,l.jsx)(o.A,{type:"caution",title:(0,l.jsx)(a.Rc,{}),className:(0,s.A)(t,i.G.common.unlistedBanner),children:(0,l.jsx)(a.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.AE,{}),(0,l.jsx)(r,{...e})]})}},9465:(e,t,n)=>{n.d(t,{A:()=>d});n(758);var s=n(3526),a=n(384),i=n(8539),o=n(2683),l=n(6070);function r(e){let{className:t}=e;return(0,l.jsx)(o.A,{type:"caution",title:(0,l.jsx)(a.Yh,{}),className:(0,s.A)(t,i.G.common.draftBanner),children:(0,l.jsx)(a.TT,{})})}var c=n(6252);function d(e){let{metadata:t}=e;const{unlisted:n,frontMatter:s}=t;return(0,l.jsxs)(l.Fragment,{children:[(n||s.unlisted)&&(0,l.jsx)(c.A,{}),s.draft&&(0,l.jsx)(r,{})]})}},87:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ae});var s=n(758),a=n(5003),i=n(7888),o=n(6070);const l=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,o.jsx)(l.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,o.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(3526),m=n(7569),h=n(8072),v=n(5336);function b(e){const{previous:t,next:n}=e;return(0,o.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,o.jsx)(v.A,{...t,subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,o.jsx)(v.A,{...n,subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function x(){const{metadata:e}=c();return(0,o.jsx)(b,{previous:e.previous,next:e.next})}var f=n(4480),p=n(88),g=n(150),j=n(8539),A=n(6236),C=n(6235);const L={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function N(e){const t=L[e.versionMetadata.banner];return(0,o.jsx)(t,{...e})}function _(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,o.jsx)("b",{children:(0,o.jsx)(p.A,{to:n,onClick:s,children:(0,o.jsx)(h.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 T(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,f.A)(),{pluginId:a}=(0,g.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,A.g1)(a),{latestDocSuggestion:l,latestVersionSuggestion:r}=(0,g.HW)(a),c=l??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,o.jsxs)("div",{className:(0,u.A)(t,j.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,o.jsx)("div",{children:(0,o.jsx)(N,{siteTitle:s,versionMetadata:n})}),(0,o.jsx)("div",{className:"margin-top--md",children:(0,o.jsx)(_,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function H(e){let{className:t}=e;const n=(0,C.r)();return n.banner?(0,o.jsx)(T,{className:t,versionMetadata:n}):null}function k(e){let{className:t}=e;const n=(0,C.r)();return n.badge?(0,o.jsx)("span",{className:(0,u.A)(t,j.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}var y=n(7304),M=n(3739);function B(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,l=!!(t||n||s);return i||l?(0,o.jsxs)("footer",{className:(0,u.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,o.jsx)("div",{className:(0,u.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,o.jsx)("div",{className:"col",children:(0,o.jsx)(y.A,{tags:a})})}),l&&(0,o.jsx)(M.A,{className:(0,u.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var I=n(5186),w=n(5215);const E={tocCollapsibleButton:"tocCollapsibleButton_Eyxu",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded__8CK"};function V(e){let{collapsed:t,...n}=e;return(0,o.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",E.tocCollapsibleButton,!t&&E.tocCollapsibleButtonExpanded,n.className),children:(0,o.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const O={tocCollapsible:"tocCollapsible_Tooc",tocCollapsibleContent:"tocCollapsibleContent_kK8X",tocCollapsibleExpanded:"tocCollapsibleExpanded_Ymhn"};function S(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:l}=(0,I.u)({initialState:!0});return(0,o.jsxs)("div",{className:(0,u.A)(O.tocCollapsible,!i&&O.tocCollapsibleExpanded,n),children:[(0,o.jsx)(V,{collapsed:i,onClick:l}),(0,o.jsx)(I.N,{lazy:!0,className:O.tocCollapsibleContent,collapsed:i,children:(0,o.jsx)(w.A,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const G={tocMobile:"tocMobile_HCAe"};function R(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(S,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(j.G.docs.docTocMobile,G.tocMobile)})}var U=n(5686);function P(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(U.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var F=n(8038),D=n(3416);function z(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,o.jsxs)("div",{className:(0,u.A)(j.G.docs.docMarkdown,"markdown"),children:[n&&(0,o.jsx)("header",{children:(0,o.jsx)(F.A,{as:"h1",children:n})}),(0,o.jsx)(D.A,{children:t})]})}var Y=n(1614),$=n(1197),q=n(2235);function K(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.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 J={breadcrumbHomeIcon:"breadcrumbHomeIcon_Hzns"};function W(){const e=(0,q.Ay)("/");return(0,o.jsx)("li",{className:"breadcrumbs__item",children:(0,o.jsx)(p.A,{"aria-label":(0,h.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,o.jsx)(K,{className:J.breadcrumbHomeIcon})})})}const X={breadcrumbsContainer:"breadcrumbsContainer_yY4f"};function Q(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,o.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,o.jsx)(p.A,{className:a,href:n,itemProp:"item",children:(0,o.jsx)("span",{itemProp:"name",children:t})}):(0,o.jsx)("span",{className:a,children:t})}function Z(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,o.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,o.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,Y.OF)(),t=(0,$.Dt)();return e?(0,o.jsx)("nav",{className:(0,u.A)(j.G.docs.docBreadcrumbs,X.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,o.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,o.jsx)(W,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,o.jsx)(Z,{active:s,index:n,addMicrodata:!!a,children:(0,o.jsx)(Q,{href:a,isLast:s,children:t.label})},n)}))]})}):null}var te=n(9465);const ne={docItemContainer:"docItemContainer_O6Hb",docItemCol:"docItemCol_B9FN"};function se(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,o.jsx)(R,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,o.jsx)(P,{})}}(),{metadata:s}=c();return(0,o.jsxs)("div",{className:"row",children:[(0,o.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&ne.docItemCol),children:[(0,o.jsx)(te.A,{metadata:s}),(0,o.jsx)(H,{}),(0,o.jsxs)("div",{className:ne.docItemContainer,children:[(0,o.jsxs)("article",{children:[(0,o.jsx)(ee,{}),(0,o.jsx)(k,{}),n.mobile,(0,o.jsx)(z,{children:t}),(0,o.jsx)(B,{})]}),(0,o.jsx)(x,{})]})]}),n.desktop&&(0,o.jsx)("div",{className:"col col--3",children:n.desktop})]})}function ae(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,o.jsx)(r,{content:e.content,children:(0,o.jsxs)(a.e3,{className:t,children:[(0,o.jsx)(d,{}),(0,o.jsx)(se,{children:(0,o.jsx)(n,{})})]})})}},5686:(e,t,n)=>{n.d(t,{A:()=>c});n(758);var s=n(3526),a=n(5215);const i={tableOfContents:"tableOfContents_Mig1",docItemContainer:"docItemContainer_sJth"};var o=n(6070);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,o.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",t),children:(0,o.jsx)(a.A,{...n,linkClassName:l,linkActiveClassName:r})})}},5215:(e,t,n)=>{n.d(t,{A:()=>b});var s=n(758),a=n(9618);function i(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 o(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=o({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>l(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:n.current}),d=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===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}var u=n(88),m=n(6070);function h(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const b=(0,a.p)(),x=c??b.tableOfContents.minHeadingLevel,f=u??b.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>o({toc:i(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:x,maxHeadingLevel:f});return d((0,s.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:x,maxHeadingLevel:f}}),[l,r,x,f])),(0,m.jsx)(v,{toc:p,className:n,linkClassName:l,...h})}},384:(e,t,n)=>{n.d(t,{AE:()=>r,Rc:()=>o,TT:()=>d,Uh:()=>l,Yh:()=>c});n(758);var s=n(8072),a=n(950),i=n(6070);function o(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(s.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 r(){return(0,i.jsx)(a.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.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."})}}}]); \ No newline at end of file diff --git a/assets/js/18747338.2137608a.js b/assets/js/18747338.e9eb7cf4.js similarity index 84% rename from assets/js/18747338.2137608a.js rename to assets/js/18747338.e9eb7cf4.js index b4918e18c..639774346 100644 --- a/assets/js/18747338.2137608a.js +++ b/assets/js/18747338.e9eb7cf4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7919],{6444:a=>{a.exports=JSON.parse('{"tag":{"label":"Discord channel","permalink":"/blog/tags/discord-channel","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-channel","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9470],{4434:a=>{a.exports=JSON.parse('{"tag":{"label":"Discord channel","permalink":"/blog/tags/discord-channel","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-channel","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/18d9fd7d.706652b2.js b/assets/js/18d9fd7d.706652b2.js deleted file mode 100644 index 36bb54491..000000000 --- a/assets/js/18d9fd7d.706652b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2002],{4485:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var t=i(2676),l=i(8358);const s={sidebar_position:9},o="Plugins",r={id:"server-docs/plugins",title:"Plugins",description:"Plugins are currently in the early stages of development. Things may break, so always make backups before using them.",source:"@site/docs/server-docs/plugins.md",sourceDirName:"server-docs",slug:"/server-docs/plugins",permalink:"/docs/server-docs/plugins",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/plugins.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"docs",previous:{title:"WebSockets",permalink:"/docs/server-docs/websockets"},next:{title:"Parental Control",permalink:"/docs/server-docs/parental-control"}},a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Where to Find Plugins",id:"where-to-find-plugins",level:2},{value:"How to Install Plugins",id:"how-to-install-plugins",level:2},{value:"How to Develop GameVault Plugins",id:"how-to-develop-gamevault-plugins",level:2},{value:"Step 1: Clone the Backend Repository",id:"step-1-clone-the-backend-repository",level:3},{value:"Step 2: Understand the Architecture",id:"step-2-understand-the-architecture",level:3},{value:"Step 3: Set Up a Plugin",id:"step-3-set-up-a-plugin",level:3},{value:"Step 4: Document Your Plugin",id:"step-4-document-your-plugin",level:3},{value:"Step 5: Implement Your Plugin's Logic",id:"step-5-implement-your-plugins-logic",level:3},{value:"Adding Configuration Options",id:"adding-configuration-options",level:4},{value:"Step 6: Test Your Plugin",id:"step-6-test-your-plugin",level:3},{value:"Step 7: Compile Your Plugin",id:"step-7-compile-your-plugin",level:3},{value:"Step 8: Release Your Plugin",id:"step-8-release-your-plugin",level:3},{value:"Step 9: Get Featured",id:"step-9-get-featured",level:3},{value:"Metadata Provider Plugin Specifics",id:"metadata-provider-plugin-specifics",level:2},{value:"Example Plugins",id:"example-plugins",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"plugins",children:"Plugins"})}),"\n",(0,t.jsx)(n.admonition,{title:"Plugins are experimental",type:"danger",children:(0,t.jsx)(n.p,{children:"Plugins are currently in the early stages of development. Things may break, so always make backups before using them."})}),"\n",(0,t.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(n.p,{children:"GameVault is built with modularity in mind, featuring a plugin system that allows users to integrate custom functionality directly into the server. Whether you're looking to extend GameVault or customize its behavior, plugins provide the flexibility you need."}),"\n",(0,t.jsx)(n.h2,{id:"where-to-find-plugins",children:"Where to Find Plugins"}),"\n",(0,t.jsxs)(n.p,{children:["You can browse a list of available GameVault plugins ",(0,t.jsx)(n.a,{href:"https://github.com/topics/gamevault-backend-plugin",children:"here"}),". Be sure to check that the plugin is compatible with your specific version of the GameVault backend."]}),"\n",(0,t.jsx)(n.h2,{id:"how-to-install-plugins",children:"How to Install Plugins"}),"\n",(0,t.jsx)(n.p,{children:"To install a plugin, follow these steps:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Place the folder containing your compiled plugin (",(0,t.jsx)(n.code,{children:".js"})," files) into the ",(0,t.jsx)(n.code,{children:"/plugins"})," directory of your GameVault server. Archives are currently not supported, so extract them first."]}),"\n",(0,t.jsx)(n.li,{children:"When you start the server, GameVault will automatically detect and load the plugin."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"how-to-develop-gamevault-plugins",children:"How to Develop GameVault Plugins"}),"\n",(0,t.jsx)(n.p,{children:"If you're a developer interested in creating plugins, you're in luck\u2014it's simple to get started. Here\u2019s a step-by-step guide:"}),"\n",(0,t.jsx)(n.h3,{id:"step-1-clone-the-backend-repository",children:"Step 1: Clone the Backend Repository"}),"\n",(0,t.jsxs)(n.p,{children:["First, set up a local instance of the GameVault backend. Follow the setup instructions available ",(0,t.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/INSTALL.md",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"step-2-understand-the-architecture",children:"Step 2: Understand the Architecture"}),"\n",(0,t.jsxs)(n.p,{children:["GameVault plugins are built as NestJS modules, just like the rest of the system. You\u2019ll be working with ",(0,t.jsx)(n.a,{href:"https://docs.nestjs.com",children:"NestJS"})," components such as ",(0,t.jsx)(n.a,{href:"https://docs.nestjs.com/modules",children:"Modules"}),", ",(0,t.jsx)(n.a,{href:"https://docs.nestjs.com/providers",children:"Services"}),", and ",(0,t.jsx)(n.a,{href:"https://docs.nestjs.com/controllers",children:"Controllers"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["To start, it's a good idea to read the official NestJS documentation, but if you prefer to jump in and learn by doing, you can reference the ",(0,t.jsx)(n.a,{href:"#example-plugins",children:"example code below"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"step-3-set-up-a-plugin",children:"Step 3: Set Up a Plugin"}),"\n",(0,t.jsxs)(n.p,{children:["Suppose we\u2019re creating a plugin called ",(0,t.jsx)(n.code,{children:"useless-plugin"}),"."]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Navigate to the ",(0,t.jsx)(n.code,{children:"gamevault-backend"})," directory in your cloned repository."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a folder for your plugin: ",(0,t.jsx)(n.code,{children:"gamevault-backend/.local/plugins/useless-plugin/"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Inside the plugin folder, initialize a git repository with ",(0,t.jsx)(n.code,{children:"git init"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new file for your module: ",(0,t.jsx)(n.code,{children:"useless.plugin.module.ts"}),". This file will serve as the entry point for your plugin and should implement the ",(0,t.jsx)(n.code,{children:"GameVaultPluginModule"})," interface (which can be imported from ",(0,t.jsx)(n.code,{children:"src/globals.ts"}),")."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Here\u2019s a basic example of how your module might look:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",children:'import { Module } from "@nestjs/common";\nimport {\n GameVaultPluginModule,\n GameVaultPluginModuleMetadataV1,\n} from "../../../src/globals";\n\n@Module({\n imports: [],\n controllers: [],\n providers: [],\n})\nexport default class UselessPluginModule implements GameVaultPluginModule {\n metadata: GameVaultPluginModuleMetadataV1 = {\n name: "Useless Plugin",\n author: "Phalcode",\n version: "1.0.0",\n description:\n "An example plugin that does nothing useful. It logs the user count every three seconds and provides two REST APIs with sample data.",\n keywords: ["example", "api"],\n license: "UNLICENSE",\n website: "https://gamevau.lt",\n };\n}\n'})}),"\n",(0,t.jsx)(n.admonition,{title:"Avoid Redundancy",type:"tip",children:(0,t.jsxs)(n.p,{children:["When naming files, avoid repeating words. For example, if your plugin is called ",(0,t.jsx)(n.code,{children:"useless-plugin"}),", name the module file ",(0,t.jsx)(n.code,{children:"useless.plugin.module.ts"}),", not ",(0,t.jsx)(n.code,{children:"useless-plugin.plugin.module.ts"}),"."]})}),"\n",(0,t.jsx)(n.h3,{id:"step-4-document-your-plugin",children:"Step 4: Document Your Plugin"}),"\n",(0,t.jsxs)(n.p,{children:["Once you've implemented the ",(0,t.jsx)(n.code,{children:"GameVaultPluginModule"})," interface, make sure to provide details about your plugin in the metadata section. Be sure to add a ",(0,t.jsx)(n.code,{children:"README.md"})," and ",(0,t.jsx)(n.code,{children:"LICENSE"})," file to the plugin folder to make it clear and accessible when shared on GitHub."]}),"\n",(0,t.jsx)(n.h3,{id:"step-5-implement-your-plugins-logic",children:"Step 5: Implement Your Plugin's Logic"}),"\n",(0,t.jsxs)(n.p,{children:["Now, develop your plugin by adding services, controllers, or any other NestJS components. You can use existing GameVault modules to extend functionality. For instance in our example you can see we used the ",(0,t.jsx)(n.code,{children:"UsersService"})," to count the users on our GameVault server. The possibilities are limitless."]}),"\n",(0,t.jsx)(n.h4,{id:"adding-configuration-options",children:"Adding Configuration Options"}),"\n",(0,t.jsxs)(n.p,{children:["If your plugin should support specific configuration for the end user, you can introduce custom environment variables. Make sure they are unique and do not conflict with existing variables. A good pattern is: ",(0,t.jsx)(n.code,{children:"PLUGIN_AUTHORNAME_PLUGINNAME_SETTING"})," (e.g., ",(0,t.jsx)(n.code,{children:"PLUGIN_PHALCODE_USELESS_ENABLED"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["You can access these variables in your code via ",(0,t.jsx)(n.code,{children:"process.env.PLUGIN_AUTHORNAME_PLUGINNAME_SETTING"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"step-6-test-your-plugin",children:"Step 6: Test Your Plugin"}),"\n",(0,t.jsxs)(n.p,{children:["When you\u2019re ready to test, run ",(0,t.jsx)(n.code,{children:"pnpm start"}),'. GameVault will automatically inject your plugin, and you should see relevant logs. You can debug using logs or Visual Studio Code\u2019s "Toggle Auto Attach" feature. For extra quality assurance, you can write unit tests with Jest by adding a ',(0,t.jsx)(n.code,{children:".spec.ts"})," file and running ",(0,t.jsx)(n.code,{children:"pnpm test"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"step-7-compile-your-plugin",children:"Step 7: Compile Your Plugin"}),"\n",(0,t.jsxs)(n.p,{children:["Once your plugin is working and tested, compile it by running ",(0,t.jsx)(n.code,{children:"pnpm build"}),". This will generate a ",(0,t.jsx)(n.code,{children:"dist"})," folder with your compiled plugin in the ",(0,t.jsx)(n.code,{children:"dist/.local/plugins/useless-plugin"})," directory. Look for folder containing a ",(0,t.jsx)(n.code,{children:".plugin.module.js"})," file\u2014this is your compiled plugin. Zip that folder\u2014this is the final, compiled version of your plugin, ready for users to install and run on their servers."]}),"\n",(0,t.jsx)(n.h3,{id:"step-8-release-your-plugin",children:"Step 8: Release Your Plugin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Bring your local Git repository to GitHub."}),"\n",(0,t.jsx)(n.li,{children:"Create a release on GitHub and upload the zipped plugin folder containing your plugin\u2019s JavaScript files."}),"\n",(0,t.jsxs)(n.li,{children:["Tag your repository with ",(0,t.jsx)(n.code,{children:"gamevault-backend-plugin"})," to make it available for users to find."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"step-9-get-featured",children:"Step 9: Get Featured"}),"\n",(0,t.jsx)(n.p,{children:"If your plugin is particularly useful and you want it to be in the standard feature set, contact us! We might integrate it directly into the official GameVault-Backend product."}),"\n",(0,t.jsx)(n.h2,{id:"metadata-provider-plugin-specifics",children:"Metadata Provider Plugin Specifics"}),"\n",(0,t.jsx)(n.p,{children:"If your plugin should integrate with GameVault\u2019s metadata framework, follow these additional steps:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Create the plugin as outlined above."}),"\n",(0,t.jsxs)(n.li,{children:["Develop a NestJS service that implements the ",(0,t.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/src/modules/metadata/providers/abstract.metadata-provider.service.ts",children:(0,t.jsx)(n.code,{children:"abstract.metadata-provider.interface.ts"})}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Once complete, you can feature your plugin ",(0,t.jsx)(n.a,{href:"/docs/server-docs/metadata-enrichment/metadata#community-maintained-metadata-providers",children:"right here in the documentation"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"example-plugins",children:"Example Plugins"}),"\n",(0,t.jsxs)(n.p,{children:["You can check out some example plugins provided by Phalcode ",(0,t.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend-example-plugins",children:"here"})," to see how plugins are structured and developed."]})]})}function c(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},8358:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>o});var t=i(5271);const l={},s=t.createContext(l);function o(e){const n=t.useContext(s);return t.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(l):e.components||l:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/18d9fd7d.c7460380.js b/assets/js/18d9fd7d.c7460380.js new file mode 100644 index 000000000..74d3223ac --- /dev/null +++ b/assets/js/18d9fd7d.c7460380.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3158],{884:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"server-docs/plugins","title":"Plugins","description":"Plugins are currently in the early stages of development. Things may break, so always make backups before using them.","source":"@site/docs/server-docs/plugins.md","sourceDirName":"server-docs","slug":"/server-docs/plugins","permalink":"/docs/server-docs/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/plugins.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":9,"frontMatter":{"sidebar_position":9},"sidebar":"docs","previous":{"title":"WebSockets","permalink":"/docs/server-docs/websockets"},"next":{"title":"Parental Control","permalink":"/docs/server-docs/parental-control"}}');var l=t(6070),s=t(8591);const o={sidebar_position:9},r="Plugins",a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Where to Find Plugins",id:"where-to-find-plugins",level:2},{value:"How to Install Plugins",id:"how-to-install-plugins",level:2},{value:"How to Develop GameVault Plugins",id:"how-to-develop-gamevault-plugins",level:2},{value:"Step 1: Clone the Backend Repository",id:"step-1-clone-the-backend-repository",level:3},{value:"Step 2: Understand the Architecture",id:"step-2-understand-the-architecture",level:3},{value:"Step 3: Set Up a Plugin",id:"step-3-set-up-a-plugin",level:3},{value:"Step 4: Document Your Plugin",id:"step-4-document-your-plugin",level:3},{value:"Step 5: Implement Your Plugin's Logic",id:"step-5-implement-your-plugins-logic",level:3},{value:"Adding Configuration Options",id:"adding-configuration-options",level:4},{value:"Step 6: Test Your Plugin",id:"step-6-test-your-plugin",level:3},{value:"Step 7: Compile Your Plugin",id:"step-7-compile-your-plugin",level:3},{value:"Step 8: Release Your Plugin",id:"step-8-release-your-plugin",level:3},{value:"Step 9: Get Featured",id:"step-9-get-featured",level:3},{value:"Metadata Provider Plugin Specifics",id:"metadata-provider-plugin-specifics",level:2},{value:"Example Plugins",id:"example-plugins",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",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:"plugins",children:"Plugins"})}),"\n",(0,l.jsx)(n.admonition,{title:"Plugins are experimental",type:"danger",children:(0,l.jsx)(n.p,{children:"Plugins are currently in the early stages of development. Things may break, so always make backups before using them."})}),"\n",(0,l.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,l.jsx)(n.p,{children:"GameVault is built with modularity in mind, featuring a plugin system that allows users to integrate custom functionality directly into the server. Whether you're looking to extend GameVault or customize its behavior, plugins provide the flexibility you need."}),"\n",(0,l.jsx)(n.h2,{id:"where-to-find-plugins",children:"Where to Find Plugins"}),"\n",(0,l.jsxs)(n.p,{children:["You can browse a list of available GameVault plugins ",(0,l.jsx)(n.a,{href:"https://github.com/topics/gamevault-backend-plugin",children:"here"}),". Be sure to check that the plugin is compatible with your specific version of the GameVault backend."]}),"\n",(0,l.jsx)(n.h2,{id:"how-to-install-plugins",children:"How to Install Plugins"}),"\n",(0,l.jsx)(n.p,{children:"To install a plugin, follow these steps:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Place the folder containing your compiled plugin (",(0,l.jsx)(n.code,{children:".js"})," files) into the ",(0,l.jsx)(n.code,{children:"/plugins"})," directory of your GameVault server. Archives are currently not supported, so extract them first."]}),"\n",(0,l.jsx)(n.li,{children:"When you start the server, GameVault will automatically detect and load the plugin."}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"how-to-develop-gamevault-plugins",children:"How to Develop GameVault Plugins"}),"\n",(0,l.jsx)(n.p,{children:"If you're a developer interested in creating plugins, you're in luck\u2014it's simple to get started. Here\u2019s a step-by-step guide:"}),"\n",(0,l.jsx)(n.h3,{id:"step-1-clone-the-backend-repository",children:"Step 1: Clone the Backend Repository"}),"\n",(0,l.jsxs)(n.p,{children:["First, set up a local instance of the GameVault backend. Follow the setup instructions available ",(0,l.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/INSTALL.md",children:"here"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"step-2-understand-the-architecture",children:"Step 2: Understand the Architecture"}),"\n",(0,l.jsxs)(n.p,{children:["GameVault plugins are built as NestJS modules, just like the rest of the system. You\u2019ll be working with ",(0,l.jsx)(n.a,{href:"https://docs.nestjs.com",children:"NestJS"})," components such as ",(0,l.jsx)(n.a,{href:"https://docs.nestjs.com/modules",children:"Modules"}),", ",(0,l.jsx)(n.a,{href:"https://docs.nestjs.com/providers",children:"Services"}),", and ",(0,l.jsx)(n.a,{href:"https://docs.nestjs.com/controllers",children:"Controllers"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["To start, it's a good idea to read the official NestJS documentation, but if you prefer to jump in and learn by doing, you can reference the ",(0,l.jsx)(n.a,{href:"#example-plugins",children:"example code below"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"step-3-set-up-a-plugin",children:"Step 3: Set Up a Plugin"}),"\n",(0,l.jsxs)(n.p,{children:["Suppose we\u2019re creating a plugin called ",(0,l.jsx)(n.code,{children:"useless-plugin"}),"."]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Navigate to the ",(0,l.jsx)(n.code,{children:"gamevault-backend"})," directory in your cloned repository."]}),"\n",(0,l.jsxs)(n.li,{children:["Create a folder for your plugin: ",(0,l.jsx)(n.code,{children:"gamevault-backend/.local/plugins/useless-plugin/"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Inside the plugin folder, initialize a git repository with ",(0,l.jsx)(n.code,{children:"git init"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Create a new file for your module: ",(0,l.jsx)(n.code,{children:"useless.plugin.module.ts"}),". This file will serve as the entry point for your plugin and should implement the ",(0,l.jsx)(n.code,{children:"GameVaultPluginModule"})," interface (which can be imported from ",(0,l.jsx)(n.code,{children:"src/globals.ts"}),")."]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Here\u2019s a basic example of how your module might look:"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-ts",children:'import { Module } from "@nestjs/common";\nimport {\n GameVaultPluginModule,\n GameVaultPluginModuleMetadataV1,\n} from "../../../src/globals";\n\n@Module({\n imports: [],\n controllers: [],\n providers: [],\n})\nexport default class UselessPluginModule implements GameVaultPluginModule {\n metadata: GameVaultPluginModuleMetadataV1 = {\n name: "Useless Plugin",\n author: "Phalcode",\n version: "1.0.0",\n description:\n "An example plugin that does nothing useful. It logs the user count every three seconds and provides two REST APIs with sample data.",\n keywords: ["example", "api"],\n license: "UNLICENSE",\n website: "https://gamevau.lt",\n };\n}\n'})}),"\n",(0,l.jsx)(n.admonition,{title:"Avoid Redundancy",type:"tip",children:(0,l.jsxs)(n.p,{children:["When naming files, avoid repeating words. For example, if your plugin is called ",(0,l.jsx)(n.code,{children:"useless-plugin"}),", name the module file ",(0,l.jsx)(n.code,{children:"useless.plugin.module.ts"}),", not ",(0,l.jsx)(n.code,{children:"useless-plugin.plugin.module.ts"}),"."]})}),"\n",(0,l.jsx)(n.h3,{id:"step-4-document-your-plugin",children:"Step 4: Document Your Plugin"}),"\n",(0,l.jsxs)(n.p,{children:["Once you've implemented the ",(0,l.jsx)(n.code,{children:"GameVaultPluginModule"})," interface, make sure to provide details about your plugin in the metadata section. Be sure to add a ",(0,l.jsx)(n.code,{children:"README.md"})," and ",(0,l.jsx)(n.code,{children:"LICENSE"})," file to the plugin folder to make it clear and accessible when shared on GitHub."]}),"\n",(0,l.jsx)(n.h3,{id:"step-5-implement-your-plugins-logic",children:"Step 5: Implement Your Plugin's Logic"}),"\n",(0,l.jsxs)(n.p,{children:["Now, develop your plugin by adding services, controllers, or any other NestJS components. You can use existing GameVault modules to extend functionality. For instance in our example you can see we used the ",(0,l.jsx)(n.code,{children:"UsersService"})," to count the users on our GameVault server. The possibilities are limitless."]}),"\n",(0,l.jsx)(n.h4,{id:"adding-configuration-options",children:"Adding Configuration Options"}),"\n",(0,l.jsxs)(n.p,{children:["If your plugin should support specific configuration for the end user, you can introduce custom environment variables. Make sure they are unique and do not conflict with existing variables. A good pattern is: ",(0,l.jsx)(n.code,{children:"PLUGIN_AUTHORNAME_PLUGINNAME_SETTING"})," (e.g., ",(0,l.jsx)(n.code,{children:"PLUGIN_PHALCODE_USELESS_ENABLED"}),")."]}),"\n",(0,l.jsxs)(n.p,{children:["You can access these variables in your code via ",(0,l.jsx)(n.code,{children:"process.env.PLUGIN_AUTHORNAME_PLUGINNAME_SETTING"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"step-6-test-your-plugin",children:"Step 6: Test Your Plugin"}),"\n",(0,l.jsxs)(n.p,{children:["When you\u2019re ready to test, run ",(0,l.jsx)(n.code,{children:"pnpm start"}),'. GameVault will automatically inject your plugin, and you should see relevant logs. You can debug using logs or Visual Studio Code\u2019s "Toggle Auto Attach" feature. For extra quality assurance, you can write unit tests with Jest by adding a ',(0,l.jsx)(n.code,{children:".spec.ts"})," file and running ",(0,l.jsx)(n.code,{children:"pnpm test"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"step-7-compile-your-plugin",children:"Step 7: Compile Your Plugin"}),"\n",(0,l.jsxs)(n.p,{children:["Once your plugin is working and tested, compile it by running ",(0,l.jsx)(n.code,{children:"pnpm build"}),". This will generate a ",(0,l.jsx)(n.code,{children:"dist"})," folder with your compiled plugin in the ",(0,l.jsx)(n.code,{children:"dist/.local/plugins/useless-plugin"})," directory. Look for folder containing a ",(0,l.jsx)(n.code,{children:".plugin.module.js"})," file\u2014this is your compiled plugin. Zip that folder\u2014this is the final, compiled version of your plugin, ready for users to install and run on their servers."]}),"\n",(0,l.jsx)(n.h3,{id:"step-8-release-your-plugin",children:"Step 8: Release Your Plugin"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Bring your local Git repository to GitHub."}),"\n",(0,l.jsx)(n.li,{children:"Create a release on GitHub and upload the zipped plugin folder containing your plugin\u2019s JavaScript files."}),"\n",(0,l.jsxs)(n.li,{children:["Tag your repository with ",(0,l.jsx)(n.code,{children:"gamevault-backend-plugin"})," to make it available for users to find."]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"step-9-get-featured",children:"Step 9: Get Featured"}),"\n",(0,l.jsx)(n.p,{children:"If your plugin is particularly useful and you want it to be in the standard feature set, contact us! We might integrate it directly into the official GameVault-Backend product."}),"\n",(0,l.jsx)(n.h2,{id:"metadata-provider-plugin-specifics",children:"Metadata Provider Plugin Specifics"}),"\n",(0,l.jsx)(n.p,{children:"If your plugin should integrate with GameVault\u2019s metadata framework, follow these additional steps:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Create the plugin as outlined above."}),"\n",(0,l.jsxs)(n.li,{children:["Develop a NestJS service that implements the ",(0,l.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/src/modules/metadata/providers/abstract.metadata-provider.service.ts",children:(0,l.jsx)(n.code,{children:"abstract.metadata-provider.interface.ts"})}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Once complete, you can feature your plugin ",(0,l.jsx)(n.a,{href:"/docs/server-docs/metadata-enrichment/metadata#community-maintained-metadata-providers",children:"right here in the documentation"}),"."]}),"\n",(0,l.jsx)(n.h2,{id:"example-plugins",children:"Example Plugins"}),"\n",(0,l.jsxs)(n.p,{children:["You can check out some example plugins provided by Phalcode ",(0,l.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend-example-plugins",children:"here"})," to see how plugins are structured and developed."]})]})}function c(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var i=t(758);const l={},s=i.createContext(l);function o(e){const n=i.useContext(s);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(l):e.components||l:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/193fe191.17ee5eb5.js b/assets/js/193fe191.17ee5eb5.js deleted file mode 100644 index 7d8f0f0d3..000000000 --- a/assets/js/193fe191.17ee5eb5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7459],{3323:(e,d,s)=>{s.r(d),s.d(d,{assets:()=>l,contentTitle:()=>n,default:()=>j,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var r=s(2676),t=s(8358);const i={},n="Provider: IGDB",c={id:"server-docs/metadata-enrichment/provider-igdb",title:"Provider: IGDB",description:"Overview",source:"@site/docs/server-docs/metadata-enrichment/provider-igdb.md",sourceDirName:"server-docs/metadata-enrichment",slug:"/server-docs/metadata-enrichment/provider-igdb",permalink:"/docs/server-docs/metadata-enrichment/provider-igdb",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/metadata-enrichment/provider-igdb.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{},sidebar:"docs",previous:{title:"Enriching your Games with Metadata",permalink:"/docs/server-docs/metadata-enrichment/metadata"},next:{title:"Database Backup & Restoration",permalink:"/docs/server-docs/backup-and-restore"}},l={},h=[{value:"Overview",id:"overview",level:2},{value:"Setup",id:"setup",level:2},{value:"Configurations",id:"configurations",level:2},{value:"Mappings",id:"mappings",level:2},{value:"Fields",id:"fields",level:3},{value:"Age Rating",id:"age-rating",level:3}];function x(e){const d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.header,{children:(0,r.jsx)(d.h1,{id:"provider-igdb",children:"Provider: IGDB"})}),"\n",(0,r.jsx)(d.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsxs)(d.p,{children:[(0,r.jsx)(d.a,{href:"https://igdb.com",children:"The Internet Games Database (IGDB)"})," is one of the most popular databases for detailed video game information run by ",(0,r.jsx)(d.a,{href:"https://twitch.tv",children:"twitch.tv"}),". By integrating IGDB with GameVault, users get accurate and up-to-date game data. We're pleased to partner with IGDB to provide the best game information to our users."]}),"\n",(0,r.jsx)(d.h2,{id:"setup",children:"Setup"}),"\n",(0,r.jsxs)(d.ol,{children:["\n",(0,r.jsxs)(d.li,{children:["Log in to your Twitch Account on ",(0,r.jsx)(d.a,{href:"https://dev.twitch.tv/login",children:(0,r.jsx)(d.strong,{children:"dev.twitch.tv"})}),"\n",(0,r.jsxs)(d.ul,{children:["\n",(0,r.jsx)(d.li,{children:"Create a new account if you don't have one already."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(d.li,{children:["Open the ",(0,r.jsx)(d.a,{href:"https://dev.twitch.tv/console/apps",children:(0,r.jsx)(d.strong,{children:"Twitch Developer dashboard"})}),"."]}),"\n",(0,r.jsxs)(d.li,{children:["Click on ",(0,r.jsx)(d.a,{href:"https://dev.twitch.tv/console/apps/create",children:(0,r.jsx)(d.strong,{children:"Register your application"})}),"\n",(0,r.jsx)(d.img,{alt:"Register your application",src:s(6473).Z+"",width:"1254",height:"393"})]}),"\n",(0,r.jsxs)(d.li,{children:["Fill out the form as shown in the image. Make sure to solve the CAPTCHA.\n",(0,r.jsx)(d.img,{alt:"Fill in the details",src:s(4749).Z+"",width:"1258",height:"832"})]}),"\n",(0,r.jsxs)(d.li,{children:["Once your application is created, click on ",(0,r.jsx)(d.strong,{children:"Manage"}),".\n",(0,r.jsx)(d.img,{alt:"Manage",src:s(5498).Z+"",width:"1259",height:"317"})]}),"\n",(0,r.jsxs)(d.li,{children:["Click on ",(0,r.jsx)(d.strong,{children:"New Secret"}),". Make sure to solve the CAPTCHA.\n",(0,r.jsx)(d.img,{alt:"New Secret",src:s(2509).Z+"",width:"1250",height:"1053"})]}),"\n",(0,r.jsxs)(d.li,{children:["Copy your ",(0,r.jsx)(d.strong,{children:"Client ID"})," and ",(0,r.jsx)(d.strong,{children:"Client Secret"})," and configure them in GameVaults ",(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})," and ",(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})," environment variables."]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.strong,{children:"Done!"})," \ud83e\udd73 Now just restart your server and it should do it's magic. If you have lots of games, it may take a while to fetch all metadata. You can check the progress in the server logs."]}),"\n"]}),"\n",(0,r.jsx)(d.h2,{id:"configurations",children:"Configurations"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_ENABLED"})}),(0,r.jsx)(d.td,{children:"Enables / Disables the Provider"}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"true"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_PRIORITY"})}),(0,r.jsx)(d.td,{children:"Priority of the Provider"}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"50"})}),(0,r.jsx)(d.td,{children:"Any Integer"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})}),(0,r.jsx)(d.td,{children:"Your developer.twitch.tv Client ID"}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Your Client-ID"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})}),(0,r.jsx)(d.td,{children:"Your developer.twitch.tv Client Secret"}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Your Client-Secret"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"mappings",children:"Mappings"}),"\n",(0,r.jsx)(d.h3,{id:"fields",children:"Fields"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"GameVault Field"}),(0,r.jsx)(d.th,{children:"IGDB API Field(s)"}),(0,r.jsx)(d.th,{children:"Notes"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"provider_slug"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"igdb"})}),(0,r.jsx)(d.td,{children:"hardcoded."})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"age_rating"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"age_ratings"})}),(0,r.jsxs)(d.td,{children:["See ",(0,r.jsx)(d.a,{href:"#age-rating",children:"here"})," for details."]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"provider_data_id"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"id"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"provider_data_url"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"url"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"title"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"name"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"release_date"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"first_release_date"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"description"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"game.summary"})," and/or ",(0,r.jsx)(d.code,{children:"game.storyline"})]}),(0,r.jsx)(d.td,{children:"If both are available, both get used, else any available will be mapped"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"rating"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"total_rating"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"early_access"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"status"})}),(0,r.jsxs)(d.td,{children:["True if the Game is either in status ",(0,r.jsx)(d.code,{children:"alpha"}),", ",(0,r.jsx)(d.code,{children:"beta"})," or ",(0,r.jsx)(d.code,{children:"early_access"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"developers"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"involved_companies"})}),(0,r.jsxs)(d.td,{children:["Filtered by ",(0,r.jsx)(d.code,{children:"involved_company.developer === true"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"publishers"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"involved_companies"})}),(0,r.jsxs)(d.td,{children:["Filtered by ",(0,r.jsx)(d.code,{children:"involved_company.publisher === true"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"genres"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"genres"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"tags"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"keywords"})," and ",(0,r.jsx)(d.code,{children:"themes"})]}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"cover"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"cover"})}),(0,r.jsxs)(d.td,{children:["Using the highest possible cover resolution via ",(0,r.jsx)(d.code,{children:"t_cover_big_2x"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"background"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"artworks[0]"})," or ",(0,r.jsx)(d.code,{children:"screenshots[0]"})]}),(0,r.jsxs)(d.td,{children:["Only first artwork/screenshot is mapped. Using the highest possible 16:9 resolution via ",(0,r.jsx)(d.code,{children:"t_1080p_2x"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"url_websites"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"websites.url"})}),(0,r.jsx)(d.td,{})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"url_screenshots"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"screenshots"})," and ",(0,r.jsx)(d.code,{children:"artworks"})]}),(0,r.jsxs)(d.td,{children:["Using the highest possible 16:9 resolution via ",(0,r.jsx)(d.code,{children:"t_1080p_2x"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"url_trailers"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"videos"})}),(0,r.jsx)(d.td,{children:'Only when video title includes the words "trailer", "teaser" or "intro"'})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"url_gameplays"})}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"videos"})}),(0,r.jsx)(d.td,{children:'Only when video title includes the words "gameplay"'})]})]})]}),"\n",(0,r.jsx)(d.h3,{id:"age-rating",children:"Age Rating"}),"\n",(0,r.jsxs)(d.p,{children:['The table below shows how age ratings from GameVault and IGDB are matched. Ratings like "Not Yet Rated" are ignored. A game can have ratings from multiple systems. The IGDB integration calculates ',(0,r.jsx)(d.strong,{children:"the average of all ratings"}),", rounds it, and then saves it to GameVault."]}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Age Rating System"}),(0,r.jsx)(d.th,{children:"Rating Name"}),(0,r.jsx)(d.th,{children:"GameVault Minimum Age (Years)"}),(0,r.jsx)(d.th,{children:"IGDB Rating Enum Value"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"PEGI"})}),(0,r.jsx)(d.td,{children:"Three"}),(0,r.jsx)(d.td,{children:"3"}),(0,r.jsx)(d.td,{children:"1"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"Seven"}),(0,r.jsx)(d.td,{children:"7"}),(0,r.jsx)(d.td,{children:"2"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"Twelve"}),(0,r.jsx)(d.td,{children:"12"}),(0,r.jsx)(d.td,{children:"3"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"Sixteen"}),(0,r.jsx)(d.td,{children:"16"}),(0,r.jsx)(d.td,{children:"4"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"Eighteen"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"5"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"ESRB"})}),(0,r.jsx)(d.td,{children:"EC"}),(0,r.jsx)(d.td,{children:"3"}),(0,r.jsx)(d.td,{children:"7"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"E"}),(0,r.jsx)(d.td,{children:"6"}),(0,r.jsx)(d.td,{children:"8"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"E10"}),(0,r.jsx)(d.td,{children:"10"}),(0,r.jsx)(d.td,{children:"9"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"T"}),(0,r.jsx)(d.td,{children:"13"}),(0,r.jsx)(d.td,{children:"10"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"M"}),(0,r.jsx)(d.td,{children:"17"}),(0,r.jsx)(d.td,{children:"11"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"AO"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"12"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"CERO"})}),(0,r.jsx)(d.td,{children:"CERO_A"}),(0,r.jsx)(d.td,{children:"0"}),(0,r.jsx)(d.td,{children:"13"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CERO_B"}),(0,r.jsx)(d.td,{children:"12"}),(0,r.jsx)(d.td,{children:"14"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CERO_C"}),(0,r.jsx)(d.td,{children:"15"}),(0,r.jsx)(d.td,{children:"15"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CERO_D"}),(0,r.jsx)(d.td,{children:"17"}),(0,r.jsx)(d.td,{children:"16"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CERO_Z"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"17"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"USK"})}),(0,r.jsx)(d.td,{children:"USK_0"}),(0,r.jsx)(d.td,{children:"0"}),(0,r.jsx)(d.td,{children:"18"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"USK_6"}),(0,r.jsx)(d.td,{children:"6"}),(0,r.jsx)(d.td,{children:"19"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"USK_12"}),(0,r.jsx)(d.td,{children:"12"}),(0,r.jsx)(d.td,{children:"20"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"USK_16"}),(0,r.jsx)(d.td,{children:"16"}),(0,r.jsx)(d.td,{children:"21"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"USK_18"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"22"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"GRAC"})}),(0,r.jsx)(d.td,{children:"GRAC_ALL"}),(0,r.jsx)(d.td,{children:"0"}),(0,r.jsx)(d.td,{children:"23"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"GRAC_Twelve"}),(0,r.jsx)(d.td,{children:"12"}),(0,r.jsx)(d.td,{children:"24"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"GRAC_Fifteen"}),(0,r.jsx)(d.td,{children:"15"}),(0,r.jsx)(d.td,{children:"25"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"GRAC_Eighteen"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"26"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"CLASS_IND"})}),(0,r.jsx)(d.td,{children:"CLASS_IND_L"}),(0,r.jsx)(d.td,{children:"0"}),(0,r.jsx)(d.td,{children:"28"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CLASS_IND_Ten"}),(0,r.jsx)(d.td,{children:"10"}),(0,r.jsx)(d.td,{children:"29"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CLASS_IND_Twelve"}),(0,r.jsx)(d.td,{children:"12"}),(0,r.jsx)(d.td,{children:"30"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CLASS_IND_Fourteen"}),(0,r.jsx)(d.td,{children:"14"}),(0,r.jsx)(d.td,{children:"31"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CLASS_IND_Sixteen"}),(0,r.jsx)(d.td,{children:"16"}),(0,r.jsx)(d.td,{children:"32"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"CLASS_IND_Eighteen"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"33"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.strong,{children:"ACB"})}),(0,r.jsx)(d.td,{children:"ACB_G"}),(0,r.jsx)(d.td,{children:"0"}),(0,r.jsx)(d.td,{children:"34"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"ACB_PG"}),(0,r.jsx)(d.td,{children:"8"}),(0,r.jsx)(d.td,{children:"35"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"ACB_M"}),(0,r.jsx)(d.td,{children:"15"}),(0,r.jsx)(d.td,{children:"36"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"ACB_MA15"}),(0,r.jsx)(d.td,{children:"15"}),(0,r.jsx)(d.td,{children:"37"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{}),(0,r.jsx)(d.td,{children:"ACB_R18"}),(0,r.jsx)(d.td,{children:"18"}),(0,r.jsx)(d.td,{children:"38"})]})]})]})]})}function j(e={}){const{wrapper:d}={...(0,t.a)(),...e.components};return d?(0,r.jsx)(d,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}},6473:(e,d,s)=>{s.d(d,{Z:()=>r});const r=s.p+"assets/images/setup-step-1-531ca876d7d5343984b56d73b5fe2527.png"},4749:(e,d,s)=>{s.d(d,{Z:()=>r});const r=s.p+"assets/images/setup-step-2-9b26b8c4e36c9ae8b00e578737b6412d.png"},5498:(e,d,s)=>{s.d(d,{Z:()=>r});const r=s.p+"assets/images/setup-step-3-1f45dd581f8cc3ffc8071bdcc115f0b9.png"},2509:(e,d,s)=>{s.d(d,{Z:()=>r});const r=s.p+"assets/images/setup-step-4-2906d1431be260bcadd96e0ce27e8749.png"},8358:(e,d,s)=>{s.d(d,{Z:()=>c,a:()=>n});var r=s(5271);const t={},i=r.createContext(t);function n(e){const d=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),r.createElement(i.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/193fe191.daccda58.js b/assets/js/193fe191.daccda58.js new file mode 100644 index 000000000..6cb5f4f7d --- /dev/null +++ b/assets/js/193fe191.daccda58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2386],{4956:(e,d,s)=>{s.r(d),s.d(d,{assets:()=>l,contentTitle:()=>c,default:()=>j,frontMatter:()=>n,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"server-docs/metadata-enrichment/provider-igdb","title":"Provider: IGDB","description":"Overview","source":"@site/docs/server-docs/metadata-enrichment/provider-igdb.md","sourceDirName":"server-docs/metadata-enrichment","slug":"/server-docs/metadata-enrichment/provider-igdb","permalink":"/docs/server-docs/metadata-enrichment/provider-igdb","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/metadata-enrichment/provider-igdb.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Enriching your Games with Metadata","permalink":"/docs/server-docs/metadata-enrichment/metadata"},"next":{"title":"Database Backup & Restoration","permalink":"/docs/server-docs/backup-and-restore"}}');var t=s(6070),i=s(8591);const n={},c="Provider: IGDB",l={},h=[{value:"Overview",id:"overview",level:2},{value:"Setup",id:"setup",level:2},{value:"Configurations",id:"configurations",level:2},{value:"Mappings",id:"mappings",level:2},{value:"Fields",id:"fields",level:3},{value:"Age Rating",id:"age-rating",level:3}];function x(e){const d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.header,{children:(0,t.jsx)(d.h1,{id:"provider-igdb",children:"Provider: IGDB"})}),"\n",(0,t.jsx)(d.h2,{id:"overview",children:"Overview"}),"\n",(0,t.jsxs)(d.p,{children:[(0,t.jsx)(d.a,{href:"https://igdb.com",children:"The Internet Games Database (IGDB)"})," is one of the most popular databases for detailed video game information run by ",(0,t.jsx)(d.a,{href:"https://twitch.tv",children:"twitch.tv"}),". By integrating IGDB with GameVault, users get accurate and up-to-date game data. We're pleased to partner with IGDB to provide the best game information to our users."]}),"\n",(0,t.jsx)(d.h2,{id:"setup",children:"Setup"}),"\n",(0,t.jsxs)(d.ol,{children:["\n",(0,t.jsxs)(d.li,{children:["Log in to your Twitch Account on ",(0,t.jsx)(d.a,{href:"https://dev.twitch.tv/login",children:(0,t.jsx)(d.strong,{children:"dev.twitch.tv"})}),"\n",(0,t.jsxs)(d.ul,{children:["\n",(0,t.jsx)(d.li,{children:"Create a new account if you don't have one already."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(d.li,{children:["Open the ",(0,t.jsx)(d.a,{href:"https://dev.twitch.tv/console/apps",children:(0,t.jsx)(d.strong,{children:"Twitch Developer dashboard"})}),"."]}),"\n",(0,t.jsxs)(d.li,{children:["Click on ",(0,t.jsx)(d.a,{href:"https://dev.twitch.tv/console/apps/create",children:(0,t.jsx)(d.strong,{children:"Register your application"})}),"\n",(0,t.jsx)(d.img,{alt:"Register your application",src:s(1382).A+"",width:"1254",height:"393"})]}),"\n",(0,t.jsxs)(d.li,{children:["Fill out the form as shown in the image. Make sure to solve the CAPTCHA.\n",(0,t.jsx)(d.img,{alt:"Fill in the details",src:s(5149).A+"",width:"1258",height:"832"})]}),"\n",(0,t.jsxs)(d.li,{children:["Once your application is created, click on ",(0,t.jsx)(d.strong,{children:"Manage"}),".\n",(0,t.jsx)(d.img,{alt:"Manage",src:s(4020).A+"",width:"1259",height:"317"})]}),"\n",(0,t.jsxs)(d.li,{children:["Click on ",(0,t.jsx)(d.strong,{children:"New Secret"}),". Make sure to solve the CAPTCHA.\n",(0,t.jsx)(d.img,{alt:"New Secret",src:s(9659).A+"",width:"1250",height:"1053"})]}),"\n",(0,t.jsxs)(d.li,{children:["Copy your ",(0,t.jsx)(d.strong,{children:"Client ID"})," and ",(0,t.jsx)(d.strong,{children:"Client Secret"})," and configure them in GameVaults ",(0,t.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})," and ",(0,t.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})," environment variables."]}),"\n",(0,t.jsxs)(d.li,{children:[(0,t.jsx)(d.strong,{children:"Done!"})," \ud83e\udd73 Now just restart your server and it should do it's magic. If you have lots of games, it may take a while to fetch all metadata. You can check the progress in the server logs."]}),"\n"]}),"\n",(0,t.jsx)(d.h2,{id:"configurations",children:"Configurations"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Property"}),(0,t.jsx)(d.th,{children:"Description"}),(0,t.jsx)(d.th,{children:"Default"}),(0,t.jsx)(d.th,{children:"Possible Values"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"METADATA_IGDB_ENABLED"})}),(0,t.jsx)(d.td,{children:"Enables / Disables the Provider"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"true"})}),(0,t.jsxs)(d.td,{children:[(0,t.jsx)(d.code,{children:"true"}),", ",(0,t.jsx)(d.code,{children:"false"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"METADATA_IGDB_PRIORITY"})}),(0,t.jsx)(d.td,{children:"Priority of the Provider"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"50"})}),(0,t.jsx)(d.td,{children:"Any Integer"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})}),(0,t.jsx)(d.td,{children:"Your developer.twitch.tv Client ID"}),(0,t.jsx)(d.td,{children:"-"}),(0,t.jsx)(d.td,{children:"Your Client-ID"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})}),(0,t.jsx)(d.td,{children:"Your developer.twitch.tv Client Secret"}),(0,t.jsx)(d.td,{children:"-"}),(0,t.jsx)(d.td,{children:"Your Client-Secret"})]})]})]}),"\n",(0,t.jsx)(d.h2,{id:"mappings",children:"Mappings"}),"\n",(0,t.jsx)(d.h3,{id:"fields",children:"Fields"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"GameVault Field"}),(0,t.jsx)(d.th,{children:"IGDB API Field(s)"}),(0,t.jsx)(d.th,{children:"Notes"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"provider_slug"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"igdb"})}),(0,t.jsx)(d.td,{children:"hardcoded."})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"age_rating"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"age_ratings"})}),(0,t.jsxs)(d.td,{children:["See ",(0,t.jsx)(d.a,{href:"#age-rating",children:"here"})," for details."]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"provider_data_id"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"id"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"provider_data_url"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"url"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"title"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"name"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"release_date"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"first_release_date"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"description"})}),(0,t.jsxs)(d.td,{children:[(0,t.jsx)(d.code,{children:"game.summary"})," and/or ",(0,t.jsx)(d.code,{children:"game.storyline"})]}),(0,t.jsx)(d.td,{children:"If both are available, both get used, else any available will be mapped"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"rating"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"total_rating"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"early_access"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"status"})}),(0,t.jsxs)(d.td,{children:["True if the Game is either in status ",(0,t.jsx)(d.code,{children:"alpha"}),", ",(0,t.jsx)(d.code,{children:"beta"})," or ",(0,t.jsx)(d.code,{children:"early_access"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"developers"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"involved_companies"})}),(0,t.jsxs)(d.td,{children:["Filtered by ",(0,t.jsx)(d.code,{children:"involved_company.developer === true"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"publishers"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"involved_companies"})}),(0,t.jsxs)(d.td,{children:["Filtered by ",(0,t.jsx)(d.code,{children:"involved_company.publisher === true"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"genres"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"genres"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"tags"})}),(0,t.jsxs)(d.td,{children:[(0,t.jsx)(d.code,{children:"keywords"})," and ",(0,t.jsx)(d.code,{children:"themes"})]}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"cover"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"cover"})}),(0,t.jsxs)(d.td,{children:["Using the highest possible cover resolution via ",(0,t.jsx)(d.code,{children:"t_cover_big_2x"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"background"})}),(0,t.jsxs)(d.td,{children:[(0,t.jsx)(d.code,{children:"artworks[0]"})," or ",(0,t.jsx)(d.code,{children:"screenshots[0]"})]}),(0,t.jsxs)(d.td,{children:["Only first artwork/screenshot is mapped. Using the highest possible 16:9 resolution via ",(0,t.jsx)(d.code,{children:"t_1080p_2x"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"url_websites"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"websites.url"})}),(0,t.jsx)(d.td,{})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"url_screenshots"})}),(0,t.jsxs)(d.td,{children:[(0,t.jsx)(d.code,{children:"screenshots"})," and ",(0,t.jsx)(d.code,{children:"artworks"})]}),(0,t.jsxs)(d.td,{children:["Using the highest possible 16:9 resolution via ",(0,t.jsx)(d.code,{children:"t_1080p_2x"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"url_trailers"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"videos"})}),(0,t.jsx)(d.td,{children:'Only when video title includes the words "trailer", "teaser" or "intro"'})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"url_gameplays"})}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"videos"})}),(0,t.jsx)(d.td,{children:'Only when video title includes the words "gameplay"'})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"age-rating",children:"Age Rating"}),"\n",(0,t.jsxs)(d.p,{children:['The table below shows how age ratings from GameVault and IGDB are matched. Ratings like "Not Yet Rated" are ignored. A game can have ratings from multiple systems. The IGDB integration calculates ',(0,t.jsx)(d.strong,{children:"the average of all ratings"}),", rounds it, and then saves it to GameVault."]}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Age Rating System"}),(0,t.jsx)(d.th,{children:"Rating Name"}),(0,t.jsx)(d.th,{children:"GameVault Minimum Age (Years)"}),(0,t.jsx)(d.th,{children:"IGDB Rating Enum Value"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"PEGI"})}),(0,t.jsx)(d.td,{children:"Three"}),(0,t.jsx)(d.td,{children:"3"}),(0,t.jsx)(d.td,{children:"1"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Seven"}),(0,t.jsx)(d.td,{children:"7"}),(0,t.jsx)(d.td,{children:"2"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Twelve"}),(0,t.jsx)(d.td,{children:"12"}),(0,t.jsx)(d.td,{children:"3"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Sixteen"}),(0,t.jsx)(d.td,{children:"16"}),(0,t.jsx)(d.td,{children:"4"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Eighteen"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"5"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"ESRB"})}),(0,t.jsx)(d.td,{children:"EC"}),(0,t.jsx)(d.td,{children:"3"}),(0,t.jsx)(d.td,{children:"7"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"E"}),(0,t.jsx)(d.td,{children:"6"}),(0,t.jsx)(d.td,{children:"8"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"E10"}),(0,t.jsx)(d.td,{children:"10"}),(0,t.jsx)(d.td,{children:"9"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"T"}),(0,t.jsx)(d.td,{children:"13"}),(0,t.jsx)(d.td,{children:"10"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"M"}),(0,t.jsx)(d.td,{children:"17"}),(0,t.jsx)(d.td,{children:"11"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"AO"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"12"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"CERO"})}),(0,t.jsx)(d.td,{children:"CERO_A"}),(0,t.jsx)(d.td,{children:"0"}),(0,t.jsx)(d.td,{children:"13"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CERO_B"}),(0,t.jsx)(d.td,{children:"12"}),(0,t.jsx)(d.td,{children:"14"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CERO_C"}),(0,t.jsx)(d.td,{children:"15"}),(0,t.jsx)(d.td,{children:"15"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CERO_D"}),(0,t.jsx)(d.td,{children:"17"}),(0,t.jsx)(d.td,{children:"16"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CERO_Z"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"17"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"USK"})}),(0,t.jsx)(d.td,{children:"USK_0"}),(0,t.jsx)(d.td,{children:"0"}),(0,t.jsx)(d.td,{children:"18"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"USK_6"}),(0,t.jsx)(d.td,{children:"6"}),(0,t.jsx)(d.td,{children:"19"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"USK_12"}),(0,t.jsx)(d.td,{children:"12"}),(0,t.jsx)(d.td,{children:"20"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"USK_16"}),(0,t.jsx)(d.td,{children:"16"}),(0,t.jsx)(d.td,{children:"21"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"USK_18"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"22"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"GRAC"})}),(0,t.jsx)(d.td,{children:"GRAC_ALL"}),(0,t.jsx)(d.td,{children:"0"}),(0,t.jsx)(d.td,{children:"23"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"GRAC_Twelve"}),(0,t.jsx)(d.td,{children:"12"}),(0,t.jsx)(d.td,{children:"24"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"GRAC_Fifteen"}),(0,t.jsx)(d.td,{children:"15"}),(0,t.jsx)(d.td,{children:"25"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"GRAC_Eighteen"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"26"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"CLASS_IND"})}),(0,t.jsx)(d.td,{children:"CLASS_IND_L"}),(0,t.jsx)(d.td,{children:"0"}),(0,t.jsx)(d.td,{children:"28"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CLASS_IND_Ten"}),(0,t.jsx)(d.td,{children:"10"}),(0,t.jsx)(d.td,{children:"29"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CLASS_IND_Twelve"}),(0,t.jsx)(d.td,{children:"12"}),(0,t.jsx)(d.td,{children:"30"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CLASS_IND_Fourteen"}),(0,t.jsx)(d.td,{children:"14"}),(0,t.jsx)(d.td,{children:"31"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CLASS_IND_Sixteen"}),(0,t.jsx)(d.td,{children:"16"}),(0,t.jsx)(d.td,{children:"32"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"CLASS_IND_Eighteen"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"33"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.strong,{children:"ACB"})}),(0,t.jsx)(d.td,{children:"ACB_G"}),(0,t.jsx)(d.td,{children:"0"}),(0,t.jsx)(d.td,{children:"34"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"ACB_PG"}),(0,t.jsx)(d.td,{children:"8"}),(0,t.jsx)(d.td,{children:"35"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"ACB_M"}),(0,t.jsx)(d.td,{children:"15"}),(0,t.jsx)(d.td,{children:"36"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"ACB_MA15"}),(0,t.jsx)(d.td,{children:"15"}),(0,t.jsx)(d.td,{children:"37"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"ACB_R18"}),(0,t.jsx)(d.td,{children:"18"}),(0,t.jsx)(d.td,{children:"38"})]})]})]})]})}function j(e={}){const{wrapper:d}={...(0,i.R)(),...e.components};return d?(0,t.jsx)(d,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},1382:(e,d,s)=>{s.d(d,{A:()=>r});const r=s.p+"assets/images/setup-step-1-531ca876d7d5343984b56d73b5fe2527.png"},5149:(e,d,s)=>{s.d(d,{A:()=>r});const r=s.p+"assets/images/setup-step-2-9b26b8c4e36c9ae8b00e578737b6412d.png"},4020:(e,d,s)=>{s.d(d,{A:()=>r});const r=s.p+"assets/images/setup-step-3-1f45dd581f8cc3ffc8071bdcc115f0b9.png"},9659:(e,d,s)=>{s.d(d,{A:()=>r});const r=s.p+"assets/images/setup-step-4-2906d1431be260bcadd96e0ce27e8749.png"},8591:(e,d,s)=>{s.d(d,{R:()=>n,x:()=>c});var r=s(758);const t={},i=r.createContext(t);function n(e){const d=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),r.createElement(i.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/19e4f252.384181f4.js b/assets/js/19e4f252.384181f4.js deleted file mode 100644 index 9c653cd5f..000000000 --- a/assets/js/19e4f252.384181f4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3488],{8201:a=>{a.exports=JSON.parse('{"tag":{"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subreddit-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/19e4f252.f343ae7c.js b/assets/js/19e4f252.f343ae7c.js new file mode 100644 index 000000000..88ba2898c --- /dev/null +++ b/assets/js/19e4f252.f343ae7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[843],{8227:a=>{a.exports=JSON.parse('{"tag":{"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subreddit-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/1dd5d307.07977e54.js b/assets/js/1dd5d307.fa27440f.js similarity index 83% rename from assets/js/1dd5d307.07977e54.js rename to assets/js/1dd5d307.fa27440f.js index 0e6527840..83f54e386 100644 --- a/assets/js/1dd5d307.07977e54.js +++ b/assets/js/1dd5d307.fa27440f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9418],{4759:a=>{a.exports=JSON.parse('{"tag":{"label":"game","permalink":"/blog/tags/game","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5033],{8853:a=>{a.exports=JSON.parse('{"tag":{"label":"game","permalink":"/blog/tags/game","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/1e0a1681.21a284c7.js b/assets/js/1e0a1681.21a284c7.js new file mode 100644 index 000000000..1f117668f --- /dev/null +++ b/assets/js/1e0a1681.21a284c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8532],{1788:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"server-docs/setup/synology-container-manager","title":"Using Synology Container Manager","description":"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.","source":"@site/docs/server-docs/setup/synology-container-manager.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/synology-container-manager","permalink":"/docs/server-docs/setup/synology-container-manager","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/synology-container-manager.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":6,"frontMatter":{"title":"Using Synology Container Manager","sidebar_position":6},"sidebar":"docs","previous":{"title":"Using UNRAID","permalink":"/docs/server-docs/setup/unraid"},"next":{"title":"Using TrueNAS Scale - Legacy","permalink":"/docs/server-docs/setup/truenas-scale-legacy"}}');var a=t(6070),r=t(8591);const s={title:"Using Synology Container Manager",sidebar_position:6},i=void 0,l={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Create Necessary Folders",id:"step-1-create-necessary-folders",level:2},{value:"Step 2: Set Up a Project in Container Manager",id:"step-2-set-up-a-project-in-container-manager",level:2},{value:"Step 3: Create Docker Compose File",id:"step-3-create-docker-compose-file",level:2},{value:"Alternative Step 3: Running without a PostgreSQL Database",id:"alternative-step-3-running-without-a-postgresql-database",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function d(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS."}),"\n",(0,a.jsx)(n.p,{children:"In this guide, you will learn how to set up GameVault on such a system using Docker Compose."}),"\n",(0,a.jsx)(n.admonition,{title:"Contribute to this page!",type:"note",children:(0,a.jsx)(n.p,{children:"Unfortunately, none of our team members uses Synology Hardware and this guide was written blindly. The GameVault Docs live from contributions. If you use a Synology system kindly contribute some screenshots to this page. Thanks!"})}),"\n",(0,a.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Access to a Synology NAS with ",(0,a.jsx)(n.a,{href:"https://www.synology.com/dsm/packages/ContainerManager",children:"Container Manager"})," installed. See supported devices ",(0,a.jsx)(n.a,{href:"https://www.synology.com/dsm/packages/ContainerManager",children:"here"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"step-1-create-necessary-folders",children:"Step 1: Create Necessary Folders"}),"\n",(0,a.jsxs)(n.p,{children:["Begin by creating directories for the containers to utilize.",(0,a.jsx)(n.br,{}),"\n","Open ",(0,a.jsx)(n.code,{children:"File Station"})," and create the following folders:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.code,{children:"/docker/projects/gamevault-compose"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.code,{children:"/docker/gamevault"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.code,{children:"/docker/gamevault/files"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.code,{children:"/docker/gamevault/media"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.code,{children:"/docker/gamevault/database"})}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"step-2-set-up-a-project-in-container-manager",children:"Step 2: Set Up a Project in Container Manager"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsxs)(n.li,{children:["Open ",(0,a.jsx)(n.code,{children:"Container Manager"})," from your Synology NAS."]}),"\n",(0,a.jsx)(n.li,{children:"Click on 'Project' and then 'Create'"}),"\n",(0,a.jsxs)(n.li,{children:["Fill in the following details:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Project Name: ",(0,a.jsx)(n.code,{children:"gamevault"})]}),"\n",(0,a.jsxs)(n.li,{children:["Path: ",(0,a.jsx)(n.code,{children:"/docker/projects/gamevault-compose"})]}),"\n",(0,a.jsx)(n.li,{children:"Source: Select 'Create docker-compose.yml'"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"step-3-create-docker-compose-file",children:"Step 3: Create Docker Compose File"}),"\n",(0,a.jsx)(n.p,{children:"Copy and paste the following code into the editor:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yml",children:"services:\r\n gamevault-backend:\r\n image: phalcode/gamevault-backend:latest\r\n restart: unless-stopped\r\n environment:\r\n DB_HOST: db\r\n DB_USERNAME: gamevault\r\n DB_PASSWORD: YOURPASSWORDHERE\r\n volumes:\r\n - /volume1/docker/gamevault/files:/files\r\n - /volume1/docker/gamevault/media:/media\r\n ports:\r\n - 8080:8080/tcp\r\n db:\r\n image: postgres:16\r\n restart: unless-stopped\r\n environment:\r\n POSTGRES_USER: gamevault\r\n POSTGRES_PASSWORD: YOURPASSWORDHERE\r\n POSTGRES_DB: gamevault\r\n volumes:\r\n - /volume1/docker/gamevault/database:/var/lib/postgresql/data\n"})}),"\n",(0,a.jsx)(n.admonition,{type:"note",children:(0,a.jsxs)(n.p,{children:["Replace the variables (",(0,a.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,a.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,a.jsx)(n.admonition,{type:"warning",children:(0,a.jsx)(n.p,{children:"Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)"})}),"\n",(0,a.jsx)(n.h3,{id:"alternative-step-3-running-without-a-postgresql-database",children:"Alternative Step 3: Running without a PostgreSQL Database"}),"\n",(0,a.jsx)(n.p,{children:"We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yaml",children:'services:\r\n gamevault-backend:\r\n image: phalcode/gamevault-backend:latest\r\n restart: unless-stopped\r\n environment:\r\n DB_SYSTEM: "SQLITE"\r\n ports:\r\n - 8080:8080/tcp #Change the left one if you want\r\n volumes:\r\n - /volume1/docker/gamevault/files:/files\r\n - /volume1/docker/gamevault/media:/media\r\n - /volume1/docker/gamevault/database:/db\n'})}),"\n",(0,a.jsx)(n.admonition,{type:"note",children:(0,a.jsxs)(n.p,{children:["Replace the variables (",(0,a.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,a.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,a.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,a.jsx)(n.p,{children:"You've successfully set up GameVault Server using Synology Container Manager. You should now be able to access the web interface via your NAS's IP address followed by port 8080. If you encounter any issues or have feedback, please let us know."}),"\n",(0,a.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,a.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,a.jsx)(n.p,{children:"To stop the GameVault Server, follow these steps:"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsxs)(n.li,{children:["Navigate to ",(0,a.jsx)(n.code,{children:"Container Manager"})," on your Synology NAS."]}),"\n",(0,a.jsx)(n.li,{children:"Select the GameVault container from the list of running containers."}),"\n",(0,a.jsx)(n.li,{children:'Click on "Stop" to halt the container\'s operation.'}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,a.jsx)(n.p,{children:"To view the logs for the GameVault Server, do the following:"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsxs)(n.li,{children:["Navigate to ",(0,a.jsx)(n.code,{children:"Container Manager"})," on your Synology NAS."]}),"\n",(0,a.jsx)(n.li,{children:"Select the GameVault container from the list of containers."}),"\n",(0,a.jsx)(n.li,{children:'Click on "Details" to expand the container\'s information.'}),"\n",(0,a.jsx)(n.li,{children:'Select the "Log" tab to view the container\'s logs in real-time.'}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>i});var o=t(758);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.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(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e0a1681.843c85a2.js b/assets/js/1e0a1681.843c85a2.js deleted file mode 100644 index 465b0fed3..000000000 --- a/assets/js/1e0a1681.843c85a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1420],{7547:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var o=t(2676),a=t(8358);const r={title:"Using Synology Container Manager",sidebar_position:6},s=void 0,i={id:"server-docs/setup/synology-container-manager",title:"Using Synology Container Manager",description:"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.",source:"@site/docs/server-docs/setup/synology-container-manager.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/synology-container-manager",permalink:"/docs/server-docs/setup/synology-container-manager",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/synology-container-manager.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:6,frontMatter:{title:"Using Synology Container Manager",sidebar_position:6},sidebar:"docs",previous:{title:"Using UNRAID",permalink:"/docs/server-docs/setup/unraid"},next:{title:"Using Native Approach",permalink:"/docs/server-docs/setup/native"}},l={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Create Necessary Folders",id:"step-1-create-necessary-folders",level:2},{value:"Step 2: Set Up a Project in Container Manager",id:"step-2-set-up-a-project-in-container-manager",level:2},{value:"Step 3: Create Docker Compose File",id:"step-3-create-docker-compose-file",level:2},{value:"Alternative Step 3: Running without a PostgreSQL Database",id:"alternative-step-3-running-without-a-postgresql-database",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function d(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS."}),"\n",(0,o.jsx)(n.p,{children:"In this guide, you will learn how to set up GameVault on such a system using Docker Compose."}),"\n",(0,o.jsx)(n.admonition,{title:"Contribute to this page!",type:"note",children:(0,o.jsx)(n.p,{children:"Unfortunately, none of our team members uses Synology Hardware and this guide was written blindly. The GameVault Docs live from contributions. If you use a Synology system kindly contribute some screenshots to this page. Thanks!"})}),"\n",(0,o.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Access to a Synology NAS with ",(0,o.jsx)(n.a,{href:"https://www.synology.com/dsm/packages/ContainerManager",children:"Container Manager"})," installed. See supported devices ",(0,o.jsx)(n.a,{href:"https://www.synology.com/dsm/packages/ContainerManager",children:"here"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"step-1-create-necessary-folders",children:"Step 1: Create Necessary Folders"}),"\n",(0,o.jsxs)(n.p,{children:["Begin by creating directories for the containers to utilize.",(0,o.jsx)(n.br,{}),"\n","Open ",(0,o.jsx)(n.code,{children:"File Station"})," and create the following folders:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"/docker/projects/gamevault-compose"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"/docker/gamevault"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"/docker/gamevault/files"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"/docker/gamevault/media"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"/docker/gamevault/database"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"step-2-set-up-a-project-in-container-manager",children:"Step 2: Set Up a Project in Container Manager"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Open ",(0,o.jsx)(n.code,{children:"Container Manager"})," from your Synology NAS."]}),"\n",(0,o.jsx)(n.li,{children:"Click on 'Project' and then 'Create'"}),"\n",(0,o.jsxs)(n.li,{children:["Fill in the following details:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Project Name: ",(0,o.jsx)(n.code,{children:"gamevault"})]}),"\n",(0,o.jsxs)(n.li,{children:["Path: ",(0,o.jsx)(n.code,{children:"/docker/projects/gamevault-compose"})]}),"\n",(0,o.jsx)(n.li,{children:"Source: Select 'Create docker-compose.yml'"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"step-3-create-docker-compose-file",children:"Step 3: Create Docker Compose File"}),"\n",(0,o.jsx)(n.p,{children:"Copy and paste the following code into the editor:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yml",children:"services:\r\n gamevault-backend:\r\n image: phalcode/gamevault-backend:latest\r\n restart: unless-stopped\r\n environment:\r\n DB_HOST: db\r\n DB_USERNAME: gamevault\r\n DB_PASSWORD: YOURPASSWORDHERE\r\n volumes:\r\n - /volume1/docker/gamevault/files:/files\r\n - /volume1/docker/gamevault/media:/media\r\n ports:\r\n - 8080:8080/tcp\r\n db:\r\n image: postgres:16\r\n restart: unless-stopped\r\n environment:\r\n POSTGRES_USER: gamevault\r\n POSTGRES_PASSWORD: YOURPASSWORDHERE\r\n POSTGRES_DB: gamevault\r\n volumes:\r\n - /volume1/docker/gamevault/database:/var/lib/postgresql/data\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["Replace the variables (",(0,o.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,o.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)"})}),"\n",(0,o.jsx)(n.h3,{id:"alternative-step-3-running-without-a-postgresql-database",children:"Alternative Step 3: Running without a PostgreSQL Database"}),"\n",(0,o.jsx)(n.p,{children:"We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'services:\r\n gamevault-backend:\r\n image: phalcode/gamevault-backend:latest\r\n restart: unless-stopped\r\n environment:\r\n DB_SYSTEM: "SQLITE"\r\n ports:\r\n - 8080:8080/tcp #Change the left one if you want\r\n volumes:\r\n - /volume1/docker/gamevault/files:/files\r\n - /volume1/docker/gamevault/media:/media\r\n - /volume1/docker/gamevault/database:/db\n'})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["Replace the variables (",(0,o.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,o.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,o.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsx)(n.p,{children:"You've successfully set up GameVault Server using Synology Container Manager. You should now be able to access the web interface via your NAS's IP address followed by port 8080. If you encounter any issues or have feedback, please let us know."}),"\n",(0,o.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,o.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,o.jsx)(n.p,{children:"To stop the GameVault Server, follow these steps:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Navigate to ",(0,o.jsx)(n.code,{children:"Container Manager"})," on your Synology NAS."]}),"\n",(0,o.jsx)(n.li,{children:"Select the GameVault container from the list of running containers."}),"\n",(0,o.jsx)(n.li,{children:'Click on "Stop" to halt the container\'s operation.'}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,o.jsx)(n.p,{children:"To view the logs for the GameVault Server, do the following:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Navigate to ",(0,o.jsx)(n.code,{children:"Container Manager"})," on your Synology NAS."]}),"\n",(0,o.jsx)(n.li,{children:"Select the GameVault container from the list of containers."}),"\n",(0,o.jsx)(n.li,{children:'Click on "Details" to expand the container\'s information.'}),"\n",(0,o.jsx)(n.li,{children:'Select the "Log" tab to view the container\'s logs in real-time.'}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>s});var o=t(5271);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.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(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1ff343c8.85bb6a54.js b/assets/js/1ff343c8.19476862.js similarity index 86% rename from assets/js/1ff343c8.85bb6a54.js rename to assets/js/1ff343c8.19476862.js index 1c4968007..613396988 100644 --- a/assets/js/1ff343c8.85bb6a54.js +++ b/assets/js/1ff343c8.19476862.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2980],{4019:a=>{a.exports=JSON.parse('{"tag":{"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/simplifying-game-installation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4581],{9385:a=>{a.exports=JSON.parse('{"tag":{"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/simplifying-game-installation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2024b8b1.072f6af2.js b/assets/js/2024b8b1.072f6af2.js new file mode 100644 index 000000000..9af67d6ab --- /dev/null +++ b/assets/js/2024b8b1.072f6af2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9738],{9666:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var l=a(4871),n=a(6070),o=a(8591);const r={title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},i=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const t={p:"p",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Hello everyone!"}),"\n",(0,n.jsx)(t.p,{children:"We hope you're all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers."})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>i});var l=a(758);const n={},o=l.createContext(n);function r(e){const t=l.useContext(o);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),l.createElement(o.Provider,{value:t},e.children)}},4871:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/29/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md","source":"@site/blog/2023-07-29.md","title":"Please help us prioritize!","description":"Hello everyone!","date":"2023-07-29T00:00:00.000Z","tags":[{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"roadmap","permalink":"/blog/tags/roadmap"},{"inline":true,"label":"collaboration","permalink":"/blog/tags/collaboration"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"GitHub","permalink":"/blog/tags/git-hub"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"Kanban Board","permalink":"/blog/tags/kanban-board"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Council Member","permalink":"/blog/tags/council-member"},{"inline":true,"label":"polls","permalink":"/blog/tags/polls"},{"inline":true,"label":"gaming experience","permalink":"/blog/tags/gaming-experience"}],"readingTime":1.995,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Please help us prioritize!","authors":["alfagun74"],"tags":["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},"unlisted":false,"prevItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"},"nextItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"}}')}}]); \ No newline at end of file diff --git a/assets/js/2024b8b1.318d4076.js b/assets/js/2024b8b1.318d4076.js deleted file mode 100644 index 9b47881ea..000000000 --- a/assets/js/2024b8b1.318d4076.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7596],{4169:(e,a,l)=>{l.r(a),l.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>m});var n=l(2676),t=l(8358);const o={title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},i=void 0,r={permalink:"/blog/2023/07/29/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md",source:"@site/blog/2023-07-29.md",title:"Please help us prioritize!",description:"Hello everyone!",date:"2023-07-29T00:00:00.000Z",tags:[{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"development",permalink:"/blog/tags/development"},{inline:!0,label:"roadmap",permalink:"/blog/tags/roadmap"},{inline:!0,label:"collaboration",permalink:"/blog/tags/collaboration"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"GitHub",permalink:"/blog/tags/git-hub"},{inline:!0,label:"voting",permalink:"/blog/tags/voting"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"platform",permalink:"/blog/tags/platform"},{inline:!0,label:"Kanban Board",permalink:"/blog/tags/kanban-board"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"Council Member",permalink:"/blog/tags/council-member"},{inline:!0,label:"polls",permalink:"/blog/tags/polls"},{inline:!0,label:"gaming experience",permalink:"/blog/tags/gaming-experience"}],readingTime:1.995,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},unlisted:!1,prevItem:{title:"A Look Back and a Glimpse Forward",permalink:"/blog/2023/11/20/"},nextItem:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",permalink:"/blog/2023/07/24/"}},s={authorsImageUrls:[void 0]},m=[];function g(e){const a={p:"p",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hello everyone!"}),"\n",(0,n.jsx)(a.p,{children:"We hope you're all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers."})]})}function p(e={}){const{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(g,{...e})}):g(e)}},8358:(e,a,l)=>{l.d(a,{Z:()=>r,a:()=>i});var n=l(5271);const t={},o=n.createContext(t);function i(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/204759e4.e03fff90.js b/assets/js/204759e4.e4852d75.js similarity index 84% rename from assets/js/204759e4.e03fff90.js rename to assets/js/204759e4.e4852d75.js index 0e1943dd5..ed03a7ff4 100644 --- a/assets/js/204759e4.e03fff90.js +++ b/assets/js/204759e4.e4852d75.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2337],{6577:a=>{a.exports=JSON.parse('{"tag":{"label":"partnership","permalink":"/blog/tags/partnership","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/partnership","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9951],{5545:a=>{a.exports=JSON.parse('{"tag":{"label":"partnership","permalink":"/blog/tags/partnership","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/partnership","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/20661643.143a88ff.js b/assets/js/20661643.0efb8215.js similarity index 84% rename from assets/js/20661643.143a88ff.js rename to assets/js/20661643.0efb8215.js index eda5ca2df..f27746796 100644 --- a/assets/js/20661643.143a88ff.js +++ b/assets/js/20661643.0efb8215.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8953],{5268:e=>{e.exports=JSON.parse('{"tag":{"label":"Tech Progress","permalink":"/blog/tags/tech-progress","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/tech-progress","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6467],{3557:e=>{e.exports=JSON.parse('{"tag":{"label":"Tech Progress","permalink":"/blog/tags/tech-progress","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/tech-progress","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2091.0cdaafca.js b/assets/js/2091.0cdaafca.js deleted file mode 100644 index 2388c6d46..000000000 --- a/assets/js/2091.0cdaafca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2091],{5023:(e,t,a)=>{a.d(t,{n4:()=>c,Ne:()=>Z,ci:()=>M,CS:()=>f,wj:()=>i,nO:()=>u,iZ:()=>x,cH:()=>C});var n=a(5271),s=a(8274),r=a(4268),l=a(2676);function i(){const e=(0,r.Z)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=n.createContext(null);function c(e){let{children:t,content:a,isBlogPostPage:s=!1}=e;const r=function(e){let{content:t,isBlogPostPage:a}=e;return(0,n.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:s});return(0,l.jsx)(o.Provider,{value:r,children:t})}function u(){const e=(0,n.useContext)(o);if(null===e)throw new s.i6("BlogPostProvider");return e}var m=a(285),h=a(6172);const d=e=>new Date(e).toISOString();function g(e){const t=e.map(v);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function f(e){const{siteConfig:t}=(0,h.Z)(),{withBaseUrl:a}=(0,m.Cg)(),{metadata:{blogDescription:n,blogTitle:s,permalink:r}}=e,l=`${t.url}${r}`;return{"@context":"https://schema.org","@type":"Blog","@id":l,mainEntityOfPage:l,headline:s,description:n,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:s,metadata:r}=e,{date:l,title:i,description:o,lastUpdatedAt:c}=r,u=n.image??s.image,m=s.keywords??[],h=`${t.url}${r.permalink}`,f=c?d(c):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:i,name:i,description:o,datePublished:l,...f?{dateModified:f}:{},...g(r.authors),...p(u,a,i),...m?{keywords:m}:{}}}(e.content,t,a)))}}function x(){const e=i(),{assets:t,metadata:a}=u(),{siteConfig:n}=(0,h.Z)(),{withBaseUrl:s}=(0,m.Cg)(),{date:r,title:l,description:o,frontMatter:c,lastUpdatedAt:f}=a,x=t.image??c.image,v=c.keywords??[],j=f?d(f):void 0,b=`${n.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":b,mainEntityOfPage:b,url:b,headline:l,name:l,description:o,datePublished:r,...j?{dateModified:j}:{},...g(a.authors),...p(x,s,l),...v?{keywords:v}:{},isPartOf:{"@type":"Blog","@id":`${n.url}${e.blogBasePath}`,name:e.blogTitle}}}function v(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}var b=a(3225),w=a(6527),N=a(2347),k=a(6422);function C(e){const{pathname:t}=(0,b.TH)();return(0,n.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,k.Mg)(e.permalink,t))}(e,t)))),[e,t])}function M(e){const t=(0,N.vM)(e,(e=>`${new Date(e.date).getFullYear()}`)),a=Object.entries(t);return a.reverse(),a}function Z(e){let{items:t,ulClassName:a,liClassName:n,linkClassName:s,linkActiveClassName:r}=e;return(0,l.jsx)("ul",{className:a,children:t.map((e=>(0,l.jsx)("li",{className:n,children:(0,l.jsx)(w.Z,{isNavLink:!0,to:e.permalink,className:s,activeClassName:r,children:e.title})},e.permalink)))})}},8059:(e,t,a)=>{a.d(t,{Z:()=>j});a(5271);var n=a(4814),s=a(6527),r=a(2676);const l="githubSvg_ujvF";const i="xSvg_mPQQ";const o=function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,r.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,r.jsx)("path",{d:"M3.6 9h16.8"}),(0,r.jsx)("path",{d:"M3.6 15h16.8"}),(0,r.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,r.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]})},c={authorSocials:"authorSocials_iCqw",authorSocialLink:"authorSocialLink_EN0k",authorSocialIcon:"authorSocialIcon_YEXF"},u={twitter:{Icon:function(e){return(0,r.jsx)("svg",{viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...e,children:(0,r.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})})},label:"Twitter"},github:{Icon:function(e){return(0,r.jsx)("svg",{viewBox:"0 0 256 250",width:"1em",height:"1em",...e,className:(0,n.Z)(e.className,l),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,r.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})})},label:"GitHub"},stackoverflow:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,r.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]})},label:"Stack Overflow"},linkedin:{Icon:function(e){return(0,r.jsx)("svg",{width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:(0,r.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})})},label:"LinkedIn"},x:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227",...e,className:(0,n.Z)(e.className,i),style:{"--dark":"#000","--light":"#fff"},children:(0,r.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})})},label:"X"}};function m(e){let{platform:t,link:a}=e;const{Icon:l,label:i}=u[m=t]??{Icon:o,label:m};var m;return(0,r.jsx)(s.Z,{className:c.authorSocialLink,href:a,title:i,children:(0,r.jsx)(l,{className:(0,n.Z)(c.authorSocialLink)})})}function h(e){let{author:t}=e;const a=Object.entries(t.socials??{});return(0,r.jsx)("div",{className:c.authorSocials,children:a.map((e=>{let[t,a]=e;return(0,r.jsx)(m,{platform:t,link:a},t)}))})}var d=a(3221);const g={authorImage:"authorImage_AQkC","author-as-h1":"author-as-h1_s179","author-as-h2":"author-as-h2_BF4G",authorDetails:"authorDetails_ie2u",authorName:"authorName_s97L",authorTitle:"authorTitle_w1Af",authorBlogPostCount:"authorBlogPostCount_fH2W"};function p(e){return e.href?(0,r.jsx)(s.Z,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function f(e){let{title:t}=e;return(0,r.jsx)("small",{className:g.authorTitle,title:t,children:t})}function x(e){let{name:t,as:a}=e;return a?(0,r.jsx)(d.Z,{as:a,className:g.authorName,children:t}):(0,r.jsx)("span",{className:g.authorName,children:t})}function v(e){let{count:t}=e;return(0,r.jsx)("span",{className:(0,n.Z)(g.authorBlogPostCount),children:t})}function j(e){let{as:t,author:a,className:s,count:l}=e;const{name:i,title:o,url:c,imageURL:u,email:m,page:d}=a,j=d?.permalink||c||m&&`mailto:${m}`||void 0;return(0,r.jsxs)("div",{className:(0,n.Z)("avatar margin-bottom--sm",s,g[`author-as-${t}`]),children:[u&&(0,r.jsx)(p,{href:j,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:(0,n.Z)("avatar__photo",g.authorImage),src:u,alt:i})}),(i||o)&&(0,r.jsxs)("div",{className:(0,n.Z)("avatar__intro",g.authorDetails),children:[(0,r.jsxs)("div",{className:"avatar__name",children:[i&&(0,r.jsx)(p,{href:j,children:(0,r.jsx)(x,{name:i,as:t})}),l&&(0,r.jsx)(v,{count:l})]}),!!o&&(0,r.jsx)(f,{title:o}),(0,r.jsx)(h,{author:a})]})]})}},6566:(e,t,a)=>{a.d(t,{Z:()=>H});var n=a(5271),s=a(4814),r=a(3557),l=a(3320),i=a(2922),o=a(5023),c=a(9364),u=a(3221),m=a(2676);function h(e){let{year:t,yearGroupHeadingClassName:a,children:n}=e;return(0,m.jsxs)("div",{role:"group",children:[(0,m.jsx)(u.Z,{as:"h3",className:a,children:t}),n]})}function d(e){let{items:t,yearGroupHeadingClassName:a,ListComponent:n}=e;if((0,c.L)().blog.sidebar.groupByYear){const e=(0,o.ci)(t);return(0,m.jsx)(m.Fragment,{children:e.map((e=>{let[t,s]=e;return(0,m.jsx)(h,{year:t,yearGroupHeadingClassName:a,children:(0,m.jsx)(n,{items:s})},t)}))})}return(0,m.jsx)(n,{items:t})}const g=(0,n.memo)(d),p="sidebar_O_Xz",f="sidebarItemTitle_NsE9",x="sidebarItemList_yaC1",v="sidebarItem_PDlg",j="sidebarItemLink_HUlZ",b="sidebarItemLinkActive_eKb7",w="yearGroupHeading_ypKa",N=e=>{let{items:t}=e;return(0,m.jsx)(o.Ne,{items:t,ulClassName:(0,s.Z)(x,"clean-list"),liClassName:v,linkClassName:j,linkActiveClassName:b})};function k(e){let{sidebar:t}=e;const a=(0,o.cH)(t.items);return(0,m.jsx)("aside",{className:"col col--3",children:(0,m.jsxs)("nav",{className:(0,s.Z)(p,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,m.jsx)("div",{className:(0,s.Z)(f,"margin-bottom--md"),children:t.title}),(0,m.jsx)(g,{items:a,ListComponent:N,yearGroupHeadingClassName:w})]})})}const C=(0,n.memo)(k);var M=a(3158);const Z={yearGroupHeading:"yearGroupHeading_Zf6e"},_=e=>{let{items:t}=e;return(0,m.jsx)(o.Ne,{items:t,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"})};function y(e){let{sidebar:t}=e;const a=(0,o.cH)(t.items);return(0,m.jsx)(g,{items:a,ListComponent:_,yearGroupHeadingClassName:Z.yearGroupHeading})}function P(e){return(0,m.jsx)(M.Zo,{component:y,props:e})}const L=(0,n.memo)(P);function B(e){let{sidebar:t}=e;const a=(0,l.i)();return t?.items.length?"mobile"===a?(0,m.jsx)(L,{sidebar:t}):(0,m.jsx)(C,{sidebar:t}):null}function H(e){const{sidebar:t,toc:a,children:n,...l}=e,i=t&&t.items.length>0;return(0,m.jsx)(r.Z,{...l,children:(0,m.jsx)("div",{className:"container margin-vert--lg",children:(0,m.jsxs)("div",{className:"row",children:[(0,m.jsx)(B,{sidebar:t}),(0,m.jsx)("main",{className:(0,s.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:n}),a&&(0,m.jsx)("div",{className:"col col--2",children:a})]})})})}},2351:(e,t,a)=>{a.d(t,{c:()=>c});var n=a(5271),s=a(6172);const r=["zero","one","two","few","many","other"];function l(e){return r.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,s.Z)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,a)=>function(e,t,a){const n=e.split("|");if(1===n.length)return n[0];n.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const s=a.select(t),r=a.pluralForms.indexOf(s);return n[Math.min(r,n.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/2296bbef.15e7a1e1.js b/assets/js/2296bbef.ab933e92.js similarity index 84% rename from assets/js/2296bbef.15e7a1e1.js rename to assets/js/2296bbef.ab933e92.js index 22f481ef9..a904338bf 100644 --- a/assets/js/2296bbef.15e7a1e1.js +++ b/assets/js/2296bbef.ab933e92.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6623],{5205:a=>{a.exports=JSON.parse('{"tag":{"label":"hybrid model","permalink":"/blog/tags/hybrid-model","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/hybrid-model","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7619],{9323:a=>{a.exports=JSON.parse('{"tag":{"label":"hybrid model","permalink":"/blog/tags/hybrid-model","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/hybrid-model","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/23a0eab7.c9728401.js b/assets/js/23a0eab7.711149d8.js similarity index 85% rename from assets/js/23a0eab7.c9728401.js rename to assets/js/23a0eab7.711149d8.js index aa4342601..cfdb53d5e 100644 --- a/assets/js/23a0eab7.c9728401.js +++ b/assets/js/23a0eab7.711149d8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5773],{9169:a=>{a.exports=JSON.parse('{"tag":{"label":"source-available software","permalink":"/blog/tags/source-available-software","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/source-available-software","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7614],{5697:a=>{a.exports=JSON.parse('{"tag":{"label":"source-available software","permalink":"/blog/tags/source-available-software","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/source-available-software","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/24c2f136.e921b82e.js b/assets/js/24c2f136.dd4476d3.js similarity index 85% rename from assets/js/24c2f136.e921b82e.js rename to assets/js/24c2f136.dd4476d3.js index eb66dbdb1..680c61a77 100644 --- a/assets/js/24c2f136.e921b82e.js +++ b/assets/js/24c2f136.dd4476d3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9584],{9379:e=>{e.exports=JSON.parse('{"tag":{"label":"box representation","permalink":"/blog/tags/box-representation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/box-representation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1718],{1544:e=>{e.exports=JSON.parse('{"tag":{"label":"box representation","permalink":"/blog/tags/box-representation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/box-representation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/251cbb95.623450e2.js b/assets/js/251cbb95.623450e2.js new file mode 100644 index 000000000..d7e1c3313 --- /dev/null +++ b/assets/js/251cbb95.623450e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5450],{1942:a=>{a.exports=JSON.parse('{"tag":{"label":"harassment","permalink":"/blog/tags/harassment","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/harassment","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/251cbb95.f2332e02.js b/assets/js/251cbb95.f2332e02.js deleted file mode 100644 index de919010e..000000000 --- a/assets/js/251cbb95.f2332e02.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4584],{111:a=>{a.exports=JSON.parse('{"tag":{"label":"harassment","permalink":"/blog/tags/harassment","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/harassment","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2608b85a.02c0ba90.js b/assets/js/2608b85a.c3deeac8.js similarity index 85% rename from assets/js/2608b85a.02c0ba90.js rename to assets/js/2608b85a.c3deeac8.js index c9350fad8..4be82ad7e 100644 --- a/assets/js/2608b85a.02c0ba90.js +++ b/assets/js/2608b85a.c3deeac8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5156],{8964:a=>{a.exports=JSON.parse('{"tag":{"label":"negative narratives","permalink":"/blog/tags/negative-narratives","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/negative-narratives","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2691],{9508:a=>{a.exports=JSON.parse('{"tag":{"label":"negative narratives","permalink":"/blog/tags/negative-narratives","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/negative-narratives","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/264f4708.23a7ca34.js b/assets/js/264f4708.23a7ca34.js new file mode 100644 index 000000000..8b7fb007d --- /dev/null +++ b/assets/js/264f4708.23a7ca34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7706],{5677:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"advanced-usage/early-access-program","title":"Early Access Program","description":"Welcome","source":"@site/docs/advanced-usage/early-access-program.md","sourceDirName":"advanced-usage","slug":"/advanced-usage/early-access-program","permalink":"/docs/advanced-usage/early-access-program","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/early-access-program.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{},"sidebar":"docs","previous":{"title":"REST API Usage","permalink":"/docs/advanced-usage/rest-api"},"next":{"title":"Configuring Fail2Ban for GameVault","permalink":"/docs/advanced-usage/fail2ban-gamevault-guide"}}');var a=t(6070),r=t(8591);const i={},o="Early Access Program",l={},c=[{value:"Welcome",id:"welcome",level:2},{value:"Participation Requirements",id:"participation-requirements",level:3},{value:"How to Join",id:"how-to-join",level:3},{value:"Important Information",id:"important-information",level:3},{value:"FAQ for Early Access Testers",id:"faq-for-early-access-testers",level:2},{value:"How to switch to an early access version?",id:"how-to-switch-to-an-early-access-version",level:3},{value:"How to return to a stable version?",id:"how-to-return-to-a-stable-version",level:3},{value:"Where to report bugs and suggest/discuss changes?",id:"where-to-report-bugs-and-suggestdiscuss-changes",level:3}];function d(e){const s={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,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.header,{children:(0,a.jsx)(s.h1,{id:"early-access-program",children:"Early Access Program"})}),"\n",(0,a.jsx)(s.h2,{id:"welcome",children:"Welcome"}),"\n",(0,a.jsx)(s.p,{children:"Welcome to the GameVault Early Access Program! This exclusive opportunity allows you to be among the first to experience upcoming GameVault updates before they are released to the public. As a member of this special group, you'll have the chance to explore new features ahead of time. However, please keep in mind that these early releases may not be as stable as our regular versions. Your active participation and feedback are crucial in helping us refine and improve everything before the official release for everyone."}),"\n",(0,a.jsx)(s.h3,{id:"participation-requirements",children:"Participation Requirements"}),"\n",(0,a.jsx)(s.p,{children:"To join the Early Access Program, please make sure to meet the following requirements:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Actively participate in the designated Discord channel and follow the pinned messages."}),"\n",(0,a.jsxs)(s.li,{children:["Have GameVault installed from the Microsoft Store and be logged in with your Microsoft Account. If you haven't installed it yet, you can get it ",(0,a.jsx)(s.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"here"}),"."]}),"\n",(0,a.jsxs)(s.li,{children:["If required in the current phase: Run a GameVault Server with the ",(0,a.jsxs)(s.strong,{children:["phalcode/gamevault-backend",":early-access"]})," image. (Only use this image if all users on your server are participating in the Early Access Program and have been accepted as testers, as it may cause issues!)"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"how-to-join",children:"How to Join"}),"\n",(0,a.jsx)(s.p,{children:"To become part of the program, follow these simple steps:"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsxs)(s.li,{children:["Fill out the ",(0,a.jsx)(s.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Application Form"}),"."]}),"\n",(0,a.jsx)(s.li,{children:"Wait for the early access phase to begin. Details will be shared in the exclusive Discord channel."}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"important-information",children:"Important Information"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"The Early Access Program has limited slots, with priority given to Supporters and Trusted Members."}),"\n",(0,a.jsx)(s.li,{children:"If you are accepted and later found not meeting the requirements, you may be removed from future testing, allowing the next applicant on our list to take your place."}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"faq-for-early-access-testers",children:"FAQ for Early Access Testers"}),"\n",(0,a.jsx)(s.h3,{id:"how-to-switch-to-an-early-access-version",children:"How to switch to an early access version?"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsx)(s.li,{children:"Wait for the early access phase to start."}),"\n",(0,a.jsx)(s.li,{children:"Start the app and accept early access update."}),"\n",(0,a.jsxs)(s.li,{children:["Restart the App and check the version in the settings. If it contains ",(0,a.jsx)(s.code,{children:"EA"})," or ",(0,a.jsx)(s.code,{children:"Early Access"}),", you're on the early-access channel."]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"how-to-return-to-a-stable-version",children:"How to return to a stable version?"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Contact the Phalcode Team via Discord to remove you from our testers list in the Microsoft Store."}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Exit and Uninstall the app."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-ps1",children:"winget uninstall gamevault\n"})}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Reinstall it by running."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-ps1",children:"winget install gamevault\n"})}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Start the App. If it asks if you want to update you have to decline it every time."}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["Check the version in the settings. If it does not contain ",(0,a.jsx)(s.code,{children:"EA"})," or ",(0,a.jsx)(s.code,{children:"Early Access"}),", you're back on the stable channel."]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"where-to-report-bugs-and-suggestdiscuss-changes",children:"Where to report bugs and suggest/discuss changes?"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Head over to the Discord #early-access channel once you're accepted into the group. This is where you can report bugs, as well as suggest and discuss changes."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8591:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>o});var n=t(758);const a={},r=n.createContext(a);function i(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/264f4708.ca7caef3.js b/assets/js/264f4708.ca7caef3.js deleted file mode 100644 index cdb711670..000000000 --- a/assets/js/264f4708.ca7caef3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1517],{2015:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var a=t(2676),n=t(8358);const r={},i="Early Access Program",o={id:"advanced-usage/early-access-program",title:"Early Access Program",description:"Welcome",source:"@site/docs/advanced-usage/early-access-program.md",sourceDirName:"advanced-usage",slug:"/advanced-usage/early-access-program",permalink:"/docs/advanced-usage/early-access-program",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/early-access-program.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{},sidebar:"docs",previous:{title:"REST API Usage",permalink:"/docs/advanced-usage/rest-api"},next:{title:"Configuring Fail2Ban for GameVault",permalink:"/docs/advanced-usage/fail2ban-gamevault-guide"}},l={},c=[{value:"Welcome",id:"welcome",level:2},{value:"Participation Requirements",id:"participation-requirements",level:3},{value:"How to Join",id:"how-to-join",level:3},{value:"Important Information",id:"important-information",level:3},{value:"FAQ for Early Access Testers",id:"faq-for-early-access-testers",level:2},{value:"How to switch to an early access version?",id:"how-to-switch-to-an-early-access-version",level:3},{value:"How to return to a stable version?",id:"how-to-return-to-a-stable-version",level:3},{value:"Where to report bugs and suggest/discuss changes?",id:"where-to-report-bugs-and-suggestdiscuss-changes",level:3}];function d(e){const s={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,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.header,{children:(0,a.jsx)(s.h1,{id:"early-access-program",children:"Early Access Program"})}),"\n",(0,a.jsx)(s.h2,{id:"welcome",children:"Welcome"}),"\n",(0,a.jsx)(s.p,{children:"Welcome to the GameVault Early Access Program! This exclusive opportunity allows you to be among the first to experience upcoming GameVault updates before they are released to the public. As a member of this special group, you'll have the chance to explore new features ahead of time. However, please keep in mind that these early releases may not be as stable as our regular versions. Your active participation and feedback are crucial in helping us refine and improve everything before the official release for everyone."}),"\n",(0,a.jsx)(s.h3,{id:"participation-requirements",children:"Participation Requirements"}),"\n",(0,a.jsx)(s.p,{children:"To join the Early Access Program, please make sure to meet the following requirements:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Actively participate in the designated Discord channel and follow the pinned messages."}),"\n",(0,a.jsxs)(s.li,{children:["Have GameVault installed from the Microsoft Store and be logged in with your Microsoft Account. If you haven't installed it yet, you can get it ",(0,a.jsx)(s.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"here"}),"."]}),"\n",(0,a.jsxs)(s.li,{children:["If required in the current phase: Run a GameVault Server with the ",(0,a.jsxs)(s.strong,{children:["phalcode/gamevault-backend",":early-access"]})," image. (Only use this image if all users on your server are participating in the Early Access Program and have been accepted as testers, as it may cause issues!)"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"how-to-join",children:"How to Join"}),"\n",(0,a.jsx)(s.p,{children:"To become part of the program, follow these simple steps:"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsxs)(s.li,{children:["Fill out the ",(0,a.jsx)(s.a,{href:"https://forms.gle/RQvEGfWeUFPBCUaG6",children:"Application Form"}),"."]}),"\n",(0,a.jsx)(s.li,{children:"Wait for the early access phase to begin. Details will be shared in the exclusive Discord channel."}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"important-information",children:"Important Information"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"The Early Access Program has limited slots, with priority given to Supporters and Trusted Members."}),"\n",(0,a.jsx)(s.li,{children:"If you are accepted and later found not meeting the requirements, you may be removed from future testing, allowing the next applicant on our list to take your place."}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"faq-for-early-access-testers",children:"FAQ for Early Access Testers"}),"\n",(0,a.jsx)(s.h3,{id:"how-to-switch-to-an-early-access-version",children:"How to switch to an early access version?"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsx)(s.li,{children:"Wait for the early access phase to start."}),"\n",(0,a.jsx)(s.li,{children:"Start the app and accept early access update."}),"\n",(0,a.jsxs)(s.li,{children:["Restart the App and check the version in the settings. If it contains ",(0,a.jsx)(s.code,{children:"EA"})," or ",(0,a.jsx)(s.code,{children:"Early Access"}),", you're on the early-access channel."]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"how-to-return-to-a-stable-version",children:"How to return to a stable version?"}),"\n",(0,a.jsxs)(s.ol,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Contact the Phalcode Team via Discord to remove you from our testers list in the Microsoft Store."}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Exit and Uninstall the app."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-ps1",children:"winget uninstall gamevault\n"})}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Reinstall it by running."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-ps1",children:"winget install gamevault\n"})}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsx)(s.p,{children:"Start the App. If it asks if you want to update you have to decline it every time."}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["Check the version in the settings. If it does not contain ",(0,a.jsx)(s.code,{children:"EA"})," or ",(0,a.jsx)(s.code,{children:"Early Access"}),", you're back on the stable channel."]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"where-to-report-bugs-and-suggestdiscuss-changes",children:"Where to report bugs and suggest/discuss changes?"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Head over to the Discord #early-access channel once you're accepted into the group. This is where you can report bugs, as well as suggest and discuss changes."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8358:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>i});var a=t(5271);const n={},r=a.createContext(n);function i(e){const s=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/26ca8ce1.f04fae7b.js b/assets/js/26ca8ce1.08878b32.js similarity index 84% rename from assets/js/26ca8ce1.f04fae7b.js rename to assets/js/26ca8ce1.08878b32.js index 7c5811707..0d071f8c4 100644 --- a/assets/js/26ca8ce1.f04fae7b.js +++ b/assets/js/26ca8ce1.08878b32.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3518],{3606:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy community","permalink":"/blog/tags/lemmy-community","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7554],{1159:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy community","permalink":"/blog/tags/lemmy-community","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2731.31e92827.js b/assets/js/2731.31e92827.js new file mode 100644 index 000000000..973d8a0c0 --- /dev/null +++ b/assets/js/2731.31e92827.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2731],{2581:(e,t,n)=>{n.d(t,{A:()=>r});n(758);var i=n(3526),o=n(8072),s=n(8038),a=n(6070);function r(e){let{className:t}=e;return(0,a.jsx)("main",{className:(0,i.A)("container margin-vert--xl",t),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."})})]})})})}},2731:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});n(758);var i=n(8072),o=n(5003),s=n(3385),a=n(2581),r=n(6070);function l(){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/assets/js/2a693baa.dbfa1f2b.js b/assets/js/2a693baa.90a01aac.js similarity index 84% rename from assets/js/2a693baa.dbfa1f2b.js rename to assets/js/2a693baa.90a01aac.js index ab2a21e19..275928845 100644 --- a/assets/js/2a693baa.dbfa1f2b.js +++ b/assets/js/2a693baa.90a01aac.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8521],{4413:a=>{a.exports=JSON.parse('{"tag":{"label":"control","permalink":"/blog/tags/control","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/control","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5810],{9001:a=>{a.exports=JSON.parse('{"tag":{"label":"control","permalink":"/blog/tags/control","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/control","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2aa0a660.10688fe9.js b/assets/js/2aa0a660.6fec8829.js similarity index 85% rename from assets/js/2aa0a660.10688fe9.js rename to assets/js/2aa0a660.6fec8829.js index a7e9b8b9f..779c430d9 100644 --- a/assets/js/2aa0a660.10688fe9.js +++ b/assets/js/2aa0a660.6fec8829.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[675],{9980:a=>{a.exports=JSON.parse('{"tag":{"label":"subscription model","permalink":"/blog/tags/subscription-model","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription-model","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7e3],{6143:a=>{a.exports=JSON.parse('{"tag":{"label":"subscription model","permalink":"/blog/tags/subscription-model","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription-model","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2e008a3a.01f00524.js b/assets/js/2e008a3a.01f00524.js new file mode 100644 index 000000000..1a667dad1 --- /dev/null +++ b/assets/js/2e008a3a.01f00524.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4769],{2857:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var a=n(9335),o=n(6070),r=n(8591);const l={title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},s=void 0,i={authorsImageUrls:[void 0]},u=[];function c(e){const t={p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hey everyone,"}),"\n",(0,o.jsx)(t.p,{children:'today i want to clarify why GameVault isn\'t considered "open-source" by definition.'})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>s});var a=n(758);const o={},r=a.createContext(o);function l(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),a.createElement(r.Provider,{value:t},e.children)}},9335:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/13/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md","source":"@site/blog/2023-07-13.md","title":"A Closer Look at GameVaults \'Source-Available\' Nature","description":"Hey everyone,","date":"2023-07-13T00:00:00.000Z","tags":[{"inline":true,"label":"source-available software","permalink":"/blog/tags/source-available-software"},{"inline":true,"label":"open-source","permalink":"/blog/tags/open-source"},{"inline":true,"label":"transparency","permalink":"/blog/tags/transparency"},{"inline":true,"label":"control","permalink":"/blog/tags/control"},{"inline":true,"label":"software development","permalink":"/blog/tags/software-development"},{"inline":true,"label":"code access","permalink":"/blog/tags/code-access"},{"inline":true,"label":"hybrid model","permalink":"/blog/tags/hybrid-model"},{"inline":true,"label":"software licensing","permalink":"/blog/tags/software-licensing"},{"inline":true,"label":"revenue generation","permalink":"/blog/tags/revenue-generation"},{"inline":true,"label":"user engagement","permalink":"/blog/tags/user-engagement"}],"readingTime":2.57,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","authors":["alfagun74"],"tags":["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},"unlisted":false,"prevItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"},"nextItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"}}')}}]); \ No newline at end of file diff --git a/assets/js/2e008a3a.c8c45cd2.js b/assets/js/2e008a3a.c8c45cd2.js deleted file mode 100644 index 93af0d6d8..000000000 --- a/assets/js/2e008a3a.c8c45cd2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5694],{5264:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var t=a(2676),o=a(8358);const l={title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},r=void 0,s={permalink:"/blog/2023/07/13/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md",source:"@site/blog/2023-07-13.md",title:"A Closer Look at GameVaults 'Source-Available' Nature",description:"Hey everyone,",date:"2023-07-13T00:00:00.000Z",tags:[{inline:!0,label:"source-available software",permalink:"/blog/tags/source-available-software"},{inline:!0,label:"open-source",permalink:"/blog/tags/open-source"},{inline:!0,label:"transparency",permalink:"/blog/tags/transparency"},{inline:!0,label:"control",permalink:"/blog/tags/control"},{inline:!0,label:"software development",permalink:"/blog/tags/software-development"},{inline:!0,label:"code access",permalink:"/blog/tags/code-access"},{inline:!0,label:"hybrid model",permalink:"/blog/tags/hybrid-model"},{inline:!0,label:"software licensing",permalink:"/blog/tags/software-licensing"},{inline:!0,label:"revenue generation",permalink:"/blog/tags/revenue-generation"},{inline:!0,label:"user engagement",permalink:"/blog/tags/user-engagement"}],readingTime:2.57,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A Closer Look at GameVaults 'Source-Available' Nature",authors:["alfagun74"],tags:["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},unlisted:!1,prevItem:{title:"A New Name",permalink:"/blog/2023/07/15/"},nextItem:{title:"Battling Harassment and Trolls in Our App Community",permalink:"/blog/2023/07/09/"}},i={authorsImageUrls:[void 0]},c=[];function u(e){const n={p:"p",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Hey everyone,"}),"\n",(0,t.jsx)(n.p,{children:'today i want to clarify why GameVault isn\'t considered "open-source" by definition.'})]})}function g(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},8358:(e,n,a)=>{a.d(n,{Z:()=>s,a:()=>r});var t=a(5271);const o={},l=t.createContext(o);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f44e9f7.aed84675.js b/assets/js/2f44e9f7.2421b80a.js similarity index 85% rename from assets/js/2f44e9f7.aed84675.js rename to assets/js/2f44e9f7.2421b80a.js index e16b54b80..b41108753 100644 --- a/assets/js/2f44e9f7.aed84675.js +++ b/assets/js/2f44e9f7.2421b80a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3357],{9752:o=>{o.exports=JSON.parse('{"tag":{"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-server-promotion","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7652],{3840:o=>{o.exports=JSON.parse('{"tag":{"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-server-promotion","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/349.a3c56dc1.js b/assets/js/349.a3c56dc1.js new file mode 100644 index 000000000..8a35db1c0 --- /dev/null +++ b/assets/js/349.a3c56dc1.js @@ -0,0 +1 @@ +(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[349],{2683:(e,t,n)=>{"use strict";n.d(t,{A:()=>L});var s=n(758),a=n(6070);function o(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:o.length>0?(0,a.jsx)(a.Fragment,{children:o}):null}}(e.children),o=e.title??t;return{...e,...o&&{title:o},children:n}}var c=n(3526),i=n(8072),r=n(8539);const l={admonition:"admonition_t9s9",admonitionHeading:"admonitionHeading_dgzU",admonitionIcon:"admonitionIcon_t858",admonitionContent:"admonitionContent_BiE6"};function d(e){let{type:t,className:n,children:s}=e;return(0,a.jsx)("div",{className:(0,c.A)(r.G.common.admonition,r.G.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,a.jsxs)("div",{className:l.admonitionHeading,children:[(0,a.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,a.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:o,className:c}=e;return(0,a.jsxs)(d,{type:t,className:c,children:[s||n?(0,a.jsx)(u,{title:s,icon:n}):null,(0,a.jsx)(m,{children:o})]})}function p(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.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 f={icon:(0,a.jsx)(p,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,a.jsx)(h,{...f,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.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 j={icon:(0,a.jsx)(x,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,a.jsx)(h,{...j,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.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 N={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function y(e){return(0,a.jsx)(h,{...N,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.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 k={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function B(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.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 w={icon:(0,a.jsx)(B,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(i.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const E={...{note:g,tip:b,info:y,warning:function(e){return(0,a.jsx)(h,{...k,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(h,{...w,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(g,{title:"secondary",...e}),important:e=>(0,a.jsx)(y,{title:"important",...e}),success:e=>(0,a.jsx)(b,{title:"success",...e}),caution:function(e){return(0,a.jsx)(h,{...C,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function L(e){const t=o(e),n=(s=t.type,E[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),E.info));var s;return(0,a.jsx)(n,{...t})}},3739:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});n(758);var s=n(3526),a=n(8072),o=n(8539),c=n(88);const i={iconEdit:"iconEdit_dc8Y"};var r=n(6070);function l(e){let{className:t,...n}=e;return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(i.iconEdit,t),"aria-hidden":"true",...n,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 d(e){let{editUrl:t}=e;return(0,r.jsxs)(c.A,{to:t,className:o.G.common.editThisPage,children:[(0,r.jsx)(l,{}),(0,r.jsx)(a.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(3886);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(a.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:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,r.jsx)(a.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:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,r.jsxs)("span",{className:o.G.common.lastUpdated,children:[(0,r.jsx)(a.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,r.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,r.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_PoBw"};function g(e){let{className:t,editUrl:n,lastUpdatedAt:a,lastUpdatedBy:o}=e;return(0,r.jsxs)("div",{className:(0,s.A)("row",t),children:[(0,r.jsx)("div",{className:"col",children:n&&(0,r.jsx)(d,{editUrl:n})}),(0,r.jsx)("div",{className:(0,s.A)("col",f.lastUpdated),children:(a||o)&&(0,r.jsx)(p,{lastUpdatedAt:a,lastUpdatedBy:o})})]})}},3416:(e,t,n)=>{"use strict";n.d(t,{A:()=>ie});var s=n(758),a=n(8591),o=n(950),c=n(5473),i=n(3526),r=n(3617),l=n(9618);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,r.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(8539),m=n(4809),h=n.n(m);const p=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},x={...g,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:""}},j=Object.keys(g);function b(e,t){const n=e.map((e=>{const{start:n,end:s}=x[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 v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&f.test(o)){const e=o.match(f).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return b(["js","jsBlock"],t);case"jsx":case"tsx":return b(["js","jsBlock","jsx"],t);case"html":return b(["js","jsBlock","html"],t);case"python":case"py":case"bash":return b(["bash"],t);case"markdown":case"md":return b(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return b(["tex"],t);case"lua":case"haskell":case"sql":return b(["lua"],t);case"wasm":return b(["wasm"],t);case"vb":case"vba":case"visual-basic":return b(["vb","rem"],t);case"vbnet":return b(["vbnet","rem"],t);case"batch":return b(["rem"],t);case"basic":return b(["rem","f90"],t);case"fsharp":return b(["js","ml"],t);case"ocaml":case"sml":return b(["ml"],t);case"fortran":return b(["f90"],t);case"cobol":return b(["cobol"],t);default:return b(j,t)}}(s,a),i=n.split("\n"),r=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<i.length;){const e=i[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?r[l[t]].range+=`${h},`:d[t]?r[d[t]].start=h:u[t]&&(r[u[t]].range+=`${r[u[t]].start}-${h-1},`),i.splice(h,1)}n=i.join("\n");const m={};return Object.entries(r).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const N={codeBlockContainer:"codeBlockContainer_refD"};var y=n(6070);function A(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(d());return(0,y.jsx)(t,{...n,style:s,className:(0,i.A)(n.className,N.codeBlockContainer,u.G.common.codeBlock)})}const k={codeBlockContent:"codeBlockContent_opIA",codeBlockTitle:"codeBlockTitle_clxF",codeBlock:"codeBlock_c2k3",codeBlockStandalone:"codeBlockStandalone_lq0i",codeBlockLines:"codeBlockLines_NviX",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_k8vB",buttonGroup:"buttonGroup_GmHW"};function B(e){let{children:t,className:n}=e;return(0,y.jsx)(A,{as:"pre",tabIndex:0,className:(0,i.A)(k.codeBlockStandalone,"thin-scrollbar",n),children:(0,y.jsx)("code",{className:k.codeBlockLines,children:t})})}var w=n(7888);const C={attributes:!0,characterData:!0,childList:!0,subtree:!0};function E(e,t){const[n,a]=(0,s.useState)(),o=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=C);const a=(0,w._q)(t),o=(0,w.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,o),()=>t.disconnect()}),[e,a,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var L=n(5371);const _={codeLine:"codeLine_rVw9",codeLineNumber:"codeLineNumber_Dp4N",codeLineContent:"codeLineContent_W8mn"};function T(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=a({line:t,className:(0,i.A)(n,s&&_.codeLine)}),r=t.map(((e,t)=>(0,y.jsx)("span",{...o({token:e})},t)));return(0,y.jsxs)("span",{...c,children:[s?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("span",{className:_.codeLineNumber}),(0,y.jsx)("span",{className:_.codeLineContent,children:r})]}):r,(0,y.jsx)("br",{})]})}var U=n(8072);function S(e){return(0,y.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,y.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 z(e){return(0,y.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,y.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const I={copyButtonCopied:"copyButtonCopied_KK14",copyButtonIcons:"copyButtonIcons_JSxu",copyButtonIcon:"copyButtonIcon_Qfqj",copyButtonSuccessIcon:"copyButtonSuccessIcon_jdaa"};function M(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),r=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),c=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let i=!1;try{i=document.execCommand("copy")}catch{}s.remove(),c&&(o.removeAllRanges(),o.addRange(c)),a&&a.focus()}(t),o(!0),c.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,y.jsx)("button",{type:"button","aria-label":a?(0,U.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,U.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,U.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.A)("clean-btn",n,I.copyButton,a&&I.copyButtonCopied),onClick:r,children:(0,y.jsxs)("span",{className:I.copyButtonIcons,"aria-hidden":"true",children:[(0,y.jsx)(S,{className:I.copyButtonIcon}),(0,y.jsx)(z,{className:I.copyButtonSuccessIcon})]})})}function R(e){return(0,y.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,y.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 H={wordWrapButtonIcon:"wordWrapButtonIcon_eJM7",wordWrapButtonEnabled:"wordWrapButtonEnabled_w1aU"};function W(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,U.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,y.jsx)("button",{type:"button",onClick:n,className:(0,i.A)("clean-btn",t,s&&H.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,y.jsx)(R,{className:H.wordWrapButtonIcon,"aria-hidden":"true"})})}function D(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:c,language:r}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.p)(),h=function(e){return e?.toLowerCase()}(r??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),g=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return E(o,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:c}}(),x=function(e){return e?.match(p)?.groups.title??""}(a)||o,{lineClassNames:j,code:b}=v(t,{metastring:a,language:h,magicComments:m}),N=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,y.jsxs)(A,{as:"div",className:(0,i.A)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[x&&(0,y.jsx)("div",{className:k.codeBlockTitle,children:x}),(0,y.jsxs)("div",{className:k.codeBlockContent,children:[(0,y.jsx)(L.f4,{theme:f,code:b,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,y.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,i.A)(t,k.codeBlock,"thin-scrollbar"),style:n,children:(0,y.jsx)("code",{className:(0,i.A)(k.codeBlockLines,N&&k.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,y.jsx)(T,{line:e,getLineProps:a,getTokenProps:o,classNames:j[t],showLineNumbers:N},t)))})})}}),(0,y.jsxs)("div",{className:k.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,y.jsx)(W,{className:k.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,y.jsx)(M,{className:k.codeButton,code:b})]})]})]})}function V(e){let{children:t,...n}=e;const a=(0,c.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),i="string"==typeof o?D:B;return(0,y.jsx)(i,{...n,children:o},String(a))}function $(e){return(0,y.jsx)("code",{...e})}var P=n(88);var q=n(9121),G=n(5186);const F={details:"details_aEZs",isBrowser:"isBrowser_E9QB",collapsibleContent:"collapsibleContent_UQe9"};function O(e){return!!e&&("SUMMARY"===e.tagName||O(e.parentElement))}function Q(e,t){return!!e&&(e===t||Q(e.parentElement,t))}function Z(e){let{summary:t,children:n,...a}=e;(0,q.A)().collectAnchor(a.id);const o=(0,c.A)(),r=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,G.u)({initialState:!a.open}),[u,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,y.jsx)("summary",{children:t??"Details"});return(0,y.jsxs)("details",{...a,ref:r,open:u,"data-collapsed":l,className:(0,i.A)(F.details,o&&F.isBrowser,a.className),onMouseDown:e=>{O(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;O(t)&&Q(t,r.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,y.jsx)(G.N,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,y.jsx)("div",{className:F.collapsibleContent,children:n})})]})}const X={details:"details_EQ8c"},J="alert alert--info";function K(e){let{...t}=e;return(0,y.jsx)(Z,{...t,className:(0,i.A)(J,X.details,t.className)})}function Y(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,y.jsx)(y.Fragment,{children:t.filter((e=>e!==n))});return(0,y.jsx)(K,{...e,summary:n,children:a})}var ee=n(8038);function te(e){return(0,y.jsx)(ee.A,{...e})}const ne={containsTaskList:"containsTaskList_FqlQ"};function se(e){if(void 0!==e)return(0,i.A)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const ae={img:"img_G5X4"};var oe=n(2683);const ce={Head:o.A,details:Y,Details:Y,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,y.jsx)($,{...e}):(0,y.jsx)(V,{...e})},a:function(e){return(0,y.jsx)(P.A,{...e})},pre:function(e){return(0,y.jsx)(y.Fragment,{children:e.children})},ul:function(e){return(0,y.jsx)("ul",{...e,className:se(e.className)})},li:function(e){return(0,q.A)().collectAnchor(e.id),(0,y.jsx)("li",{...e})},img:function(e){return(0,y.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,i.A)(t,ae.img))});var t},h1:e=>(0,y.jsx)(te,{as:"h1",...e}),h2:e=>(0,y.jsx)(te,{as:"h2",...e}),h3:e=>(0,y.jsx)(te,{as:"h3",...e}),h4:e=>(0,y.jsx)(te,{as:"h4",...e}),h5:e=>(0,y.jsx)(te,{as:"h5",...e}),h6:e=>(0,y.jsx)(te,{as:"h6",...e}),admonition:oe.A,mermaid:()=>null};function ie(e){let{children:t}=e;return(0,y.jsx)(a.x,{components:ce,children:t})}},5336:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(758);var s=n(3526),a=n(88),o=n(6070);function c(e){const{permalink:t,title:n,subLabel:c,isNext:i}=e;return(0,o.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[c&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:c}),(0,o.jsx)("div",{className:"pagination-nav__label",children:n})]})}},5524:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(758);var s=n(3526),a=n(88);const o={tag:"tag_krRq",tagRegular:"tagRegular_XaVR",tagWithCount:"tagWithCount_oFAz"};var c=n(6070);function i(e){let{permalink:t,label:n,count:i,description:r}=e;return(0,c.jsxs)(a.A,{href:t,title:r,className:(0,s.A)(o.tag,i?o.tagWithCount:o.tagRegular),children:[n,i&&(0,c.jsx)("span",{children:i})]})}},7304:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});n(758);var s=n(3526),a=n(8072),o=n(5524);const c={tags:"tags_cQSw",tag:"tag_sv6A"};var i=n(6070);function r(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,s.A)(c.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:c.tag,children:(0,i.jsx)(o.A,{...e})},e.permalink)))})]})}},3886:(e,t,n)=>{"use strict";n.d(t,{i:()=>a});var s=n(4480);function a(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},4809:(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,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8591:(e,t,n)=>{"use strict";n.d(t,{R:()=>c,x:()=>i});var s=n(758);const a={},o=s.createContext(a);function c(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/357ebdd0.697df34d.js b/assets/js/357ebdd0.697df34d.js deleted file mode 100644 index de4f63a15..000000000 --- a/assets/js/357ebdd0.697df34d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[69],{8496:a=>{a.exports=JSON.parse('{"tag":{"label":"user participation","permalink":"/blog/tags/user-participation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/user-participation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/357ebdd0.ceb90ae4.js b/assets/js/357ebdd0.ceb90ae4.js new file mode 100644 index 000000000..fe3f1507a --- /dev/null +++ b/assets/js/357ebdd0.ceb90ae4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5289],{9792:a=>{a.exports=JSON.parse('{"tag":{"label":"user participation","permalink":"/blog/tags/user-participation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/user-participation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/36994c47.cdf0e56f.js b/assets/js/36994c47.946f3118.js similarity index 66% rename from assets/js/36994c47.cdf0e56f.js rename to assets/js/36994c47.946f3118.js index 963180143..f5b81aaa6 100644 --- a/assets/js/36994c47.cdf0e56f.js +++ b/assets/js/36994c47.946f3118.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9208],{4468:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9858],{5516:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/36bc9c65.8f29c9d6.js b/assets/js/36bc9c65.8f29c9d6.js deleted file mode 100644 index e868393bb..000000000 --- a/assets/js/36bc9c65.8f29c9d6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6135],{950:a=>{a.exports=JSON.parse('{"tag":{"label":"Client Update","permalink":"/blog/tags/client-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/client-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/36bc9c65.d921631e.js b/assets/js/36bc9c65.d921631e.js new file mode 100644 index 000000000..d36f3c68a --- /dev/null +++ b/assets/js/36bc9c65.d921631e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[14],{1049:a=>{a.exports=JSON.parse('{"tag":{"label":"Client Update","permalink":"/blog/tags/client-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/client-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3990.46ee42c5.js b/assets/js/3990.46ee42c5.js new file mode 100644 index 000000000..b0c34ee7f --- /dev/null +++ b/assets/js/3990.46ee42c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3990],{7073:(e,t,a)=>{a.d(t,{in:()=>c,OU:()=>A,Ki:()=>_,kJ:()=>f,x:()=>i,e7:()=>u,J_:()=>x,Gx:()=>M});var n=a(758),s=a(7888),r=a(4017),l=a(6070);function i(){const e=(0,r.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=n.createContext(null);function c(e){let{children:t,content:a,isBlogPostPage:s=!1}=e;const r=function(e){let{content:t,isBlogPostPage:a}=e;return(0,n.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:s});return(0,l.jsx)(o.Provider,{value:r,children:t})}function u(){const e=(0,n.useContext)(o);if(null===e)throw new s.dV("BlogPostProvider");return e}var m=a(2235),h=a(4480);const d=e=>new Date(e).toISOString();function g(e){const t=e.map(v);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function f(e){const{siteConfig:t}=(0,h.A)(),{withBaseUrl:a}=(0,m.hH)(),{metadata:{blogDescription:n,blogTitle:s,permalink:r}}=e,l=`${t.url}${r}`;return{"@context":"https://schema.org","@type":"Blog","@id":l,mainEntityOfPage:l,headline:s,description:n,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:s,metadata:r}=e,{date:l,title:i,description:o,lastUpdatedAt:c}=r,u=n.image??s.image,m=s.keywords??[],h=`${t.url}${r.permalink}`,f=c?d(c):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:i,name:i,description:o,datePublished:l,...f?{dateModified:f}:{},...g(r.authors),...p(u,a,i),...m?{keywords:m}:{}}}(e.content,t,a)))}}function x(){const e=i(),{assets:t,metadata:a}=u(),{siteConfig:n}=(0,h.A)(),{withBaseUrl:s}=(0,m.hH)(),{date:r,title:l,description:o,frontMatter:c,lastUpdatedAt:f}=a,x=t.image??c.image,v=c.keywords??[],j=f?d(f):void 0,b=`${n.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":b,mainEntityOfPage:b,url:b,headline:l,name:l,description:o,datePublished:r,...j?{dateModified:j}:{},...g(a.authors),...p(x,s,l),...v?{keywords:v}:{},isPartOf:{"@type":"Blog","@id":`${n.url}${e.blogBasePath}`,name:e.blogTitle}}}function v(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}var b=a(5557),w=a(88),N=a(5182),k=a(1197);function M(e){const{pathname:t}=(0,b.zy)();return(0,n.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,k.ys)(e.permalink,t))}(e,t)))),[e,t])}function _(e){const t=(0,N.$z)(e,(e=>`${new Date(e.date).getFullYear()}`)),a=Object.entries(t);return a.reverse(),a}function A(e){let{items:t,ulClassName:a,liClassName:n,linkClassName:s,linkActiveClassName:r}=e;return(0,l.jsx)("ul",{className:a,children:t.map((e=>(0,l.jsx)("li",{className:n,children:(0,l.jsx)(w.A,{isNavLink:!0,to:e.permalink,className:s,activeClassName:r,children:e.title})},e.permalink)))})}},5582:(e,t,a)=>{a.d(t,{A:()=>j});a(758);var n=a(3526),s=a(88),r=a(6070);const l="githubSvg_wObk";const i="xSvg_r_VL";const o=function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,r.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,r.jsx)("path",{d:"M3.6 9h16.8"}),(0,r.jsx)("path",{d:"M3.6 15h16.8"}),(0,r.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,r.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]})},c={authorSocials:"authorSocials_o1MA",authorSocialLink:"authorSocialLink_MtYE",authorSocialIcon:"authorSocialIcon_XqVE"},u={twitter:{Icon:function(e){return(0,r.jsx)("svg",{viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...e,children:(0,r.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})})},label:"Twitter"},github:{Icon:function(e){return(0,r.jsx)("svg",{viewBox:"0 0 256 250",width:"1em",height:"1em",...e,className:(0,n.A)(e.className,l),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,r.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})})},label:"GitHub"},stackoverflow:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,r.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]})},label:"Stack Overflow"},linkedin:{Icon:function(e){return(0,r.jsx)("svg",{width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:(0,r.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})})},label:"LinkedIn"},x:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227",...e,className:(0,n.A)(e.className,i),style:{"--dark":"#000","--light":"#fff"},children:(0,r.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})})},label:"X"}};function m(e){let{platform:t,link:a}=e;const{Icon:l,label:i}=u[m=t]??{Icon:o,label:m};var m;return(0,r.jsx)(s.A,{className:c.authorSocialLink,href:a,title:i,children:(0,r.jsx)(l,{className:(0,n.A)(c.authorSocialLink)})})}function h(e){let{author:t}=e;const a=Object.entries(t.socials??{});return(0,r.jsx)("div",{className:c.authorSocials,children:a.map((e=>{let[t,a]=e;return(0,r.jsx)(m,{platform:t,link:a},t)}))})}var d=a(8038);const g={authorImage:"authorImage_Zc7w","author-as-h1":"author-as-h1_Hbf4","author-as-h2":"author-as-h2_w5ag",authorDetails:"authorDetails_HbMv",authorName:"authorName_ZXAJ",authorTitle:"authorTitle_piwJ",authorBlogPostCount:"authorBlogPostCount_Ez8r"};function p(e){return e.href?(0,r.jsx)(s.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function f(e){let{title:t}=e;return(0,r.jsx)("small",{className:g.authorTitle,title:t,children:t})}function x(e){let{name:t,as:a}=e;return a?(0,r.jsx)(d.A,{as:a,className:g.authorName,children:t}):(0,r.jsx)("span",{className:g.authorName,children:t})}function v(e){let{count:t}=e;return(0,r.jsx)("span",{className:(0,n.A)(g.authorBlogPostCount),children:t})}function j(e){let{as:t,author:a,className:s,count:l}=e;const{name:i,title:o,url:c,imageURL:u,email:m,page:d}=a,j=d?.permalink||c||m&&`mailto:${m}`||void 0;return(0,r.jsxs)("div",{className:(0,n.A)("avatar margin-bottom--sm",s,g[`author-as-${t}`]),children:[u&&(0,r.jsx)(p,{href:j,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:(0,n.A)("avatar__photo",g.authorImage),src:u,alt:i})}),(i||o)&&(0,r.jsxs)("div",{className:(0,n.A)("avatar__intro",g.authorDetails),children:[(0,r.jsxs)("div",{className:"avatar__name",children:[i&&(0,r.jsx)(p,{href:j,children:(0,r.jsx)(x,{name:i,as:t})}),void 0!==l&&(0,r.jsx)(v,{count:l})]}),!!o&&(0,r.jsx)(f,{title:o}),(0,r.jsx)(h,{author:a})]})]})}},8777:(e,t,a)=>{a.d(t,{A:()=>I});var n=a(758),s=a(3526),r=a(3385),l=a(7569),i=a(8072),o=a(7073),c=a(9618),u=a(8038),m=a(6070);function h(e){let{year:t,yearGroupHeadingClassName:a,children:n}=e;return(0,m.jsxs)("div",{role:"group",children:[(0,m.jsx)(u.A,{as:"h3",className:a,children:t}),n]})}function d(e){let{items:t,yearGroupHeadingClassName:a,ListComponent:n}=e;if((0,c.p)().blog.sidebar.groupByYear){const e=(0,o.Ki)(t);return(0,m.jsx)(m.Fragment,{children:e.map((e=>{let[t,s]=e;return(0,m.jsx)(h,{year:t,yearGroupHeadingClassName:a,children:(0,m.jsx)(n,{items:s})},t)}))})}return(0,m.jsx)(n,{items:t})}const g=(0,n.memo)(d),p="sidebar_TT3g",f="sidebarItemTitle_tDhc",x="sidebarItemList_u3Ih",v="sidebarItem_Z1Fj",j="sidebarItemLink_JEx1",b="sidebarItemLinkActive__p1J",w="yearGroupHeading_PV9s",N=e=>{let{items:t}=e;return(0,m.jsx)(o.OU,{items:t,ulClassName:(0,s.A)(x,"clean-list"),liClassName:v,linkClassName:j,linkActiveClassName:b})};function k(e){let{sidebar:t}=e;const a=(0,o.Gx)(t.items);return(0,m.jsx)("aside",{className:"col col--3",children:(0,m.jsxs)("nav",{className:(0,s.A)(p,"thin-scrollbar"),"aria-label":(0,i.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,m.jsx)("div",{className:(0,s.A)(f,"margin-bottom--md"),children:t.title}),(0,m.jsx)(g,{items:a,ListComponent:N,yearGroupHeadingClassName:w})]})})}const M=(0,n.memo)(k);var _=a(5508);const A={yearGroupHeading:"yearGroupHeading_MH58"},C=e=>{let{items:t}=e;return(0,m.jsx)(o.OU,{items:t,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"})};function y(e){let{sidebar:t}=e;const a=(0,o.Gx)(t.items);return(0,m.jsx)(g,{items:a,ListComponent:C,yearGroupHeadingClassName:A.yearGroupHeading})}function P(e){return(0,m.jsx)(_.GX,{component:y,props:e})}const L=(0,n.memo)(P);function B(e){let{sidebar:t}=e;const a=(0,l.l)();return t?.items.length?"mobile"===a?(0,m.jsx)(L,{sidebar:t}):(0,m.jsx)(M,{sidebar:t}):null}function I(e){const{sidebar:t,toc:a,children:n,...l}=e,i=t&&t.items.length>0;return(0,m.jsx)(r.A,{...l,children:(0,m.jsx)("div",{className:"container margin-vert--lg",children:(0,m.jsxs)("div",{className:"row",children:[(0,m.jsx)(B,{sidebar:t}),(0,m.jsx)("main",{className:(0,s.A)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:n}),a&&(0,m.jsx)("div",{className:"col col--2",children:a})]})})})}},7773:(e,t,a)=>{a.d(t,{W:()=>c});var n=a(758),s=a(4480);const r=["zero","one","two","few","many","other"];function l(e){return r.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,s.A)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,a)=>function(e,t,a){const n=e.split("|");if(1===n.length)return n[0];n.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const s=a.select(t),r=a.pluralForms.indexOf(s);return n[Math.min(r,n.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/3a2db09e.5bb4ae1d.js b/assets/js/3a2db09e.584411b2.js similarity index 99% rename from assets/js/3a2db09e.5bb4ae1d.js rename to assets/js/3a2db09e.584411b2.js index a834c95d2..ac0cc6876 100644 --- a/assets/js/3a2db09e.5bb4ae1d.js +++ b/assets/js/3a2db09e.584411b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9361],{7588:a=>{a.exports=JSON.parse('{"tags":[{"label":"GameVault","permalink":"/blog/tags/game-vault","count":9},{"label":"Client Update","permalink":"/blog/tags/client-update","count":1},{"label":"Server Update","permalink":"/blog/tags/server-update","count":1},{"label":"metadata framework","permalink":"/blog/tags/metadata-framework","count":1},{"label":"plugin system","permalink":"/blog/tags/plugin-system","count":1},{"label":"parental control","permalink":"/blog/tags/parental-control","count":1},{"label":"age restrictions","permalink":"/blog/tags/age-restrictions","count":1},{"label":"theme","permalink":"/blog/tags/theme","count":1},{"label":"app optimization","permalink":"/blog/tags/app-optimization","count":1},{"label":"analytics","permalink":"/blog/tags/analytics","count":1},{"label":"notes","permalink":"/blog/tags/notes","count":1},{"label":"community management","permalink":"/blog/tags/community-management","count":1},{"label":"game","permalink":"/blog/tags/game","count":1},{"label":"metadata","permalink":"/blog/tags/metadata","count":2},{"label":"database","permalink":"/blog/tags/database","count":1},{"label":"videogame","permalink":"/blog/tags/videogame","count":1},{"label":"RAWG","permalink":"/blog/tags/rawg","count":1},{"label":"IGDB","permalink":"/blog/tags/igdb","count":1},{"label":"twitch.tv","permalink":"/blog/tags/twitch-tv","count":1},{"label":"API","permalink":"/blog/tags/api","count":2},{"label":"partnership","permalink":"/blog/tags/partnership","count":1},{"label":"community","permalink":"/blog/tags/community","count":4},{"label":"solution","permalink":"/blog/tags/solution","count":1},{"label":"Steam","permalink":"/blog/tags/steam","count":1},{"label":"backend","permalink":"/blog/tags/backend","count":1},{"label":"update","permalink":"/blog/tags/update","count":1},{"label":"features","permalink":"/blog/tags/features","count":3},{"label":"easter egg","permalink":"/blog/tags/easter-egg","count":1},{"label":"gaming","permalink":"/blog/tags/gaming","count":4},{"label":"self-hosted","permalink":"/blog/tags/self-hosted","count":2},{"label":"platform","permalink":"/blog/tags/platform","count":2},{"label":"DRM-free","permalink":"/blog/tags/drm-free","count":1},{"label":"video games","permalink":"/blog/tags/video-games","count":1},{"label":"subscription","permalink":"/blog/tags/subscription","count":1},{"label":"community-driven","permalink":"/blog/tags/community-driven","count":1},{"label":"updates","permalink":"/blog/tags/updates","count":1},{"label":"announcement","permalink":"/blog/tags/announcement","count":3},{"label":"early access","permalink":"/blog/tags/early-access","count":2},{"label":"release","permalink":"/blog/tags/release","count":1},{"label":"sustainability","permalink":"/blog/tags/sustainability","count":1},{"label":"partnerships","permalink":"/blog/tags/partnerships","count":1},{"label":"Discord","permalink":"/blog/tags/discord","count":3},{"label":"feedback","permalink":"/blog/tags/feedback","count":4},{"label":"improvement","permalink":"/blog/tags/improvement","count":2},{"label":"development","permalink":"/blog/tags/development","count":3},{"label":"April Fools","permalink":"/blog/tags/april-fools","count":1},{"label":"startup","permalink":"/blog/tags/startup","count":1},{"label":"software","permalink":"/blog/tags/software","count":1},{"label":"subscription model","permalink":"/blog/tags/subscription-model","count":1},{"label":"UI Update","permalink":"/blog/tags/ui-update","count":1},{"label":"Beta Testing","permalink":"/blog/tags/beta-testing","count":1},{"label":"Community Feedback","permalink":"/blog/tags/community-feedback","count":2},{"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview","count":1},{"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store","count":1},{"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers","count":1},{"label":"Game Development","permalink":"/blog/tags/game-development","count":1},{"label":"Software Updates","permalink":"/blog/tags/software-updates","count":1},{"label":"Gaming Community","permalink":"/blog/tags/gaming-community","count":1},{"label":"UI Redesign","permalink":"/blog/tags/ui-redesign","count":1},{"label":"Development Milestones","permalink":"/blog/tags/development-milestones","count":1},{"label":"Tech Progress","permalink":"/blog/tags/tech-progress","count":1},{"label":"Future Features","permalink":"/blog/tags/future-features","count":1},{"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey","count":1},{"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle","count":1},{"label":"November Update","permalink":"/blog/tags/november-update","count":1},{"label":"roadmap","permalink":"/blog/tags/roadmap","count":1},{"label":"collaboration","permalink":"/blog/tags/collaboration","count":1},{"label":"GitHub","permalink":"/blog/tags/git-hub","count":1},{"label":"voting","permalink":"/blog/tags/voting","count":2},{"label":"Kanban Board","permalink":"/blog/tags/kanban-board","count":1},{"label":"Council Member","permalink":"/blog/tags/council-member","count":1},{"label":"polls","permalink":"/blog/tags/polls","count":1},{"label":"gaming experience","permalink":"/blog/tags/gaming-experience","count":1},{"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone","count":1},{"label":"official installations","permalink":"/blog/tags/official-installations","count":1},{"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth","count":1},{"label":"gratitude","permalink":"/blog/tags/gratitude","count":1},{"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault","count":1},{"label":"upcoming update","permalink":"/blog/tags/upcoming-update","count":1},{"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline","count":1},{"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation","count":1},{"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue","count":1},{"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role","count":1},{"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch","count":1},{"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts","count":1},{"label":"spreading the word","permalink":"/blog/tags/spreading-the-word","count":2},{"label":"support request","permalink":"/blog/tags/support-request","count":1},{"label":"continued support","permalink":"/blog/tags/continued-support","count":1},{"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements","count":1},{"label":"app name migration","permalink":"/blog/tags/app-name-migration","count":1},{"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication","count":1},{"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users","count":1},{"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion","count":1},{"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering","count":1},{"label":"box representation","permalink":"/blog/tags/box-representation","count":1},{"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation","count":1},{"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion","count":1},{"label":"Discord channel","permalink":"/blog/tags/discord-channel","count":2},{"label":"name migration progress","permalink":"/blog/tags/name-migration-progress","count":1},{"label":"backend application migration","permalink":"/blog/tags/backend-application-migration","count":1},{"label":"documentation migration","permalink":"/blog/tags/documentation-migration","count":1},{"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition","count":1},{"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration","count":1},{"label":"Lemmy community","permalink":"/blog/tags/lemmy-community","count":1},{"label":"Client Application update","permalink":"/blog/tags/client-application-update","count":1},{"label":"testing","permalink":"/blog/tags/testing","count":1},{"label":"new logo","permalink":"/blog/tags/new-logo","count":1},{"label":"speculation","permalink":"/blog/tags/speculation","count":1},{"label":"migration finalization","permalink":"/blog/tags/migration-finalization","count":1},{"label":"poll results","permalink":"/blog/tags/poll-results","count":1},{"label":"renaming app","permalink":"/blog/tags/renaming-app","count":1},{"label":"GameStash","permalink":"/blog/tags/game-stash","count":1},{"label":"GameShelf","permalink":"/blog/tags/game-shelf","count":1},{"label":"Harbor","permalink":"/blog/tags/harbor","count":1},{"label":"GameHub","permalink":"/blog/tags/game-hub","count":1},{"label":"market analysis","permalink":"/blog/tags/market-analysis","count":1},{"label":"new name announcement","permalink":"/blog/tags/new-name-announcement","count":1},{"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain","count":1},{"label":"special thanks","permalink":"/blog/tags/special-thanks","count":1},{"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast","count":1},{"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter","count":1},{"label":"transition process","permalink":"/blog/tags/transition-process","count":1},{"label":"source-available software","permalink":"/blog/tags/source-available-software","count":1},{"label":"open-source","permalink":"/blog/tags/open-source","count":1},{"label":"transparency","permalink":"/blog/tags/transparency","count":1},{"label":"control","permalink":"/blog/tags/control","count":1},{"label":"software development","permalink":"/blog/tags/software-development","count":1},{"label":"code access","permalink":"/blog/tags/code-access","count":1},{"label":"hybrid model","permalink":"/blog/tags/hybrid-model","count":1},{"label":"software licensing","permalink":"/blog/tags/software-licensing","count":1},{"label":"revenue generation","permalink":"/blog/tags/revenue-generation","count":1},{"label":"user engagement","permalink":"/blog/tags/user-engagement","count":1},{"label":"harassment","permalink":"/blog/tags/harassment","count":1},{"label":"blackmail","permalink":"/blog/tags/blackmail","count":1},{"label":"threats","permalink":"/blog/tags/threats","count":1},{"label":"spam","permalink":"/blog/tags/spam","count":1},{"label":"trolls","permalink":"/blog/tags/trolls","count":1},{"label":"negative narratives","permalink":"/blog/tags/negative-narratives","count":1},{"label":"safe environment","permalink":"/blog/tags/safe-environment","count":1},{"label":"racist","permalink":"/blog/tags/racist","count":1},{"label":"developers","permalink":"/blog/tags/developers","count":1},{"label":"public","permalink":"/blog/tags/public","count":1},{"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior","count":1},{"label":"app","permalink":"/blog/tags/app","count":1},{"label":"support","permalink":"/blog/tags/support","count":1},{"label":"financial assistance","permalink":"/blog/tags/financial-assistance","count":1},{"label":"motivation","permalink":"/blog/tags/motivation","count":1},{"label":"GameVault app","permalink":"/blog/tags/game-vault-app","count":1},{"label":"bugs","permalink":"/blog/tags/bugs","count":1},{"label":"feature requests","permalink":"/blog/tags/feature-requests","count":1},{"label":"success","permalink":"/blog/tags/success","count":1},{"label":"engagement","permalink":"/blog/tags/engagement","count":1},{"label":"source-available","permalink":"/blog/tags/source-available","count":2},{"label":"gaming platform","permalink":"/blog/tags/gaming-platform","count":1},{"label":"new name","permalink":"/blog/tags/new-name","count":1},{"label":"family-friendly","permalink":"/blog/tags/family-friendly","count":1},{"label":"poll","permalink":"/blog/tags/poll","count":1},{"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names","count":1},{"label":"inclusivity","permalink":"/blog/tags/inclusivity","count":1},{"label":"user participation","permalink":"/blog/tags/user-participation","count":1},{"label":"decision-making","permalink":"/blog/tags/decision-making","count":1},{"label":"platform values","permalink":"/blog/tags/platform-values","count":1},{"label":"future development","permalink":"/blog/tags/future-development","count":1},{"label":"alternative","permalink":"/blog/tags/alternative","count":1},{"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms","count":1},{"label":"DRM-free games","permalink":"/blog/tags/drm-free-games","count":1},{"label":"file server","permalink":"/blog/tags/file-server","count":1},{"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication","count":1},{"label":"RAWG API","permalink":"/blog/tags/rawg-api","count":1},{"label":"health monitoring","permalink":"/blog/tags/health-monitoring","count":1},{"label":"Discord server","permalink":"/blog/tags/discord-server","count":1},{"label":"Reddit forum","permalink":"/blog/tags/reddit-forum","count":1},{"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum","count":1}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8121],{8070:a=>{a.exports=JSON.parse('{"tags":[{"label":"GameVault","permalink":"/blog/tags/game-vault","count":9},{"label":"Client Update","permalink":"/blog/tags/client-update","count":1},{"label":"Server Update","permalink":"/blog/tags/server-update","count":1},{"label":"metadata framework","permalink":"/blog/tags/metadata-framework","count":1},{"label":"plugin system","permalink":"/blog/tags/plugin-system","count":1},{"label":"parental control","permalink":"/blog/tags/parental-control","count":1},{"label":"age restrictions","permalink":"/blog/tags/age-restrictions","count":1},{"label":"theme","permalink":"/blog/tags/theme","count":1},{"label":"app optimization","permalink":"/blog/tags/app-optimization","count":1},{"label":"analytics","permalink":"/blog/tags/analytics","count":1},{"label":"notes","permalink":"/blog/tags/notes","count":1},{"label":"community management","permalink":"/blog/tags/community-management","count":1},{"label":"game","permalink":"/blog/tags/game","count":1},{"label":"metadata","permalink":"/blog/tags/metadata","count":2},{"label":"database","permalink":"/blog/tags/database","count":1},{"label":"videogame","permalink":"/blog/tags/videogame","count":1},{"label":"RAWG","permalink":"/blog/tags/rawg","count":1},{"label":"IGDB","permalink":"/blog/tags/igdb","count":1},{"label":"twitch.tv","permalink":"/blog/tags/twitch-tv","count":1},{"label":"API","permalink":"/blog/tags/api","count":2},{"label":"partnership","permalink":"/blog/tags/partnership","count":1},{"label":"community","permalink":"/blog/tags/community","count":4},{"label":"solution","permalink":"/blog/tags/solution","count":1},{"label":"Steam","permalink":"/blog/tags/steam","count":1},{"label":"backend","permalink":"/blog/tags/backend","count":1},{"label":"update","permalink":"/blog/tags/update","count":1},{"label":"features","permalink":"/blog/tags/features","count":3},{"label":"easter egg","permalink":"/blog/tags/easter-egg","count":1},{"label":"gaming","permalink":"/blog/tags/gaming","count":4},{"label":"self-hosted","permalink":"/blog/tags/self-hosted","count":2},{"label":"platform","permalink":"/blog/tags/platform","count":2},{"label":"DRM-free","permalink":"/blog/tags/drm-free","count":1},{"label":"video games","permalink":"/blog/tags/video-games","count":1},{"label":"subscription","permalink":"/blog/tags/subscription","count":1},{"label":"community-driven","permalink":"/blog/tags/community-driven","count":1},{"label":"updates","permalink":"/blog/tags/updates","count":1},{"label":"announcement","permalink":"/blog/tags/announcement","count":3},{"label":"early access","permalink":"/blog/tags/early-access","count":2},{"label":"release","permalink":"/blog/tags/release","count":1},{"label":"sustainability","permalink":"/blog/tags/sustainability","count":1},{"label":"partnerships","permalink":"/blog/tags/partnerships","count":1},{"label":"Discord","permalink":"/blog/tags/discord","count":3},{"label":"feedback","permalink":"/blog/tags/feedback","count":4},{"label":"improvement","permalink":"/blog/tags/improvement","count":2},{"label":"development","permalink":"/blog/tags/development","count":3},{"label":"April Fools","permalink":"/blog/tags/april-fools","count":1},{"label":"startup","permalink":"/blog/tags/startup","count":1},{"label":"software","permalink":"/blog/tags/software","count":1},{"label":"subscription model","permalink":"/blog/tags/subscription-model","count":1},{"label":"UI Update","permalink":"/blog/tags/ui-update","count":1},{"label":"Beta Testing","permalink":"/blog/tags/beta-testing","count":1},{"label":"Community Feedback","permalink":"/blog/tags/community-feedback","count":2},{"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview","count":1},{"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store","count":1},{"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers","count":1},{"label":"Game Development","permalink":"/blog/tags/game-development","count":1},{"label":"Software Updates","permalink":"/blog/tags/software-updates","count":1},{"label":"Gaming Community","permalink":"/blog/tags/gaming-community","count":1},{"label":"UI Redesign","permalink":"/blog/tags/ui-redesign","count":1},{"label":"Development Milestones","permalink":"/blog/tags/development-milestones","count":1},{"label":"Tech Progress","permalink":"/blog/tags/tech-progress","count":1},{"label":"Future Features","permalink":"/blog/tags/future-features","count":1},{"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey","count":1},{"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle","count":1},{"label":"November Update","permalink":"/blog/tags/november-update","count":1},{"label":"roadmap","permalink":"/blog/tags/roadmap","count":1},{"label":"collaboration","permalink":"/blog/tags/collaboration","count":1},{"label":"GitHub","permalink":"/blog/tags/git-hub","count":1},{"label":"voting","permalink":"/blog/tags/voting","count":2},{"label":"Kanban Board","permalink":"/blog/tags/kanban-board","count":1},{"label":"Council Member","permalink":"/blog/tags/council-member","count":1},{"label":"polls","permalink":"/blog/tags/polls","count":1},{"label":"gaming experience","permalink":"/blog/tags/gaming-experience","count":1},{"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone","count":1},{"label":"official installations","permalink":"/blog/tags/official-installations","count":1},{"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth","count":1},{"label":"gratitude","permalink":"/blog/tags/gratitude","count":1},{"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault","count":1},{"label":"upcoming update","permalink":"/blog/tags/upcoming-update","count":1},{"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline","count":1},{"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation","count":1},{"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue","count":1},{"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role","count":1},{"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch","count":1},{"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts","count":1},{"label":"spreading the word","permalink":"/blog/tags/spreading-the-word","count":2},{"label":"support request","permalink":"/blog/tags/support-request","count":1},{"label":"continued support","permalink":"/blog/tags/continued-support","count":1},{"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements","count":1},{"label":"app name migration","permalink":"/blog/tags/app-name-migration","count":1},{"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication","count":1},{"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users","count":1},{"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion","count":1},{"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering","count":1},{"label":"box representation","permalink":"/blog/tags/box-representation","count":1},{"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation","count":1},{"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion","count":1},{"label":"Discord channel","permalink":"/blog/tags/discord-channel","count":2},{"label":"name migration progress","permalink":"/blog/tags/name-migration-progress","count":1},{"label":"backend application migration","permalink":"/blog/tags/backend-application-migration","count":1},{"label":"documentation migration","permalink":"/blog/tags/documentation-migration","count":1},{"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition","count":1},{"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration","count":1},{"label":"Lemmy community","permalink":"/blog/tags/lemmy-community","count":1},{"label":"Client Application update","permalink":"/blog/tags/client-application-update","count":1},{"label":"testing","permalink":"/blog/tags/testing","count":1},{"label":"new logo","permalink":"/blog/tags/new-logo","count":1},{"label":"speculation","permalink":"/blog/tags/speculation","count":1},{"label":"migration finalization","permalink":"/blog/tags/migration-finalization","count":1},{"label":"poll results","permalink":"/blog/tags/poll-results","count":1},{"label":"renaming app","permalink":"/blog/tags/renaming-app","count":1},{"label":"GameStash","permalink":"/blog/tags/game-stash","count":1},{"label":"GameShelf","permalink":"/blog/tags/game-shelf","count":1},{"label":"Harbor","permalink":"/blog/tags/harbor","count":1},{"label":"GameHub","permalink":"/blog/tags/game-hub","count":1},{"label":"market analysis","permalink":"/blog/tags/market-analysis","count":1},{"label":"new name announcement","permalink":"/blog/tags/new-name-announcement","count":1},{"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain","count":1},{"label":"special thanks","permalink":"/blog/tags/special-thanks","count":1},{"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast","count":1},{"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter","count":1},{"label":"transition process","permalink":"/blog/tags/transition-process","count":1},{"label":"source-available software","permalink":"/blog/tags/source-available-software","count":1},{"label":"open-source","permalink":"/blog/tags/open-source","count":1},{"label":"transparency","permalink":"/blog/tags/transparency","count":1},{"label":"control","permalink":"/blog/tags/control","count":1},{"label":"software development","permalink":"/blog/tags/software-development","count":1},{"label":"code access","permalink":"/blog/tags/code-access","count":1},{"label":"hybrid model","permalink":"/blog/tags/hybrid-model","count":1},{"label":"software licensing","permalink":"/blog/tags/software-licensing","count":1},{"label":"revenue generation","permalink":"/blog/tags/revenue-generation","count":1},{"label":"user engagement","permalink":"/blog/tags/user-engagement","count":1},{"label":"harassment","permalink":"/blog/tags/harassment","count":1},{"label":"blackmail","permalink":"/blog/tags/blackmail","count":1},{"label":"threats","permalink":"/blog/tags/threats","count":1},{"label":"spam","permalink":"/blog/tags/spam","count":1},{"label":"trolls","permalink":"/blog/tags/trolls","count":1},{"label":"negative narratives","permalink":"/blog/tags/negative-narratives","count":1},{"label":"safe environment","permalink":"/blog/tags/safe-environment","count":1},{"label":"racist","permalink":"/blog/tags/racist","count":1},{"label":"developers","permalink":"/blog/tags/developers","count":1},{"label":"public","permalink":"/blog/tags/public","count":1},{"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior","count":1},{"label":"app","permalink":"/blog/tags/app","count":1},{"label":"support","permalink":"/blog/tags/support","count":1},{"label":"financial assistance","permalink":"/blog/tags/financial-assistance","count":1},{"label":"motivation","permalink":"/blog/tags/motivation","count":1},{"label":"GameVault app","permalink":"/blog/tags/game-vault-app","count":1},{"label":"bugs","permalink":"/blog/tags/bugs","count":1},{"label":"feature requests","permalink":"/blog/tags/feature-requests","count":1},{"label":"success","permalink":"/blog/tags/success","count":1},{"label":"engagement","permalink":"/blog/tags/engagement","count":1},{"label":"source-available","permalink":"/blog/tags/source-available","count":2},{"label":"gaming platform","permalink":"/blog/tags/gaming-platform","count":1},{"label":"new name","permalink":"/blog/tags/new-name","count":1},{"label":"family-friendly","permalink":"/blog/tags/family-friendly","count":1},{"label":"poll","permalink":"/blog/tags/poll","count":1},{"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names","count":1},{"label":"inclusivity","permalink":"/blog/tags/inclusivity","count":1},{"label":"user participation","permalink":"/blog/tags/user-participation","count":1},{"label":"decision-making","permalink":"/blog/tags/decision-making","count":1},{"label":"platform values","permalink":"/blog/tags/platform-values","count":1},{"label":"future development","permalink":"/blog/tags/future-development","count":1},{"label":"alternative","permalink":"/blog/tags/alternative","count":1},{"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms","count":1},{"label":"DRM-free games","permalink":"/blog/tags/drm-free-games","count":1},{"label":"file server","permalink":"/blog/tags/file-server","count":1},{"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication","count":1},{"label":"RAWG API","permalink":"/blog/tags/rawg-api","count":1},{"label":"health monitoring","permalink":"/blog/tags/health-monitoring","count":1},{"label":"Discord server","permalink":"/blog/tags/discord-server","count":1},{"label":"Reddit forum","permalink":"/blog/tags/reddit-forum","count":1},{"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum","count":1}]}')}}]); \ No newline at end of file diff --git a/assets/js/3ac72a53.47052c5b.js b/assets/js/3ac72a53.0fb90efc.js similarity index 84% rename from assets/js/3ac72a53.47052c5b.js rename to assets/js/3ac72a53.0fb90efc.js index 4df4bfb54..8b2883734 100644 --- a/assets/js/3ac72a53.47052c5b.js +++ b/assets/js/3ac72a53.0fb90efc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6152],{4937:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-forum","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4674],{8832:a=>{a.exports=JSON.parse('{"tag":{"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/lemmy-forum","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3af271b3.a8d18461.js b/assets/js/3af271b3.4197fc24.js similarity index 84% rename from assets/js/3af271b3.a8d18461.js rename to assets/js/3af271b3.4197fc24.js index a1455fcab..b50b01da5 100644 --- a/assets/js/3af271b3.a8d18461.js +++ b/assets/js/3af271b3.4197fc24.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6072],{4726:a=>{a.exports=JSON.parse('{"tag":{"label":"upcoming update","permalink":"/blog/tags/upcoming-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/upcoming-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6030],{6955:a=>{a.exports=JSON.parse('{"tag":{"label":"upcoming update","permalink":"/blog/tags/upcoming-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/upcoming-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3b659bf0.25a393d1.js b/assets/js/3b659bf0.00d57664.js similarity index 85% rename from assets/js/3b659bf0.25a393d1.js rename to assets/js/3b659bf0.00d57664.js index efad0a972..c93093755 100644 --- a/assets/js/3b659bf0.25a393d1.js +++ b/assets/js/3b659bf0.00d57664.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6635],{1069:e=>{e.exports=JSON.parse('{"tag":{"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/logo-deciphering","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3388],{3724:e=>{e.exports=JSON.parse('{"tag":{"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/logo-deciphering","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3bdf5af6.afdcb5a4.js b/assets/js/3bdf5af6.afdcb5a4.js deleted file mode 100644 index aa5c23a50..000000000 --- a/assets/js/3bdf5af6.afdcb5a4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[15],{551:a=>{a.exports=JSON.parse('{"tag":{"label":"notes","permalink":"/blog/tags/notes","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/notes","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3bdf5af6.b8c2d0a1.js b/assets/js/3bdf5af6.b8c2d0a1.js new file mode 100644 index 000000000..2fbfa191c --- /dev/null +++ b/assets/js/3bdf5af6.b8c2d0a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9316],{5941:a=>{a.exports=JSON.parse('{"tag":{"label":"notes","permalink":"/blog/tags/notes","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/notes","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3f6275a8.2e6192a8.js b/assets/js/3f6275a8.2e6192a8.js new file mode 100644 index 000000000..5d379b077 --- /dev/null +++ b/assets/js/3f6275a8.2e6192a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5759],{1657:a=>{a.exports=JSON.parse('{"tag":{"label":"bugs","permalink":"/blog/tags/bugs","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/bugs","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3f99d67c.8306d15a.js b/assets/js/3f99d67c.64e39663.js similarity index 84% rename from assets/js/3f99d67c.8306d15a.js rename to assets/js/3f99d67c.64e39663.js index 910190b83..eee348cc7 100644 --- a/assets/js/3f99d67c.8306d15a.js +++ b/assets/js/3f99d67c.64e39663.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1283],{6250:a=>{a.exports=JSON.parse('{"tag":{"label":"new logo","permalink":"/blog/tags/new-logo","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-logo","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2690],{5374:a=>{a.exports=JSON.parse('{"tag":{"label":"new logo","permalink":"/blog/tags/new-logo","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-logo","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3fc2248c.1f5578e5.js b/assets/js/3fc2248c.1f5578e5.js deleted file mode 100644 index ede9d0fef..000000000 --- a/assets/js/3fc2248c.1f5578e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8038],{7029:a=>{a.exports=JSON.parse('{"tag":{"label":"Community Feedback","permalink":"/blog/tags/community-feedback","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-feedback","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3fc2248c.d502764a.js b/assets/js/3fc2248c.d502764a.js new file mode 100644 index 000000000..21cac1aff --- /dev/null +++ b/assets/js/3fc2248c.d502764a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2762],{293:a=>{a.exports=JSON.parse('{"tag":{"label":"Community Feedback","permalink":"/blog/tags/community-feedback","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-feedback","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3fc3119e.8a78f462.js b/assets/js/3fc3119e.8a78f462.js new file mode 100644 index 000000000..e7d9c51be --- /dev/null +++ b/assets/js/3fc3119e.8a78f462.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3470],{1214:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=a(3143),r=a(6070),l=a(8591);const o={title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},i=void 0,s={authorsImageUrls:[void 0]},c=[];function u(e){const t={p:"p",strong:"strong",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"Hey, Guys!"}),"\n",(0,r.jsxs)(t.p,{children:["For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want ",(0,r.jsx)(t.strong,{children:"YOU"})," to be a part of it!"]})]})}function g(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(758);const r={},l=n.createContext(r);function o(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(l.Provider,{value:t},e.children)}},3143:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/12/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md","source":"@site/blog/2023-12-09.md","title":"Join the GameVault Early-Access Program Now!","description":"Hey, Guys!","date":"2023-12-09T00:00:00.000Z","tags":[{"inline":true,"label":"Gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Early Access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"UI Update","permalink":"/blog/tags/ui-update"},{"inline":true,"label":"Beta Testing","permalink":"/blog/tags/beta-testing"},{"inline":true,"label":"Community Feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview"},{"inline":true,"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers"}],"readingTime":1.135,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Join the GameVault Early-Access Program Now!","authors":["alfagun74"],"tags":["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},"unlisted":false,"prevItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"},"nextItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"}}')}}]); \ No newline at end of file diff --git a/assets/js/3fc3119e.a97da495.js b/assets/js/3fc3119e.a97da495.js deleted file mode 100644 index bea36f402..000000000 --- a/assets/js/3fc3119e.a97da495.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1362],{6189:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=t(2676),l=t(8358);const o={title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},r=void 0,i={permalink:"/blog/2023/12/09/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md",source:"@site/blog/2023-12-09.md",title:"Join the GameVault Early-Access Program Now!",description:"Hey, Guys!",date:"2023-12-09T00:00:00.000Z",tags:[{inline:!0,label:"Gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"Early Access",permalink:"/blog/tags/early-access"},{inline:!0,label:"UI Update",permalink:"/blog/tags/ui-update"},{inline:!0,label:"Beta Testing",permalink:"/blog/tags/beta-testing"},{inline:!0,label:"Community Feedback",permalink:"/blog/tags/community-feedback"},{inline:!0,label:"Exclusive Preview",permalink:"/blog/tags/exclusive-preview"},{inline:!0,label:"Microsoft Store",permalink:"/blog/tags/microsoft-store"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"Gaming Servers",permalink:"/blog/tags/gaming-servers"}],readingTime:1.135,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Join the GameVault Early-Access Program Now!",authors:["alfagun74"],tags:["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},unlisted:!1,prevItem:{title:"Announcing GameVault+ (coming soon)",permalink:"/blog/2024/03/28/"},nextItem:{title:"A Look Back and a Glimpse Forward",permalink:"/blog/2023/11/20/"}},s={authorsImageUrls:[void 0]},c=[];function g(e){const a={p:"p",strong:"strong",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey, Guys!"}),"\n",(0,n.jsxs)(a.p,{children:["For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want ",(0,n.jsx)(a.strong,{children:"YOU"})," to be a part of it!"]})]})}function m(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(g,{...e})}):g(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>i,a:()=>r});var n=t(5271);const l={},o=n.createContext(l);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/416eca3f.c4adc880.js b/assets/js/416eca3f.ae1b220f.js similarity index 85% rename from assets/js/416eca3f.c4adc880.js rename to assets/js/416eca3f.ae1b220f.js index f505b7cf8..b3847d998 100644 --- a/assets/js/416eca3f.c4adc880.js +++ b/assets/js/416eca3f.ae1b220f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4517],{3949:a=>{a.exports=JSON.parse('{"tag":{"label":"age restrictions","permalink":"/blog/tags/age-restrictions","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/age-restrictions","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8130],{9059:a=>{a.exports=JSON.parse('{"tag":{"label":"age restrictions","permalink":"/blog/tags/age-restrictions","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/age-restrictions","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/41e301a0.7724a9e3.js b/assets/js/41e301a0.a8fa4f4a.js similarity index 83% rename from assets/js/41e301a0.7724a9e3.js rename to assets/js/41e301a0.a8fa4f4a.js index a6fa4d661..df5d61cb6 100644 --- a/assets/js/41e301a0.7724a9e3.js +++ b/assets/js/41e301a0.a8fa4f4a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3712],{5581:l=>{l.exports=JSON.parse('{"tag":{"label":"trolls","permalink":"/blog/tags/trolls","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/trolls","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8160],{9976:l=>{l.exports=JSON.parse('{"tag":{"label":"trolls","permalink":"/blog/tags/trolls","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/trolls","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/435302bb.311555ff.js b/assets/js/435302bb.311555ff.js deleted file mode 100644 index cc5241dfd..000000000 --- a/assets/js/435302bb.311555ff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2126],{5076:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var n=a(2676),i=a(8358);const o={sidebar_position:2},s="How to Use",r={id:"client-docs/how-to-use",title:"How to Use",description:"File & Folder Structure",source:"@site/docs/client-docs/how-to-use.md",sourceDirName:"client-docs",slug:"/client-docs/how-to-use",permalink:"/docs/client-docs/how-to-use",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/how-to-use.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"docs",previous:{title:"Setting up a GameVault Client",permalink:"/docs/client-docs/setup"},next:{title:"Updating the Client",permalink:"/docs/client-docs/updating-client"}},l={},d=[{value:"File & Folder Structure",id:"file--folder-structure",level:2},{value:"Downloading Games",id:"downloading-games",level:2},{value:"1. Extracting the Game",id:"1-extracting-the-game",level:3},{value:"2. Installing the Game",id:"2-installing-the-game",level:3},{value:"Installing Portable Games",id:"installing-portable-games",level:4},{value:"Installing Setup Games",id:"installing-setup-games",level:4},{value:"Clearing Remains",id:"clearing-remains",level:4},{value:"Playing a Game",id:"playing-a-game",level:2},{value:"Tracking Your Game Progress",id:"tracking-your-game-progress",level:2},{value:"Modifying Games",id:"modifying-games",level:2},{value:"Modifying Users",id:"modifying-users",level:2},{value:"Exiting or Relaunching the App",id:"exiting-or-relaunching-the-app",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"how-to-use",children:"How to Use"})}),"\n",(0,n.jsx)(t.h2,{id:"file--folder-structure",children:"File & Folder Structure"}),"\n",(0,n.jsx)(t.admonition,{title:"Example",type:"note",children:(0,n.jsxs)(t.p,{children:["Let's say you installed GameVault freshly and configured your Root folder path to ",(0,n.jsx)(t.code,{children:"D:/"})," because your D Drive is larger."]})}),"\n",(0,n.jsx)(t.p,{children:"GameVault will now generate its folder structure. When everything is done, your file system will look like this:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"D:/GameVault/"})," - Root Folder","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"D:/GameVault/Downloads/"})," - This folder is where your downloads will be saved. For each downloaded game, GameVault generates a new folder in this directory."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"D:/GameVault/Installations/"})," - This folder is where your installed games belong. For each downloaded game, GameVault generates a new folder in this directory."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"downloading-games",children:"Downloading Games"}),"\n",(0,n.jsxs)(t.p,{children:["Let's say you found the game ",(0,n.jsx)(t.code,{children:"Assassin's Creed Unity (Game ID: 74)"})," in the Library tab and chose to download it."]}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"Only download games from servers you fully trust! There's a potential risk of malware. If your antivirus alerts during the following process, abort any download and installation of the game, fully delete the downloaded data, and warn your server admins to address the malware promptly."})}),"\n",(0,n.jsx)(t.p,{children:"As stated above, GameVault generates two folders to store the game files and uses the game ID in the name to identify them:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"<GameVault Root>/GameVault/Downloads/(74) Assassin's Creed Unity/"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"})}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Your downloaded game archive will be saved in ",(0,n.jsx)(t.code,{children:"<GameVault Root>/GameVault/Downloads/(74) Assassin's Creed Unity/"}),". The ",(0,n.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"})," folder should be empty for now."]}),"\n",(0,n.jsx)(t.p,{children:"To start playing a game you've downloaded, follow these steps to install it. This process makes it easier for you."}),"\n",(0,n.jsx)(t.p,{children:"Game installation has two main parts:"}),"\n",(0,n.jsx)(t.h3,{id:"1-extracting-the-game",children:"1. Extracting the Game"}),"\n",(0,n.jsxs)(t.p,{children:["GameVault games are ",(0,n.jsx)(t.a,{href:"/docs/server-docs/structure",children:"always served in some kind of archive format"}),". So you will need to extract them."]}),"\n",(0,n.jsxs)(t.p,{children:["After the download is complete, locate the ",(0,n.jsx)(t.code,{children:"Extract"})," button. Clicking it will extract the game into a subfolder called ",(0,n.jsx)(t.code,{children:"Extracted"})," within the game's Download Directory. A progress bar shows the extraction progress and estimated remaining time. Larger or extremely compressed games may take longer to extract."]}),"\n",(0,n.jsx)(t.p,{children:"If there are extraction errors, you can retry the extraction unless you deleted the game archive. Error details are displayed in the user interface. If you encounter repeated extraction errors for the same game, try to extract the game manually or contact your GameVault server administrators to check the integrity of those games."}),"\n",(0,n.jsx)(t.h3,{id:"2-installing-the-game",children:"2. Installing the Game"}),"\n",(0,n.jsxs)(t.p,{children:["There are different types of GameVault games. ",(0,n.jsx)(t.a,{href:"/docs/server-docs/game-types",children:"You can find more information about them here"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"For now, we will focus on the general concept of Portable and Setup Games."}),"\n",(0,n.jsx)(t.p,{children:"Portable games are ready to play out of the box, while Setup games require additional setup before playing."}),"\n",(0,n.jsx)(t.admonition,{title:"What determines the game type?",type:"note",children:(0,n.jsxs)(t.p,{children:["The server automatically tries to determine the game's type based on the content, but errors can occur. Administrators can manually overwrite the detected game type by including a ",(0,n.jsx)(t.a,{href:"/docs/server-docs/structure",children:"type override in the file name"}),"."]})}),"\n",(0,n.jsx)(t.h4,{id:"installing-portable-games",children:"Installing Portable Games"}),"\n",(0,n.jsxs)(t.p,{children:["For portable games, GameVault provides a very simple installation process. You don't need to select an executable file. Just press the ",(0,n.jsx)(t.code,{children:"Install"})," button. GameVault will automatically move all the extracted game content to your game's installation directory. This should happen instantly."]}),"\n",(0,n.jsxs)(t.p,{children:["Once the installation is complete, your game is ready to be played in the library. If necessary, select the appropriate executable file to launch in the Game Settings tab and click ",(0,n.jsx)(t.code,{children:"Play"}),"."]}),"\n",(0,n.jsx)(t.admonition,{title:"No Game Executable",type:"note",children:(0,n.jsx)(t.p,{children:"If you don't see a game executable here but instead see a setup executable, the game's type has incorrectly been set to a portable type on the server. Contact your server administrators to manually override that game's type to a setup type. Then, manually move the files inside your game's installation folder back into the game's download folder. Run the installer and manually select the now-empty game's installation folder as its destination."})}),"\n",(0,n.jsx)(t.h4,{id:"installing-setup-games",children:"Installing Setup Games"}),"\n",(0,n.jsxs)(t.p,{children:["For games that require installation, GameVault will provide a dropdown menu to launch a setup executable file. Select the appropriate setup.exe file and press the ",(0,n.jsx)(t.code,{children:"Install"})," button."]}),"\n",(0,n.jsx)(t.admonition,{title:"No Setup Executable",type:"note",children:(0,n.jsxs)(t.p,{children:["If you don't see a setup executable here but instead see the game's executable, it may have incorrectly been set to a setup type on the server. Contact your server administrators to manually override that game's type to a portable type. Then, manually move the files inside the game downloads ",(0,n.jsx)(t.code,{children:"Extracted/"})," folder to the game's corresponding installation folder, and you should be ready to play."]})}),"\n",(0,n.jsxs)(t.p,{children:["During the external setup process ",(0,n.jsx)(t.strong,{children:"it is crucial to set the destination folder for your game files to your game's Installation folder"})," (e.g., ",(0,n.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"}),"). This is where the final game files and executable should be located. If you don't set the destination, GameVault will have no idea where to look for your game files, and the game won't be playable. If you missed setting the destination folder or set it wrongly, uninstall the game from your system and retry this step."]}),"\n",(0,n.jsxs)(t.p,{children:["Once the installation is complete, your game is ready to be played. Just select the appropriate .exe file to launch in the Installations tab and click ",(0,n.jsx)(t.code,{children:"Play"}),"."]}),"\n",(0,n.jsx)(t.admonition,{title:"Why does GameVault not fully automate the setup procedure?",type:"info",children:(0,n.jsx)(t.p,{children:"Different external installers and setups work very differently, making it nearly impossible to fully automate every type. However, all installers have one thing in common: the ability to choose the installation path for the game. GameVault guides you through the process, but you still need to manually select the installation path and click through the installer."})}),"\n",(0,n.jsx)(t.h4,{id:"clearing-remains",children:"Clearing Remains"}),"\n",(0,n.jsx)(t.p,{children:"Once you have fully confirmed that a game works, you are free to delete the game's corresponding Download using the trash icon in the downloads tab."}),"\n",(0,n.jsx)(t.h2,{id:"playing-a-game",children:"Playing a Game"}),"\n",(0,n.jsxs)(t.p,{children:["Launching a game on GameVault is simple. Once your game is installed and ready to go, it will appear in the \"Installed Games\" tab. If GameVault didn't correctly predict the correct executable to launch automatically, you can change it in the game's settings and click the ",(0,n.jsx)(t.code,{children:"Play"})," button to start the game."]}),"\n",(0,n.jsx)(t.h2,{id:"tracking-your-game-progress",children:"Tracking Your Game Progress"}),"\n",(0,n.jsxs)(t.p,{children:["Once GameVault is launched, it automatically activates a time-tracking daemon. This diligent daemon continuously monitors your game progress, specifically your playtime, and promptly sends this information to the server whenever any .exe file (except those on the ignore-list) is running within a folder located in your Installations directory ",(0,n.jsx)(t.code,{children:"<GameVault Root>/Installations/*"}),". Even if you play without an internet connection, your playtime will still be tracked and updated on the server as soon as you regain connectivity."]}),"\n",(0,n.jsx)(t.p,{children:'In our context, the term "Progress" refers to a user\'s activity of playing a game. Each user can have a single progress entry per game.'}),"\n",(0,n.jsx)(t.p,{children:"The progress entry includes the completion state, which can be modified through the community tab, as well as the tracked playtime and some other additional information."}),"\n",(0,n.jsx)(t.p,{children:"You have the ability to change the progress state or delete it using the community tab. Certain states also change automatically, such as transitioning from UNPLAYED to PLAYING when the game is launched."}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"Please note that this Progress does not include your savegames. GameVault does not (yet \ud83d\ude09) have the capability to synchronize or store your savegames. Therefore, it is advisable to create backups of your savegames before uninstalling any games."})}),"\n",(0,n.jsx)(t.h2,{id:"modifying-games",children:"Modifying Games"}),"\n",(0,n.jsx)(t.p,{children:"If you are unhappy with the Box Art or Background Image of a game on your server or if there are incorrect Metadata associated with a game, there is a straightforward solution."}),"\n",(0,n.jsxs)(t.p,{children:["If you have the ",(0,n.jsx)(t.code,{children:"EDITOR"})," role or higher on your GameVault server, you can modify games by following these steps:"]}),"\n",(0,n.jsx)(t.p,{children:"Open the game settings by clicking on the settings icon, either in the top-right corner of the box art image or on the game's detail page. A popup will appear."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Under ",(0,n.jsx)(t.strong,{children:"Edit Images"}),", you can select/paste/drop an image or paste a URL for different box art or background image."]}),"\n",(0,n.jsxs)(t.li,{children:["Under ",(0,n.jsx)(t.strong,{children:"Metadata"}),", you can remap/unmap incorrectly associated metadata for each provider."]}),"\n",(0,n.jsxs)(t.li,{children:["Under ",(0,n.jsx)(t.strong,{children:"Custom Metadata"}),", you can manually overwrite the Metadata of the game."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Please note that any changes made will affect all users on the server."}),"\n",(0,n.jsx)(t.h2,{id:"modifying-users",children:"Modifying Users"}),"\n",(0,n.jsx)(t.p,{children:"If you want to change the data, profile picture, or background image of your User:"}),"\n",(0,n.jsx)(t.p,{children:"Click your User Icon on the top left corner, then locate and click on the Settings Icon in the top right corner, and a popup will appear."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Under ",(0,n.jsx)(t.strong,{children:"Edit Images"}),", you can select/paste/drop an image or paste a URL for different avatar or background image."]}),"\n",(0,n.jsxs)(t.li,{children:["Under ",(0,n.jsx)(t.strong,{children:"Edit Details"}),", you can change the data of your user."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["If you have the ",(0,n.jsx)(t.code,{children:"ADMIN"})," role or higher on your GameVault server, you can do the same for all other user profiles in the Admin Dashboard."]}),"\n",(0,n.jsx)(t.h2,{id:"exiting-or-relaunching-the-app",children:"Exiting or Relaunching the App"}),"\n",(0,n.jsx)(t.p,{children:'In order to maintain playtime tracking functionality, simply closing the launcher using the X-Button does not terminate the GameVault process. Instead, it minimizes the app to the system Tray. Therefore, if you truly wish to exit the application, be sure to right-click and select "Exit" from the context menu. The same principle applies when restarting the app. Only one GameVault window can be active at a time, so initiating another GameVault merely brings the minimized app to the forefront without actually restarting it.'})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>r,a:()=>s});var n=a(5271);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);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:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/435302bb.82bb51e9.js b/assets/js/435302bb.82bb51e9.js new file mode 100644 index 000000000..5f39d836d --- /dev/null +++ b/assets/js/435302bb.82bb51e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2298],{7164:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"client-docs/how-to-use","title":"How to Use","description":"File & Folder Structure","source":"@site/docs/client-docs/how-to-use.md","sourceDirName":"client-docs","slug":"/client-docs/how-to-use","permalink":"/docs/client-docs/how-to-use","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/how-to-use.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"docs","previous":{"title":"Setting up a GameVault Client","permalink":"/docs/client-docs/setup"},"next":{"title":"Updating the Client","permalink":"/docs/client-docs/updating-client"}}');var i=a(6070),o=a(8591);const s={sidebar_position:2},r="How to Use",l={},d=[{value:"File & Folder Structure",id:"file--folder-structure",level:2},{value:"Downloading Games",id:"downloading-games",level:2},{value:"1. Extracting the Game",id:"1-extracting-the-game",level:3},{value:"2. Installing the Game",id:"2-installing-the-game",level:3},{value:"Installing Portable Games",id:"installing-portable-games",level:4},{value:"Installing Setup Games",id:"installing-setup-games",level:4},{value:"Clearing Remains",id:"clearing-remains",level:4},{value:"Playing a Game",id:"playing-a-game",level:2},{value:"Tracking Your Game Progress",id:"tracking-your-game-progress",level:2},{value:"Modifying Games",id:"modifying-games",level:2},{value:"Modifying Users",id:"modifying-users",level:2},{value:"Exiting or Relaunching the App",id:"exiting-or-relaunching-the-app",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"how-to-use",children:"How to Use"})}),"\n",(0,i.jsx)(t.h2,{id:"file--folder-structure",children:"File & Folder Structure"}),"\n",(0,i.jsx)(t.admonition,{title:"Example",type:"note",children:(0,i.jsxs)(t.p,{children:["Let's say you installed GameVault freshly and configured your Root folder path to ",(0,i.jsx)(t.code,{children:"D:/"})," because your D Drive is larger."]})}),"\n",(0,i.jsx)(t.p,{children:"GameVault will now generate its folder structure. When everything is done, your file system will look like this:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"D:/GameVault/"})," - Root Folder","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"D:/GameVault/Downloads/"})," - This folder is where your downloads will be saved. For each downloaded game, GameVault generates a new folder in this directory."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"D:/GameVault/Installations/"})," - This folder is where your installed games belong. For each downloaded game, GameVault generates a new folder in this directory."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"downloading-games",children:"Downloading Games"}),"\n",(0,i.jsxs)(t.p,{children:["Let's say you found the game ",(0,i.jsx)(t.code,{children:"Assassin's Creed Unity (Game ID: 74)"})," in the Library tab and chose to download it."]}),"\n",(0,i.jsx)(t.admonition,{type:"warning",children:(0,i.jsx)(t.p,{children:"Only download games from servers you fully trust! There's a potential risk of malware. If your antivirus alerts during the following process, abort any download and installation of the game, fully delete the downloaded data, and warn your server admins to address the malware promptly."})}),"\n",(0,i.jsx)(t.p,{children:"As stated above, GameVault generates two folders to store the game files and uses the game ID in the name to identify them:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"<GameVault Root>/GameVault/Downloads/(74) Assassin's Creed Unity/"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"})}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Your downloaded game archive will be saved in ",(0,i.jsx)(t.code,{children:"<GameVault Root>/GameVault/Downloads/(74) Assassin's Creed Unity/"}),". The ",(0,i.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"})," folder should be empty for now."]}),"\n",(0,i.jsx)(t.p,{children:"To start playing a game you've downloaded, follow these steps to install it. This process makes it easier for you."}),"\n",(0,i.jsx)(t.p,{children:"Game installation has two main parts:"}),"\n",(0,i.jsx)(t.h3,{id:"1-extracting-the-game",children:"1. Extracting the Game"}),"\n",(0,i.jsxs)(t.p,{children:["GameVault games are ",(0,i.jsx)(t.a,{href:"/docs/server-docs/structure",children:"always served in some kind of archive format"}),". So you will need to extract them."]}),"\n",(0,i.jsxs)(t.p,{children:["After the download is complete, locate the ",(0,i.jsx)(t.code,{children:"Extract"})," button. Clicking it will extract the game into a subfolder called ",(0,i.jsx)(t.code,{children:"Extracted"})," within the game's Download Directory. A progress bar shows the extraction progress and estimated remaining time. Larger or extremely compressed games may take longer to extract."]}),"\n",(0,i.jsx)(t.p,{children:"If there are extraction errors, you can retry the extraction unless you deleted the game archive. Error details are displayed in the user interface. If you encounter repeated extraction errors for the same game, try to extract the game manually or contact your GameVault server administrators to check the integrity of those games."}),"\n",(0,i.jsx)(t.h3,{id:"2-installing-the-game",children:"2. Installing the Game"}),"\n",(0,i.jsxs)(t.p,{children:["There are different types of GameVault games. ",(0,i.jsx)(t.a,{href:"/docs/server-docs/game-types",children:"You can find more information about them here"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"For now, we will focus on the general concept of Portable and Setup Games."}),"\n",(0,i.jsx)(t.p,{children:"Portable games are ready to play out of the box, while Setup games require additional setup before playing."}),"\n",(0,i.jsx)(t.admonition,{title:"What determines the game type?",type:"note",children:(0,i.jsxs)(t.p,{children:["The server automatically tries to determine the game's type based on the content, but errors can occur. Administrators can manually overwrite the detected game type by including a ",(0,i.jsx)(t.a,{href:"/docs/server-docs/structure",children:"type override in the file name"}),"."]})}),"\n",(0,i.jsx)(t.h4,{id:"installing-portable-games",children:"Installing Portable Games"}),"\n",(0,i.jsxs)(t.p,{children:["For portable games, GameVault provides a very simple installation process. You don't need to select an executable file. Just press the ",(0,i.jsx)(t.code,{children:"Install"})," button. GameVault will automatically move all the extracted game content to your game's installation directory. This should happen instantly."]}),"\n",(0,i.jsxs)(t.p,{children:["Once the installation is complete, your game is ready to be played in the library. If necessary, select the appropriate executable file to launch in the Game Settings tab and click ",(0,i.jsx)(t.code,{children:"Play"}),"."]}),"\n",(0,i.jsx)(t.admonition,{title:"No Game Executable",type:"note",children:(0,i.jsx)(t.p,{children:"If you don't see a game executable here but instead see a setup executable, the game's type has incorrectly been set to a portable type on the server. Contact your server administrators to manually override that game's type to a setup type. Then, manually move the files inside your game's installation folder back into the game's download folder. Run the installer and manually select the now-empty game's installation folder as its destination."})}),"\n",(0,i.jsx)(t.h4,{id:"installing-setup-games",children:"Installing Setup Games"}),"\n",(0,i.jsxs)(t.p,{children:["For games that require installation, GameVault will provide a dropdown menu to launch a setup executable file. Select the appropriate setup.exe file and press the ",(0,i.jsx)(t.code,{children:"Install"})," button."]}),"\n",(0,i.jsx)(t.admonition,{title:"No Setup Executable",type:"note",children:(0,i.jsxs)(t.p,{children:["If you don't see a setup executable here but instead see the game's executable, it may have incorrectly been set to a setup type on the server. Contact your server administrators to manually override that game's type to a portable type. Then, manually move the files inside the game downloads ",(0,i.jsx)(t.code,{children:"Extracted/"})," folder to the game's corresponding installation folder, and you should be ready to play."]})}),"\n",(0,i.jsxs)(t.p,{children:["During the external setup process ",(0,i.jsx)(t.strong,{children:"it is crucial to set the destination folder for your game files to your game's Installation folder"})," (e.g., ",(0,i.jsx)(t.code,{children:"<GameVault Root>/GameVault/Installations/(74) Assassin's Creed Unity/"}),"). This is where the final game files and executable should be located. If you don't set the destination, GameVault will have no idea where to look for your game files, and the game won't be playable. If you missed setting the destination folder or set it wrongly, uninstall the game from your system and retry this step."]}),"\n",(0,i.jsxs)(t.p,{children:["Once the installation is complete, your game is ready to be played. Just select the appropriate .exe file to launch in the Installations tab and click ",(0,i.jsx)(t.code,{children:"Play"}),"."]}),"\n",(0,i.jsx)(t.admonition,{title:"Why does GameVault not fully automate the setup procedure?",type:"info",children:(0,i.jsx)(t.p,{children:"Different external installers and setups work very differently, making it nearly impossible to fully automate every type. However, all installers have one thing in common: the ability to choose the installation path for the game. GameVault guides you through the process, but you still need to manually select the installation path and click through the installer."})}),"\n",(0,i.jsx)(t.h4,{id:"clearing-remains",children:"Clearing Remains"}),"\n",(0,i.jsx)(t.p,{children:"Once you have fully confirmed that a game works, you are free to delete the game's corresponding Download using the trash icon in the downloads tab."}),"\n",(0,i.jsx)(t.h2,{id:"playing-a-game",children:"Playing a Game"}),"\n",(0,i.jsxs)(t.p,{children:["Launching a game on GameVault is simple. Once your game is installed and ready to go, it will appear in the \"Installed Games\" tab. If GameVault didn't correctly predict the correct executable to launch automatically, you can change it in the game's settings and click the ",(0,i.jsx)(t.code,{children:"Play"})," button to start the game."]}),"\n",(0,i.jsx)(t.h2,{id:"tracking-your-game-progress",children:"Tracking Your Game Progress"}),"\n",(0,i.jsxs)(t.p,{children:["Once GameVault is launched, it automatically activates a time-tracking daemon. This diligent daemon continuously monitors your game progress, specifically your playtime, and promptly sends this information to the server whenever any .exe file (except those on the ignore-list) is running within a folder located in your Installations directory ",(0,i.jsx)(t.code,{children:"<GameVault Root>/Installations/*"}),". Even if you play without an internet connection, your playtime will still be tracked and updated on the server as soon as you regain connectivity."]}),"\n",(0,i.jsx)(t.p,{children:'In our context, the term "Progress" refers to a user\'s activity of playing a game. Each user can have a single progress entry per game.'}),"\n",(0,i.jsx)(t.p,{children:"The progress entry includes the completion state, which can be modified through the community tab, as well as the tracked playtime and some other additional information."}),"\n",(0,i.jsx)(t.p,{children:"You have the ability to change the progress state or delete it using the community tab. Certain states also change automatically, such as transitioning from UNPLAYED to PLAYING when the game is launched."}),"\n",(0,i.jsx)(t.admonition,{type:"warning",children:(0,i.jsx)(t.p,{children:"Please note that this Progress does not include your savegames. GameVault does not (yet \ud83d\ude09) have the capability to synchronize or store your savegames. Therefore, it is advisable to create backups of your savegames before uninstalling any games."})}),"\n",(0,i.jsx)(t.h2,{id:"modifying-games",children:"Modifying Games"}),"\n",(0,i.jsx)(t.p,{children:"If you are unhappy with the Box Art or Background Image of a game on your server or if there are incorrect Metadata associated with a game, there is a straightforward solution."}),"\n",(0,i.jsxs)(t.p,{children:["If you have the ",(0,i.jsx)(t.code,{children:"EDITOR"})," role or higher on your GameVault server, you can modify games by following these steps:"]}),"\n",(0,i.jsx)(t.p,{children:"Open the game settings by clicking on the settings icon, either in the top-right corner of the box art image or on the game's detail page. A popup will appear."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Under ",(0,i.jsx)(t.strong,{children:"Edit Images"}),", you can select/paste/drop an image or paste a URL for different box art or background image."]}),"\n",(0,i.jsxs)(t.li,{children:["Under ",(0,i.jsx)(t.strong,{children:"Metadata"}),", you can remap/unmap incorrectly associated metadata for each provider."]}),"\n",(0,i.jsxs)(t.li,{children:["Under ",(0,i.jsx)(t.strong,{children:"Custom Metadata"}),", you can manually overwrite the Metadata of the game."]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Please note that any changes made will affect all users on the server."}),"\n",(0,i.jsx)(t.h2,{id:"modifying-users",children:"Modifying Users"}),"\n",(0,i.jsx)(t.p,{children:"If you want to change the data, profile picture, or background image of your User:"}),"\n",(0,i.jsx)(t.p,{children:"Click your User Icon on the top left corner, then locate and click on the Settings Icon in the top right corner, and a popup will appear."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Under ",(0,i.jsx)(t.strong,{children:"Edit Images"}),", you can select/paste/drop an image or paste a URL for different avatar or background image."]}),"\n",(0,i.jsxs)(t.li,{children:["Under ",(0,i.jsx)(t.strong,{children:"Edit Details"}),", you can change the data of your user."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["If you have the ",(0,i.jsx)(t.code,{children:"ADMIN"})," role or higher on your GameVault server, you can do the same for all other user profiles in the Admin Dashboard."]}),"\n",(0,i.jsx)(t.h2,{id:"exiting-or-relaunching-the-app",children:"Exiting or Relaunching the App"}),"\n",(0,i.jsx)(t.p,{children:'In order to maintain playtime tracking functionality, simply closing the launcher using the X-Button does not terminate the GameVault process. Instead, it minimizes the app to the system Tray. Therefore, if you truly wish to exit the application, be sure to right-click and select "Exit" from the context menu. The same principle applies when restarting the app. Only one GameVault window can be active at a time, so initiating another GameVault merely brings the minimized app to the forefront without actually restarting it.'})]})}function h(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>r});var n=a(758);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);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:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/438c7fa2.0f3b2c38.js b/assets/js/438c7fa2.0f3b2c38.js new file mode 100644 index 000000000..4c0d2a3b2 --- /dev/null +++ b/assets/js/438c7fa2.0f3b2c38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8733],{1834:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"server-docs/server-news","title":"Server News","description":"You can keep your users informed by adding a news.md file. Use it to link your game wishlist form, share key updates, or simply greet them.","source":"@site/docs/server-docs/server-news.md","sourceDirName":"server-docs","slug":"/server-docs/server-news","permalink":"/docs/server-docs/server-news","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/server-news.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":11,"frontMatter":{"sidebar_position":11},"sidebar":"docs","previous":{"title":"Parental Control","permalink":"/docs/server-docs/parental-control"},"next":{"title":"Setting up a GameVault Client","permalink":"/docs/client-docs/setup"}}');var r=n(6070),o=n(8591);const i={sidebar_position:11},a="Server News",d={},c=[];function l(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"server-news",children:"Server News"})}),"\n",(0,r.jsxs)(s.p,{children:["You can keep your users informed by adding a ",(0,r.jsx)(s.code,{children:"news.md"})," file. Use it to link your game wishlist form, share key updates, or simply greet them."]}),"\n",(0,r.jsxs)(s.p,{children:["This file supports ",(0,r.jsx)(s.a,{href:"https://wikipedia.org/wiki/Markdown",children:"Markdown"})," syntax, making it easy to format and structure your content. You can edit the ",(0,r.jsx)(s.code,{children:"news.md"})," file using any text editor or script. It is located at ",(0,r.jsx)(s.code,{children:"/config/news.md"}),". If you're using Docker, simply mount that folder as a volume:"]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["When updating the ",(0,r.jsx)(s.code,{children:"news.md"})," file., users will receive a notification ping-icon in their client, ensuring they see the latest news."]})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",children:"[...]\nvolumes:\n - /your/config/folder:/config\n - [...]\n[...]\n"})})]})}function u(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8591:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>a});var t=n(758);const r={},o=t.createContext(r);function i(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/438c7fa2.c8ca3637.js b/assets/js/438c7fa2.c8ca3637.js deleted file mode 100644 index 1a0330840..000000000 --- a/assets/js/438c7fa2.c8ca3637.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1601],{5729:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var t=s(2676),r=s(8358);const o={sidebar_position:11},i="Server News",a={id:"server-docs/server-news",title:"Server News",description:"You can keep your users informed by adding a news.md file. Use it to link your game wishlist form, share key updates, or simply greet them.",source:"@site/docs/server-docs/server-news.md",sourceDirName:"server-docs",slug:"/server-docs/server-news",permalink:"/docs/server-docs/server-news",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/server-news.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:11,frontMatter:{sidebar_position:11},sidebar:"docs",previous:{title:"Parental Control",permalink:"/docs/server-docs/parental-control"},next:{title:"Setting up a GameVault Client",permalink:"/docs/client-docs/setup"}},d={},c=[];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"server-news",children:"Server News"})}),"\n",(0,t.jsxs)(n.p,{children:["You can keep your users informed by adding a ",(0,t.jsx)(n.code,{children:"news.md"})," file. Use it to link your game wishlist form, share key updates, or simply greet them."]}),"\n",(0,t.jsxs)(n.p,{children:["This file supports ",(0,t.jsx)(n.a,{href:"https://wikipedia.org/wiki/Markdown",children:"Markdown"})," syntax, making it easy to format and structure your content. You can edit the ",(0,t.jsx)(n.code,{children:"news.md"})," file using any text editor or script. It is located at ",(0,t.jsx)(n.code,{children:"/config/news.md"}),". If you're using Docker, simply mount that folder as a volume:"]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["When updating the ",(0,t.jsx)(n.code,{children:"news.md"})," file., users will receive a notification ping-icon in their client, ensuring they see the latest news."]})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"[...]\nvolumes:\n - /your/config/folder:/config\n - [...]\n[...]\n"})})]})}function u(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8358:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>i});var t=s(5271);const r={},o=t.createContext(r);function i(e){const n=t.useContext(o);return t.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(r):e.components||r:i(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4534f50b.15c88222.js b/assets/js/4534f50b.2f84efd3.js similarity index 84% rename from assets/js/4534f50b.15c88222.js rename to assets/js/4534f50b.2f84efd3.js index bf6e032b2..3f4129b6c 100644 --- a/assets/js/4534f50b.15c88222.js +++ b/assets/js/4534f50b.2f84efd3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7253],{3695:a=>{a.exports=JSON.parse('{"tag":{"label":"threats","permalink":"/blog/tags/threats","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/threats","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2206],{2268:a=>{a.exports=JSON.parse('{"tag":{"label":"threats","permalink":"/blog/tags/threats","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/threats","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/46e7f252.a3647008.js b/assets/js/46e7f252.3103dec3.js similarity index 84% rename from assets/js/46e7f252.a3647008.js rename to assets/js/46e7f252.3103dec3.js index c71388c12..458b3318d 100644 --- a/assets/js/46e7f252.a3647008.js +++ b/assets/js/46e7f252.3103dec3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9190],{6312:a=>{a.exports=JSON.parse('{"tag":{"label":"metadata","permalink":"/blog/tags/metadata","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/metadata","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9724],{5469:a=>{a.exports=JSON.parse('{"tag":{"label":"metadata","permalink":"/blog/tags/metadata","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/metadata","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/47aca6da.d22b953e.js b/assets/js/47aca6da.d22b953e.js deleted file mode 100644 index b954e7935..000000000 --- a/assets/js/47aca6da.d22b953e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3465],{3692:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var o=n(2676),a=n(8358);const l={title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},i=void 0,r={permalink:"/blog/2024/04/01/2024-04-01/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md",source:"@site/blog/2024-04-01/2024-04-01.md",title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",description:"Hey Everyone!",date:"2024-04-01T00:00:00.000Z",tags:[{inline:!0,label:"April Fools",permalink:"/blog/tags/april-fools"}],readingTime:1.605,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},unlisted:!1,prevItem:{title:"GameVault+ out now",permalink:"/blog/2024/04/14/"},nextItem:{title:"Announcing GameVault+ (coming soon)",permalink:"/blog/2024/03/28/"}},s={authorsImageUrls:[void 0]},c=[];function u(e){const t={p:"p",strong:"strong",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,o.jsxs)(t.p,{children:["The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is ",(0,o.jsx)(t.strong,{children:"now available on Windows Phone 7"}),", powered by ",(0,o.jsx)(t.strong,{children:"Microsoft Silverlight"}),"!"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>i});var o=n(5271);const a={},l=o.createContext(a);function i(e){const t=o.useContext(l);return o.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(a):e.components||a:i(e.components),o.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/47aca6da.d3e3ecf1.js b/assets/js/47aca6da.d3e3ecf1.js new file mode 100644 index 000000000..4c0efc354 --- /dev/null +++ b/assets/js/47aca6da.d3e3ecf1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6484],{4564:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var o=n(4507),a=n(6070),l=n(8591);const i={title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},r=void 0,s={authorsImageUrls:[void 0]},u=[];function c(e){const t={p:"p",strong:"strong",...(0,l.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,a.jsxs)(t.p,{children:["The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is ",(0,a.jsx)(t.strong,{children:"now available on Windows Phone 7"}),", powered by ",(0,a.jsx)(t.strong,{children:"Microsoft Silverlight"}),"!"]})]})}function d(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>r});var o=n(758);const a={},l=o.createContext(a);function i(e){const t=o.useContext(l);return o.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(a):e.components||a:i(e.components),o.createElement(l.Provider,{value:t},e.children)}},4507:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/04/01/2024-04-01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md","source":"@site/blog/2024-04-01/2024-04-01.md","title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","description":"Hey Everyone!","date":"2024-04-01T00:00:00.000Z","tags":[{"inline":true,"label":"April Fools","permalink":"/blog/tags/april-fools"}],"readingTime":1.605,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","authors":["alfagun74"],"tags":["April Fools"]},"unlisted":false,"prevItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"},"nextItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"}}')}}]); \ No newline at end of file diff --git a/assets/js/4a631206.7cbbf92f.js b/assets/js/4a631206.7cbbf92f.js new file mode 100644 index 000000000..5636ec0ae --- /dev/null +++ b/assets/js/4a631206.7cbbf92f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6188],{8066:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"server-docs/updating-games","title":"Updating Games","description":"Applying an Update to a Game","source":"@site/docs/server-docs/updating-games.md","sourceDirName":"server-docs","slug":"/server-docs/updating-games","permalink":"/docs/server-docs/updating-games","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/updating-games.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5},"sidebar":"docs","previous":{"title":"Adding Games to GameVault","permalink":"/docs/server-docs/adding-games"},"next":{"title":"User Management","permalink":"/docs/server-docs/user-management"}}');var s=a(6070),i=a(8591);const r={sidebar_position:5},o="Updating Games",d={},l=[{value:"Applying an Update to a Game",id:"applying-an-update-to-a-game",level:2},{value:"Example",id:"example",level:3},{value:"Changing or Moving a Game",id:"changing-or-moving-a-game",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"updating-games",children:"Updating Games"})}),"\n",(0,s.jsx)(n.h2,{id:"applying-an-update-to-a-game",children:"Applying an Update to a Game"}),"\n",(0,s.jsxs)(n.p,{children:["To update a game, simply delete the existing game file and replace it with a new one in the files directory (by default ",(0,s.jsx)(n.code,{children:"/files"}),")."]}),"\n",(0,s.jsxs)(n.p,{children:["You can freely modify the early access and version flags of your game. As long as the ",(0,s.jsx)(n.strong,{children:"path"})," or ",(0,s.jsx)(n.strong,{children:"the combination of title and release year"})," of the new file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be restored if needed and updated with the new file's information, while preserving any progress associated with the game."]}),"\n",(0,s.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,s.jsxs)(n.p,{children:["Let's say you have a very outdated version of the game ",(0,s.jsx)(n.code,{children:"Minecraft (EA) (v1.8b) (2011).zip"})," and you want to update it to the newest version, such as ",(0,s.jsx)(n.code,{children:"Minecraft (v1.20.1) (2011).7z"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Delete ",(0,s.jsx)(n.code,{children:"Minecraft (EA) (v1.8b) (2011).zip"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Insert ",(0,s.jsx)(n.code,{children:"Minecraft (v1.20.1) (2011).7z"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Wait for the automatic indexing process to detect and register the changes."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you want to keep multiple versions of the same game, refer to the documentation on ",(0,s.jsx)(n.a,{href:"/docs/server-docs/adding-games#adding-the-same-game-multiple-times",children:"adding the same game multiple times"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"changing-or-moving-a-game",children:"Changing or Moving a Game"}),"\n",(0,s.jsxs)(n.p,{children:["Changing or moving a game is also a breeze. As long as the ",(0,s.jsx)(n.strong,{children:"path"})," or ",(0,s.jsx)(n.strong,{children:"the combination of title and release year"})," of the moved or renamed file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be updated with the new file's information, while preserving any progress associated with the game."]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8591:(e,n,a)=>{a.d(n,{R:()=>r,x:()=>o});var t=a(758);const s={},i=t.createContext(s);function r(e){const n=t.useContext(i);return t.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(s):e.components||s:r(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4a631206.7f9769a2.js b/assets/js/4a631206.7f9769a2.js deleted file mode 100644 index e370f75c1..000000000 --- a/assets/js/4a631206.7f9769a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7937],{6226:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var t=a(2676),s=a(8358);const i={sidebar_position:5},r="Updating Games",o={id:"server-docs/updating-games",title:"Updating Games",description:"Applying an Update to a Game",source:"@site/docs/server-docs/updating-games.md",sourceDirName:"server-docs",slug:"/server-docs/updating-games",permalink:"/docs/server-docs/updating-games",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/updating-games.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"docs",previous:{title:"Adding Games to GameVault",permalink:"/docs/server-docs/adding-games"},next:{title:"User Management",permalink:"/docs/server-docs/user-management"}},d={},l=[{value:"Applying an Update to a Game",id:"applying-an-update-to-a-game",level:2},{value:"Example",id:"example",level:3},{value:"Changing or Moving a Game",id:"changing-or-moving-a-game",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"updating-games",children:"Updating Games"})}),"\n",(0,t.jsx)(n.h2,{id:"applying-an-update-to-a-game",children:"Applying an Update to a Game"}),"\n",(0,t.jsxs)(n.p,{children:["To update a game, simply delete the existing game file and replace it with a new one in the files directory (by default ",(0,t.jsx)(n.code,{children:"/files"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["You can freely modify the early access and version flags of your game. As long as the ",(0,t.jsx)(n.strong,{children:"path"})," or ",(0,t.jsx)(n.strong,{children:"the combination of title and release year"})," of the new file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be restored if needed and updated with the new file's information, while preserving any progress associated with the game."]}),"\n",(0,t.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,t.jsxs)(n.p,{children:["Let's say you have a very outdated version of the game ",(0,t.jsx)(n.code,{children:"Minecraft (EA) (v1.8b) (2011).zip"})," and you want to update it to the newest version, such as ",(0,t.jsx)(n.code,{children:"Minecraft (v1.20.1) (2011).7z"}),":"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Delete ",(0,t.jsx)(n.code,{children:"Minecraft (EA) (v1.8b) (2011).zip"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Insert ",(0,t.jsx)(n.code,{children:"Minecraft (v1.20.1) (2011).7z"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Wait for the automatic indexing process to detect and register the changes."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["If you want to keep multiple versions of the same game, refer to the documentation on ",(0,t.jsx)(n.a,{href:"/docs/server-docs/adding-games#adding-the-same-game-multiple-times",children:"adding the same game multiple times"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"changing-or-moving-a-game",children:"Changing or Moving a Game"}),"\n",(0,t.jsxs)(n.p,{children:["Changing or moving a game is also a breeze. As long as the ",(0,t.jsx)(n.strong,{children:"path"})," or ",(0,t.jsx)(n.strong,{children:"the combination of title and release year"})," of the moved or renamed file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be updated with the new file's information, while preserving any progress associated with the game."]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8358:(e,n,a)=>{a.d(n,{Z:()=>o,a:()=>r});var t=a(5271);const s={},i=t.createContext(s);function r(e){const n=t.useContext(i);return t.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(s):e.components||s:r(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4a6974fe.1af309d2.js b/assets/js/4a6974fe.1af309d2.js new file mode 100644 index 000000000..afbc096bb --- /dev/null +++ b/assets/js/4a6974fe.1af309d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6175],{5256:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var o=n(4507),a=n(6070),i=n(8591);const r={title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},s=void 0,l={authorsImageUrls:[void 0]},h=[];function u(e){const t={img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,a.jsxs)(t.p,{children:["The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is ",(0,a.jsx)(t.strong,{children:"now available on Windows Phone 7"}),", powered by ",(0,a.jsx)(t.strong,{children:"Microsoft Silverlight"}),"!"]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Windows Phone",src:n(6196).A+"",width:"655",height:"1237"})}),"\n",(0,a.jsx)(t.p,{children:"The Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC."}),"\n",(0,a.jsx)(t.p,{children:"We understand the excitement and anticipation surrounding this release, and we're just as eager as you are to see how this integration will enhance your experience."}),"\n",(0,a.jsx)(t.p,{children:"With GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you're battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips."}),"\n",(0,a.jsx)(t.p,{children:"Thanks to the seamless integration with Microsoft Silverlight, navigating through your game library has never been smoother or more intuitive. The Metro Live Tiles add a touch of elegance to the user interface, making it a joy to browse through your collection and discover new games."}),"\n",(0,a.jsx)(t.p,{children:'And the best part? This is just the beginning. Our team is already hard at work on further enhancements and features, including the highly anticipated Holodeck edition of GameVault aswell as the new integrated "Bird Feeding Timer" feature, that automatically warns you when your pets are about to starve.'}),"\n",(0,a.jsx)(t.p,{children:"We're incredibly excited to embark on this journey with you and to continue pushing the boundaries of innovation. So what are you waiting for? Head over to the Windows Phone Store and migrate today to start your gaming adventure!"}),"\n",(0,a.jsx)(t.p,{children:"Happy gaming... and April Fools!"})]})}function d(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},6196:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/winphone-023216d8c8a98bec60f56a1be49a2ae5.png"},8591:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var o=n(758);const a={},i=o.createContext(a);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:t},e.children)}},4507:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/04/01/2024-04-01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md","source":"@site/blog/2024-04-01/2024-04-01.md","title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","description":"Hey Everyone!","date":"2024-04-01T00:00:00.000Z","tags":[{"inline":true,"label":"April Fools","permalink":"/blog/tags/april-fools"}],"readingTime":1.605,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","authors":["alfagun74"],"tags":["April Fools"]},"unlisted":false,"prevItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"},"nextItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"}}')}}]); \ No newline at end of file diff --git a/assets/js/4a6974fe.d796f7ac.js b/assets/js/4a6974fe.d796f7ac.js deleted file mode 100644 index 5c9230b32..000000000 --- a/assets/js/4a6974fe.d796f7ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6634],{1693:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var o=n(2676),a=n(8358);const i={title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},r=void 0,s={permalink:"/blog/2024/04/01/2024-04-01/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md",source:"@site/blog/2024-04-01/2024-04-01.md",title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",description:"Hey Everyone!",date:"2024-04-01T00:00:00.000Z",tags:[{inline:!0,label:"April Fools",permalink:"/blog/tags/april-fools"}],readingTime:1.605,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",authors:["alfagun74"],tags:["April Fools"]},unlisted:!1,prevItem:{title:"GameVault+ out now",permalink:"/blog/2024/04/14/"},nextItem:{title:"Announcing GameVault+ (coming soon)",permalink:"/blog/2024/03/28/"}},l={authorsImageUrls:[void 0]},h=[];function u(e){const t={img:"img",p:"p",strong:"strong",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,o.jsxs)(t.p,{children:["The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is ",(0,o.jsx)(t.strong,{children:"now available on Windows Phone 7"}),", powered by ",(0,o.jsx)(t.strong,{children:"Microsoft Silverlight"}),"!"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Windows Phone",src:n(9269).Z+"",width:"655",height:"1237"})}),"\n",(0,o.jsx)(t.p,{children:"The Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC."}),"\n",(0,o.jsx)(t.p,{children:"We understand the excitement and anticipation surrounding this release, and we're just as eager as you are to see how this integration will enhance your experience."}),"\n",(0,o.jsx)(t.p,{children:"With GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you're battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips."}),"\n",(0,o.jsx)(t.p,{children:"Thanks to the seamless integration with Microsoft Silverlight, navigating through your game library has never been smoother or more intuitive. The Metro Live Tiles add a touch of elegance to the user interface, making it a joy to browse through your collection and discover new games."}),"\n",(0,o.jsx)(t.p,{children:'And the best part? This is just the beginning. Our team is already hard at work on further enhancements and features, including the highly anticipated Holodeck edition of GameVault aswell as the new integrated "Bird Feeding Timer" feature, that automatically warns you when your pets are about to starve.'}),"\n",(0,o.jsx)(t.p,{children:"We're incredibly excited to embark on this journey with you and to continue pushing the boundaries of innovation. So what are you waiting for? Head over to the Windows Phone Store and migrate today to start your gaming adventure!"}),"\n",(0,o.jsx)(t.p,{children:"Happy gaming... and April Fools!"})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},9269:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/winphone-023216d8c8a98bec60f56a1be49a2ae5.png"},8358:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>r});var o=n(5271);const a={},i=o.createContext(a);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4d393b3e.1c91c1a9.js b/assets/js/4d393b3e.1c91c1a9.js new file mode 100644 index 000000000..4d11f0b5d --- /dev/null +++ b/assets/js/4d393b3e.1c91c1a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7624],{6745:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"server-docs/backup-and-restore","title":"Database Backup & Restoration","description":"The Backup and Restoration Mechanisms in GameVault are currently experimental and should not be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing...","source":"@site/docs/server-docs/backup-and-restore.md","sourceDirName":"server-docs","slug":"/server-docs/backup-and-restore","permalink":"/docs/server-docs/backup-and-restore","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/backup-and-restore.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":7.5,"frontMatter":{"sidebar_position":7.5},"sidebar":"docs","previous":{"title":"Provider: IGDB","permalink":"/docs/server-docs/metadata-enrichment/provider-igdb"},"next":{"title":"Media","permalink":"/docs/server-docs/media"}}');var r=a(6070),n=a(8591);const o={sidebar_position:7.5},i="Database Backup & Restoration",d={},c=[{value:"Backup",id:"backup",level:2},{value:"Restoration",id:"restoration",level:2}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"database-backup--restoration",children:"Database Backup & Restoration"})}),"\n",(0,r.jsx)(t.admonition,{title:"Experimental",type:"warning",children:(0,r.jsxs)(t.p,{children:["The Backup and Restoration Mechanisms in GameVault are currently experimental and should ",(0,r.jsx)(t.strong,{children:"not"})," be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing..."]})}),"\n",(0,r.jsx)(t.admonition,{title:"Security Measurements",type:"note",children:(0,r.jsx)(t.p,{children:"For security resons any database operation outlined below must be additionally authenticated using your database password."})}),"\n",(0,r.jsx)(t.h2,{id:"backup",children:"Backup"}),"\n",(0,r.jsxs)(t.p,{children:["GameVault offers a user-friendly backup system for both supported database systems, Postgres and SQLite. You can trigger and download backups either through the GameVault Client or directly via the ",(0,r.jsx)(t.a,{href:"../advanced-usage/rest-api",children:"API"})," for automation purposes. Each backup is a complete database snapshot, and it's essential to handle these files with care, as they are unencrypted. You can create as many backups as needed."]}),"\n",(0,r.jsx)(t.p,{children:"For SQLite, the GameVault Backup simply duplicates the database file."}),"\n",(0,r.jsx)(t.p,{children:"For Postgres, it utilizes pgdump to create a comprehensive database dump."}),"\n",(0,r.jsx)(t.h2,{id:"restoration",children:"Restoration"}),"\n",(0,r.jsx)(t.p,{children:"Restoring a backup is a straightforward process."}),"\n",(0,r.jsxs)(t.p,{children:["You can trigger the restoration and upload backups using the GameVault Client or via the ",(0,r.jsx)(t.a,{href:"../advanced-usage/rest-api",children:"API"})," for automated procedures. However, before you proceed, there are some critical points to consider:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"We strongly discourage restoring a backup on a different server version. If you must do it, consider downgrading your GameVault server to a lower version, ideally the version of your backup, as higher versions are more likely to cause compatibility issues. If you have no alternative, make sure to back up your current data again before proceeding."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Never, under any circumstances"}),", attempt to restore a backup from a different database technology (e.g., SQLite to Postgres or vice versa). This will result in a catastrophic failure."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Always monitor the server logs while restoring a backup. If you notice anything unusual or different than a harmless warning, make a copy and securely store the file located at /tmp/gamevault-pre-restore.db on your container/server. This file serves as a backup created just before restoring the uploaded backup. In case of a major failure, GameVault may also perform this pre-restore backup restoration automatically. If you encounter difficulties, attempt to restore from this file. If this doesn't resolve the issue, you may need to explore manual restoration or consider other backup options."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"The Restoration is not incremental. It hard-deletes everything and hard-restores everything."}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var s=a(758);const r={},n=s.createContext(r);function o(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4d393b3e.75bfcbb7.js b/assets/js/4d393b3e.75bfcbb7.js deleted file mode 100644 index 9bddee652..000000000 --- a/assets/js/4d393b3e.75bfcbb7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9155],{2197:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var r=t(2676),s=t(8358);const n={sidebar_position:7.5},o="Database Backup & Restoration",i={id:"server-docs/backup-and-restore",title:"Database Backup & Restoration",description:"The Backup and Restoration Mechanisms in GameVault are currently experimental and should not be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing...",source:"@site/docs/server-docs/backup-and-restore.md",sourceDirName:"server-docs",slug:"/server-docs/backup-and-restore",permalink:"/docs/server-docs/backup-and-restore",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/backup-and-restore.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:7.5,frontMatter:{sidebar_position:7.5},sidebar:"docs",previous:{title:"Provider: IGDB",permalink:"/docs/server-docs/metadata-enrichment/provider-igdb"},next:{title:"Media",permalink:"/docs/server-docs/media"}},d={},c=[{value:"Backup",id:"backup",level:2},{value:"Restoration",id:"restoration",level:2}];function l(e){const a={a:"a",admonition:"admonition",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.header,{children:(0,r.jsx)(a.h1,{id:"database-backup--restoration",children:"Database Backup & Restoration"})}),"\n",(0,r.jsx)(a.admonition,{title:"Experimental",type:"warning",children:(0,r.jsxs)(a.p,{children:["The Backup and Restoration Mechanisms in GameVault are currently experimental and should ",(0,r.jsx)(a.strong,{children:"not"})," be your primary backup solution. Always maintain your database backups independently and only consider using this as a last resort. In summary, we recommend avoiding this entire process whenever possible, as it can potentially be quite fragile and prone to issues. But i guess something is better than nothing..."]})}),"\n",(0,r.jsx)(a.admonition,{title:"Security Measurements",type:"note",children:(0,r.jsx)(a.p,{children:"For security resons any database operation outlined below must be additionally authenticated using your database password."})}),"\n",(0,r.jsx)(a.h2,{id:"backup",children:"Backup"}),"\n",(0,r.jsxs)(a.p,{children:["GameVault offers a user-friendly backup system for both supported database systems, Postgres and SQLite. You can trigger and download backups either through the GameVault Client or directly via the ",(0,r.jsx)(a.a,{href:"../advanced-usage/rest-api",children:"API"})," for automation purposes. Each backup is a complete database snapshot, and it's essential to handle these files with care, as they are unencrypted. You can create as many backups as needed."]}),"\n",(0,r.jsx)(a.p,{children:"For SQLite, the GameVault Backup simply duplicates the database file."}),"\n",(0,r.jsx)(a.p,{children:"For Postgres, it utilizes pgdump to create a comprehensive database dump."}),"\n",(0,r.jsx)(a.h2,{id:"restoration",children:"Restoration"}),"\n",(0,r.jsx)(a.p,{children:"Restoring a backup is a straightforward process."}),"\n",(0,r.jsxs)(a.p,{children:["You can trigger the restoration and upload backups using the GameVault Client or via the ",(0,r.jsx)(a.a,{href:"../advanced-usage/rest-api",children:"API"})," for automated procedures. However, before you proceed, there are some critical points to consider:"]}),"\n",(0,r.jsxs)(a.ol,{children:["\n",(0,r.jsxs)(a.li,{children:["\n",(0,r.jsx)(a.p,{children:"We strongly discourage restoring a backup on a different server version. If you must do it, consider downgrading your GameVault server to a lower version, ideally the version of your backup, as higher versions are more likely to cause compatibility issues. If you have no alternative, make sure to back up your current data again before proceeding."}),"\n"]}),"\n",(0,r.jsxs)(a.li,{children:["\n",(0,r.jsxs)(a.p,{children:[(0,r.jsx)(a.strong,{children:"Never, under any circumstances"}),", attempt to restore a backup from a different database technology (e.g., SQLite to Postgres or vice versa). This will result in a catastrophic failure."]}),"\n"]}),"\n",(0,r.jsxs)(a.li,{children:["\n",(0,r.jsx)(a.p,{children:"Always monitor the server logs while restoring a backup. If you notice anything unusual or different than a harmless warning, make a copy and securely store the file located at /tmp/gamevault-pre-restore.db on your container/server. This file serves as a backup created just before restoring the uploaded backup. In case of a major failure, GameVault may also perform this pre-restore backup restoration automatically. If you encounter difficulties, attempt to restore from this file. If this doesn't resolve the issue, you may need to explore manual restoration or consider other backup options."}),"\n"]}),"\n",(0,r.jsxs)(a.li,{children:["\n",(0,r.jsx)(a.p,{children:"The Restoration is not incremental. It hard-deletes everything and hard-restores everything."}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:a}={...(0,s.a)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>i,a:()=>o});var r=t(5271);const s={},n=r.createContext(s);function o(e){const a=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(n.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4e01c0f4.ef8b51e7.js b/assets/js/4e01c0f4.c0e367b2.js similarity index 84% rename from assets/js/4e01c0f4.ef8b51e7.js rename to assets/js/4e01c0f4.c0e367b2.js index f9dedd714..4a4189c2b 100644 --- a/assets/js/4e01c0f4.ef8b51e7.js +++ b/assets/js/4e01c0f4.c0e367b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3198],{4615:a=>{a.exports=JSON.parse('{"tag":{"label":"platform","permalink":"/blog/tags/platform","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/platform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4308],{2406:a=>{a.exports=JSON.parse('{"tag":{"label":"platform","permalink":"/blog/tags/platform","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/platform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4efd7f8f.ced76d32.js b/assets/js/4efd7f8f.c9c8f059.js similarity index 85% rename from assets/js/4efd7f8f.ced76d32.js rename to assets/js/4efd7f8f.c9c8f059.js index a689c82bd..4f78d18ad 100644 --- a/assets/js/4efd7f8f.ced76d32.js +++ b/assets/js/4efd7f8f.c9c8f059.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9950],{3665:e=>{e.exports=JSON.parse('{"tag":{"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/exclusive-preview","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5877],{1086:e=>{e.exports=JSON.parse('{"tag":{"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/exclusive-preview","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4f991444.76873c68.js b/assets/js/4f991444.76873c68.js deleted file mode 100644 index 3f4259b7d..000000000 --- a/assets/js/4f991444.76873c68.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1271],{774:a=>{a.exports=JSON.parse('{"tag":{"label":"Software Updates","permalink":"/blog/tags/software-updates","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-updates","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4f991444.97a7f6f8.js b/assets/js/4f991444.97a7f6f8.js new file mode 100644 index 000000000..43525c5a8 --- /dev/null +++ b/assets/js/4f991444.97a7f6f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3580],{2155:a=>{a.exports=JSON.parse('{"tag":{"label":"Software Updates","permalink":"/blog/tags/software-updates","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-updates","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4fb3dfba.77e500a8.js b/assets/js/4fb3dfba.77e500a8.js new file mode 100644 index 000000000..c1c430402 --- /dev/null +++ b/assets/js/4fb3dfba.77e500a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8001],{9420:a=>{a.exports=JSON.parse('{"tag":{"label":"backend application migration","permalink":"/blog/tags/backend-application-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/backend-application-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4fb3dfba.c47be8fc.js b/assets/js/4fb3dfba.c47be8fc.js deleted file mode 100644 index 6a0f81120..000000000 --- a/assets/js/4fb3dfba.c47be8fc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[428],{6389:a=>{a.exports=JSON.parse('{"tag":{"label":"backend application migration","permalink":"/blog/tags/backend-application-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/backend-application-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/4ff7c2f7.26455918.js b/assets/js/4ff7c2f7.030787b7.js similarity index 84% rename from assets/js/4ff7c2f7.26455918.js rename to assets/js/4ff7c2f7.030787b7.js index 08b8c32ba..4c90a3f0b 100644 --- a/assets/js/4ff7c2f7.26455918.js +++ b/assets/js/4ff7c2f7.030787b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8565],{7479:a=>{a.exports=JSON.parse('{"tag":{"label":"GameHub","permalink":"/blog/tags/game-hub","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-hub","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5246],{4536:a=>{a.exports=JSON.parse('{"tag":{"label":"GameHub","permalink":"/blog/tags/game-hub","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-hub","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/500e67e3.19f9ac2f.js b/assets/js/500e67e3.d592f3bc.js similarity index 84% rename from assets/js/500e67e3.19f9ac2f.js rename to assets/js/500e67e3.d592f3bc.js index c81d350b5..bb3e0caba 100644 --- a/assets/js/500e67e3.19f9ac2f.js +++ b/assets/js/500e67e3.d592f3bc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5724],{4617:l=>{l.exports=JSON.parse('{"tag":{"label":"poll results","permalink":"/blog/tags/poll-results","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/poll-results","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3360],{4641:l=>{l.exports=JSON.parse('{"tag":{"label":"poll results","permalink":"/blog/tags/poll-results","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/poll-results","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5046667d.88538dd3.js b/assets/js/5046667d.88538dd3.js deleted file mode 100644 index b7761cfbe..000000000 --- a/assets/js/5046667d.88538dd3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4275],{1575:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var s=i(2676),n=i(8358);const o={sidebar_position:8},r="WebSockets",a={id:"server-docs/websockets",title:"WebSockets",description:"GameVault doesn't fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it's just a basic version to begin with on the server. If you're interested in how we're doing with implementing Websockets, you can check out this page on GitHub to see our progress.",source:"@site/docs/server-docs/websockets.md",sourceDirName:"server-docs",slug:"/server-docs/websockets",permalink:"/docs/server-docs/websockets",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/websockets.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"docs",previous:{title:"Media",permalink:"/docs/server-docs/media"},next:{title:"Plugins",permalink:"/docs/server-docs/plugins"}},c={},l=[{value:"Activities",id:"activities",level:2},{value:"Disabling Activities",id:"disabling-activities",level:3},{value:"Security",id:"security",level:2}];function d(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"websockets",children:"WebSockets"})}),"\n",(0,s.jsx)(t.admonition,{title:"Work in progress",type:"warning",children:(0,s.jsxs)(t.p,{children:["GameVault doesn't fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it's just a basic version to begin with on the server. If you're interested in how we're doing with implementing Websockets, you can check out ",(0,s.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues/205",children:"this page on GitHub"})," to see our progress."]})}),"\n",(0,s.jsxs)(t.p,{children:["In GameVault Backend Version 9.0.0, we introduced an exciting feature \u2013 WebSockets. These WebSockets provide an asynchronous and bidirectional gateway for interactive communication with clients. Our implementation is based on ",(0,s.jsx)(t.a,{href:"https://socket.io/",children:"Socket.io"}),", which itself relies on the WebSocket protocol."]}),"\n",(0,s.jsx)(t.p,{children:"WebSockets enable real-time communication between the server and clients. This means that not only can the server send data to clients when they ask for it, but the server can also initiate conversations with the clients."}),"\n",(0,s.jsx)(t.p,{children:"To use this feature effectively, you need to ensure that Web-Socket Support is enabled on your machine, network, or reverse proxy."}),"\n",(0,s.jsxs)(t.p,{children:["The API is documented via AsyncAPI standard in ",(0,s.jsx)(t.code,{children:"/api/docs/async"}),". However, please note that, at the time of writing, this documentation may not run on Docker due to a bug. If you encounter this issue, you can refer to the source code for manual implementation."]}),"\n",(0,s.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,s.jsx)(t.p,{children:"Starting from GameVault Backend Version 9.0.0, GameVault allows clients to share their current activities on the server. These activities provide valuable information about what users are doing, making the platform more interactive. Activities can include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"User 1 is online."}),"\n",(0,s.jsx)(t.li,{children:"User 2 is offline."}),"\n",(0,s.jsx)(t.li,{children:"User 3 is playing Mindustry."}),"\n",(0,s.jsx)(t.li,{children:"User 4 is marked as busy."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Once a user reports his activity, it will propagate to all other users. Clients have the freedom to report their activities. If they don't, the server will display them as offline by default."}),"\n",(0,s.jsx)(t.h3,{id:"disabling-activities",children:"Disabling Activities"}),"\n",(0,s.jsxs)(t.p,{children:["For server owners who wish to disable activities, it's as simple as setting the ",(0,s.jsx)(t.code,{children:"SERVER_ONLINE_ACTIVITIES_DISABLED"})," environment variable to ",(0,s.jsx)(t.code,{children:"true"}),". Please be aware that, depending on your clients implementation, this might result in everyone appearing as offline all the time."]}),"\n",(0,s.jsx)(t.h2,{id:"security",children:"Security"}),"\n",(0,s.jsxs)(t.p,{children:["Each user is assigned a randomly generated Socket Secret that they can retrieve at ",(0,s.jsx)(t.code,{children:"/api/users/me"}),". This secret must be included in the headers (X-Socket-Secret) of every subsequent Socket.IO Handshake request to the server."]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8358:(e,t,i)=>{i.d(t,{Z:()=>a,a:()=>r});var s=i(5271);const n={},o=s.createContext(n);function r(e){const t=s.useContext(o);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(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5046667d.9c2b079b.js b/assets/js/5046667d.9c2b079b.js new file mode 100644 index 000000000..ccaaf387b --- /dev/null +++ b/assets/js/5046667d.9c2b079b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6395],{347:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"server-docs/websockets","title":"WebSockets","description":"GameVault doesn\'t fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it\'s just a basic version to begin with on the server. If you\'re interested in how we\'re doing with implementing Websockets, you can check out this page on GitHub to see our progress.","source":"@site/docs/server-docs/websockets.md","sourceDirName":"server-docs","slug":"/server-docs/websockets","permalink":"/docs/server-docs/websockets","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/websockets.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8},"sidebar":"docs","previous":{"title":"Media","permalink":"/docs/server-docs/media"},"next":{"title":"Plugins","permalink":"/docs/server-docs/plugins"}}');var n=i(6070),o=i(8591);const r={sidebar_position:8},a="WebSockets",c={},l=[{value:"Activities",id:"activities",level:2},{value:"Disabling Activities",id:"disabling-activities",level:3},{value:"Security",id:"security",level:2}];function d(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"websockets",children:"WebSockets"})}),"\n",(0,n.jsx)(t.admonition,{title:"Work in progress",type:"warning",children:(0,n.jsxs)(t.p,{children:["GameVault doesn't fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it's just a basic version to begin with on the server. If you're interested in how we're doing with implementing Websockets, you can check out ",(0,n.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues/205",children:"this page on GitHub"})," to see our progress."]})}),"\n",(0,n.jsxs)(t.p,{children:["In GameVault Backend Version 9.0.0, we introduced an exciting feature \u2013 WebSockets. These WebSockets provide an asynchronous and bidirectional gateway for interactive communication with clients. Our implementation is based on ",(0,n.jsx)(t.a,{href:"https://socket.io/",children:"Socket.io"}),", which itself relies on the WebSocket protocol."]}),"\n",(0,n.jsx)(t.p,{children:"WebSockets enable real-time communication between the server and clients. This means that not only can the server send data to clients when they ask for it, but the server can also initiate conversations with the clients."}),"\n",(0,n.jsx)(t.p,{children:"To use this feature effectively, you need to ensure that Web-Socket Support is enabled on your machine, network, or reverse proxy."}),"\n",(0,n.jsxs)(t.p,{children:["The API is documented via AsyncAPI standard in ",(0,n.jsx)(t.code,{children:"/api/docs/async"}),". However, please note that, at the time of writing, this documentation may not run on Docker due to a bug. If you encounter this issue, you can refer to the source code for manual implementation."]}),"\n",(0,n.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsx)(t.p,{children:"Starting from GameVault Backend Version 9.0.0, GameVault allows clients to share their current activities on the server. These activities provide valuable information about what users are doing, making the platform more interactive. Activities can include:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"User 1 is online."}),"\n",(0,n.jsx)(t.li,{children:"User 2 is offline."}),"\n",(0,n.jsx)(t.li,{children:"User 3 is playing Mindustry."}),"\n",(0,n.jsx)(t.li,{children:"User 4 is marked as busy."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Once a user reports his activity, it will propagate to all other users. Clients have the freedom to report their activities. If they don't, the server will display them as offline by default."}),"\n",(0,n.jsx)(t.h3,{id:"disabling-activities",children:"Disabling Activities"}),"\n",(0,n.jsxs)(t.p,{children:["For server owners who wish to disable activities, it's as simple as setting the ",(0,n.jsx)(t.code,{children:"SERVER_ONLINE_ACTIVITIES_DISABLED"})," environment variable to ",(0,n.jsx)(t.code,{children:"true"}),". Please be aware that, depending on your clients implementation, this might result in everyone appearing as offline all the time."]}),"\n",(0,n.jsx)(t.h2,{id:"security",children:"Security"}),"\n",(0,n.jsxs)(t.p,{children:["Each user is assigned a randomly generated Socket Secret that they can retrieve at ",(0,n.jsx)(t.code,{children:"/api/users/me"}),". This secret must be included in the headers (X-Socket-Secret) of every subsequent Socket.IO Handshake request to the server."]})]})}function h(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8591:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>a});var s=i(758);const n={},o=s.createContext(n);function r(e){const t=s.useContext(o);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(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51e7bf36.1bea7895.js b/assets/js/51e7bf36.1bea7895.js deleted file mode 100644 index 4d5b908fc..000000000 --- a/assets/js/51e7bf36.1bea7895.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7146],{7520:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var n=t(2676),s=t(8358);const o={sidebar_position:4},i="Data Management",c={id:"client-docs/data",title:"Data Management",description:"This page gives you an overview of how GameVault stores and manages its data.",source:"@site/docs/client-docs/data.md",sourceDirName:"client-docs",slug:"/client-docs/data",permalink:"/docs/client-docs/data",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/data.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"docs",previous:{title:"Updating the Client",permalink:"/docs/client-docs/updating-client"},next:{title:"GUI Overview",permalink:"/docs/client-docs/gui"}},l={},r=[{value:"Image Cache",id:"image-cache",level:2},{value:"Image Cache Optimization",id:"image-cache-optimization",level:3},{value:"Offline Cache (Progresses)",id:"offline-cache-progresses",level:2},{value:"Offline Cache (Game Metadata)",id:"offline-cache-game-metadata",level:2},{value:"Settings",id:"settings",level:2},{value:"Embedded Browser Settings",id:"embedded-browser-settings",level:2},{value:"Ignore List",id:"ignore-list",level:2},{value:"Crash Logs",id:"crash-logs",level:2},{value:"Themes",id:"themes",level:2}];function d(e){const a={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",strong:"strong",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.header,{children:(0,n.jsx)(a.h1,{id:"data-management",children:"Data Management"})}),"\n",(0,n.jsx)(a.p,{children:"This page gives you an overview of how GameVault stores and manages its data."}),"\n",(0,n.jsxs)(a.p,{children:["When you install the app from the Microsoft Store, all the data it saves (except for the GameVault Root Folder for your Downloads and Installations) can be found under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\"}),". Alternatively, if you did not install the app from the Microsoft Store, you can find the data under: ",(0,n.jsx)(a.code,{children:"%APPDATA%/GameVault"}),"."]}),"\n",(0,n.jsx)(a.admonition,{title:"Don't modify unless you know what you're doing",type:"warning",children:(0,n.jsx)(a.p,{children:"Please be aware that manually altering this data may lead to unwanted issues in GameVault."})}),"\n",(0,n.jsx)(a.h2,{id:"image-cache",children:"Image Cache"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\images"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\images"})]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"GameVault caches all loaded images locally for faster retrieval. They're kept in a specific subfolder with a format like \"ParentID.ImageID,\" where the ParentID could represent the Game ID or User ID. This unique ImageID allows GameVault to detect when an image becomes outdated (e.g., when another user modifies a game's box art). When you request that image again, the cache is immediately updated."}),"\n",(0,n.jsx)(a.h3,{id:"image-cache-optimization",children:"Image Cache Optimization"}),"\n",(0,n.jsx)(a.p,{children:"When you launch the GameVault Client, it performs an image optimization process. This process efficiently adjusts all cached images to match your screen size, leading to faster loading times and reduced storage usage."}),"\n",(0,n.jsx)(a.h2,{id:"offline-cache-progresses",children:"Offline Cache (Progresses)"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\prgs"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\prgs"})]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"Even when your application or your GameVault Server is offline, as long as the GameVault Client is running in the background, it continues to track your playtime. This data is sent to the server the next time you or the server is online."}),"\n",(0,n.jsx)(a.h2,{id:"offline-cache-game-metadata",children:"Offline Cache (Game Metadata)"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\local"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\local"})]}),"\n"]}),"\n",(0,n.jsxs)(a.p,{children:["After downloading a game, GameVault stores the game's metadata locally ",(0,n.jsx)(a.strong,{children:"once"}),". This allows you to see all game details even when your application or the server is offline. There is currently no way to refresh the cached metadata of a game."]}),"\n",(0,n.jsx)(a.h2,{id:"settings",children:"Settings"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\config\\user"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\config\\user"})]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"All GameVault settings are stored and retrieved in a user file. Sensitive data is encrypted for security."}),"\n",(0,n.jsx)(a.h2,{id:"embedded-browser-settings",children:"Embedded Browser Settings"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\config\\web"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\config\\web"})]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"GameVault's embedded browser settings are stored in the web folder. The embedded browser is used for the GameVault+ login functionality. You can delete this folder if you wish to clear all browser data. This will also log you out of your Phalcode account."}),"\n",(0,n.jsx)(a.h2,{id:"ignore-list",children:"Ignore List"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\ignorelist"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\ignorelist"})]}),"\n"]}),"\n",(0,n.jsxs)(a.p,{children:["The Ignore List includes commonly encountered false positives of sidecar-executables, such as ",(0,n.jsx)(a.code,{children:"setup.exe"}),", ",(0,n.jsx)(a.code,{children:"UnityCrashHandler.exe"})," or ",(0,n.jsx)(a.code,{children:"uninstall.exe"}),". This list is retrieved from the server if not already present. It's used by the playtime tracker for instance to avoid counting ",(0,n.jsx)(a.code,{children:"setup.exe"}),' as playtime. Furthermore, these executables are hidden in the selection list within the installation tab, ensuring that only game-related executables are shown. You can also edit the Ignore List locally by opening the "ignorelist" file and adding your own entries to be excluded.']}),"\n",(0,n.jsx)(a.h2,{id:"crash-logs",children:"Crash Logs"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\errorlog"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\errorlog"})]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"The Crash Logs are generated when an unhandled error occurs in GameVault. They can be used to debug issues or to provide support."}),"\n",(0,n.jsx)(a.h2,{id:"themes",children:"Themes"}),"\n",(0,n.jsxs)(a.blockquote,{children:["\n",(0,n.jsxs)(a.p,{children:["Located under: ",(0,n.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\themes"})," or ",(0,n.jsx)(a.code,{children:"%APPDATA%\\GameVault\\themes"})]}),"\n"]}),"\n",(0,n.jsxs)(a.p,{children:["Here you can import your custom themes. To learn more about custom themes, refer to ",(0,n.jsx)(a.a,{href:"/docs/gamevault-plus/themes#custom-themes",children:"Custom Themes Guide"}),"."]})]})}function h(e={}){const{wrapper:a}={...(0,s.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>c,a:()=>i});var n=t(5271);const s={},o=n.createContext(s);function i(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function c(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51e7bf36.d03c240c.js b/assets/js/51e7bf36.d03c240c.js new file mode 100644 index 000000000..637ad8795 --- /dev/null +++ b/assets/js/51e7bf36.d03c240c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1334],{7458:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>r});const n=JSON.parse('{"id":"client-docs/data","title":"Data Management","description":"This page gives you an overview of how GameVault stores and manages its data.","source":"@site/docs/client-docs/data.md","sourceDirName":"client-docs","slug":"/client-docs/data","permalink":"/docs/client-docs/data","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/data.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"docs","previous":{"title":"Updating the Client","permalink":"/docs/client-docs/updating-client"},"next":{"title":"GUI Overview","permalink":"/docs/client-docs/gui"}}');var s=t(6070),o=t(8591);const i={sidebar_position:4},c="Data Management",l={},r=[{value:"Image Cache",id:"image-cache",level:2},{value:"Image Cache Optimization",id:"image-cache-optimization",level:3},{value:"Offline Cache (Progresses)",id:"offline-cache-progresses",level:2},{value:"Offline Cache (Game Metadata)",id:"offline-cache-game-metadata",level:2},{value:"Settings",id:"settings",level:2},{value:"Embedded Browser Settings",id:"embedded-browser-settings",level:2},{value:"Ignore List",id:"ignore-list",level:2},{value:"Crash Logs",id:"crash-logs",level:2},{value:"Themes",id:"themes",level:2}];function d(e){const a={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.header,{children:(0,s.jsx)(a.h1,{id:"data-management",children:"Data Management"})}),"\n",(0,s.jsx)(a.p,{children:"This page gives you an overview of how GameVault stores and manages its data."}),"\n",(0,s.jsxs)(a.p,{children:["When you install the app from the Microsoft Store, all the data it saves (except for the GameVault Root Folder for your Downloads and Installations) can be found under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\"}),". Alternatively, if you did not install the app from the Microsoft Store, you can find the data under: ",(0,s.jsx)(a.code,{children:"%APPDATA%/GameVault"}),"."]}),"\n",(0,s.jsx)(a.admonition,{title:"Don't modify unless you know what you're doing",type:"warning",children:(0,s.jsx)(a.p,{children:"Please be aware that manually altering this data may lead to unwanted issues in GameVault."})}),"\n",(0,s.jsx)(a.h2,{id:"image-cache",children:"Image Cache"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\images"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\images"})]}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"GameVault caches all loaded images locally for faster retrieval. They're kept in a specific subfolder with a format like \"ParentID.ImageID,\" where the ParentID could represent the Game ID or User ID. This unique ImageID allows GameVault to detect when an image becomes outdated (e.g., when another user modifies a game's box art). When you request that image again, the cache is immediately updated."}),"\n",(0,s.jsx)(a.h3,{id:"image-cache-optimization",children:"Image Cache Optimization"}),"\n",(0,s.jsx)(a.p,{children:"When you launch the GameVault Client, it performs an image optimization process. This process efficiently adjusts all cached images to match your screen size, leading to faster loading times and reduced storage usage."}),"\n",(0,s.jsx)(a.h2,{id:"offline-cache-progresses",children:"Offline Cache (Progresses)"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\prgs"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\prgs"})]}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"Even when your application or your GameVault Server is offline, as long as the GameVault Client is running in the background, it continues to track your playtime. This data is sent to the server the next time you or the server is online."}),"\n",(0,s.jsx)(a.h2,{id:"offline-cache-game-metadata",children:"Offline Cache (Game Metadata)"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\local"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\local"})]}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["After downloading a game, GameVault stores the game's metadata locally ",(0,s.jsx)(a.strong,{children:"once"}),". This allows you to see all game details even when your application or the server is offline. There is currently no way to refresh the cached metadata of a game."]}),"\n",(0,s.jsx)(a.h2,{id:"settings",children:"Settings"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\config\\user"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\config\\user"})]}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"All GameVault settings are stored and retrieved in a user file. Sensitive data is encrypted for security."}),"\n",(0,s.jsx)(a.h2,{id:"embedded-browser-settings",children:"Embedded Browser Settings"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\config\\web"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\config\\web"})]}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"GameVault's embedded browser settings are stored in the web folder. The embedded browser is used for the GameVault+ login functionality. You can delete this folder if you wish to clear all browser data. This will also log you out of your Phalcode account."}),"\n",(0,s.jsx)(a.h2,{id:"ignore-list",children:"Ignore List"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\cache\\ignorelist"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\cache\\ignorelist"})]}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["The Ignore List includes commonly encountered false positives of sidecar-executables, such as ",(0,s.jsx)(a.code,{children:"setup.exe"}),", ",(0,s.jsx)(a.code,{children:"UnityCrashHandler.exe"})," or ",(0,s.jsx)(a.code,{children:"uninstall.exe"}),". This list is retrieved from the server if not already present. It's used by the playtime tracker for instance to avoid counting ",(0,s.jsx)(a.code,{children:"setup.exe"}),' as playtime. Furthermore, these executables are hidden in the selection list within the installation tab, ensuring that only game-related executables are shown. You can also edit the Ignore List locally by opening the "ignorelist" file and adding your own entries to be excluded.']}),"\n",(0,s.jsx)(a.h2,{id:"crash-logs",children:"Crash Logs"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\errorlog"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\errorlog"})]}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"The Crash Logs are generated when an unhandled error occurs in GameVault. They can be used to debug issues or to provide support."}),"\n",(0,s.jsx)(a.h2,{id:"themes",children:"Themes"}),"\n",(0,s.jsxs)(a.blockquote,{children:["\n",(0,s.jsxs)(a.p,{children:["Located under: ",(0,s.jsx)(a.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\themes"})," or ",(0,s.jsx)(a.code,{children:"%APPDATA%\\GameVault\\themes"})]}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["Here you can import your custom themes. To learn more about custom themes, refer to ",(0,s.jsx)(a.a,{href:"/docs/gamevault-plus/themes#custom-themes",children:"Custom Themes Guide"}),"."]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8591:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>c});var n=t(758);const s={},o=n.createContext(s);function i(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function c(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51fa4cf1.d5da5dbf.js b/assets/js/51fa4cf1.47fdc58f.js similarity index 84% rename from assets/js/51fa4cf1.d5da5dbf.js rename to assets/js/51fa4cf1.47fdc58f.js index fef280306..42830d15e 100644 --- a/assets/js/51fa4cf1.d5da5dbf.js +++ b/assets/js/51fa4cf1.47fdc58f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5501],{5318:a=>{a.exports=JSON.parse('{"tag":{"label":"GameStash","permalink":"/blog/tags/game-stash","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-stash","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9734],{3525:a=>{a.exports=JSON.parse('{"tag":{"label":"GameStash","permalink":"/blog/tags/game-stash","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-stash","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/524a34e7.1aab349d.js b/assets/js/524a34e7.b7fed62d.js similarity index 83% rename from assets/js/524a34e7.1aab349d.js rename to assets/js/524a34e7.b7fed62d.js index 439753bcd..850718dd1 100644 --- a/assets/js/524a34e7.1aab349d.js +++ b/assets/js/524a34e7.b7fed62d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6953],{2478:a=>{a.exports=JSON.parse('{"tag":{"label":"Harbor","permalink":"/blog/tags/harbor","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/harbor","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5138],{2265:a=>{a.exports=JSON.parse('{"tag":{"label":"Harbor","permalink":"/blog/tags/harbor","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/harbor","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/534e7ef5.3ac40b2b.js b/assets/js/534e7ef5.3ac40b2b.js deleted file mode 100644 index 75249578f..000000000 --- a/assets/js/534e7ef5.3ac40b2b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2834],{2583:t=>{t.exports=JSON.parse('{"tag":{"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription-to-updates-role","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/534e7ef5.db693c3f.js b/assets/js/534e7ef5.db693c3f.js new file mode 100644 index 000000000..c6714efd3 --- /dev/null +++ b/assets/js/534e7ef5.db693c3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[625],{6287:t=>{t.exports=JSON.parse('{"tag":{"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/subscription-to-updates-role","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/55dfe132.08acfa72.js b/assets/js/55dfe132.08acfa72.js new file mode 100644 index 000000000..e6ca8d9ca --- /dev/null +++ b/assets/js/55dfe132.08acfa72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3314],{9292:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=t(8348),s=t(6070),o=t(8591);const r={title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},i=void 0,l={authorsImageUrls:[void 0]},d=[];function c(e){const n={a:"a",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Hello,"}),"\n",(0,s.jsxs)(n.p,{children:["It's been a while since we caught up here, but if you've been following the action on ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", you're up to speed. Nevertheless, this blog remains your spot for the key updates and announements."]}),"\n",(0,s.jsx)(n.p,{children:"Let's dive into what's been happening with GameVault since release and what's on the horizon. We've hit version 9 on the backend and 1.7 on the frontend, showcasing our commitment to continuous improvement."}),"\n",(0,s.jsx)(n.p,{children:"Alongside the usual optimizations and bug fixes, we've been paying a lot of attention to your feature requests and implemented a bunch of them."}),"\n",(0,s.jsx)(n.p,{children:"Here's the highlight reel:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Auto Extraction and Installation of Videogames"}),"\n",(0,s.jsx)(n.li,{children:"Uninstalling Games through GameVault"}),"\n",(0,s.jsx)(n.li,{children:"Uploading Images"}),"\n",(0,s.jsx)(n.li,{children:"Support for more Archive Formats"}),"\n",(0,s.jsx)(n.li,{children:"Bandwidth Control Features"}),"\n",(0,s.jsx)(n.li,{children:"Database Backups & Restorations"}),"\n",(0,s.jsx)(n.li,{children:"Crash Reporting"}),"\n",(0,s.jsx)(n.li,{children:"Random Game Finder"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"So, what's cooking now? We asked for your top three desired features recently, and here are the results:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"UI Redesign for the Library and Installations Tab"}),"\n",(0,s.jsx)(n.li,{children:"Support for ROMS and Emulators"}),"\n",(0,s.jsx)(n.li,{children:"Support for extra files like Soundtracks, Mods, etc."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["By the way, if you want to take part in polls like this in the future aswell, make sure to become a council member on ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"!"]}),"\n",(0,s.jsx)(n.p,{children:"Right now we're knee-deep in redesigning the Library, the heart of our application. Big changes are on the way, waving goodbye to the installations tab and ushering in a sleeker UI for Library, Game View, and Game Settings."}),"\n",(0,s.jsx)(n.p,{children:"Here are some sneak peeks and mockups: (still work in progress):"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Library (Mockup)\n",(0,s.jsx)(n.img,{alt:"Filters",src:t(4672).A+"",width:"1896",height:"1080"}),"\n",(0,s.jsx)(n.img,{alt:"Empty States",src:t(6068).A+"",width:"1896",height:"1080"})]}),"\n",(0,s.jsxs)(n.li,{children:["Library (current implementation)\n",(0,s.jsx)(n.img,{alt:"Library",src:t(8008).A+"",width:"960",height:"520"})]}),"\n",(0,s.jsxs)(n.li,{children:["Game (Mockup)\n",(0,s.jsx)(n.img,{alt:"Game View",src:t(7831).A+"",width:"1896",height:"1080"})]}),"\n",(0,s.jsxs)(n.li,{children:["Game Settings (Mockup)\n",(0,s.jsx)(n.img,{alt:"Game Settings",src:t(7586).A+"",width:"1080",height:"792"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Remember, these are teasers. Anything can look different once it ships. There's a lot of work left, and we're on it. To be technical here: Most of these modern controls require us to rewrite WPF Controls from the core. On the backend, we're not slacking either \u2013 tons of end-to-end tests are being written to ensure our app's reliability."}),"\n",(0,s.jsxs)(n.p,{children:["Excited about the new UI or got something to say? Head over to ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," and spill the beans!"]}),"\n",(0,s.jsx)(n.p,{children:"We're eager to wrap up these tasks and ship the update out to you guys."}),"\n",(0,s.jsxs)(n.p,{children:["We also wanted to mention we've already crossed 2000 GameVault users with a growing engaged ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," community of 350 members!"]}),"\n",(0,s.jsx)(n.p,{children:"And your donations help keeping the lights on, though we're not rolling in dough just yet. Every penny counts, and we're truly grateful. Thanks a lot. \u2764\ufe0f"}),"\n",(0,s.jsx)(n.p,{children:"Help us promote GameVault among fellow self-hosters. Your efforts could inspire a bored developer to join and contribute to our project!"}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned for the UI update \u2013 we'll be back in touch soon."}),"\n",(0,s.jsx)(n.p,{children:"Until then, happy gaming! \ud83c\udfae"})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},6068:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/emptystates-cac04f51fc52e209e202e0611b7fc9ce.png"},4672:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/filters-f2a63aa5f8026620c96a6af4d668e8de.png"},7831:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/game-1a2301146090a980e3af454aa57abb22.png"},8008:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/library-23677b063b1eec718776e44519f449fd.png"},7586:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/settings-ec331d2e53857decc5abb85f44855896.png"},8591:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>i});var a=t(758);const s={},o=a.createContext(s);function r(e){const n=a.useContext(o);return a.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(s):e.components||s:r(e.components),a.createElement(o.Provider,{value:n},e.children)}},8348:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/11/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md","source":"@site/blog/2023-11-20.md","title":"A Look Back and a Glimpse Forward","description":"Hello,","date":"2023-11-20T00:00:00.000Z","tags":[{"inline":true,"label":"Game Development","permalink":"/blog/tags/game-development"},{"inline":true,"label":"Software Updates","permalink":"/blog/tags/software-updates"},{"inline":true,"label":"Gaming Community","permalink":"/blog/tags/gaming-community"},{"inline":true,"label":"UI Redesign","permalink":"/blog/tags/ui-redesign"},{"inline":true,"label":"Development Milestones","permalink":"/blog/tags/development-milestones"},{"inline":true,"label":"Tech Progress","permalink":"/blog/tags/tech-progress"},{"inline":true,"label":"Future Features","permalink":"/blog/tags/future-features"},{"inline":true,"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey"},{"inline":true,"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle"},{"inline":true,"label":"November Update","permalink":"/blog/tags/november-update"}],"readingTime":2.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Look Back and a Glimpse Forward","authors":["alfagun74"],"tags":["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},"unlisted":false,"prevItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"},"nextItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"}}')}}]); \ No newline at end of file diff --git a/assets/js/55dfe132.39f7a57c.js b/assets/js/55dfe132.39f7a57c.js deleted file mode 100644 index 008a3ce4a..000000000 --- a/assets/js/55dfe132.39f7a57c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5487],{4773:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var a=t(2676),s=t(8358);const o={title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},i=void 0,r={permalink:"/blog/2023/11/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md",source:"@site/blog/2023-11-20.md",title:"A Look Back and a Glimpse Forward",description:"Hello,",date:"2023-11-20T00:00:00.000Z",tags:[{inline:!0,label:"Game Development",permalink:"/blog/tags/game-development"},{inline:!0,label:"Software Updates",permalink:"/blog/tags/software-updates"},{inline:!0,label:"Gaming Community",permalink:"/blog/tags/gaming-community"},{inline:!0,label:"UI Redesign",permalink:"/blog/tags/ui-redesign"},{inline:!0,label:"Development Milestones",permalink:"/blog/tags/development-milestones"},{inline:!0,label:"Tech Progress",permalink:"/blog/tags/tech-progress"},{inline:!0,label:"Future Features",permalink:"/blog/tags/future-features"},{inline:!0,label:"GameVault Journey",permalink:"/blog/tags/game-vault-journey"},{inline:!0,label:"Coding Chronicle",permalink:"/blog/tags/coding-chronicle"},{inline:!0,label:"November Update",permalink:"/blog/tags/november-update"}],readingTime:2.26,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},unlisted:!1,prevItem:{title:"Join the GameVault Early-Access Program Now!",permalink:"/blog/2023/12/09/"},nextItem:{title:"Please help us prioritize!",permalink:"/blog/2023/07/29/"}},l={authorsImageUrls:[void 0]},d=[];function c(e){const n={a:"a",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Hello,"}),"\n",(0,a.jsxs)(n.p,{children:["It's been a while since we caught up here, but if you've been following the action on ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", you're up to speed. Nevertheless, this blog remains your spot for the key updates and announements."]}),"\n",(0,a.jsx)(n.p,{children:"Let's dive into what's been happening with GameVault since release and what's on the horizon. We've hit version 9 on the backend and 1.7 on the frontend, showcasing our commitment to continuous improvement."}),"\n",(0,a.jsx)(n.p,{children:"Alongside the usual optimizations and bug fixes, we've been paying a lot of attention to your feature requests and implemented a bunch of them."}),"\n",(0,a.jsx)(n.p,{children:"Here's the highlight reel:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Auto Extraction and Installation of Videogames"}),"\n",(0,a.jsx)(n.li,{children:"Uninstalling Games through GameVault"}),"\n",(0,a.jsx)(n.li,{children:"Uploading Images"}),"\n",(0,a.jsx)(n.li,{children:"Support for more Archive Formats"}),"\n",(0,a.jsx)(n.li,{children:"Bandwidth Control Features"}),"\n",(0,a.jsx)(n.li,{children:"Database Backups & Restorations"}),"\n",(0,a.jsx)(n.li,{children:"Crash Reporting"}),"\n",(0,a.jsx)(n.li,{children:"Random Game Finder"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"So, what's cooking now? We asked for your top three desired features recently, and here are the results:"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"UI Redesign for the Library and Installations Tab"}),"\n",(0,a.jsx)(n.li,{children:"Support for ROMS and Emulators"}),"\n",(0,a.jsx)(n.li,{children:"Support for extra files like Soundtracks, Mods, etc."}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["By the way, if you want to take part in polls like this in the future aswell, make sure to become a council member on ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"!"]}),"\n",(0,a.jsx)(n.p,{children:"Right now we're knee-deep in redesigning the Library, the heart of our application. Big changes are on the way, waving goodbye to the installations tab and ushering in a sleeker UI for Library, Game View, and Game Settings."}),"\n",(0,a.jsx)(n.p,{children:"Here are some sneak peeks and mockups: (still work in progress):"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsxs)(n.li,{children:["Library (Mockup)\n",(0,a.jsx)(n.img,{alt:"Filters",src:t(9740).Z+"",width:"1896",height:"1080"}),"\n",(0,a.jsx)(n.img,{alt:"Empty States",src:t(709).Z+"",width:"1896",height:"1080"})]}),"\n",(0,a.jsxs)(n.li,{children:["Library (current implementation)\n",(0,a.jsx)(n.img,{alt:"Library",src:t(104).Z+"",width:"960",height:"520"})]}),"\n",(0,a.jsxs)(n.li,{children:["Game (Mockup)\n",(0,a.jsx)(n.img,{alt:"Game View",src:t(2908).Z+"",width:"1896",height:"1080"})]}),"\n",(0,a.jsxs)(n.li,{children:["Game Settings (Mockup)\n",(0,a.jsx)(n.img,{alt:"Game Settings",src:t(1493).Z+"",width:"1080",height:"792"})]}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Remember, these are teasers. Anything can look different once it ships. There's a lot of work left, and we're on it. To be technical here: Most of these modern controls require us to rewrite WPF Controls from the core. On the backend, we're not slacking either \u2013 tons of end-to-end tests are being written to ensure our app's reliability."}),"\n",(0,a.jsxs)(n.p,{children:["Excited about the new UI or got something to say? Head over to ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," and spill the beans!"]}),"\n",(0,a.jsx)(n.p,{children:"We're eager to wrap up these tasks and ship the update out to you guys."}),"\n",(0,a.jsxs)(n.p,{children:["We also wanted to mention we've already crossed 2000 GameVault users with a growing engaged ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," community of 350 members!"]}),"\n",(0,a.jsx)(n.p,{children:"And your donations help keeping the lights on, though we're not rolling in dough just yet. Every penny counts, and we're truly grateful. Thanks a lot. \u2764\ufe0f"}),"\n",(0,a.jsx)(n.p,{children:"Help us promote GameVault among fellow self-hosters. Your efforts could inspire a bored developer to join and contribute to our project!"}),"\n",(0,a.jsx)(n.p,{children:"Stay tuned for the UI update \u2013 we'll be back in touch soon."}),"\n",(0,a.jsx)(n.p,{children:"Until then, happy gaming! \ud83c\udfae"})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},709:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/emptystates-cac04f51fc52e209e202e0611b7fc9ce.png"},9740:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/filters-f2a63aa5f8026620c96a6af4d668e8de.png"},2908:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/game-1a2301146090a980e3af454aa57abb22.png"},104:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/library-23677b063b1eec718776e44519f449fd.png"},1493:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/settings-ec331d2e53857decc5abb85f44855896.png"},8358:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>i});var a=t(5271);const s={},o=a.createContext(s);function i(e){const n=a.useContext(o);return a.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(s):e.components||s:i(e.components),a.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/573c7c88.ef50afd2.js b/assets/js/573c7c88.fc7a17f4.js similarity index 85% rename from assets/js/573c7c88.ef50afd2.js rename to assets/js/573c7c88.fc7a17f4.js index 5db4b9b83..75c008d47 100644 --- a/assets/js/573c7c88.ef50afd2.js +++ b/assets/js/573c7c88.fc7a17f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8846],{6983:e=>{e.exports=JSON.parse('{"tag":{"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/self-hosted-newsletter","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3903],{8626:e=>{e.exports=JSON.parse('{"tag":{"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/self-hosted-newsletter","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/591d17b8.ab276fe7.js b/assets/js/591d17b8.5d3d00ed.js similarity index 86% rename from assets/js/591d17b8.ab276fe7.js rename to assets/js/591d17b8.5d3d00ed.js index 7a463b7b2..8bf380b43 100644 --- a/assets/js/591d17b8.ab276fe7.js +++ b/assets/js/591d17b8.5d3d00ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8218],{1880:t=>{t.exports=JSON.parse('{"tag":{"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/microsoft-store-publication","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4028],{4669:t=>{t.exports=JSON.parse('{"tag":{"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/microsoft-store-publication","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5a2f6c5d.09370c3a.js b/assets/js/5a2f6c5d.09370c3a.js deleted file mode 100644 index 7af629ae1..000000000 --- a/assets/js/5a2f6c5d.09370c3a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2158],{6888:t=>{t.exports=JSON.parse('{"tag":{"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/microsoft-store","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5a2f6c5d.19e85d5c.js b/assets/js/5a2f6c5d.19e85d5c.js new file mode 100644 index 000000000..d32d18cea --- /dev/null +++ b/assets/js/5a2f6c5d.19e85d5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[811],{2566:t=>{t.exports=JSON.parse('{"tag":{"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/microsoft-store","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5a8f8fa9.0f14bab8.js b/assets/js/5a8f8fa9.8116c622.js similarity index 85% rename from assets/js/5a8f8fa9.0f14bab8.js rename to assets/js/5a8f8fa9.8116c622.js index 926c449ba..935fbf27a 100644 --- a/assets/js/5a8f8fa9.0f14bab8.js +++ b/assets/js/5a8f8fa9.8116c622.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8346],{7698:a=>{a.exports=JSON.parse('{"tag":{"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/installation-pipeline","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4983],{2067:a=>{a.exports=JSON.parse('{"tag":{"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/installation-pipeline","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/b2ade0e8.9f4e1edb.js b/assets/js/5ac1a9ec.d03e158b.js similarity index 53% rename from assets/js/b2ade0e8.9f4e1edb.js rename to assets/js/5ac1a9ec.d03e158b.js index 840556cfa..31c80dc25 100644 --- a/assets/js/b2ade0e8.9f4e1edb.js +++ b/assets/js/5ac1a9ec.d03e158b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8563],{1579:e=>{e.exports=JSON.parse('{"tag":{"label":"open-source","permalink":"/blog/tags/open-source","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/open-source","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1267],{7790:a=>{a.exports=JSON.parse('{"tag":{"label":"alternative","permalink":"/blog/tags/alternative","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/alternative","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5b1700d1.2b0c805a.js b/assets/js/5b1700d1.2b0c805a.js new file mode 100644 index 000000000..4d1cd5705 --- /dev/null +++ b/assets/js/5b1700d1.2b0c805a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7903],{9642:(A,e,t)=>{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>r,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"server-docs/setup/truenas-scale-legacy","title":"Using TrueNAS Scale - Legacy","description":"TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.","source":"@site/docs/server-docs/setup/truenas-scale-legacy.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/truenas-scale-legacy","permalink":"/docs/server-docs/setup/truenas-scale-legacy","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/truenas-scale-legacy.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":7,"frontMatter":{"title":"Using TrueNAS Scale - Legacy","sidebar_position":7},"sidebar":"docs","previous":{"title":"Using Synology Container Manager","permalink":"/docs/server-docs/setup/synology-container-manager"},"next":{"title":"Using Native Approach","permalink":"/docs/server-docs/setup/native"}}');var a=t(6070),s=t(8591);const r={title:"Using TrueNAS Scale - Legacy",sidebar_position:7},c=void 0,i={},o=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Log in to your TrueNAS Scale Dashboard",id:"step-1-log-in-to-your-truenas-scale-dashboard",level:2},{value:"Step 2: Navigate to the catalog Page in TrueNas Scale",id:"step-2-navigate-to-the-catalog-page-in-truenas-scale",level:2},{value:"Step 3: Navigate to Apps and Disover Page",id:"step-3-navigate-to-apps-and-disover-page",level:2},{value:"Step 4: Configure and Install gamevault-backend",id:"step-4-configure-and-install-gamevault-backend",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function l(A){const e={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...A.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.a,{href:"https://www.truenas.com/truenas-scale/",children:"TrueNAS Scale"})," is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system."]}),"\n",(0,a.jsxs)(e.p,{children:["Setting up a GameVault Server on TrueNAS Scale prior, to version 24.10, is just a click away by using our template from the ",(0,a.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/getting-started",children:"Truecharts Catalog"}),",\na community based catalog for TrueNAS Scale."]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsxs)(e.strong,{children:["If you are using TrueNAS Scale version 24.10, or newer, please use this documentation: ",(0,a.jsx)(e.a,{href:"/docs/server-docs/setup/truenas-scale",children:"TrueNAS Scale"})]})}),"\n",(0,a.jsx)(e.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsx)(e.li,{children:"a running TrueNAS Scale Server (prior to version 24.10)"}),"\n",(0,a.jsxs)(e.li,{children:["add the TrueCharts ",(0,a.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/getting-started",children:"Catalog"})]}),"\n",(0,a.jsxs)(e.li,{children:["Install the following ",(0,a.jsx)(e.a,{href:"https://truecharts.org/manual/FAQ#operators",children:"operators"})," from TrueCharts; ",(0,a.jsx)(e.strong,{children:"prometheus-operator"})," and ",(0,a.jsx)(e.strong,{children:"cloudnative-pg"}),"."]}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"step-1-log-in-to-your-truenas-scale-dashboard",children:"Step 1: Log in to your TrueNAS Scale Dashboard"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 1",src:t(3927).A+"",width:"1919",height:"943"})}),"\n",(0,a.jsx)(e.h2,{id:"step-2-navigate-to-the-catalog-page-in-truenas-scale",children:"Step 2: Navigate to the catalog Page in TrueNas Scale"}),"\n",(0,a.jsxs)(e.p,{children:["Go to ",(0,a.jsx)(e.strong,{children:"apps"})," -> ",(0,a.jsx)(e.strong,{children:"discover"})," -> ",(0,a.jsx)(e.strong,{children:"catalogs"}),"."]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 2",src:t(3333).A+"",width:"1918",height:"592"})}),"\n",(0,a.jsx)(e.p,{children:"Validate that TrueCharts catalog was added to the server, if not refer back to the Prerequisites section."}),"\n",(0,a.jsx)(e.h2,{id:"step-3-navigate-to-apps-and-disover-page",children:"Step 3: Navigate to Apps and Disover Page"}),"\n",(0,a.jsxs)(e.p,{children:["Go to ",(0,a.jsx)(e.strong,{children:"apps"})," -> ",(0,a.jsx)(e.strong,{children:"discover"})," and search for ",(0,a.jsx)(e.strong,{children:"gamevault-backend"})]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 3",src:t(5691).A+"",width:"1919",height:"587"})}),"\n",(0,a.jsx)(e.h2,{id:"step-4-configure-and-install-gamevault-backend",children:"Step 4: Configure and Install gamevault-backend"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 4",src:t(3830).A+"",width:"1919",height:"374"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 4a",src:t(5415).A+"",width:"1488",height:"752"})}),"\n",(0,a.jsxs)(e.p,{children:["Scroll down to ",(0,a.jsx)(e.strong,{children:"App Configuration"}),"."]}),"\n",(0,a.jsxs)(e.p,{children:["Set your ",(0,a.jsx)(e.code,{children:"Admin User"})," and ",(0,a.jsx)(e.code,{children:"Admin Password"}),"."]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 4b",src:t(4197).A+"",width:"1485",height:"874"})}),"\n",(0,a.jsx)(e.admonition,{type:"note",children:(0,a.jsx)(e.p,{children:"Leave the Logs and Images storage options as PVC."})}),"\n",(0,a.jsxs)(e.p,{children:["Games storage option can be safely set hostpath if not using using any shares or switch to NFS otherwise; please follow the ",(0,a.jsx)(e.a,{href:"https://truecharts.org/manual/SCALE/guides/dataset",children:"Dataset and Share Setup"})," guide."]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Step 4c",src:t(4197).A+"",width:"1485",height:"874"})}),"\n",(0,a.jsxs)(e.p,{children:["Scroll down to ",(0,a.jsx)(e.strong,{children:"Documentation"})," and click install, wait a few minutes and the app should deploy!"]}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"Installed",src:t(5952).A+"",width:"1919",height:"949"})}),"\n",(0,a.jsx)(e.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,a.jsx)(e.p,{children:"You have now successfully set up your GameVault Server using TrueNAS Scale."}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,a.jsx)(e.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,a.jsx)(e.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,a.jsxs)(e.p,{children:["To stop the server in TrueNAS Scale, you can click on the gamevault-backend app and then edit the app; set the replicas to 0 or use the ",(0,a.jsx)(e.a,{href:"https://truecharts.org/news/stop-all/",children:'"stop-all"'}),' feature. When editing an application, checking the "stop-all" box and saving the changes accomplishes this. If you\'re working with applications based on CNPG (cloudnative-postgres), the same methods apply, ensuring a safe shutdown.']}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"stop-all",src:t(5016).A+"",width:"394",height:"423"})}),"\n",(0,a.jsxs)(e.p,{children:["If you prefer using ",(0,a.jsx)(e.a,{href:"https://github.com/Heavybullets8/heavy_script",children:"Heavyscript"}),", a specialized script for TrueNAS Scale, it offers a secure way to stop apps, including those utilizing CNPG. By default, Heavyscript employs the ",(0,a.jsx)(e.a,{href:"https://truecharts.org/news/stop-all/",children:'"stop-all"'})," function to ensure a graceful shutdown."]}),"\n",(0,a.jsx)(e.p,{children:"Simple commands for heavyscript:"}),"\n",(0,a.jsxs)(e.p,{children:["stop: ",(0,a.jsx)(e.code,{children:"heavyscript app -x gamevault-backend"})]}),"\n",(0,a.jsxs)(e.p,{children:["start: ",(0,a.jsx)(e.code,{children:"heavyscript app -s gamevault-backend"})]}),"\n",(0,a.jsx)(e.p,{children:'Keep in mind that TrueNAS Scale does not support third-party operators. Consequently, relying on the stop button within the TrueNAS Scale GUI, often considered an IX (iXsystems) hack in the Kubernetes space, is not recommended. For a dependable and supported approach, opt for the replica settings, "stop-all" checkbox, or leverage Heavyscript.'}),"\n",(0,a.jsx)(e.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,a.jsx)(e.p,{children:'Navigate to "Apps" and choose the GameVault-backend App you have created.'}),"\n",(0,a.jsx)(e.p,{children:"In workloads, select any of the white boxes with lines icon; thats the logs button."}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"gamevault-workloads-logs-1",src:t(3178).A+"",width:"422",height:"809"})}),"\n",(0,a.jsx)(e.p,{children:"You have to select the correct main pod and container"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"gamevault-workloads-logs-2",src:t(2161).A+"",width:"598",height:"352"})}),"\n",(0,a.jsx)(e.p,{children:"Once you selected the main pod and container pod; you should see the logs for the app"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"gamevault-workloads-logs-3",src:t(5163).A+"",width:"1881",height:"235"})}),"\n",(0,a.jsx)(e.p,{children:"You can then download the logs, but you might have to reselect the correct pods again when downloading the logs."}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:"gamevault-workloads-logs-4",src:t(9063).A+"",width:"588",height:"421"})})]})}function g(A={}){const{wrapper:e}={...(0,s.R)(),...A.components};return e?(0,a.jsx)(e,{...A,children:(0,a.jsx)(l,{...A})}):l(A)}},5016:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/gamevault-stop-all-1f3a1e720ade3ecba89c0d63e6ee9bc1.png"},3178:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/gamevault-workloads-logs-1-0a2a9337c9356c4acd287492e815ee01.png"},2161:(A,e,t)=>{t.d(e,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAFgCAIAAAD2DKBlAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAkj0lEQVR42u3df3xT9aHw8b72vO7r2e697tl2HC0gaYsIsW5lSOp1ckXGAN3lutU7uqowFn0CVYfuoeMGEZRgAW2rhRGNivgDmfxKFAoWehUC+upaAzRFSEtLE1rSAuWHQKGUkrY5zx9f/HpISlfW8iPp5/3qH+3JycnJSc2H7/ec1Jh+0SVpRMKIyYOv6C6J+ltuG6brP6Bfv379BsT3Hzxcl5h0S7/+/RKTBujvjh98p27wcF38oP7xg/oPvlM3IL5/v/79bk0ecOsdAwYk9B98py5+UP9+/fol3j5g0M90A+L7Dxo6IDFpwC3x/UJuSron4Zd/Sho2/lb93fE//UXiL56+fdj4W/v1v4L9HDF5cNKIhAh6LZ599tnf/e53/XCtjBkzJjs7e9HlZWdnjxkzplv/fXVEuRK8TNdO/0T5bewv5sU8+Ejk7PoD/+eRF3446Fo8UkwUvhFkJg28Y8CNtldD7oofk5l07+NDUn47aIRx8C//lHT7z+O7fveBdwwYk5kUWS8ECbzGBg8ePHr06DGXN3r06MGDB3fnIUhgBOkzbt73xv4mrn+/frc+ctPEl//l3nti/vByZH8Zsy/zlRNjzIl5LLeDr8c7/Hrl269r+ZL0vSaG3j/w7odv63uD6de/75AU3fDfDBr+61uT/j1BN6j/Fd397odvG3r/wL7AddX9BHIMr52E8T/8teV//eGlmN/P/+f7f3sj7+l1/IdCTOSmrhMjpw75yaiEqPlN/smohJFTh/BfNEggepWISeCNduAG3nHL2BlJQ/5NFwW/BEP+TTd2RtLAO27hvwdcd7d3hAQicosYEzXZCzF4uG7sjKQ77ovsseAd9yWMnZE0eLiO336QQKDHcxiawIEDBw4ZMkQPAEAkGzJkyMCBA68ggQMHDuSoAQCiRucVvCSBjP8AAFE2FuxqAjlYAIAoQwIBACTw8gns27cvRwoAEGU6vIL05l/nfHf0L2K0n3DgSAEAoi+B4RX8NoHykxYcKQBAVCYwpIIXE6j9sCFHCgAQZW7+z4XfHTXqYgVT/hzzuydi+/W7+cFsEggAiHLK+AUygX1TMr9J4MskEADQGxJ4XwcJ/AUJBAD02gQmanCkAADRnEDD9Ji0jNi+fRkFAgCiX5/75sRMmNKnX9++A375o19ndZzAuLg4jhQAIMrEDXjgB6lZ35k0/zsTZ3//gWdj0qbG9u17838u/DaBcXFxJBAAEIUJjIuLi4vr8P87SAIBANEs5tF5MRNfjJmUFTNpfsyk+TG/XxAzeeHFL9k/EggAiNZRYIcDQRIIAOitCYzT4EgBAKI1geEVJIEAABJIAgEAUZ3AkAqSQAAACSSBAIBoT6C2giQQANDrExgbG8uRAgBEmdjYWBIIACCBl1SQBAIAekcCbzf979Q/9AlPYGxsLAkEAERlAmNjY+PidMqYOf9y1+1x1zGBDodDVVVVVR0OR9Qfd7PZ3NTUpKqq1+vltxAArmcC+6be9PAzP7olLi7u3h/817x/HvfUdyfO7/kEjho1Kj8///Tp08FgUFXVc+fOFRcXm0wmEggAuF4JjDU8/U9jHoyLu5jA7zw09ebBhhjZvx5J4Pjx4/ft2yfip3X69GmLxUICAQDXI4GGHzz43PcvToLe+4P/mvevhviLE6E9mMBNmzYFg8FgMOjz+V566aXZs2d//vnnbW1tqqpWVVU98MADJBAAcK0TmDjxew89/uO4bxN4051xPZxAo9HY0NCgquqJEyemTZsmFg4fPryiokJV1bNnz86aNUsmcOvWrbW1tcFgsK2tbe/evZMnT5brr1+/vrGxUaT0+PHj77zzjvZR3nnnnePHj4tbGxsb169fP3z4cHHT5MmTd+/e3dLSoqpqW1tbXV3dyy+/LO9oMpn27t174cIFVVVbWlqKi4vT09PDn4XX61VV9eDBg3v37m1rawsGg0ePHtVuJ+RRqqqqzGazvPXll18WuxcIBHbv3n3u3DkSCADXN4E33zvjez9PibuqCczNzT1//ryqqm63W7t8zZo1lZWVHo9n3rx5MoEhSkpKRP+Ki4tD5lHb2trWr18vNrV+/XoxppSCwWBxcfHw4cPT09Pr6urEkubmZrFaU1NTVlaWXq+fOnXqkSNHQh60srJy/PjxHSYwRGNj4+zZsy+3nTNnzohpXovFcubMmfC7k0AAuH4JHHfTb5/5QXzs1U2gzWYLBAKyZx2SCdy/f//UqVMXLFhw8uRJVVWPHDkyceLEV199VUTU5/NNmzZt3rx5R48eFQWaMWNGZmbm6dOnVVU9evTovHnzpk2b5vP5xJAuLy9vyZIlFy5caG9vt9vter0+Ly9PDNSKior0ev2uXbtUVQ0EAna7PS0tbcuWLW1tbe3t7R9++GGHCWxpaVmzZo1cUz4pp9MpRq5btmxJS0tbs2aNeJSKiorhw4eLR2lraysoKEhLSysoKBD3JYEAcN0S+JPH/+n+hzQfkL+YwLi4uJ5M4Jo1a8QArisJlOcCRXLOnDkzY8aMrVu3ilDZbDa5fjAYFK368MMP29vbg8GgvK+M7tatW0UCVVUtKyubPHnyqFGjMjMzzWaz0WiUM7Q+n0/Mmj755JMnTpzocFfF/jQ0NBiNRr1mdre+vv7ZZ5+tr6/X3jp8+PDq6mpxvc+SJUvEADH8viQQAK6XH47975t+OqDDvxETE6txLUeBIQlsamoym81ut1t+H7LNTZs2bdq0KSSQ8noTt9s9fvz4yspKOfd47tw5t9sttiNX68oUZUgCtUsWL14swqm9V0lJiaqqzc3N69atE7Og8lYSCADXXcyEZ2PSnov53ZyY9DkxD78Q88jcmEfnxTw6L2biiz2ZwMudC8zNzc3Pz//oo4/++Mc/Xr0E6vX6UaNG2e12cTWKeJTm5ubc3Fy52oULF5outWfPnp5KoMPhEPO0JBAAbhzazF3FUeDUqVNFIU6cODF16lSxUF4R2tzcnJWV1XkCxUSoOLcnR40hE6Ht7e2rVq0KCeTWrVuNRqPZbM7MzBw1atT48ePtdrs4S/fll1/Kac+DBw/K61/EauHPIiSBjz/++LFjx8R9n3nmGTEReujQIXE1aYcTofJWEggAvSWB+m+uFgkGg5WVleJzgSUlJeKSkAMHDnT4uUBtAuU1LB1eDjNjxozGxsbLXQ4jx4hvvfWWXq+XK4sBorhQJRgMlpaWTp48eerUqaWlpUeOHJGpDkmguBxm/Pjxn332mdj/7du36/X67du3iwteuBwGAEjgJUJOyHXlr8NoE9idD0XIjytoPxTR0tLy2muv6S/zYQZ5a3gC+VAEAPSiBPbp06dHHkz8jVDx2XZxWcquXbs6+Ruh2gTqu/fReJPJpP3Qen19/SuvvCLvKD7SLs5Wilu1H3gPSeCJEyd27doVCAS689H44uLigwcPkkAAuI769Olz7RIY6cIvhwEAkEASCAAggSQQAEACSSAAICISGFJBEggAIIEkEABAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBADgRk9gfHx8fHy8TqfT6XQcKQAAo0AAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAEACSSAAgASSQAAACSSBAIBekMDbRj/69Kx5gnnKr4bExcXFTfrvl0ggACCaDerT54Gpsy3PTvmPn8bG/vQ/pj0///knfkUCAQDRb0yfPkl3jfj5nbeJ2P3qiefn//lREggA6BUJjL3rN1P+fHEidP78+SQQANBLEvizR/70wpxp6aN+yigQANC7EniPccYLszIevHNw7E9GpU2bwygQANBbEthn0Dhj5mzLvHnz5s2ZPu3/PT/f/JjhOibQbDZ7vV6j0djhrU6n02az8bIBALrv2n0u0GazBQIBVVVVVfV6vVeaQKPR2NDQIO5eUlLCKwcAiKQEOp1OETOv12s2m0tKSlRVDQQCYmAnfmxoaBAJ9Hq94keZQ4fD4ff7/X4/A0EAQAQncPXq1aWlpXLYl5+f7/f7jUajw+FoaGhYunSpuNXhcDgcDl4nAEBkJ1A7ERpSxC1btogf5USoGAU2NTWZzWZeJwBANIwC5Y/l5eXho0Dx49KlSwsKChgFAgCiMIH6b07+hZwLFOf/li5d6na7GQUCAKIhgQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAuJoJjI+P132DIwUAYBT4j0hOTjYYDCkAAHSbwWBITk6OmAQaDIbExEQdAADdlpiYaDAYIiaBKSkpvGYAgJ6SkpJCAgEAJJAEAgBIIAkEAJBAEggAIIEkEABAAkkgAIAEkkAAAAnsrQk0mUxOpzM1NVWn0xUWFloslpAVLBZLYWHhlW62w011ndPptFqt4Qt9GlarNTU11eVyVVVVWSwWq9Uqb3K5XOIZXY7FYikqKkpNTQ3fpvaAdPJ07HZ7+B52/oiXO4xWq9Vut4cstNvt4QsBIDoTaLfb/+4bdy9PYH5+vslk0ul0qampRUVFFovFZDK5XC6x0Gq1dr1JMoEdbpMEAiCB1yKBcuwi+ieGNXJEIt46nU6nWCjeFn0+n8fjEW/cFoulqqpKLFm4cKHL5RL3km/oYn2fz+d0OrVv/fJNXL7jy/FQyDu7dgfERsJ3UjtEE0tEM8Sa4l5yBfHOHr5ZuY7H45FPpMMEWq1Wsc/i7mIU2GGTQvZKHq6ioqKQBIptyn8TFBUVaUeThYWFGzZskI8ljt6GDRvE1i53ELTHUKzpcrmWLVsmvhfPtKCgQPsCiderqqqqqKhIHCjx0PJxAUSTtLS0zZeRlpYW5QmUoZLjnpycHPGjLJPFYvF4PGJ04vF4xNuiaKHolmxhYWGhfB8XP5pMprfffls7jukkgdqdCXn7FjsgdtJut4fvpLYfYlgmHk4O5rQDHbkn8nm53W4xkyk34vF4Ohljyc1qR4F2uz2kQCF7tXDhQvkEw8fc2m3KRxfbFLfKA+t2u00mk9xCh/sv90r7bx1Z+pBxnvxGvjqi7mKhfGgA0VpBr9erPSPj9Xo771/UJlC8/2rHhXICTbuyKIocW8j1Fy5cKJokh0SyCmIY0ZUEhoyutDN44n08fCfD5y0LCwuLiopChnfaU27azYb0Uh4NOUTWNkD7FMITqK1UyF5p76j9PnybciJULpcTodrhdcjehjycPEpiyB6SQO2P4S3Uft/NKWUAkVXBrvQveiZCZcbkPJh449OOAjtJoPZ9XOYkJydHhEq7QndGgSEJDN/J8ASK1eTy8BW6ksAOj5i2Ex2Ot+QT6XoCQ7bZIwkMn/GWzQs53UgCAYgKdrF/0ZNAeS4q5I1Pvvl2ksCQJeId1mq1FhYW5ufnh0yshV8/IsedfzeBshayfyE7KR9dzs2KN275cNoVxKOEJ1C7TofnAsObJ3/U3kWOAkP2SjsRarVa5UTo5bYZMhEasnHtvwNCJkK1E9ThCQw/zuHHUx5qEgj0qgp2sX/RMxFaWFgopwe1c4wul0tcENFJAnWXXg4j3nNDTqSJGciqqqoNGzaIN315gUxZWZmcetVesRI+XCsrK9MOVcN3UneZy2HE+7vYt/DLYUISqN3by50LlE0Kz5XcK+2VI5e7HMbj8WhHw+HblFevyDF0yMbtdntZWVnn1wSFD/fFGT75iss50pDLYcSrQwIBRHMCtRnocOgAAEDUjgLlpwvk8AgAgOhPIAAAJBAAABIIAAAJBACABAIAQAIBACSQBAIASOANnUCDwZCYmMhrBgDovsTERIPBEDEJTE5ONhgMKQAAdJvBYEhOTo6YBAIAcKMhgQAAEkgCAQAkkAQCAEggCQQAkEAAAEggAACRTn7QMF4jISEhISGBBAIAGAWSQAAACQQAgAQCAEACAQAggQAAkEAAAEggAAARlMD4+Hj5sUGOFACAUSAAACQQAAASCAAACQQAgAQCAEACAQAggQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAAJBAAACiLoElJSUOh6M7WzAajW6322g08vIDAAm8RgksKSlRVVVV1a40zGw2l5aW9vgTttlsgUBAVdVAIGCz2fgNAAASeNUTaLPZ/H6/GHuVl5fbbDaHw6EtYmlpaUNDg6qqJSUlRqNRfO/1es1mc1NTk/her9c7HA6Hw2Gz2bxebyAQaGpqMpvNcv2Ghgaj0ShubWpqys/Pl9uRe+L1et1ut9wZAAAJvLoJ1E5gGo3Gt956S8xGGo1G0Tmv1+twOMQ3ImPl5eV6vb6goMBsNotGms1mmUDRMLFZufGQW202m9Pp1Ov1TqeTMR8A4PonUH/pPKcYFIrCyRN1MoFysCgGfDJyom3iRznFKgaR8taQ0SGvNwDgOiRQJk2v13u93h07dojRnhwFXi6BIpDho8CQBIq+ii3IW2022/LlyxkFAgCuZwL1YZfDhJ8LDElgIBAQbROrnTp1SvwYnkA52hNbk7eazWa/388oEABwnRMIAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAAASCADADZvA5ORkg8GQAgBAtxkMhuTk5IhJoMFgSExM1AEA0G2JiYkGgyFiEpiSksJrBgDoKSkpKSQQAEACSSAAgASSQAAACSSBAAAS2LEfXupHGiQQAEACSSAAgARGXwJNJpPT6UxNTdXpdIWFhRaLJWQFi8VSWFh4pZvtcFNd53Q6rVYrv+UA0CsSaLfbXS6XSBEJJIEAcD0TGB8fLx/s6iXQarX6fD6fzyf6l5qa6nK5xBLRAIvF4nQ6xUK73W63230+n8fjMZlM4taqqiqxZOHChS6XS9wrNTW1qKjIYrGI9X0+n9PpFOsXFRWJ4NntdqvVKhPodDq1j6tNoNwBsZHwnRTR0i4RCRRrinvJFex2e4eblet4PB75RAAA0TkKlKGS456cnBzxoyyTxWLxeDwWi8VkMnk8HtEP0ULRLdnCwsJCq9UqU1dYWGgymd5++23tsKyTBGp3JiSBYgfETtrt9vCdlI9rMplcLpfJZBIPJwdzVqtV7Ll2T+TzcrvdFotFuxGPx0MCAUS9tLS0zZeRlpbW6xIo3v2140I5D6ldWRRFDgHl+gsXLhRNEnnTjr2qqqq6mEA5yJN3kROholLhOxk+b1lYWFhUVBQyvJOsVqt2syG9ZCIUQK+qoNfr1b5Der3ezvuni5rPBcqMiVqI4V3IKLCTBMqeaduTk5MjQqVdoTujwJAEhu9keLHEanJ5+AokEADCK9iV/kVPAvPz88VMpiDrIlvVSQJDloiIWq3WwsLC/Px87UbkmnKiUjvu/LsJlNWU/QvZSfnocm5WVE0+nHYF8SjhCdSuw7lAAL2wgl3sX5QkMDU1tbCwUA5+tXOMLperqKhIDPUul0DdpZfDiLCFnEgTM5BVVVUbNmwQk5byApmysjI59aq9YiV8uFZWVqYdqobvpO4yl8OIqIt9C78cJiSB2r3lXCCAXljBLvYvShKozYD22hYAAKJ/FCg/XSCHRwAARH8CAQAggQAAkEAAAEggAAAkEAAAEggAIIEkEABAAkkgAIAE3ngJNBgMiYmJvGYAgO5LTEw0GAwRk8Dk5GSDwZACAEC3GQyG5OTkiEkgAAA3GhIIACCBJBAAQAJJIACABJJAAAAJBACABAIAQAIBACCBAACQQAAASCAAACQQAAASCAAACQQAgAQCAEACAQAggQAAkEAAAEggAAAkEAAAEggAAAkEAIAEAgBAAgEAIIEAABJIAgEAJFCTwPj4eN03OFIAAEaBAACQQAAASCAAACQQAAAS2DVms9nr9RqNxtLSUrPZ3OE6JSUlDofjH9t4aWkprzQA4Pok0Gg0NjQ0qN9oamrqMHXaBBqNRq/Xe7kidpHD4ej8EQEAJPBajAK1VSspKVFVNRAI2Gw2o9HodrtDRoEhCXQ4HA6Hw2azeb3eQCAgkibL2tDQYDQabTZbIBBQVVWOF41Go9/vd7vdXq+XFxsAcP0TaDabCwoK9Hq9zWZzOp1XlEC/3280GsW8qJwdFbc6nU5tUHl1AQA3XAK186IlJSVXlECn0yl/FENJuR05CiwpKeGlBQB0Tv75l3iNhISEhISEq5hAm81WXl7+j40CQxIoRoEiqwUFBeIbRoEAgBt9FNjU1HTy5Mm33npLRMvr9cqTdtqRotfr7TCB2nUcDsfy5cubmpoYBQIAbrgEAgBAAgEAIIEAAJBAAABIIAAAJBAAABIIAAAJBACABAIAcMMmMDk52WAwpAAA0G0GgyE5OTliEmgwGBITE3UAAHRbYmKiwWCImASmpKTwmgEAekpKSgoJBACQQBIIACCBJBAAQAJJIACABJJAAMANKSkpaezYsffff//YsWOTkpJIIAAg+g0aNCgjIyM3N3fRN3JzczMyMgYNGkQCAQDR3L/p06fn5eUtulReXt706dM7r2CUJNBqtfq+YbfbdTqdyWTyeDw+n8/lcqWmpna4BAAQ6SZNmvTqq6/m5eW9+OKLIoTy+1dffXXSpEnRn0C73e50OrVLnE6n3W5PTU11uVxWq7XDJQCASB8CzpkzZ9GiRTk5OQ8//HBGRsYrr7ySkZHx8MMP5+TkLFq0aM6cOZ0MBKMkgSJv8kcx4BOdE3UMX8KvDgBEuhEjRmRlZYmZz+zs7PT09HHjxqWnp2dnZ4uFWVlZI0aMiOYEyhlOn8/n8XhMJpPJZHK73RaLRQTP5XItXLgwZAlzoQAQTQnMy8ubMmXK0KFDp0yZIk8NRn8CtS4XPBIIANFn6NChc+fOFf3LyMhIT0/PyspKT0/PyMgQFZw7d+7QoUN7SwKtVqvH43nttdeYCAWA3uCJJ57Iy8vLzc19+umnxfxndnb2008/nZubm5eX98QTT3Ry3yiZCHW5XCaTSafTOZ1OkTcuhwGA3mDYsGGzZ89e1JHZs2cPGzYsyhOo03woQpwL1GlOEMoBX/gSAEAUuOeee2bNmqX9aGBeXt6sWbPuueeezu/IR+MBANFg3LhxTz755KxZs5588slx48Z15S4kEADQS5FAAAAJJIEAABJIAgEAJLC7CYyPj5cPRgIBAIwCSSAAgASSQAAACSSBAAAS2AGDwZCYmMhrBgDovsTERIPBEDEJTE5ONhgMKQAAdJvBYEhOTo6YBAIAcKMhgQAAEkgCAQAkkAQCAEggCQQAkEAAAEggAAAkEAAAEggAvUnM6+UR+tXh05kQaUggAJBAEkgCAYAEkkASCAAkkASSQAAggSSQBAIACSSBJBAASCAJJIEAQAJJIAkEABJIAkkgAJBAEkgCAYAEkkAAwBUm8G7HgelFDU9sP3zL8v0xr5cnrfQuqzi1an/jvR/XRGgCX3jhhTfeeGPBggUTJ068GmGbO3fu5s2bV69enZGRQQIBICITeMvy/e9UnDrX2q6qqqqqZwPt7+47lVZYV3Gypb6p9eFP6yIugWazedu2bfX19YcPHz58+HBlZeXbb7/d4wlcvHjx/v37S0pKMjMzSSAARGQCX9x57GygvfFC+6aDZ+3exiPnWs8G2v9adTpCE/jYY49t3Lixrq5u3759BQUFW7ZsqampqaioyMnJIYEAQAK//Upa6d1+6Nz5tuBre7++aem+mNfL//y3Bru38XnXsYqTLWcC7b7GC82twcpTF6YXNcS8Xn7vxzWFB8+eCbS3BdXaM4H5u47ftHRfhwsf/bT+y4bm5tbgoabWFVWn73YcGLii+r19p441t7UF1WPNbcsqTg1cUd3jCbRYLHv27Kmurl6yZIko4sqVK9etWzd37tzVq1eXl5f7/f49e/YsW7Zs4sSJy5Yt2717986dO6urq30+3+bNm6dPnz5x4sT333/f4/HU1dVVVVUVFBRkZmbm5ubu2LHD7/f7/X6Xy5WdnU0CASCyEzh6fe2+ky1Hm1v/r/OQdvmo9bUVJ1uCquprvOA/G1BVtfxkS/r/1H3sO9MWVE+1tPkaL7S2B481t80qORq+MLfsxO7j5wPtwcpTF46caz3fFlyy5+vFX33d3Bo8fr5tz4mW823Bs4H2eTuP9XgCFy9eXF1dvWvXrpkzZ2qXL1u27MCBA/v37y8tLa2pqamsrMzNzV21apXf76+pqdm1a1dtba3f71+5cuWiRYuqqqpqampcLldlZWVdXd22bdt27dpVV1fndrsrKioOHz5cXFy8YsUKEggAEZzA8Z8cPNAYOHKu9Q9bOkjgoabWSZ/Vj15fW3Gy5fC51tyyE9WnLxxqav39lvo+71b9ter0+bbg1vomX2MHC2vOBOrOBiZ9Vj/i45o//61h3IaDzvqmxgvtlh3Hblq6b/FXX59rbf+k9qy4+qYHE2iz2Q4cOLBjx44ZM2Zolz/11FNvvvnmc889ZzKZxOzoe++9t2rVqtra2oKCApPJtHr16tra2k8//XTjxo21tbUbN2587LHHsrOzCwoKNm/e7PV6i4uLMzMzn3vuudLS0v3792/atIkEAkAEJ3Dshtrq0xeONbd1OAoU5wLvdhxwHz9/tLn1/cpTDedaK062jFpfG/N6ebb7xLnW9r1ftxw/3xay8PND5zYdPNvaHlRV9UJ78PND5zKLGr46cV691JcNzcmrfT2bQKvV6vV6w0eBs2fPdjqd+/fvP3To0OHDh2tra5cvXy4S+Mknnzz22GPvv/9+TU3N9u3bt2/fXltbu2rVKnnfFStWHDx48LBGTU3Ntm3bSCAARHAC71zr+7Kh+Wygfe6Oi3OST35+2OFtfHHnsfAELi0/Wd/Uuv/0hbEbamNeL1+0++tzre27jp0/ci50YX7NmZ+t8c0sPrr54NnaM4HW9uD/+M+WHT9/NtC+cv/pV3efWPzV1294Tk774kifd6t6NoELFiyoqKioqKhYsGDBhAkTJk6cuHz58o0bN27fvt3v9+/cudPhcHz55Zc1NTUdJnDbtm1btmypra1du3atOJU4c+bMDz74oKamZufOnStXrvzrX/+6du3aFStWrF69mgQCQAQn8Kal+17fe7KlLXigMfCC61jWzuO1ZwItbcF1B85UnroQksCsncf/duRcc2twTXXjrJKj5SdbmluDyytPhy/cWHNm17Hz+TVnxn9y8A3PSRHFDTVnLrQHt9Q1Pfpp/Xv7Th0/37Zkz8VrcHowgU899ZTT6ayvry8uLl6yZInD4fB6vQcOHNi7d6/f71+3bt0LL7xQUlLi9/s3btxYUFAQksBPP/107dq1tbW1ZWVlNptt3bp1Xq93x44d+/fvr6ysfP/991955RW3271z50673V5dXf3VV1+99tprnX/0kAQCwI2YQPGheGd9U3vw4uTkhfbgJ7Vnn9h+OHwUOGXb4ZnFR0+2tMmZzJKG5hEf14QvnLrt8Gd1TW3fbLO+qXXqtsOPflp/oDEgVzvQGPj9lvqr8bnAl156qaysTE5a+ny+tWvXfvjhh16vVyw5cOCA3++vrKz84osvwhOYlZVVXFws715dXf3BBx/k5+fX1dWJJSKfixcvLi8vP3z4cFFR0TPPPEMCASDyEhjzevngD6tzy058Vte0prrRuPWQ+Lz89KKGWSVHk1Z6+7xb9fQXR+a4jt651hfzevnvt9R/5GvcWt/0l6++lmfywhf2ebdq2hdH1nob3y4/JeZIxanH5ZWnNx08u7D0eOdnAbv512Fmzpz58ccfb9u27aOPPnr++efFwqysrPz8/LVr186cOfPFF1984403/vKXv7z33ntiynT27Nnvvvtudnb2hAkTpk+fvmrVqq1bt65Zs+a5554TM6JvvvnmZ599tmHDBrHOhAkTsrOzP/jgg0WLFjEKBIBITSB/I5S/EQoAJJAEkkAAIIEkkAQCAAkkgSQQAEggCSSBAEACSSAJBAASSAJJIACQQBJ4bRMYHx+v+wa/6wBAAhkFAgBIIAkEACBikUAAAAkkgQCA3prAuEuRQAAACSSBAAASCAAACQQAINoTGBsby5ECAESZy10OSgIBACSQBAIASCAAACQQAAASCABAlCUwLi6OBAIAoj6BcWFIIACgNyawb9++JBAAQAJJIACABAIA0CsSKCvIkQIARGUCw6+FCU3gkCFDOFgAgKgxZMiQriYwISGB4wUAiBoJCQldTaCoIGNBAEAUjP9k/zo8EdhBAsX/OFD6scbNl1JuSI8oSr9/9L6xijJaUcYoSryiPKgoyYrSR1FGKcpoRemjKDcryt2K8itFSVaU3yhKvKIoivITRXlIUW5VlLGKcrei3KwofRXlV4ry74rya0V5QFHuUpS7FCVFUW5TlPsU5ZeKEqsoP1aUkYpyn6L8+Ar3sJ+iPHLjHfORI0dOmjRJr9dffAkeeWTcuHGKoqSnp48cOVJRFL1eP2nSJPG98NBDDz300EPabxRFGTdu3COPfPv85Hbk99oHEhvXblm7fm82cuTIKVOmZGhMmjRp2LBhPbLx+I58/0rwAqFHhPRImyptwjr5uzAigf8fP6hVgMUTDXgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjQtMDEtMDZUMTU6NDk6MzkrMDA6MDADtVRTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI0LTAxLTA2VDE1OjQ5OjM5KzAwOjAwcujs7wAAAABJRU5ErkJggg=="},5163:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/gamevault-workloads-logs-3-1baf7d54cd87481af3685e08c77f9d0d.png"},9063:(A,e,t)=>{t.d(e,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkwAAAGlCAIAAACHpT5DAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAjA0lEQVR42u3cb3AbZZ7gcb2Zuh1up+ZmtyovtjjXaY9Lqbg7sSztqinYmUttFRn2srfnu8VrhoScqBMxMGFqkk0pFcIQgS8G28HJRCAgCX9CIH/cAiIHJ1pIOoHSWCixZUgkx7JbtiM7jvOHJI5lx5Zl9b14hmcbyTYGh0Fyvp+aF3ar1WpLlL7ze9SKZeHChTYAAOaLhQsXWiSeDgDAPEPkAABEDgAAIgcAAJEDAIDIAQBA5AAAIHIAACIHAACRAwCAyAEAQOQAACByAAAQOQAAkQMAgMgBAEDkAAAgcgAAEDkAAIgcAIDIETkAAJEDAIDIAQBA5AAAIHIAABA5AAC+j8j5fD7DMAzD8Pl8hfl0hEIhwzBSqZTL5eI/DgAgcl+xaNEiv99/9erVbDZrGMbIyEhzc7PT6SRyAIDijtySJUtOnz4t8mZ29epVt9tN5AAARRy5gwcPZrPZbDabSCSee+659evXf/zxx5lMxjCMeDx+3333ETkAQFFGzuFwDA4OGoZx6dKllStXio133XVXe3u7YRjDw8Pr1q2TkTty5Ehvb282m81kMqdOnVq+fLncf//+/UNDQyKWFy9efO2118yP8tprr128eFHcOjQ0tH///rvuukvctHz58s8++2xsbMwwjEwm09fX9/zzz8s7Op3OU6dOjY+PG4YxNjbW3NxcUVExm8jN8Ig2m23Tpk3i1kwmE4vF+vr6DMPQdZ3/sABgXkWurq7u+vXrhmFEIhHz9n379nV0dESj0WeeeUZGLkcoFBKFa25uzlntzGQy+/fvF4fav3+/mAulbDbb3Nx81113VVRUiMBks9nR0VGxWyqVqqqqstlsK1asOHfuXM6DdnR0LFmyZObIzfCINpvthRdeEH9yDiIHAPMtcl6vN51Oy2JNSUaus7NzxYoVGzduvHz5smEY586dW7p0qWxGIpFYuXLlM888c/78ecMwhoaG1qxZs3r16qtXrxqGcf78+WeeeWblypWJREKMZfX19Vu3bh0fH5+cnFRV1Waz1dfXi5EuGAzabLaWlhbDMNLptKqq5eXlhw8fzmQyk5OT77zzzgyRm/kR5ZCayWSamprKy8v9fv/ExASRA4B5GLl9+/aJIWw2kZOfyem6bhjGtWvX1qxZc+TIEZEir9cr989ms6JG77zzzuTkZDablfeVWT1y5IiInGEYbW1ty5cvX7Ro0erVq10ul8PhkOuoiURCTGCPPfbYpUuXpjxVc+RmfsTf/OY3IoFnzpy57777bKYFWyIHADf1JJcTORGVSCSS83mYPObBgwcPHjyYk0CXy5VKpcQC6ZIlSzo6OuSC4cjISCQSEceRu81mXdEcuZkfUf4s/14iBwDzNnLTfSZXV1fn9/vffffdX/3qV99d5Gw226JFi1RVFZeBiEcZHR2tq6uTu42Pj6e+6uTJk0QOAIjc11uxYoVYA7x06dKKFSvERvnB1ejoaFVV1cyRE8uV4hMvOfnlLFdOTk7u2bMnJ4FHjhxxOBziU7RFixYtWbJEVVXxmdynn34qFyfPnDkjrzQRu+X/FfnLldM9ojxsd3c3y5UAMM8jZ7PZNE0Tl9p3dHSI78mFQiFxdaIowcyRk1eLTHnhyZo1a4aGhqa7DEROXa+++qrNZpM7iyFPXHiSzWZbW1uXL1++YsWK1tbWc+fOyRhPGbmZH5ELTwDg5opczgdjs/kXT8yRm8tXCOSXBMxfIRgbG3vxxRdt03yFQN46XeRsfIUAAIicmfi3K8W3ucUFIC0tLTP825XmyNnm9mVwp9Np/jJ4f3//pk2b5B3FV8VFk8St5q+KTxc529d9Gfz5558Xt6bT6ZaWFrGASeQAYH5G7mZTWVkpm7d+/fqRkRHDMGKxGM8MABC54rZ69epLly6FQqGKiorly5fHYjHDMMwXqgAAiFyxamhoyPnEbrp/LQwAQOSKz6ZNm/r7+zOZTDabHR4e/vjjj6f8d58BAEQOAAAiBwAAkQMAEDkiBwAgcgAAEDkAAIgcAABEDgAAIgcAAJEDABA5AACIHAAARA4AACIHAACRAwCAyAEAiBwAAEQOAAAiBwAAkQMAgMgBAEDkAABEDgAAIgcAAJEDAIDIAQBA5AAAIHIAABA5AACRAwCAyAEAQOQAACByAAAQOQAAiBwAgMgBAEDkAAAgcgAA3MyRczgckUjE4XDw2gAACityDodjcHAwFAp9u7t7vd50Om0YRjqd9nq9vDwAgAKKnNfrbW5ulqOYz+fTdd0wjFQq5XK5vF6vruvpdFo0TBTRMAxd1+URdF2PRCLJZJJhDgBQWJFrampyuVw+n8/n88nIiR9CoZDX6xX18nq9sVjM6/Vqmmaz2TRNY24DABR05ORkJoczWbucqrlcLl3Xa2pqxP6Dg4PMbQCAgo6cGNfEz62trTkjnZjkRORk83bu3MkkBwAo9Mg5HI5kMilbJarm8/nEYCc/kzNfV+JyuZLJJJMcAKAIJrkpZzsxyQlykgMAgMgBAFCokQMAgMgBAEDkAAAgcgAAEDkAAJEDAIDIAQAw3yJnt9sVRSkFAGDOFEWx2+0FFDlFUaxWawkAAHNmtVoVRSmgyJWWlvKqAABulNLSUiIHACByRA4AQOSIHACAyBE5AACRAwCAyAEAQOS+MafTqWlaWVlZSUlJIBBwu905O7jd7kAg8E0PO+WhZk/TNI/Hw3/HADBPIqeqajgcFrEhckQOAOZD5DweTyKRSCQSonBlZWXhcFhsEe/ybrdb0zSxUVVVVVUTiUQ0GnU6neLWeDwutlRXV4fDYXGvsrKyYDDodrvF/olEQtM0sX8wGBRJU1XV4/HIyGmaZn5cc+TkCYiD5J+kyJJ5i4ic2FPcS+6gquqUh5X7RKNR+YcAAIo1cjJFcnapra0Vv8r2uN3uaDTqdrudTmc0GhWFELUTZZK1CwQCHo9HxiwQCDidzu3bt5tHqxkiZz6ZnMiJExAnqapq/knKx3U6neFw2Ol0ioeTA5nH4xFnbj4T+XdFIhG3220+SDQaJXIA5r3y8vJD0ygvL5+HkRPv7+bZTq4WmncWzZBjnNy/urpaVEcEzDw/xePxWUZODmryLnK5UnQo/yTzVxcDgUAwGMwZ0SSPx2M+bE4RWa4EcFN1Ttd18zukruszF66YlitlqEQPxIiWM8nNEDlZLHNdamtrRYrMO8xlksuJXP5J5jdJ7Ca35+9A5AAgv3OzKVwxRc7v94v1RkH2Q9ZohsjlbBGZ9Hg8gUDA7/ebDyL3lMuJ5tnxayMnuygLl3OS8tHlCqrolnw48w7iUfIjZ96Hz+QA3ISdm2Xhimm5MhAIyBHVvBIYDoeDwaAY16aLXMlXLzwR6cr5QEusE8bj8cbGRrG0KC9FaWtrkwuk5mtD8keutrY287iZf5Il01x4IrItzi3/wpOcyJnPls/kANyEnZtl4YomcuY3evNVJAAAzIdJTl6LL0ccAADmQ+QAACByAAAQOQAAkSNyAAAiR+QAAESOyAEAiBwAAEQOAIBiiJyiKFarlVcFADB3VqtVUZQCipzdblcUpRQAgDlTFMVutxdQ5AAAKDREDgBA5AAAIHIAABA5AACIHAAARA4AACIHACByAAAQOQAAiBwAAEQOAAAiBwAAkQMAEDkAAIgcAABEDgAAIgcAAJEDAIDIAQCIHJEDABA5AACIHAAARA4AACIHAACRAwCAyAEAiBwAAEQOAAAiBwAAkQMAoMgi53K5dF13OBxT3qppmtfr5YUBABRW5LxebzqdNgzDMAxd179p5BwOx+DgoLh7KBTitQEAFFbkNE0TudJ13eVyhUIhwzDS6bQYzsSvg4ODInK6rotfZfB8Pl8ymUwmkwxzAICCjtzevXtbW1vl6Ob3+5PJpMPh8Pl8g4OD27ZtE7f6fD6fz8crAQAo9MiZlytzmnf48GHxq1yuFJNcKpVyuVy8EgCA4pjk5K+xWCx/khO/btu2rampiUkOAFCUkbN9+SFczmdy4nO4bdu2RSIRJjkAQHFEDgAAIgcAAJEDAIDIAQBA5AAARA4AACIHAACRAwCAyAEAUGiRs9vtiqKUAgAwZ4qi2O32AoqcoihWq7UEAIA5s1qtiqIUUORKS0t5VQAAN0ppaSmRAwAQOSIHACByRA4AQOSIHACAyAEAQOQAACByAAAiR+S+5HQ6NU0rKysrKSkJBAJutztnB7fbHQgEvulhpzzU7Gma5vF48jcmTDweT1lZWTgcjsfjbrfb4/HIm8LhsPiLpuN2u4PBYFlZWf4xzU/IDH+Oqqr5ZzjzI073NHo8HlVVczaqqpq/EQCKNXKqqn7tW/NNHjm/3+90OktKSsrKyoLBoNvtdjqd4XBYbPR4PLOvjozclMckcgCI3I2JnJw/ROHEaCKnCvHmqGma2Cje+BKJRDQaFW/Nbrc7Ho+LLdXV1eFwWNxLvmWL/ROJhKZp5jd3+TYt39PlTJPz3m0+AXGQ/JM0j1lii6iC2FPcS+4g3rvzDyv3iUaj8g+ZMnIej0ecs7i7mOSmrE7OWcmnKxgM5kROHFNWPxgMmifCQCDQ2NgoH0s8e42NjeJo0z0J5udQ7BkOh3fs2CF+Fn9pU1OT+QUSr1c8Hg8Gg+KJEg8tHxcAiiZyMkVydqmtrRW/yva43e5oNComjGg0Kt74RO1EmWTtAoGAfKcWvzqdzu3bt5tnkRkiZz6ZnDdocQLiJFVVzT9JcyHEaCUeTg5k5mFFnon8uyKRiFhvlAeJRqMzzEnysOZJTlXVnMbknFV1dbX8A/PnZvMx5aOLY4pb5RMbiUScTqc8wpTnL8/K/P9mZMtzZjX5g3x1RL/FRvnQAOaf8vLyQ9MoLy+fh5ET77Dm2U4uc5l3Fs2Q84Hcv7q6WlRHjjXyfV+MArOJXM6EZF5nE+/U+SeZv7oYCASCwWDOiGb+6Mt82JwiymdDjrnmd3nzn5AfOXOHcs7KfEfzz/nHlMuVcrtcrjSPyDlnm/Nw8lkSY3dO5My/5tfO/PMcF34BFH7ndF03v0Pquj5z4YppuVKGSq5Wibc28yQ3Q+TM79QyGLW1tSJF5h3mMsnlRC7/JPMjJ3aT2/N3mE3kpnzGzCWYcmaSf8jsI5dzzBsSufx1aVm1nI/9iBxA52TnZlO4Yoqc/Ewo561Nvr3OELmcLeI91OPxBAIBv9+fs/yVf6WGnB2/NnKyB7JwOScpH12uoIq3Zvlw5h3Eo+RHzrzPlJ/J5VdN/mq+i5zkcs7KvFzp8XjkcuV0x8xZrsw5uLn0OcuV5mXk/MjlP8/5z6d8qokccFN1bpaFK6blykAgIEdU80pgOBwWlx7MELmSr154It5Vcz7QEuuE8Xi8sbFRvK3LS1Ha2trkAqn52pD8kautrc08buafZMk0F56Id3BxbvkXnuREzny2030mJ6uTHyR5VuZrNKa78CQajZon2vxjyutE5Bycc3BVVdva2ma++iZ/ZBeftMlXXK5k5lx4Il4dIgfcbJ2bZeGKJnLmN/op/+8/AABFPMnJa/HliAMAwHyIHAAARA4AACIHACByRA4AQOSIHACAyBE5AACRAwBgXkVOURSr1cqrAgCYO6vVqihKAUXObrcrilIKAMCcKYpit9sLKHIAABQaIgcAIHIAABA5AACIHAAARA4AACIHAACRAwAQOQAAiBwAAEQOAAAiBwAAkQMAgMgBAIgcAABEDgAAIgcAAJEDAIDIAQBA5AAARI7IAQCIHAAARA4AACIHAACRAwCAyAEAQOQAAEQOAAAiBwAAkQMAgMgBAEDkAAAoksiFQiGfzzeXIzgcjkgk4nA4eIEBgMjdsMiFQiHDMAzDmE2lXC5Xa2vrDf+TvF5vOp02DCOdTnu9Xl5jACByNyByXq83mUyK+SkWi3m9Xp/PZ25ea2vr4OCgYRihUMjhcIifdV13uVypVEr8bLPZfD6fz+fzer26rqfT6VQq5XK55P6Dg4MOh0Pcmkql/H6/PI48E13XI5GIPBkAAJG7AWOcHOAcDserr74q1gwdDocoma7rPp9P/CBCFYvFbDZbU1OTy+USFXS5XDJyolLisPLgObd6vV5N02w2m6ZpzG0AgD9G5GxfXY0Ug51omPzATEZODnxiaJMZE/USv8qFUDEIyltzJjxeUQDAdxI5GS2bzabr+vHjx8XEJie56SInEpg/yeVEThRUHEHe6vV6d+7cySQHAPhuI2fLu/Ak/zO5nMil02lRL7HblStXxK/5kZMTmziavNXlciWTSSY5AMB3HjkAAIgcAABEDgAAIgcAAJEDABA5AACIHAAARA4AACIHAEBBRc5utyuKUgoAwJwpimK32wsocoqiWK3WEgAA5sxqtSqKUkCRKy0t5VUBANwopaWlRA4AQOSIHACAyBE5AACRI3IAACIHAACRAwCAyAEAiByR+5LT6dQ0raysrKSkJBAIuN3unB3cbncgEPimh53yULOnaZrH4+G/YwCYJ5FTVTUcDovYEDkiBwDzIXIejyeRSCQSCVG4srKycDgstoh3ebfbrWma2KiqqqqqiUQiGo06nU5xazweF1uqq6vD4bC4V1lZWTAYdLvdYv9EIqFpmtg/GAyKpKmq6vF4ZOQ0TTM/rjly8gTEQfJPUmTJvEVETuwp7iV3UFV1ysPKfaLRqPxDAGAeKy8vPzSN8vLyoo+cTJGcXWpra8Wvsj1utzsajbrdbqfTGY1GRSFE7USZZO0CgYDH45ExCwQCTqdz+/bt5tFqhsiZTyYncuIExEmqqpp/kvJxnU5nOBx2Op3i4eRA5vF4xJmbz0T+XZFIxO12mw8SjUaJHICbpHO6ridMdF2fuXBFHDnx/m6e7eRqoXln0Qw5xsn9q6urRXVEwMzzUzwen2Xk5KAm7yKXK0WH8k8yf3UxEAgEg8GcEU3yeDzmw+YUkeVKADdt52ZTuGJarpShEj0QI1rOJDdD5GSxzHWpra0VKTLvMJdJLidy+SeZ3ySxm9yevwORA4Cczs2ycMUUOb/fL9YbBdkPWaMZIpezRWTS4/EEAgG/328+iNxTLieaZ8evjZzsoixczknKR5crqKJb8uHMO4hHyY+ceR8+kwNwE3ZuloUrpuXKQCAgF/HMK4HhcDgYDIpxbbrIlXz1whORrpwPtMQ6YTweb2xsFEuL8lKUtrY2uUBqvjYkf+Rqa2szj5v5J1kyzYUnItvi3PIvPMmJnPls+UwOAIo+cuY3evNVJAAAzIdJTl6LL0ccAADmQ+QAACByAAAQOQAAkSNyAAAiR+QAAESOyAEAiBwAAPMqcoqiWK1WXhUAwNxZrVZFUQoocna7XVGUUgAA5kxRFLvdXkCRAwCg0BA5AACRAwCAyAEAQOQAACByAAAQOQAAiBwAgMgBAEDkAAAgcgAAEDkAAIgcAABEDgBA5AAAIHIAABA5AACIHAAARA4AACIHACByRA4AQOQAACByAAAQOQAAiBwAAEQOAAAiBwAgcgAAEDkAAIgcAABEDgCAIoicy+XSdd3hcLS2trpcrin3CYVCPp/v2x28tbWV1xIA8F1FzuFwDA4OGl9KpVJTxswcOYfDoev6dM2bJZ/PN/MjAgCI3I2Z5MzdCoVChmGk02mv1+twOCKRSM4klxM5n8/n8/m8Xq+u6+l0WkRLtnNwcNDhcHi93nQ6bRiGnPkcDkcymYxEIrqu83ICAP4YkXO5XE1NTTabzev1apr2jSKXTCYdDodYvZRrmOJWTdPMyeT1AwB8D5Ezr16GQqFvFDlN0+SvYhyUx5GTXCgU4sUDAHw/kfN6vbFY7NtNcjmRE5OcCGdTU5P4gUkOAPD9T3KpVOry5cuvvvqqyJKu6/LDM/O0p+v6lJEz7+Pz+Xbu3JlKpZjkAADfQ+QAACByAAAQOQAAiBwAAEQOAEDkAAAgcgAAEDkAAIgcAABEDgCAP0bk7Ha7oiilAADMmaIodru9gCKnKIrVai0BAGDOrFaroigFFLnS0lJeFQDAjVJaWkrkAABEjsgBAIgckQMAEDkiBwCYrdtvv/3ee+/9xS9+ce+9995+++1EDgAwH9x2222VlZV1dXWbv1RXV1dZWXnbbbcROQBAcRdu1apV9fX1m7+qvr5+1apVM3eOyAEACtqyZcteeOGF+vr6Z599VqRO/vzCCy8sW7ZsPkTO4/EkvqSqaklJidPpjEajiUQiHA6XlZVNuQUAUOxj3FNPPbV58+ba2toHHnigsrJy06ZNlZWVDzzwQG1t7ebNm5966qkZhrmiiZyqqpqmmbdomqaqallZWTgc9ng8U24BABS1e+65p6qqSqxP1tTUVFRULF68uKKioqamRmysqqq65557ij5yImDyVzG0iZKJ/uVv4T8OAJhPkauvr3/kkUfuuOOORx55RH5ENx8iJ9chE4lENBp1Op1OpzMSibjdbpG0cDhcXV2ds4UVSwAodnfccceGDRtE4SorKysqKqqqqioqKiorK0XnNmzYcMcddxT9JCdNlzQiBwDz0qOPPlpfX19XV/fEE0+IVcqamponnniirq6uvr7+0UcfneG+xRc5j8cTjUZffPFFlisB4GZw5513rl+/fvNU1q9ff+eddxZ95JxOZzgcdjqdJSUlmqaJgHHhCQDcJO6+++5169aZvypXX1+/bt26u+++e+Y7Ft9XCMRnciWmD+rk0Ja/BQAwbyxevPixxx5bt27dY489tnjx4tnchS+DAwDmLSIHACByRA4AQOSIHACAyBE5AACRAwCAyAEAQOQAAETujx45RVGsViuvCgBg7qxWq6IoBRQ5u92uKEopAABzpiiK3W4voMgBAFBoiBwAgMgBAEDkAAAgcgAAEDkAAIgcAABEDgBA5ADgJn+LfClWpP+b8s+5v9gQOQAgckSOyAEAkSNyAAAiR+QAgMgROSIHAESOyBE5ACByRI7IAQCRI3JEDgCIHJEjcgBA5IgcABA5IkfkAOCmidxPfd2rgoOPHhu4dWen5aXY7bv1He1X9nQO/ey9niKN3NNPP/3yyy9v3Lhx6dKl30W6NmzYcOjQob1791ZWVhI5ACjQyN26s/O19isjE5OGYRiGMZyefP30lfJAX/vlsf7UxAMf9hVd5Fwu19GjR/v7+wcGBgYGBjo6OrZv337DI7dly5bOzs5QKLR69WoiBwAFGrlnT1wYTk8OjU8ePDOs6kPnRiaG05Nvx68WaeQefvjhAwcO9PX1nT59uqmp6fDhwz09Pe3t7bW1tUQOAG6uyN2+Wz92duR6JvviqS9+tO205aXYP/9+UNWHfhu+0H557Fp6MjE0PjqR7bgyvio4aHkp9rP3egJnhq+lJzNZo/da+v+1XPzRttNTbnzww/5PB0dHJ7JnUxO74ld/6uv+y11db5y+cmE0k8kaF0YzO9qv/OWurhseObfbffLkya6urq1bt4rm7d69+/3339+wYcPevXtjsVgymTx58uSOHTuWLl26Y8eOzz777MSJE11dXYlE4tChQ6tWrVq6dOmbb74ZjUb7+vri8XhTU9Pq1avr6uqOHz+eTCaTyWQ4HK6pqSFyAFDokfvb/b2nL4+dH534v9pZ8/ZF+3vbL49lDSMxNJ4cThuGEbs8VvEvfe8lrmWyxpWxTGJofGIye2E0sy50Pn9jXdulzy5eT09mO66MnxuZuJ7Jbj35xZbPvxidyF68njl5aex6JjucnnzmxIUbHrktW7Z0dXW1tLSsXbvWvH3Hjh3d3d2dnZ2tra09PT0dHR11dXV79uxJJpM9PT0tLS29vb3JZHL37t2bN2+Ox+M9PT3hcLijo6Ovr+/o0aMtLS19fX2RSKS9vX1gYKC5uXnXrl1EDgAKOnJLPjjTPZQ+NzLxfw5PEbmzqYllH/X/7f7e9stjAyMTdW2Xuq6On01NPHS4f8Hr8bfjV69nskf6U4mhKTb2XEv3DaeXfdR/z3s9//z7wcWNZ7T+1ND4pPv4hR9tO73l8y9GJiY/6B0W17ncwMh5vd7u7u7jx4+vWbPGvP3xxx9/5ZVXnnzySafTKdYw33jjjT179vT29jY1NTmdzr179/b29n744YcHDhzo7e09cODAww8/XFNT09TUdOjQIV3Xm5ubV69e/eSTT7a2tnZ2dh48eJDIAUBBR+7ext6uq+MXRjNTTnLiM7mf+rojF6+fH514s+PK4MhE++WxRft7LS/FaiKXRiYmT30xdvF6Jmfjx2dHDp4ZnpjMGoYxPpn9+OzI6uDg55euG1/16eCofW/ixkbO4/Houp4/ya1fv17TtM7OzrNnzw4MDPT29u7cuVNE7oMPPnj44YfffPPNnp6eY8eOHTt2rLe3d8+ePfK+u3btOnPmzIBJT0/P0aNHiRwAFHTk/roh8eng6HB6csPxP6wcPvbxgE8fevbEhfzIbYtd7k9NdF4dv7ex1/JSbPNnX4xMTLZcuH5uJHejv+faX+1LrG0+f+jMcO+19MRk9l+Sw20Xrw+nJ3d3Xn3hs0tbPv/i5ejllZ+cW/B6/MZGbuPGje3t7e3t7Rs3brz//vuXLl26c+fOAwcOHDt2LJlMnjhxwufzffrppz09PVNG7ujRo4cPH+7t7W1oaBAf6a1du/att97q6ek5ceLE7t2733777YaGhl27du3du5fIAUBBR+5H206/dOryWCbbPZR+Onyh6sTF3mvpsUz2/e5rHVfGcyJXdeLi78+NjE5k93UNrQudj10eG53I7uy4mr/xQM+1lgvX/T3Xlnxw5uXoZZG9xp5r45PZw32pBz/sf+P0lYvXM1tP/uFqlxsYuccff1zTtP7+/ubm5q1bt/p8Pl3Xu7u7T506lUwm33///aeffjoUCiWTyQMHDjQ1NeVE7sMPP2xoaOjt7W1ra/N6ve+//76u68ePH+/s7Ozo6HjzzTc3bdoUiUROnDihqmpXV9fnn3/+4osvzvxVPCIHAN9P5MTXwLX+1GT2D0uI45PZD3qHHz02kD/JPXJ0YG3z+ctjGbneGBocvee9nvyNK44OfNSXynx5zP7UxIqjAw9+2N89lJa7dQ+lHzrc/118T+65555ra2uTS4uJRKKhoeGdd97RdV1s6e7uTiaTHR0dn3zySX7kqqqqmpub5d27urreeustv9/f19cntohAbtmyJRaLDQwMBIPBX//610QOAAoxcpaXYgvf6apru/RRX2pf15DjyFnxDfFVwcF1ofO379YXvB5/4pNzT4XP/3VDwvJS7KHD/e8mho70p373+RfyE7X8jQtej6/85FyDPrQ9dkWsZIqPAHd2XD14Zri69eLMn8bN8V88Wbt27XvvvXf06NF33333t7/9rdhYVVXl9/sbGhrWrl377LPPvvzyy7/73e/eeOMNsbC5fv36119/vaam5v7771+1atWePXuOHDmyb9++J598UqxbvvLKKx999FFjY6PY5/7776+pqXnrrbc2b97MJAcAhRs5/u1K/u1KACByRI7IAQCRI3JEDgCIHJEjcgBA5IgckQMAIkfkAIDIETkiBwBEjsgROQAgckSOyAEAkSNyRA4AiByRI3IAgHn/f1OIHACAyAEAQOQAACByAAAQOQAAiBwAAEQOAEDkAAAgcgAAEDkAAIgcAABEDgAAIgcAIHIAABA5AACIHAAARA4AgO8mcgsXLuTpAADMGwsXLvzXyC1YsIBnBAAwbyxYsMBitmDBAuY5AMA8mOFyC/cVf/JDyz/90mL/K8vM/uNtlr9b8pUtP/kzyz+UWW7995Zv55ZbLP/97y1//udT3/qz/2ZZttzyy2WWXy6z3P6fLRaL5T9YLeUPWB58yPI//5fl3/3EYrFYfvADy88XWR58yPKP//TtT+Nf13BtlooHLb9cZrlLsQAAbi75kZujW26xLPkf00bu54tyu/vDWyz/9k8tFovl7r+x/M3PLRaL5b/8V8vfLbH84AeW2/6T5e//wfJv/uQbPPoPf2hZfJ/lJ3/2h19//GNL2T9a/uIvLD/+saXsf1tuvZUXHACK1P8Hlud5fY7GZwwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjQtMDEtMDZUMTU6NDk6MzkrMDA6MDADtVRTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI0LTAxLTA2VDE1OjQ5OjM5KzAwOjAwcujs7wAAAABJRU5ErkJggg=="},3333:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-add-truecharts-catalog-201abb147a45192270d8978f1d560324.png"},5415:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-configure-gamevault-app-install-1-f77e819fe4925ed18904f80e6f0d613e.png"},4197:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-configure-gamevault-app-install-3-ac408b5dfd46341a7f7c77f6196fd506.png"},5952:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-configured-gamevault-app-installed-db255883caaf34572f6403034d11f56a.png"},3830:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-discover-gamevault-app-install-203a397bf7abfccc33be4462ec225bb5.png"},5691:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-discover-gamevault-app-search-042a9ac7bc7a5ce195b085144c4a3e60.png"},3927:(A,e,t)=>{t.d(e,{A:()=>n});const n=t.p+"assets/images/scale-login-248c8e0a2719f7dc7db7893a7d97dc3b.png"},8591:(A,e,t)=>{t.d(e,{R:()=>r,x:()=>c});var n=t(758);const a={},s=n.createContext(a);function r(A){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function c(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(a):A.components||a:r(A.components),n.createElement(s.Provider,{value:e},A.children)}}}]); \ No newline at end of file diff --git a/assets/js/5baa483a.88d5f495.js b/assets/js/5baa483a.b9cf08d1.js similarity index 84% rename from assets/js/5baa483a.88d5f495.js rename to assets/js/5baa483a.b9cf08d1.js index ec2a17e62..bee214a8f 100644 --- a/assets/js/5baa483a.88d5f495.js +++ b/assets/js/5baa483a.b9cf08d1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9006],{5735:a=>{a.exports=JSON.parse('{"tag":{"label":"speculation","permalink":"/blog/tags/speculation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/speculation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2888],{8961:a=>{a.exports=JSON.parse('{"tag":{"label":"speculation","permalink":"/blog/tags/speculation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/speculation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5bbd8cf3.326f16e2.js b/assets/js/5bbd8cf3.326f16e2.js new file mode 100644 index 000000000..244a8a020 --- /dev/null +++ b/assets/js/5bbd8cf3.326f16e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[894],{996:a=>{a.exports=JSON.parse('{"tag":{"label":"Kanban Board","permalink":"/blog/tags/kanban-board","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/kanban-board","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5bbd8cf3.d768f173.js b/assets/js/5bbd8cf3.d768f173.js deleted file mode 100644 index 153c60478..000000000 --- a/assets/js/5bbd8cf3.d768f173.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8912],{7288:a=>{a.exports=JSON.parse('{"tag":{"label":"Kanban Board","permalink":"/blog/tags/kanban-board","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/kanban-board","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5c99339f.820589b5.js b/assets/js/5c99339f.4f5f69cd.js similarity index 84% rename from assets/js/5c99339f.820589b5.js rename to assets/js/5c99339f.4f5f69cd.js index 9049a79b9..e5264fd42 100644 --- a/assets/js/5c99339f.820589b5.js +++ b/assets/js/5c99339f.4f5f69cd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7283],{9948:a=>{a.exports=JSON.parse('{"tag":{"label":"backend","permalink":"/blog/tags/backend","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/backend","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3294],{5248:a=>{a.exports=JSON.parse('{"tag":{"label":"backend","permalink":"/blog/tags/backend","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/backend","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5db30e8c.e2e7c57f.js b/assets/js/5db30e8c.a6543c4e.js similarity index 84% rename from assets/js/5db30e8c.e2e7c57f.js rename to assets/js/5db30e8c.a6543c4e.js index 8b4f6b016..27cdd7fc8 100644 --- a/assets/js/5db30e8c.e2e7c57f.js +++ b/assets/js/5db30e8c.a6543c4e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7044],{9692:e=>{e.exports=JSON.parse('{"tag":{"label":"self-hosted","permalink":"/blog/tags/self-hosted","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/self-hosted","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1767],{9613:e=>{e.exports=JSON.parse('{"tag":{"label":"self-hosted","permalink":"/blog/tags/self-hosted","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/self-hosted","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5e5c84c3.0d9ccf83.js b/assets/js/5e5c84c3.0d9ccf83.js new file mode 100644 index 000000000..e95259792 --- /dev/null +++ b/assets/js/5e5c84c3.0d9ccf83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6051],{2031:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"server-docs/game-types","title":"Game Types","description":"GameVault recognizes various Game Types, which affect how the application handles games, particularly during installation.","source":"@site/docs/server-docs/game-types.md","sourceDirName":"server-docs","slug":"/server-docs/game-types","permalink":"/docs/server-docs/game-types","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/game-types.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2.5,"frontMatter":{"sidebar_position":2.5},"sidebar":"docs","previous":{"title":"File and Folder Structure","permalink":"/docs/server-docs/structure"},"next":{"title":"Adding Games to GameVault","permalink":"/docs/server-docs/adding-games"}}');var t=s(6070),l=s(8591);const r={sidebar_position:2.5},d="Game Types",c={},a=[{value:"Supported Game Types",id:"supported-game-types",level:2},{value:"Windows",id:"windows",level:3},{value:"Setup (W_S)",id:"setup-w_s",level:4},{value:"Portable (W_P)",id:"portable-w_p",level:4},{value:"Linux",id:"linux",level:3},{value:"Portable (L_P)",id:"portable-l_p",level:4},{value:"Undetected",id:"undetected",level:3}];function o(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"game-types",children:"Game Types"})}),"\n",(0,t.jsxs)(n.p,{children:["GameVault recognizes various ",(0,t.jsx)(n.strong,{children:"Game Types"}),", which affect how the application handles games, particularly during installation."]}),"\n",(0,t.jsxs)(n.p,{children:["The Game Type is automatically detected, but users can manually override it using the correct type tag, based on ",(0,t.jsx)(n.a,{href:"/docs/server-docs/structure",children:"GameVault\u2019s Naming Structure"}),". Each game can only have one type tag; if multiple tags are present, only one will be applied."]}),"\n",(0,t.jsx)(n.h2,{id:"supported-game-types",children:"Supported Game Types"}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Additional game types, such as ROMs and Android applications, may be added in the future.",(0,t.jsx)(n.br,{}),"\n","You can request more game types ",(0,t.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/new",children:"here"}),"."]})}),"\n",(0,t.jsx)(n.h3,{id:"windows",children:"Windows"}),"\n",(0,t.jsx)(n.h4,{id:"setup-w_s",children:"Setup (W_S)"}),"\n",(0,t.jsxs)(n.p,{children:["Windows Setup games require an installation process before play, initiated by setup-related files such as ",(0,t.jsx)(n.code,{children:"setup.exe"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Detection"}),": Identified through the type tag override or by specific setup-related executables in the archive."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"File Patterns"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"setup.exe"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"autorun.exe"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"setup_*.exe"})," (e.g., ",(0,t.jsx)(n.code,{children:"setup_game.exe"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"setup-*.exe"})," (e.g., ",(0,t.jsx)(n.code,{children:"setup-game.exe"}),")"]}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"install.exe"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"unarc.exe"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:".msi"})," files (excluding those containing ",(0,t.jsx)(n.code,{children:"redist"}),")"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Example Files in Archive"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"data.bin"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"data2.bin"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"setup.exe"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h4,{id:"portable-w_p",children:"Portable (W_P)"}),"\n",(0,t.jsx)(n.p,{children:"Portable Windows games can be played immediately without requiring a setup."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Detection"}),": Recognized through the type tag override or by the presence of ",(0,t.jsx)(n.code,{children:".exe"})," and ",(0,t.jsx)(n.code,{children:".msi"})," files, lacking setup-specific filenames."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Butcher_Data/"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Butcher.exe"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"linux",children:"Linux"}),"\n",(0,t.jsx)(n.h4,{id:"portable-l_p",children:"Portable (L_P)"}),"\n",(0,t.jsx)(n.p,{children:"Linux Portable games can be played immediately without additional setup."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Detection"}),": Determined by the type tag override or by the presence of ",(0,t.jsx)(n.code,{children:".sh"})," files, with no ",(0,t.jsx)(n.code,{children:".exe"})," or ",(0,t.jsx)(n.code,{children:".msi"})," files."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Butcher_Data/"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Butcher.sh"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"undetected",children:"Undetected"}),"\n",(0,t.jsx)(n.p,{children:"This is the default type if GameVault cannot automatically detect the game type. Users will need to manually install the game into the installation folder."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"data/"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"run.c64"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8591:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>d});var i=s(758);const t={},l=i.createContext(t);function r(e){const n=i.useContext(l);return i.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(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e5c84c3.68da2443.js b/assets/js/5e5c84c3.68da2443.js deleted file mode 100644 index dda95d2d4..000000000 --- a/assets/js/5e5c84c3.68da2443.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8516],{2836:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var i=s(2676),t=s(8358);const l={sidebar_position:2.5},r="Game Types",d={id:"server-docs/game-types",title:"Game Types",description:"GameVault recognizes various Game Types, which affect how the application handles games, particularly during installation.",source:"@site/docs/server-docs/game-types.md",sourceDirName:"server-docs",slug:"/server-docs/game-types",permalink:"/docs/server-docs/game-types",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/game-types.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2.5,frontMatter:{sidebar_position:2.5},sidebar:"docs",previous:{title:"File and Folder Structure",permalink:"/docs/server-docs/structure"},next:{title:"Adding Games to GameVault",permalink:"/docs/server-docs/adding-games"}},c={},a=[{value:"Supported Game Types",id:"supported-game-types",level:2},{value:"Windows",id:"windows",level:3},{value:"Setup (W_S)",id:"setup-w_s",level:4},{value:"Portable (W_P)",id:"portable-w_p",level:4},{value:"Linux",id:"linux",level:3},{value:"Portable (L_P)",id:"portable-l_p",level:4},{value:"Undetected",id:"undetected",level:3}];function o(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"game-types",children:"Game Types"})}),"\n",(0,i.jsxs)(n.p,{children:["GameVault recognizes various ",(0,i.jsx)(n.strong,{children:"Game Types"}),", which affect how the application handles games, particularly during installation."]}),"\n",(0,i.jsxs)(n.p,{children:["The Game Type is automatically detected, but users can manually override it using the correct type tag, based on ",(0,i.jsx)(n.a,{href:"/docs/server-docs/structure",children:"GameVault\u2019s Naming Structure"}),". Each game can only have one type tag; if multiple tags are present, only one will be applied."]}),"\n",(0,i.jsx)(n.h2,{id:"supported-game-types",children:"Supported Game Types"}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["Additional game types, such as ROMs and Android applications, may be added in the future.",(0,i.jsx)(n.br,{}),"\n","You can request more game types ",(0,i.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/new",children:"here"}),"."]})}),"\n",(0,i.jsx)(n.h3,{id:"windows",children:"Windows"}),"\n",(0,i.jsx)(n.h4,{id:"setup-w_s",children:"Setup (W_S)"}),"\n",(0,i.jsxs)(n.p,{children:["Windows Setup games require an installation process before play, initiated by setup-related files such as ",(0,i.jsx)(n.code,{children:"setup.exe"}),"."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Detection"}),": Identified through the type tag override or by specific setup-related executables in the archive."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"File Patterns"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"setup.exe"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"autorun.exe"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"setup_*.exe"})," (e.g., ",(0,i.jsx)(n.code,{children:"setup_game.exe"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"setup-*.exe"})," (e.g., ",(0,i.jsx)(n.code,{children:"setup-game.exe"}),")"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"install.exe"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"unarc.exe"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".msi"})," files (excluding those containing ",(0,i.jsx)(n.code,{children:"redist"}),")"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Example Files in Archive"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"data.bin"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"data2.bin"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"setup.exe"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"portable-w_p",children:"Portable (W_P)"}),"\n",(0,i.jsx)(n.p,{children:"Portable Windows games can be played immediately without requiring a setup."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Detection"}),": Recognized through the type tag override or by the presence of ",(0,i.jsx)(n.code,{children:".exe"})," and ",(0,i.jsx)(n.code,{children:".msi"})," files, lacking setup-specific filenames."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"Butcher_Data/"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"Butcher.exe"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"linux",children:"Linux"}),"\n",(0,i.jsx)(n.h4,{id:"portable-l_p",children:"Portable (L_P)"}),"\n",(0,i.jsx)(n.p,{children:"Linux Portable games can be played immediately without additional setup."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Detection"}),": Determined by the type tag override or by the presence of ",(0,i.jsx)(n.code,{children:".sh"})," files, with no ",(0,i.jsx)(n.code,{children:".exe"})," or ",(0,i.jsx)(n.code,{children:".msi"})," files."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"Butcher_Data/"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"Butcher.sh"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"undetected",children:"Undetected"}),"\n",(0,i.jsx)(n.p,{children:"This is the default type if GameVault cannot automatically detect the game type. Users will need to manually install the game into the installation folder."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Example Files in Archive"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"data/"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"run.c64"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},8358:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>r});var i=s(5271);const t={},l=i.createContext(t);function r(e){const n=i.useContext(l);return i.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(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.381be7a7.js b/assets/js/5e95c892.381be7a7.js new file mode 100644 index 000000000..2cda08c66 --- /dev/null +++ b/assets/js/5e95c892.381be7a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9647],{5979:(e,s,a)=>{a.r(s),a.d(s,{default:()=>n});a(758);var r=a(3526),u=a(5003),c=a(8539),t=a(389),l=a(3385),d=a(6070);function n(e){return(0,d.jsx)(u.e3,{className:(0,r.A)(c.G.wrapper.docsPages),children:(0,d.jsx)(l.A,{children:(0,t.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.892705da.js b/assets/js/5e95c892.892705da.js deleted file mode 100644 index 0621d9878..000000000 --- a/assets/js/5e95c892.892705da.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9661],{5970:(e,s,a)=>{a.r(s),a.d(s,{default:()=>n});a(5271);var r=a(4814),u=a(9967),c=a(3509),t=a(7677),l=a(3557),d=a(2676);function n(e){return(0,d.jsx)(u.FG,{className:(0,r.Z)(c.k.wrapper.docsPages),children:(0,d.jsx)(l.Z,{children:(0,t.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5fa82f91.fa2d39df.js b/assets/js/5fa82f91.b7e4a4f5.js similarity index 84% rename from assets/js/5fa82f91.fa2d39df.js rename to assets/js/5fa82f91.b7e4a4f5.js index 432b1e73b..ec87aab54 100644 --- a/assets/js/5fa82f91.fa2d39df.js +++ b/assets/js/5fa82f91.b7e4a4f5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4503],{1722:a=>{a.exports=JSON.parse('{"tag":{"label":"GameShelf","permalink":"/blog/tags/game-shelf","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-shelf","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4939],{4194:a=>{a.exports=JSON.parse('{"tag":{"label":"GameShelf","permalink":"/blog/tags/game-shelf","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-shelf","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/61be0f73.24a6894b.js b/assets/js/61be0f73.24a6894b.js deleted file mode 100644 index bb9675c0f..000000000 --- a/assets/js/61be0f73.24a6894b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[452],{5931:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>o});var r=n(2676),d=n(8358);const i={sidebar_position:2},c="File and Folder Structure",t={id:"server-docs/structure",title:"File and Folder Structure",description:"If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.",source:"@site/docs/server-docs/structure.md",sourceDirName:"server-docs",slug:"/server-docs/structure",permalink:"/docs/server-docs/structure",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/structure.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"docs",previous:{title:"Configuration",permalink:"/docs/server-docs/configuration"},next:{title:"Game Types",permalink:"/docs/server-docs/game-types"}},l={},o=[{value:"Supported Archive Formats",id:"supported-archive-formats",level:2},{value:"Single File Executable",id:"single-file-executable",level:3},{value:"Naming Convention for Games",id:"naming-convention-for-games",level:2},{value:"Other Examples",id:"other-examples",level:3}];function a(e){const s={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"file-and-folder-structure",children:"File and Folder Structure"})}),"\n",(0,r.jsxs)(s.p,{children:["If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.\nThe volume mapped to the ",(0,r.jsx)(s.code,{children:"/files"})," directory must contain your games. These games must be named correctly and should either be archived in one of the supported archive formats listed below or be a single-file executable as described below to be accurately detected by GameVault."]}),"\n",(0,r.jsx)(s.h2,{id:"supported-archive-formats",children:"Supported Archive Formats"}),"\n",(0,r.jsx)(s.p,{children:"GameVault supports all file formats 7zip 23.01 (2023-06-20) does:"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:".7z"})," ",(0,r.jsx)(s.code,{children:".xz"})," ",(0,r.jsx)(s.code,{children:".bz2"})," ",(0,r.jsx)(s.code,{children:".gz"})," ",(0,r.jsx)(s.code,{children:".tar"})," ",(0,r.jsx)(s.code,{children:".zip"})," ",(0,r.jsx)(s.code,{children:".wim"})," ",(0,r.jsx)(s.code,{children:".ar"})," ",(0,r.jsx)(s.code,{children:".arj"})," ",(0,r.jsx)(s.code,{children:".cab"})," ",(0,r.jsx)(s.code,{children:".chm"})," ",(0,r.jsx)(s.code,{children:".cpio"})," ",(0,r.jsx)(s.code,{children:".cramfs"})," ",(0,r.jsx)(s.code,{children:".dmg"})," ",(0,r.jsx)(s.code,{children:".ext"})," ",(0,r.jsx)(s.code,{children:".fat"})," ",(0,r.jsx)(s.code,{children:".gpt"})," ",(0,r.jsx)(s.code,{children:".hfs"})," ",(0,r.jsx)(s.code,{children:".ihex"})," ",(0,r.jsx)(s.code,{children:".iso"})," ",(0,r.jsx)(s.code,{children:".lzh"})," ",(0,r.jsx)(s.code,{children:".lzma"})," ",(0,r.jsx)(s.code,{children:".mbr"})," ",(0,r.jsx)(s.code,{children:".msi"})," ",(0,r.jsx)(s.code,{children:".nsis"})," ",(0,r.jsx)(s.code,{children:".ntfs"})," ",(0,r.jsx)(s.code,{children:".qcow2"})," ",(0,r.jsx)(s.code,{children:".rar"})," ",(0,r.jsx)(s.code,{children:".rpm"})," ",(0,r.jsx)(s.code,{children:".squashfs"})," ",(0,r.jsx)(s.code,{children:".udf"})," ",(0,r.jsx)(s.code,{children:".uefi"})," ",(0,r.jsx)(s.code,{children:".vdi"})," ",(0,r.jsx)(s.code,{children:".vhd"})," ",(0,r.jsx)(s.code,{children:".vmdk"})," ",(0,r.jsx)(s.code,{children:".wim"})," ",(0,r.jsx)(s.code,{children:".xar"})," ",(0,r.jsx)(s.code,{children:".z"})]}),"\n",(0,r.jsx)(s.h3,{id:"single-file-executable",children:"Single File Executable"}),"\n",(0,r.jsxs)(s.p,{children:["We recommend ",(0,r.jsx)(s.a,{href:"#supported-archive-formats",children:"archiving games"})," to save storage and bandwidth. However, if the game is just a single file executable, like ",(0,r.jsx)(s.code,{children:"setup_game.exe"})," or ",(0,r.jsx)(s.code,{children:"setup_game.sh"}),", you can import it into GameVault without archiving. Just be sure to rename it as described below for compatibility with GameVault (e.g. ",(0,r.jsx)(s.code,{children:"Minecraft (v1.12) (2011).exe"}),"). By default, GameVault autodetects the ",(0,r.jsx)(s.a,{href:"/docs/server-docs/game-types",children:"game type"}),' of single-file executables as a setup-type game. In rare cases, games can be single portable executables without additional setup. If that\'s the case, make sure to mark the games as "Portable" using the type override.']}),"\n",(0,r.jsxs)(s.p,{children:["Supported Executables:",(0,r.jsx)(s.br,{}),"\n",(0,r.jsx)(s.code,{children:".exe"})," ",(0,r.jsx)(s.code,{children:".sh"})]}),"\n",(0,r.jsx)(s.admonition,{title:"Downloading single-file executables",type:"note",children:(0,r.jsxs)(s.p,{children:["Single-file executables are packed into a ",(0,r.jsx)(s.code,{children:".tar"})," file (no compression) and cached in the server's ",(0,r.jsx)(s.code,{children:"/tmp"})," folder on-the-fly when users download them, to make them compatible with the GameVault Client. The cached files are reused until deleted by a Server Restart."]})}),"\n",(0,r.jsx)(s.h2,{id:"naming-convention-for-games",children:"Naming Convention for Games"}),"\n",(0,r.jsx)(s.p,{children:"The name of each game file must follow this format:"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Title (Version) (EarlyAccess) (GameType) (NoCache) (ReleaseYear).zip"})}),"\n",(0,r.jsxs)(s.p,{children:["Note that the parentheses must be included, and the naming convention is ",(0,r.jsx)(s.strong,{children:"case sensitive"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"Here's an explanation of each part of the naming convention:"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Part"}),(0,r.jsx)(s.th,{children:"Description"}),(0,r.jsx)(s.th,{children:"Example Value(s)"}),(0,r.jsx)(s.th,{children:"Required?"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Title"})}),(0,r.jsx)(s.td,{children:"The name of the game"}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"Far Cry 6"}),", ",(0,r.jsx)(s.code,{children:"HITMAN 3"})]}),(0,r.jsx)(s.td,{children:"Yes"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Version"})}),(0,r.jsxs)(s.td,{children:["An optional version tag that must begin with a lowercase ",(0,r.jsx)(s.code,{children:"v"})]}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"(v1.0)"}),", ",(0,r.jsx)(s.code,{children:"(v1.224)"})," , N/A"]}),(0,r.jsx)(s.td,{children:"No"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"EarlyAccess"})}),(0,r.jsx)(s.td,{children:"An optional tag that indicates whether the game is in Early Access"}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"(EA)"}),", N/A"]}),(0,r.jsx)(s.td,{children:"No"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"GameType"})}),(0,r.jsxs)(s.td,{children:["Override for the games type. ",(0,r.jsx)(s.a,{href:"/docs/server-docs/game-types",children:"See here."})]}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"(W_P)"}),", ",(0,r.jsx)(s.code,{children:"(W_S)"}),", ",(0,r.jsx)(s.code,{children:"..."})," , N/A"]}),(0,r.jsx)(s.td,{children:"No"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"NoCache"})}),(0,r.jsx)(s.td,{children:'An optional "NO CACHE"-flag that prevents the server searching for this game on external videogame databases.'}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"(NC)"}),", N/A"]}),(0,r.jsx)(s.td,{children:"No"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"ReleaseYear"})}),(0,r.jsx)(s.td,{children:"The year of the game's release, for accurate detection"}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"(2021)"}),", ",(0,r.jsx)(s.code,{children:"(2019)"}),", N/A"]}),(0,r.jsx)(s.td,{children:"No"})]})]})]}),"\n",(0,r.jsx)(s.p,{children:"Here's an example of a file that follows this convention:"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Far Cry 6 (v1.5.0) (2021).zip"})}),"\n",(0,r.jsx)(s.p,{children:"By following this naming convention and using the common values listed in the table above, you can ensure that your games are detected correctly by GameVault."}),"\n",(0,r.jsx)(s.admonition,{title:"Illegal Filenames and Characters",type:"warning",children:(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["File names must not contain the following characters: ",(0,r.jsx)(s.code,{children:"/"}),", ",(0,r.jsx)(s.code,{children:"<"}),", ",(0,r.jsx)(s.code,{children:">"}),", ",(0,r.jsx)(s.code,{children:":"}),", ",(0,r.jsx)(s.code,{children:'"'}),", ",(0,r.jsx)(s.code,{children:"\\"}),", ",(0,r.jsx)(s.code,{children:"|"}),", ",(0,r.jsx)(s.code,{children:"?"}),", and ",(0,r.jsx)(s.code,{children:"*"}),". Replace these problematic characters with appropriate ones to ensure compatibility across all systems."]}),"\n",(0,r.jsx)(s.li,{children:"Avoid ending file names with spaces or dots."}),"\n",(0,r.jsxs)(s.li,{children:["Avoid using text within Round brackets such as ",(0,r.jsx)(s.code,{children:"(GOTY)"})," in your file names, as GameVault will remove them. Round brackets are reserved for the different flags mentioned above. Use square brackets instead: ",(0,r.jsx)(s.code,{children:"[GOTY]"})]}),"\n",(0,r.jsxs)(s.li,{children:["Do not use reserved file names such as ",(0,r.jsx)(s.code,{children:"CON"}),", ",(0,r.jsx)(s.code,{children:"PRN"}),", ",(0,r.jsx)(s.code,{children:"AUX"}),", ",(0,r.jsx)(s.code,{children:"NUL"}),", ",(0,r.jsx)(s.code,{children:"COM(1-9)"}),", ",(0,r.jsx)(s.code,{children:"LPT(1-9)"}),", etc."]}),"\n",(0,r.jsxs)(s.li,{children:["Avoid using multiple chained extensions like ",(0,r.jsx)(s.code,{children:".tar.gz"})," or ",(0,r.jsx)(s.code,{children:".tar.bz2"}),". Instead, use only the last extension like ",(0,r.jsx)(s.code,{children:".gz"})," or ",(0,r.jsx)(s.code,{children:".bz2"}),"."]}),"\n"]})}),"\n",(0,r.jsx)(s.h3,{id:"other-examples",children:"Other Examples"}),"\n",(0,r.jsx)(s.p,{children:"Here are some other valid examples of game names that follow the naming convention:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"Star Wars Jedi - Fallen Order(v1.0.10.0) (2019).zip"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"HITMAN 3 (v3.10.1) (2021).7z"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"The Wandering Village (v0.1.32) (EA) (2022).iso"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"Saints Row (W_S) (2022).zip"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"My personal IndieGame (v1.2.9) (NC) (2018).zip"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"Stray (2022).7z"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"Captain of Industry (v0.4.12b) (EA) (2022).gz"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"Minecraft (2011).exe"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,d.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8358:(e,s,n)=>{n.d(s,{Z:()=>t,a:()=>c});var r=n(5271);const d={},i=r.createContext(d);function c(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/61be0f73.a65020c4.js b/assets/js/61be0f73.a65020c4.js new file mode 100644 index 000000000..be53adb09 --- /dev/null +++ b/assets/js/61be0f73.a65020c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3555],{3749:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"server-docs/structure","title":"File and Folder Structure","description":"If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.","source":"@site/docs/server-docs/structure.md","sourceDirName":"server-docs","slug":"/server-docs/structure","permalink":"/docs/server-docs/structure","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/structure.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"docs","previous":{"title":"Configuration","permalink":"/docs/server-docs/configuration"},"next":{"title":"Game Types","permalink":"/docs/server-docs/game-types"}}');var d=n(6070),i=n(8591);const c={sidebar_position:2},t="File and Folder Structure",l={},o=[{value:"Supported Archive Formats",id:"supported-archive-formats",level:2},{value:"Single File Executable",id:"single-file-executable",level:3},{value:"Naming Convention for Games",id:"naming-convention-for-games",level:2},{value:"Other Examples",id:"other-examples",level:3}];function a(e){const s={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.header,{children:(0,d.jsx)(s.h1,{id:"file-and-folder-structure",children:"File and Folder Structure"})}),"\n",(0,d.jsxs)(s.p,{children:["If you want to set up a GameVault Server, you need to pay attention to the file and folder structure.\nThe volume mapped to the ",(0,d.jsx)(s.code,{children:"/files"})," directory must contain your games. These games must be named correctly and should either be archived in one of the supported archive formats listed below or be a single-file executable as described below to be accurately detected by GameVault."]}),"\n",(0,d.jsx)(s.h2,{id:"supported-archive-formats",children:"Supported Archive Formats"}),"\n",(0,d.jsx)(s.p,{children:"GameVault supports all file formats 7zip 23.01 (2023-06-20) does:"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:".7z"})," ",(0,d.jsx)(s.code,{children:".xz"})," ",(0,d.jsx)(s.code,{children:".bz2"})," ",(0,d.jsx)(s.code,{children:".gz"})," ",(0,d.jsx)(s.code,{children:".tar"})," ",(0,d.jsx)(s.code,{children:".zip"})," ",(0,d.jsx)(s.code,{children:".wim"})," ",(0,d.jsx)(s.code,{children:".ar"})," ",(0,d.jsx)(s.code,{children:".arj"})," ",(0,d.jsx)(s.code,{children:".cab"})," ",(0,d.jsx)(s.code,{children:".chm"})," ",(0,d.jsx)(s.code,{children:".cpio"})," ",(0,d.jsx)(s.code,{children:".cramfs"})," ",(0,d.jsx)(s.code,{children:".dmg"})," ",(0,d.jsx)(s.code,{children:".ext"})," ",(0,d.jsx)(s.code,{children:".fat"})," ",(0,d.jsx)(s.code,{children:".gpt"})," ",(0,d.jsx)(s.code,{children:".hfs"})," ",(0,d.jsx)(s.code,{children:".ihex"})," ",(0,d.jsx)(s.code,{children:".iso"})," ",(0,d.jsx)(s.code,{children:".lzh"})," ",(0,d.jsx)(s.code,{children:".lzma"})," ",(0,d.jsx)(s.code,{children:".mbr"})," ",(0,d.jsx)(s.code,{children:".msi"})," ",(0,d.jsx)(s.code,{children:".nsis"})," ",(0,d.jsx)(s.code,{children:".ntfs"})," ",(0,d.jsx)(s.code,{children:".qcow2"})," ",(0,d.jsx)(s.code,{children:".rar"})," ",(0,d.jsx)(s.code,{children:".rpm"})," ",(0,d.jsx)(s.code,{children:".squashfs"})," ",(0,d.jsx)(s.code,{children:".udf"})," ",(0,d.jsx)(s.code,{children:".uefi"})," ",(0,d.jsx)(s.code,{children:".vdi"})," ",(0,d.jsx)(s.code,{children:".vhd"})," ",(0,d.jsx)(s.code,{children:".vmdk"})," ",(0,d.jsx)(s.code,{children:".wim"})," ",(0,d.jsx)(s.code,{children:".xar"})," ",(0,d.jsx)(s.code,{children:".z"})]}),"\n",(0,d.jsx)(s.h3,{id:"single-file-executable",children:"Single File Executable"}),"\n",(0,d.jsxs)(s.p,{children:["We recommend ",(0,d.jsx)(s.a,{href:"#supported-archive-formats",children:"archiving games"})," to save storage and bandwidth. However, if the game is just a single file executable, like ",(0,d.jsx)(s.code,{children:"setup_game.exe"})," or ",(0,d.jsx)(s.code,{children:"setup_game.sh"}),", you can import it into GameVault without archiving. Just be sure to rename it as described below for compatibility with GameVault (e.g. ",(0,d.jsx)(s.code,{children:"Minecraft (v1.12) (2011).exe"}),"). By default, GameVault autodetects the ",(0,d.jsx)(s.a,{href:"/docs/server-docs/game-types",children:"game type"}),' of single-file executables as a setup-type game. In rare cases, games can be single portable executables without additional setup. If that\'s the case, make sure to mark the games as "Portable" using the type override.']}),"\n",(0,d.jsxs)(s.p,{children:["Supported Executables:",(0,d.jsx)(s.br,{}),"\n",(0,d.jsx)(s.code,{children:".exe"})," ",(0,d.jsx)(s.code,{children:".sh"})]}),"\n",(0,d.jsx)(s.admonition,{title:"Downloading single-file executables",type:"note",children:(0,d.jsxs)(s.p,{children:["Single-file executables are packed into a ",(0,d.jsx)(s.code,{children:".tar"})," file (no compression) and cached in the server's ",(0,d.jsx)(s.code,{children:"/tmp"})," folder on-the-fly when users download them, to make them compatible with the GameVault Client. The cached files are reused until deleted by a Server Restart."]})}),"\n",(0,d.jsx)(s.h2,{id:"naming-convention-for-games",children:"Naming Convention for Games"}),"\n",(0,d.jsx)(s.p,{children:"The name of each game file must follow this format:"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.code,{children:"Title (Version) (EarlyAccess) (GameType) (NoCache) (ReleaseYear).zip"})}),"\n",(0,d.jsxs)(s.p,{children:["Note that the parentheses must be included, and the naming convention is ",(0,d.jsx)(s.strong,{children:"case sensitive"}),"."]}),"\n",(0,d.jsx)(s.p,{children:"Here's an explanation of each part of the naming convention:"}),"\n",(0,d.jsxs)(s.table,{children:[(0,d.jsx)(s.thead,{children:(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.th,{children:"Part"}),(0,d.jsx)(s.th,{children:"Description"}),(0,d.jsx)(s.th,{children:"Example Value(s)"}),(0,d.jsx)(s.th,{children:"Required?"})]})}),(0,d.jsxs)(s.tbody,{children:[(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"Title"})}),(0,d.jsx)(s.td,{children:"The name of the game"}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"Far Cry 6"}),", ",(0,d.jsx)(s.code,{children:"HITMAN 3"})]}),(0,d.jsx)(s.td,{children:"Yes"})]}),(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"Version"})}),(0,d.jsxs)(s.td,{children:["An optional version tag that must begin with a lowercase ",(0,d.jsx)(s.code,{children:"v"})]}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"(v1.0)"}),", ",(0,d.jsx)(s.code,{children:"(v1.224)"})," , N/A"]}),(0,d.jsx)(s.td,{children:"No"})]}),(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"EarlyAccess"})}),(0,d.jsx)(s.td,{children:"An optional tag that indicates whether the game is in Early Access"}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"(EA)"}),", N/A"]}),(0,d.jsx)(s.td,{children:"No"})]}),(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"GameType"})}),(0,d.jsxs)(s.td,{children:["Override for the games type. ",(0,d.jsx)(s.a,{href:"/docs/server-docs/game-types",children:"See here."})]}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"(W_P)"}),", ",(0,d.jsx)(s.code,{children:"(W_S)"}),", ",(0,d.jsx)(s.code,{children:"..."})," , N/A"]}),(0,d.jsx)(s.td,{children:"No"})]}),(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"NoCache"})}),(0,d.jsx)(s.td,{children:'An optional "NO CACHE"-flag that prevents the server searching for this game on external videogame databases.'}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"(NC)"}),", N/A"]}),(0,d.jsx)(s.td,{children:"No"})]}),(0,d.jsxs)(s.tr,{children:[(0,d.jsx)(s.td,{children:(0,d.jsx)(s.strong,{children:"ReleaseYear"})}),(0,d.jsx)(s.td,{children:"The year of the game's release, for accurate detection"}),(0,d.jsxs)(s.td,{children:[(0,d.jsx)(s.code,{children:"(2021)"}),", ",(0,d.jsx)(s.code,{children:"(2019)"}),", N/A"]}),(0,d.jsx)(s.td,{children:"No"})]})]})]}),"\n",(0,d.jsx)(s.p,{children:"Here's an example of a file that follows this convention:"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.code,{children:"Far Cry 6 (v1.5.0) (2021).zip"})}),"\n",(0,d.jsx)(s.p,{children:"By following this naming convention and using the common values listed in the table above, you can ensure that your games are detected correctly by GameVault."}),"\n",(0,d.jsx)(s.admonition,{title:"Illegal Filenames and Characters",type:"warning",children:(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsxs)(s.li,{children:["File names must not contain the following characters: ",(0,d.jsx)(s.code,{children:"/"}),", ",(0,d.jsx)(s.code,{children:"<"}),", ",(0,d.jsx)(s.code,{children:">"}),", ",(0,d.jsx)(s.code,{children:":"}),", ",(0,d.jsx)(s.code,{children:'"'}),", ",(0,d.jsx)(s.code,{children:"\\"}),", ",(0,d.jsx)(s.code,{children:"|"}),", ",(0,d.jsx)(s.code,{children:"?"}),", and ",(0,d.jsx)(s.code,{children:"*"}),". Replace these problematic characters with appropriate ones to ensure compatibility across all systems."]}),"\n",(0,d.jsx)(s.li,{children:"Avoid ending file names with spaces or dots."}),"\n",(0,d.jsxs)(s.li,{children:["Avoid using text within Round brackets such as ",(0,d.jsx)(s.code,{children:"(GOTY)"})," in your file names, as GameVault will remove them. Round brackets are reserved for the different flags mentioned above. Use square brackets instead: ",(0,d.jsx)(s.code,{children:"[GOTY]"})]}),"\n",(0,d.jsxs)(s.li,{children:["Do not use reserved file names such as ",(0,d.jsx)(s.code,{children:"CON"}),", ",(0,d.jsx)(s.code,{children:"PRN"}),", ",(0,d.jsx)(s.code,{children:"AUX"}),", ",(0,d.jsx)(s.code,{children:"NUL"}),", ",(0,d.jsx)(s.code,{children:"COM(1-9)"}),", ",(0,d.jsx)(s.code,{children:"LPT(1-9)"}),", etc."]}),"\n",(0,d.jsxs)(s.li,{children:["Avoid using multiple chained extensions like ",(0,d.jsx)(s.code,{children:".tar.gz"})," or ",(0,d.jsx)(s.code,{children:".tar.bz2"}),". Instead, use only the last extension like ",(0,d.jsx)(s.code,{children:".gz"})," or ",(0,d.jsx)(s.code,{children:".bz2"}),"."]}),"\n"]})}),"\n",(0,d.jsx)(s.h3,{id:"other-examples",children:"Other Examples"}),"\n",(0,d.jsx)(s.p,{children:"Here are some other valid examples of game names that follow the naming convention:"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"Star Wars Jedi - Fallen Order(v1.0.10.0) (2019).zip"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"HITMAN 3 (v3.10.1) (2021).7z"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"The Wandering Village (v0.1.32) (EA) (2022).iso"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"Saints Row (W_S) (2022).zip"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"My personal IndieGame (v1.2.9) (NC) (2018).zip"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"Stray (2022).7z"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"Captain of Industry (v0.4.12b) (EA) (2022).gz"})}),"\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.code,{children:"Minecraft (2011).exe"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},8591:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>t});var r=n(758);const d={},i=r.createContext(d);function c(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/621db11d.b88f6c61.js b/assets/js/621db11d.b88f6c61.js new file mode 100644 index 000000000..6bb52fe48 --- /dev/null +++ b/assets/js/621db11d.b88f6c61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4212],{2336:(t,e,s)=>{s.r(e),s.d(e,{default:()=>m});s(758);var a=s(3526),o=s(5003),r=s(8539),l=s(2737),u=s(8777),n=s(4981),i=s(8038),c=s(5582);const h={authorListItem:"authorListItem_EZJ8"};var g=s(6070);function p(t){let{author:e}=t;return(0,g.jsx)("li",{className:h.authorListItem,children:(0,g.jsx)(c.A,{as:"h2",author:e,count:e.count})})}function d(t){let{authors:e}=t;return(0,g.jsx)("section",{className:(0,a.A)("margin-vert--lg",h.authorsListSection),children:(0,g.jsx)("ul",{children:e.map((t=>(0,g.jsx)(p,{author:t},t.key)))})})}function m(t){let{authors:e,sidebar:s}=t;const c=(0,l.uz)();return(0,g.jsxs)(o.e3,{className:(0,a.A)(r.G.wrapper.blogPages,r.G.page.blogAuthorsListPage),children:[(0,g.jsx)(o.be,{title:c}),(0,g.jsx)(n.A,{tag:"blog_authors_list"}),(0,g.jsxs)(u.A,{sidebar:s,children:[(0,g.jsx)(i.A,{as:"h1",children:c}),(0,g.jsx)(d,{authors:e})]})]})}},2737:(t,e,s)=>{s.d(e,{ZD:()=>l,uz:()=>u});s(758);var a=s(8072),o=s(7773);s(6070);function r(){const{selectMessage:t}=(0,o.W)();return e=>t(e,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:e}))}function l(t){const e=r();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:e(t.count),tagName:t.label})}const u=()=>(0,a.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})}}]); \ No newline at end of file diff --git a/assets/js/621db11d.cd005c05.js b/assets/js/621db11d.cd005c05.js deleted file mode 100644 index 8f2a94293..000000000 --- a/assets/js/621db11d.cd005c05.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3940],{3435:(t,e,s)=>{s.r(e),s.d(e,{default:()=>m});s(5271);var a=s(4814),o=s(9967),r=s(3509),l=s(5535),u=s(6566),n=s(8625),i=s(3221),c=s(8059);const h={authorListItem:"authorListItem_X3Ma"};var g=s(2676);function d(t){let{author:e}=t;return(0,g.jsx)("li",{className:h.authorListItem,children:(0,g.jsx)(c.Z,{as:"h2",author:e,count:e.count})})}function p(t){let{authors:e}=t;return(0,g.jsx)("section",{className:(0,a.Z)("margin-vert--lg",h.authorsListSection),children:(0,g.jsx)("ul",{children:e.map((t=>(0,g.jsx)(d,{author:t},t.key)))})})}function m(t){let{authors:e,sidebar:s}=t;const c=(0,l.HV)();return(0,g.jsxs)(o.FG,{className:(0,a.Z)(r.k.wrapper.blogPages,r.k.page.blogAuthorsListPage),children:[(0,g.jsx)(o.d,{title:c}),(0,g.jsx)(n.Z,{tag:"blog_authors_list"}),(0,g.jsxs)(u.Z,{sidebar:s,children:[(0,g.jsx)(i.Z,{as:"h1",children:c}),(0,g.jsx)(p,{authors:e})]})]})}},5535:(t,e,s)=>{s.d(e,{HV:()=>u,Wi:()=>l});s(5271);var a=s(2922),o=s(2351);s(2676);function r(){const{selectMessage:t}=(0,o.c)();return e=>t(e,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:e}))}function l(t){const e=r();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:e(t.count),tagName:t.label})}const u=()=>(0,a.I)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})}}]); \ No newline at end of file diff --git a/assets/js/63511f3c.6756bb7e.js b/assets/js/63511f3c.2be0e358.js similarity index 84% rename from assets/js/63511f3c.6756bb7e.js rename to assets/js/63511f3c.2be0e358.js index f00517b7e..3f23fe38f 100644 --- a/assets/js/63511f3c.6756bb7e.js +++ b/assets/js/63511f3c.2be0e358.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5044],{7337:a=>{a.exports=JSON.parse('{"tag":{"label":"decision-making","permalink":"/blog/tags/decision-making","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/decision-making","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2671],{6735:a=>{a.exports=JSON.parse('{"tag":{"label":"decision-making","permalink":"/blog/tags/decision-making","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/decision-making","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/63b46e50.16d610c4.js b/assets/js/63b46e50.78dbdbbc.js similarity index 85% rename from assets/js/63b46e50.16d610c4.js rename to assets/js/63b46e50.78dbdbbc.js index d9cd89126..d1bea74f2 100644 --- a/assets/js/63b46e50.16d610c4.js +++ b/assets/js/63b46e50.78dbdbbc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4819],{4881:a=>{a.exports=JSON.parse('{"tag":{"label":"health monitoring","permalink":"/blog/tags/health-monitoring","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/health-monitoring","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3328],{4062:a=>{a.exports=JSON.parse('{"tag":{"label":"health monitoring","permalink":"/blog/tags/health-monitoring","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/health-monitoring","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6493.8f62fe69.js b/assets/js/6493.8f62fe69.js deleted file mode 100644 index 15f2b6a20..000000000 --- a/assets/js/6493.8f62fe69.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6493],{44:(e,t,n)=>{"use strict";n.d(t,{Z:()=>_});var s=n(5271),a=n(2676);function o(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:o.length>0?(0,a.jsx)(a.Fragment,{children:o}):null}}(e.children),o=e.title??t;return{...e,...o&&{title:o},children:n}}var c=n(4814),i=n(2922),r=n(3509);const l={admonition:"admonition_HAC_",admonitionHeading:"admonitionHeading_VCVJ",admonitionIcon:"admonitionIcon_vHBt",admonitionContent:"admonitionContent_tuR2"};function d(e){let{type:t,className:n,children:s}=e;return(0,a.jsx)("div",{className:(0,c.Z)(r.k.common.admonition,r.k.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,a.jsxs)("div",{className:l.admonitionHeading,children:[(0,a.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,a.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:o,className:c}=e;return(0,a.jsxs)(d,{type:t,className:c,children:[s||n?(0,a.jsx)(u,{title:s,icon:n}):null,(0,a.jsx)(m,{children:o})]})}function p(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.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 f={icon:(0,a.jsx)(p,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,a.jsx)(h,{...f,...e,className:(0,c.Z)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.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 j={icon:(0,a.jsx)(x,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,a.jsx)(h,{...j,...e,className:(0,c.Z)("alert alert--success",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.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 y={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function N(e){return(0,a.jsx)(h,{...y,...e,className:(0,c.Z)("alert alert--info",e.className),children:e.children})}function k(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.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 C={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function B(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.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 w={icon:(0,a.jsx)(B,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const Z={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(i.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const L={...{note:g,tip:b,info:N,warning:function(e){return(0,a.jsx)(h,{...C,...e,className:(0,c.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(h,{...w,...e,className:(0,c.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(g,{title:"secondary",...e}),important:e=>(0,a.jsx)(N,{title:"important",...e}),success:e=>(0,a.jsx)(b,{title:"success",...e}),caution:function(e){return(0,a.jsx)(h,{...Z,...e,className:(0,c.Z)("alert alert--warning",e.className),children:e.children})}}};function _(e){const t=o(e),n=(s=t.type,L[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),L.info));var s;return(0,a.jsx)(n,{...t})}},3362:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});n(5271);var s=n(4814),a=n(2922),o=n(3509),c=n(6527);const i={iconEdit:"iconEdit_BjJv"};var r=n(2676);function l(e){let{className:t,...n}=e;return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(i.iconEdit,t),"aria-hidden":"true",...n,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 d(e){let{editUrl:t}=e;return(0,r.jsxs)(c.Z,{to:t,className:o.k.common.editThisPage,children:[(0,r.jsx)(l,{}),(0,r.jsx)(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(1956);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.P)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(a.Z,{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:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,r.jsx)(a.Z,{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:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,r.jsxs)("span",{className:o.k.common.lastUpdated,children:[(0,r.jsx)(a.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,r.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,r.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_w0Sh"};function g(e){let{className:t,editUrl:n,lastUpdatedAt:a,lastUpdatedBy:o}=e;return(0,r.jsxs)("div",{className:(0,s.Z)("row",t),children:[(0,r.jsx)("div",{className:"col",children:n&&(0,r.jsx)(d,{editUrl:n})}),(0,r.jsx)("div",{className:(0,s.Z)("col",f.lastUpdated),children:(a||o)&&(0,r.jsx)(p,{lastUpdatedAt:a,lastUpdatedBy:o})})]})}},2714:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ie});var s=n(5271),a=n(8358),o=n(2791),c=n(6594),i=n(4814),r=n(7934),l=n(9364);function d(){const{prism:e}=(0,l.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(3509),m=n(7226),h=n.n(m);const p=/title=(?<quote>["'])(?<title>.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},x={...g,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:""}},j=Object.keys(g);function b(e,t){const n=e.map((e=>{const{start:n,end:s}=x[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 v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&f.test(o)){const e=o.match(f).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return b(["js","jsBlock"],t);case"jsx":case"tsx":return b(["js","jsBlock","jsx"],t);case"html":return b(["js","jsBlock","html"],t);case"python":case"py":case"bash":return b(["bash"],t);case"markdown":case"md":return b(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return b(["tex"],t);case"lua":case"haskell":case"sql":return b(["lua"],t);case"wasm":return b(["wasm"],t);case"vb":case"vba":case"visual-basic":return b(["vb","rem"],t);case"vbnet":return b(["vbnet","rem"],t);case"batch":return b(["rem"],t);case"basic":return b(["rem","f90"],t);case"fsharp":return b(["js","ml"],t);case"ocaml":case"sml":return b(["ml"],t);case"fortran":return b(["f90"],t);case"cobol":return b(["cobol"],t);default:return b(j,t)}}(s,a),i=n.split("\n"),r=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<i.length;){const e=i[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?r[l[t]].range+=`${h},`:d[t]?r[d[t]].start=h:u[t]&&(r[u[t]].range+=`${r[u[t]].start}-${h-1},`),i.splice(h,1)}n=i.join("\n");const m={};return Object.entries(r).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Sx4Y"};var N=n(2676);function k(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(d());return(0,N.jsx)(t,{...n,style:s,className:(0,i.Z)(n.className,y.codeBlockContainer,u.k.common.codeBlock)})}const C={codeBlockContent:"codeBlockContent_YnoF",codeBlockTitle:"codeBlockTitle_CurW",codeBlock:"codeBlock_kXdi",codeBlockStandalone:"codeBlockStandalone_Yei0",codeBlockLines:"codeBlockLines_SDaA",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_Akw7",buttonGroup:"buttonGroup_zCn6"};function B(e){let{children:t,className:n}=e;return(0,N.jsx)(k,{as:"pre",tabIndex:0,className:(0,i.Z)(C.codeBlockStandalone,"thin-scrollbar",n),children:(0,N.jsx)("code",{className:C.codeBlockLines,children:t})})}var w=n(8274);const Z={attributes:!0,characterData:!0,childList:!0,subtree:!0};function L(e,t){const[n,a]=(0,s.useState)(),o=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Z);const a=(0,w.zX)(t),o=(0,w.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,o),()=>t.disconnect()}),[e,a,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var _=n(739);const E={codeLine:"codeLine_myqu",codeLineNumber:"codeLineNumber_CBT2",codeLineContent:"codeLineContent_LM40"};function T(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=a({line:t,className:(0,i.Z)(n,s&&E.codeLine)}),r=t.map(((e,t)=>(0,N.jsx)("span",{...o({token:e})},t)));return(0,N.jsxs)("span",{...c,children:[s?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("span",{className:E.codeLineNumber}),(0,N.jsx)("span",{className:E.codeLineContent,children:r})]}):r,(0,N.jsx)("br",{})]})}var A=n(2922);function I(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.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 S(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const U={copyButtonCopied:"copyButtonCopied_OQHi",copyButtonIcons:"copyButtonIcons_wv7r",copyButtonIcon:"copyButtonIcon_Yg7_",copyButtonSuccessIcon:"copyButtonSuccessIcon_PaDN"};function M(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),r=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),c=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let i=!1;try{i=document.execCommand("copy")}catch{}s.remove(),c&&(o.removeAllRanges(),o.addRange(c)),a&&a.focus()}(t),o(!0),c.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,N.jsx)("button",{type:"button","aria-label":a?(0,A.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,A.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,A.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.Z)("clean-btn",n,U.copyButton,a&&U.copyButtonCopied),onClick:r,children:(0,N.jsxs)("span",{className:U.copyButtonIcons,"aria-hidden":"true",children:[(0,N.jsx)(I,{className:U.copyButtonIcon}),(0,N.jsx)(S,{className:U.copyButtonSuccessIcon})]})})}function z(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.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 H={wordWrapButtonIcon:"wordWrapButtonIcon_dvG6",wordWrapButtonEnabled:"wordWrapButtonEnabled_EI91"};function R(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,A.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,N.jsx)("button",{type:"button",onClick:n,className:(0,i.Z)("clean-btn",t,s&&H.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,N.jsx)(z,{className:H.wordWrapButtonIcon,"aria-hidden":"true"})})}function W(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:c,language:r}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.L)(),h=function(e){return e?.toLowerCase()}(r??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),g=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return L(o,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:c}}(),x=function(e){return e?.match(p)?.groups.title??""}(a)||o,{lineClassNames:j,code:b}=v(t,{metastring:a,language:h,magicComments:m}),y=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,N.jsxs)(k,{as:"div",className:(0,i.Z)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[x&&(0,N.jsx)("div",{className:C.codeBlockTitle,children:x}),(0,N.jsxs)("div",{className:C.codeBlockContent,children:[(0,N.jsx)(_.y$,{theme:f,code:b,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,N.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,i.Z)(t,C.codeBlock,"thin-scrollbar"),style:n,children:(0,N.jsx)("code",{className:(0,i.Z)(C.codeBlockLines,y&&C.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,N.jsx)(T,{line:e,getLineProps:a,getTokenProps:o,classNames:j[t],showLineNumbers:y},t)))})})}}),(0,N.jsxs)("div",{className:C.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,N.jsx)(R,{className:C.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,N.jsx)(M,{className:C.codeButton,code:b})]})]})]})}function D(e){let{children:t,...n}=e;const a=(0,c.Z)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),i="string"==typeof o?W:B;return(0,N.jsx)(i,{...n,children:o},String(a))}function V(e){return(0,N.jsx)("code",{...e})}var $=n(6527);var P=n(4167),O=n(3955);const q={details:"details_UM4U",isBrowser:"isBrowser_HuuV",collapsibleContent:"collapsibleContent_IfUm"};function F(e){return!!e&&("SUMMARY"===e.tagName||F(e.parentElement))}function Y(e,t){return!!e&&(e===t||Y(e.parentElement,t))}function G(e){let{summary:t,children:n,...a}=e;(0,P.Z)().collectAnchor(a.id);const o=(0,c.Z)(),r=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,O.u)({initialState:!a.open}),[u,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,N.jsx)("summary",{children:t??"Details"});return(0,N.jsxs)("details",{...a,ref:r,open:u,"data-collapsed":l,className:(0,i.Z)(q.details,o&&q.isBrowser,a.className),onMouseDown:e=>{F(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;F(t)&&Y(t,r.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,N.jsx)(O.z,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,N.jsx)("div",{className:q.collapsibleContent,children:n})})]})}const X={details:"details_MhMj"},Q="alert alert--info";function J(e){let{...t}=e;return(0,N.jsx)(G,{...t,className:(0,i.Z)(Q,X.details,t.className)})}function K(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,N.jsx)(N.Fragment,{children:t.filter((e=>e!==n))});return(0,N.jsx)(J,{...e,summary:n,children:a})}var ee=n(3221);function te(e){return(0,N.jsx)(ee.Z,{...e})}const ne={containsTaskList:"containsTaskList_Q9D7"};function se(e){if(void 0!==e)return(0,i.Z)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const ae={img:"img_sRsS"};var oe=n(44);const ce={Head:o.Z,details:K,Details:K,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,N.jsx)(V,{...e}):(0,N.jsx)(D,{...e})},a:function(e){return(0,N.jsx)($.Z,{...e})},pre:function(e){return(0,N.jsx)(N.Fragment,{children:e.children})},ul:function(e){return(0,N.jsx)("ul",{...e,className:se(e.className)})},li:function(e){return(0,P.Z)().collectAnchor(e.id),(0,N.jsx)("li",{...e})},img:function(e){return(0,N.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,i.Z)(t,ae.img))});var t},h1:e=>(0,N.jsx)(te,{as:"h1",...e}),h2:e=>(0,N.jsx)(te,{as:"h2",...e}),h3:e=>(0,N.jsx)(te,{as:"h3",...e}),h4:e=>(0,N.jsx)(te,{as:"h4",...e}),h5:e=>(0,N.jsx)(te,{as:"h5",...e}),h6:e=>(0,N.jsx)(te,{as:"h6",...e}),admonition:oe.Z,mermaid:()=>null};function ie(e){let{children:t}=e;return(0,N.jsx)(a.Z,{components:ce,children:t})}},5066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(5271);var s=n(4814),a=n(6527),o=n(2676);function c(e){const{permalink:t,title:n,subLabel:c,isNext:i}=e;return(0,o.jsxs)(a.Z,{className:(0,s.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[c&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:c}),(0,o.jsx)("div",{className:"pagination-nav__label",children:n})]})}},8213:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(5271);var s=n(4814),a=n(6527);const o={tag:"tag_idh4",tagRegular:"tagRegular_OEC8",tagWithCount:"tagWithCount_X4qa"};var c=n(2676);function i(e){let{permalink:t,label:n,count:i,description:r}=e;return(0,c.jsxs)(a.Z,{href:t,title:r,className:(0,s.Z)(o.tag,i?o.tagWithCount:o.tagRegular),children:[n,i&&(0,c.jsx)("span",{children:i})]})}},9813:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});n(5271);var s=n(4814),a=n(2922),o=n(8213);const c={tags:"tags_gbum",tag:"tag_jXtk"};var i=n(2676);function r(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(a.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,s.Z)(c.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:c.tag,children:(0,i.jsx)(o.Z,{...e})},e.permalink)))})]})}},1956:(e,t,n)=>{"use strict";n.d(t,{P:()=>a});var s=n(6172);function a(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.Z)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.Z)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},7226:(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,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8358:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i,a:()=>c});var s=n(5271);const a={},o=s.createContext(a);function c(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6535206c.1433f29b.js b/assets/js/6535206c.1433f29b.js new file mode 100644 index 000000000..91c39d0b1 --- /dev/null +++ b/assets/js/6535206c.1433f29b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[295],{7140:a=>{a.exports=JSON.parse('{"tag":{"label":"app name migration","permalink":"/blog/tags/app-name-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app-name-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6535206c.8d92d0fd.js b/assets/js/6535206c.8d92d0fd.js deleted file mode 100644 index b839a898b..000000000 --- a/assets/js/6535206c.8d92d0fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3020],{3480:a=>{a.exports=JSON.parse('{"tag":{"label":"app name migration","permalink":"/blog/tags/app-name-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app-name-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/66e9ef90.493eaccb.js b/assets/js/66e9ef90.86179459.js similarity index 84% rename from assets/js/66e9ef90.493eaccb.js rename to assets/js/66e9ef90.86179459.js index 1812d0bf5..80cd82df8 100644 --- a/assets/js/66e9ef90.493eaccb.js +++ b/assets/js/66e9ef90.86179459.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[786],{9746:a=>{a.exports=JSON.parse('{"tag":{"label":"analytics","permalink":"/blog/tags/analytics","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/analytics","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[791],{2744:a=>{a.exports=JSON.parse('{"tag":{"label":"analytics","permalink":"/blog/tags/analytics","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/analytics","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/678c8d60.d2ce53e5.js b/assets/js/678c8d60.b80b1c72.js similarity index 84% rename from assets/js/678c8d60.d2ce53e5.js rename to assets/js/678c8d60.b80b1c72.js index e75dcb014..e884dbf19 100644 --- a/assets/js/678c8d60.d2ce53e5.js +++ b/assets/js/678c8d60.b80b1c72.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4430],{9939:e=>{e.exports=JSON.parse('{"tag":{"label":"DRM-free games","permalink":"/blog/tags/drm-free-games","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/drm-free-games","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9751],{7364:e=>{e.exports=JSON.parse('{"tag":{"label":"DRM-free games","permalink":"/blog/tags/drm-free-games","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/drm-free-games","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6875c492.3fc46bbb.js b/assets/js/6875c492.3fc46bbb.js new file mode 100644 index 000000000..48a6f9762 --- /dev/null +++ b/assets/js/6875c492.3fc46bbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4813],{6191:(e,t,n)=>{n.d(t,{A:()=>r});n(758);var s=n(8072),a=n(5336),i=n(6070);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.A,{permalink:n,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),r&&(0,i.jsx)(a.A,{permalink:r,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},8736:(e,t,n)=>{n.d(t,{A:()=>B});n(758);var s=n(3526),a=n(7073),i=n(6070);function r(e){let{children:t,className:n}=e;return(0,i.jsx)("article",{className:n,children:t})}var l=n(88);const o={title:"title_C9tp"};function c(e){let{className:t}=e;const{metadata:n,isBlogPostPage:r}=(0,a.e7)(),{permalink:c,title:d}=n,u=r?"h1":"h2";return(0,i.jsx)(u,{className:(0,s.A)(o.title,t),children:r?d:(0,i.jsx)(l.A,{to:c,children:d})})}var d=n(8072),u=n(7773),g=n(3886);const m={container:"container_eyWC"};function h(e){let{readingTime:t}=e;const n=function(){const{selectMessage:e}=(0,u.W)();return t=>{const n=Math.ceil(t);return e(n,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,i.jsx)(i.Fragment,{children:n(t)})}function p(e){let{date:t,formattedDate:n}=e;return(0,i.jsx)("time",{dateTime:t,children:n})}function x(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function j(e){let{className:t}=e;const{metadata:n}=(0,a.e7)(),{date:r,readingTime:l}=n,o=(0,g.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,s.A)(m.container,"margin-vert--md",t),children:[(0,i.jsx)(p,{date:r,formattedDate:(c=r,o.format(new Date(c)))}),void 0!==l&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{}),(0,i.jsx)(h,{readingTime:l})]})]});var c}var b=n(5582);const f={authorCol:"authorCol_GZzj",imageOnlyAuthorRow:"imageOnlyAuthorRow_oXEi",imageOnlyAuthorCol:"imageOnlyAuthorCol_kgo0"};function A(e){let{className:t}=e;const{metadata:{authors:n},assets:r}=(0,a.e7)();if(0===n.length)return null;const l=n.every((e=>{let{name:t}=e;return!t})),o=1===n.length;return(0,i.jsx)("div",{className:(0,s.A)("margin-top--md margin-bottom--sm",l?f.imageOnlyAuthorRow:"row",t),children:n.map(((e,t)=>(0,i.jsx)("div",{className:(0,s.A)(!l&&(o?"col col--12":"col col--6"),l?f.imageOnlyAuthorCol:f.authorCol),children:(0,i.jsx)(b.A,{author:{...e,imageURL:r.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(j,{}),(0,i.jsx)(A,{})]})}var T=n(3652),N=n(3416);function w(e){let{children:t,className:n}=e;const{isBlogPostPage:r}=(0,a.e7)();return(0,i.jsx)("div",{id:r?T.LU:void 0,className:(0,s.A)("markdown",n),children:(0,i.jsx)(N.A,{children:t})})}var y=n(8539),P=n(3739),k=n(7304);function U(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function R(e){const{blogPostTitle:t,...n}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,i.jsx)(U,{})})}function _(){const{metadata:e,isBlogPostPage:t}=(0,a.e7)(),{tags:n,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,u=!t&&o,g=n.length>0;if(!(g||u||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[g&&(0,i.jsx)("div",{className:(0,s.A)("row","margin-top--sm",y.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(k.A,{tags:n})})}),e&&(0,i.jsx)(P.A,{className:(0,s.A)("margin-top--sm",y.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[g&&(0,i.jsx)("div",{className:(0,s.A)("col",{"col--9":u}),children:(0,i.jsx)(k.A,{tags:n})}),u&&(0,i.jsx)("div",{className:(0,s.A)("col text--right",{"col--3":g}),children:(0,i.jsx)(R,{blogPostTitle:r,to:e.permalink})})]})}function B(e){let{children:t,className:n}=e;const l=function(){const{isBlogPostPage:e}=(0,a.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,s.A)(l,n),children:[(0,i.jsx)(v,{}),(0,i.jsx)(w,{children:t}),(0,i.jsx)(_,{})]})}},8098:(e,t,n)=>{n.d(t,{A:()=>r});n(758);var s=n(7073),a=n(8736),i=n(6070);function r(e){let{items:t,component:n=a.A}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.in,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},7711:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});n(758);var s=n(3526),a=n(8072),i=n(5003),r=n(8539),l=n(2737),o=n(88),c=n(8777),d=n(6191),u=n(4981),g=n(8098),m=n(6252),h=n(8038),p=n(6070);function x(e){let{tag:t}=e;const n=(0,l.ZD)(t);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i.be,{title:n,description:t.description}),(0,p.jsx)(u.A,{tag:"blog_tags_posts"})]})}function j(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const r=(0,l.ZD)(t);return(0,p.jsxs)(c.A,{sidebar:s,children:[t.unlisted&&(0,p.jsx)(m.A,{}),(0,p.jsxs)("header",{className:"margin-bottom--xl",children:[(0,p.jsx)(h.A,{as:"h1",children:r}),t.description&&(0,p.jsx)("p",{children:t.description}),(0,p.jsx)(o.A,{href:t.allTagsPath,children:(0,p.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,p.jsx)(g.A,{items:n}),(0,p.jsx)(d.A,{metadata:i})]})}function b(e){return(0,p.jsxs)(i.e3,{className:(0,s.A)(r.G.wrapper.blogPages,r.G.page.blogTagPostListPage),children:[(0,p.jsx)(x,{...e}),(0,p.jsx)(j,{...e})]})}},6252:(e,t,n)=>{n.d(t,{A:()=>c});n(758);var s=n(3526),a=n(384),i=n(8539),r=n(2683),l=n(6070);function o(e){let{className:t}=e;return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(a.Rc,{}),className:(0,s.A)(t,i.G.common.unlistedBanner),children:(0,l.jsx)(a.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.AE,{}),(0,l.jsx)(o,{...e})]})}},2737:(e,t,n)=>{n.d(t,{ZD:()=>r,uz:()=>l});n(758);var s=n(8072),a=n(7773);n(6070);function i(){const{selectMessage:e}=(0,a.W)();return t=>e(t,(0,s.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function r(e){const t=i();return(0,s.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}const l=()=>(0,s.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})},384:(e,t,n)=>{n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(758);var s=n(8072),a=n(950),i=n(6070);function r(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(s.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 o(){return(0,i.jsx)(a.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.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."})}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.9307af78.js b/assets/js/6875c492.9307af78.js deleted file mode 100644 index 51ef52d54..000000000 --- a/assets/js/6875c492.9307af78.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8610],{3400:(e,t,n)=>{n.d(t,{Z:()=>r});n(5271);var s=n(2922),a=n(5066),i=n(2676);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),r&&(0,i.jsx)(a.Z,{permalink:r,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9449:(e,t,n)=>{n.d(t,{Z:()=>B});n(5271);var s=n(4814),a=n(5023),i=n(2676);function r(e){let{children:t,className:n}=e;return(0,i.jsx)("article",{className:n,children:t})}var l=n(6527);const o={title:"title_c9tz"};function c(e){let{className:t}=e;const{metadata:n,isBlogPostPage:r}=(0,a.nO)(),{permalink:c,title:d}=n,u=r?"h1":"h2";return(0,i.jsx)(u,{className:(0,s.Z)(o.title,t),children:r?d:(0,i.jsx)(l.Z,{to:c,children:d})})}var d=n(2922),u=n(2351),g=n(1956);const m={container:"container_xAnX"};function h(e){let{readingTime:t}=e;const n=function(){const{selectMessage:e}=(0,u.c)();return t=>{const n=Math.ceil(t);return e(n,(0,d.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,i.jsx)(i.Fragment,{children:n(t)})}function p(e){let{date:t,formattedDate:n}=e;return(0,i.jsx)("time",{dateTime:t,children:n})}function x(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function j(e){let{className:t}=e;const{metadata:n}=(0,a.nO)(),{date:r,readingTime:l}=n,o=(0,g.P)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,s.Z)(m.container,"margin-vert--md",t),children:[(0,i.jsx)(p,{date:r,formattedDate:(c=r,o.format(new Date(c)))}),void 0!==l&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{}),(0,i.jsx)(h,{readingTime:l})]})]});var c}var b=n(8059);const f={authorCol:"authorCol_btVC",imageOnlyAuthorRow:"imageOnlyAuthorRow_fBnr",imageOnlyAuthorCol:"imageOnlyAuthorCol_Y2d8"};function Z(e){let{className:t}=e;const{metadata:{authors:n},assets:r}=(0,a.nO)();if(0===n.length)return null;const l=n.every((e=>{let{name:t}=e;return!t})),o=1===n.length;return(0,i.jsx)("div",{className:(0,s.Z)("margin-top--md margin-bottom--sm",l?f.imageOnlyAuthorRow:"row",t),children:n.map(((e,t)=>(0,i.jsx)("div",{className:(0,s.Z)(!l&&(o?"col col--12":"col col--6"),l?f.imageOnlyAuthorCol:f.authorCol),children:(0,i.jsx)(b.Z,{author:{...e,imageURL:r.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(j,{}),(0,i.jsx)(Z,{})]})}var T=n(5678),N=n(2714);function w(e){let{children:t,className:n}=e;const{isBlogPostPage:r}=(0,a.nO)();return(0,i.jsx)("div",{id:r?T.uR:void 0,className:(0,s.Z)("markdown",n),children:(0,i.jsx)(N.Z,{children:t})})}var y=n(3509),P=n(3362),k=n(9813);function A(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function O(e){const{blogPostTitle:t,...n}=e;return(0,i.jsx)(l.Z,{"aria-label":(0,d.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,i.jsx)(A,{})})}function U(){const{metadata:e,isBlogPostPage:t}=(0,a.nO)(),{tags:n,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,u=!t&&o,g=n.length>0;if(!(g||u||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[g&&(0,i.jsx)("div",{className:(0,s.Z)("row","margin-top--sm",y.k.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(k.Z,{tags:n})})}),e&&(0,i.jsx)(P.Z,{className:(0,s.Z)("margin-top--sm",y.k.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[g&&(0,i.jsx)("div",{className:(0,s.Z)("col",{"col--9":u}),children:(0,i.jsx)(k.Z,{tags:n})}),u&&(0,i.jsx)("div",{className:(0,s.Z)("col text--right",{"col--3":g}),children:(0,i.jsx)(O,{blogPostTitle:r,to:e.permalink})})]})}function B(e){let{children:t,className:n}=e;const l=function(){const{isBlogPostPage:e}=(0,a.nO)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,s.Z)(l,n),children:[(0,i.jsx)(v,{}),(0,i.jsx)(w,{children:t}),(0,i.jsx)(U,{})]})}},2740:(e,t,n)=>{n.d(t,{Z:()=>r});n(5271);var s=n(5023),a=n(9449),i=n(2676);function r(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n4,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},8078:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});n(5271);var s=n(4814),a=n(2922),i=n(9967),r=n(3509),l=n(5535),o=n(6527),c=n(6566),d=n(3400),u=n(8625),g=n(2740),m=n(7491),h=n(3221),p=n(2676);function x(e){let{tag:t}=e;const n=(0,l.Wi)(t);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i.d,{title:n,description:t.description}),(0,p.jsx)(u.Z,{tag:"blog_tags_posts"})]})}function j(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const r=(0,l.Wi)(t);return(0,p.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,p.jsx)(m.Z,{}),(0,p.jsxs)("header",{className:"margin-bottom--xl",children:[(0,p.jsx)(h.Z,{as:"h1",children:r}),t.description&&(0,p.jsx)("p",{children:t.description}),(0,p.jsx)(o.Z,{href:t.allTagsPath,children:(0,p.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,p.jsx)(g.Z,{items:n}),(0,p.jsx)(d.Z,{metadata:i})]})}function b(e){return(0,p.jsxs)(i.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,p.jsx)(x,{...e}),(0,p.jsx)(j,{...e})]})}},7491:(e,t,n)=>{n.d(t,{Z:()=>c});n(5271);var s=n(4814),a=n(4022),i=n(3509),r=n(44),l=n(2676);function o(e){let{className:t}=e;return(0,l.jsx)(r.Z,{type:"caution",title:(0,l.jsx)(a.cI,{}),className:(0,s.Z)(t,i.k.common.unlistedBanner),children:(0,l.jsx)(a.eU,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.T$,{}),(0,l.jsx)(o,{...e})]})}},5535:(e,t,n)=>{n.d(t,{HV:()=>l,Wi:()=>r});n(5271);var s=n(2922),a=n(2351);n(2676);function i(){const{selectMessage:e}=(0,a.c)();return t=>e(t,(0,s.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function r(e){const t=i();return(0,s.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}const l=()=>(0,s.I)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})},4022:(e,t,n)=>{n.d(t,{T$:()=>o,cI:()=>r,eU:()=>l,ht:()=>c,xo:()=>d});n(5271);var s=n(2922),a=n(2791),i=n(2676);function r(){return(0,i.jsx)(s.Z,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(s.Z,{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 o(){return(0,i.jsx)(a.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.Z,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.Z,{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."})}}}]); \ No newline at end of file diff --git a/assets/js/6a40fd04.888292b4.js b/assets/js/6a40fd04.e691f641.js similarity index 84% rename from assets/js/6a40fd04.888292b4.js rename to assets/js/6a40fd04.e691f641.js index 2bf2b4083..8d453b8be 100644 --- a/assets/js/6a40fd04.888292b4.js +++ b/assets/js/6a40fd04.e691f641.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5736],{3599:a=>{a.exports=JSON.parse('{"tag":{"label":"renaming app","permalink":"/blog/tags/renaming-app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/renaming-app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6590],{8993:a=>{a.exports=JSON.parse('{"tag":{"label":"renaming app","permalink":"/blog/tags/renaming-app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/renaming-app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6bbbce94.a8e63d10.js b/assets/js/6bbbce94.3031c57c.js similarity index 84% rename from assets/js/6bbbce94.a8e63d10.js rename to assets/js/6bbbce94.3031c57c.js index 8520c4a9f..8f30490c6 100644 --- a/assets/js/6bbbce94.a8e63d10.js +++ b/assets/js/6bbbce94.3031c57c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2639],{2976:a=>{a.exports=JSON.parse('{"tag":{"label":"family-friendly","permalink":"/blog/tags/family-friendly","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/family-friendly","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9636],{3127:a=>{a.exports=JSON.parse('{"tag":{"label":"family-friendly","permalink":"/blog/tags/family-friendly","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/family-friendly","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6e64f266.2141b30d.js b/assets/js/6e64f266.2141b30d.js deleted file mode 100644 index a606d69ac..000000000 --- a/assets/js/6e64f266.2141b30d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5781],{8076:a=>{a.exports=JSON.parse('{"tag":{"label":"documentation migration","permalink":"/blog/tags/documentation-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/documentation-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6e64f266.fc6f6795.js b/assets/js/6e64f266.fc6f6795.js new file mode 100644 index 000000000..09f74060b --- /dev/null +++ b/assets/js/6e64f266.fc6f6795.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[902],{6508:a=>{a.exports=JSON.parse('{"tag":{"label":"documentation migration","permalink":"/blog/tags/documentation-migration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/documentation-migration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/6ff2a8aa.2304b994.js b/assets/js/6ff2a8aa.92814a6d.js similarity index 83% rename from assets/js/6ff2a8aa.2304b994.js rename to assets/js/6ff2a8aa.92814a6d.js index e39c76e9c..dcba12acf 100644 --- a/assets/js/6ff2a8aa.2304b994.js +++ b/assets/js/6ff2a8aa.92814a6d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7773],{1399:l=>{l.exports=JSON.parse('{"tag":{"label":"poll","permalink":"/blog/tags/poll","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/poll","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1474],{1624:l=>{l.exports=JSON.parse('{"tag":{"label":"poll","permalink":"/blog/tags/poll","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/poll","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/71f025ea.2ce78be7.js b/assets/js/71f025ea.2ce78be7.js new file mode 100644 index 000000000..09ba770c1 --- /dev/null +++ b/assets/js/71f025ea.2ce78be7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2124],{6381:a=>{a.exports=JSON.parse('{"tag":{"label":"community-driven","permalink":"/blog/tags/community-driven","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-driven","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/71f025ea.6f40bb5d.js b/assets/js/71f025ea.6f40bb5d.js deleted file mode 100644 index 310b4856d..000000000 --- a/assets/js/71f025ea.6f40bb5d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[121],{389:a=>{a.exports=JSON.parse('{"tag":{"label":"community-driven","permalink":"/blog/tags/community-driven","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-driven","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/71f72e4c.07d644c6.js b/assets/js/71f72e4c.32e2dadb.js similarity index 84% rename from assets/js/71f72e4c.07d644c6.js rename to assets/js/71f72e4c.32e2dadb.js index 674ddb3c6..03ada203d 100644 --- a/assets/js/71f72e4c.07d644c6.js +++ b/assets/js/71f72e4c.32e2dadb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7523],{5572:a=>{a.exports=JSON.parse('{"tag":{"label":"updates","permalink":"/blog/tags/updates","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/updates","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8106],{4681:a=>{a.exports=JSON.parse('{"tag":{"label":"updates","permalink":"/blog/tags/updates","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/updates","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/73ad9a8e.49a59d01.js b/assets/js/73ad9a8e.49a59d01.js new file mode 100644 index 000000000..4236cf1aa --- /dev/null +++ b/assets/js/73ad9a8e.49a59d01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3629],{2533:e=>{e.exports=JSON.parse('{"tag":{"label":"theme","permalink":"/blog/tags/theme","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/theme","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/73ad9a8e.7e581625.js b/assets/js/73ad9a8e.7e581625.js deleted file mode 100644 index ee18fb306..000000000 --- a/assets/js/73ad9a8e.7e581625.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9096],{136:e=>{e.exports=JSON.parse('{"tag":{"label":"theme","permalink":"/blog/tags/theme","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/theme","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7424d9c3.01ede77c.js b/assets/js/7424d9c3.01ede77c.js new file mode 100644 index 000000000..b60c8a7db --- /dev/null +++ b/assets/js/7424d9c3.01ede77c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7703],{6731:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>s,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>t,toc:()=>u});var t=n(6944),i=n(6070),l=n(8591);const o={title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},r=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const a={a:"a",p:"p",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.p,{children:"Hello, everyone!"}),"\n",(0,i.jsxs)(a.p,{children:["We have an important announcement to share about our ",(0,i.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform's values. To make this decision-making process more convenient, we have created a poll with 100 potential names, suggested by you on our ",(0,i.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", some of which were generated by AI. Your participation in shaping the future of our platform is greatly appreciated."]}),"\n",(0,i.jsx)(a.p,{children:"We kindly request your support in selecting a new name for our gaming platform. The poll offers a variety of names, and we ask that you choose at least 10 names (10%) that appeal to you. By gathering diverse input and minimizing bias, we aim to create an inclusive and enjoyable experience for all users. We apologize if the current name has caused any discomfort, and we are committed to creating a welcoming environment for gamers."}),"\n",(0,i.jsxs)(a.p,{children:["To cast your votes and contribute to the selection of a new, family-friendly name for our ",(0,i.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, please click on the link provided at the end of this post. Your voice matters, and together, we can find a name that truly represents our app's essence. The results will be announced on this blog around July 15, 2023."]}),"\n",(0,i.jsx)(a.p,{children:"We sincerely appreciate your support and encourage you to stay tuned for updates as we continue to improve our platform based on your valuable feedback."}),"\n",(0,i.jsxs)(a.p,{children:["Link to the poll: ",(0,i.jsx)(a.a,{href:"https://forms.gle/cYsURG6BqMXcxE3B8",children:"https://forms.gle/cYsURG6BqMXcxE3B8"})]}),"\n",(0,i.jsx)(a.p,{children:"Happy voting!"})]})}function c(e={}){const{wrapper:a}={...(0,l.R)(),...e.components};return a?(0,i.jsx)(a,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}},8591:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>r});var t=n(758);const i={},l=t.createContext(i);function o(e){const a=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(l.Provider,{value:a},e.children)}},6944:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/08/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md","source":"@site/blog/2023-07-08.md","title":"Choosing a New, Family-Friendly Name for this project!","description":"Hello, everyone!","date":"2023-07-08T00:00:00.000Z","tags":[{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"gaming platform","permalink":"/blog/tags/gaming-platform"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"new name","permalink":"/blog/tags/new-name"},{"inline":true,"label":"family-friendly","permalink":"/blog/tags/family-friendly"},{"inline":true,"label":"poll","permalink":"/blog/tags/poll"},{"inline":true,"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"inclusivity","permalink":"/blog/tags/inclusivity"},{"inline":true,"label":"user participation","permalink":"/blog/tags/user-participation"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"decision-making","permalink":"/blog/tags/decision-making"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"platform values","permalink":"/blog/tags/platform-values"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"future development","permalink":"/blog/tags/future-development"}],"readingTime":1.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Choosing a New, Family-Friendly Name for this project!","authors":["alfagun74"],"tags":["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},"unlisted":false,"prevItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"},"nextItem":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/"}}')}}]); \ No newline at end of file diff --git a/assets/js/7424d9c3.3f5cb2ce.js b/assets/js/7424d9c3.3f5cb2ce.js deleted file mode 100644 index e81de8fac..000000000 --- a/assets/js/7424d9c3.3f5cb2ce.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9268],{2903:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var t=n(2676),i=n(8358);const l={title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},o=void 0,r={permalink:"/blog/2023/07/08/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md",source:"@site/blog/2023-07-08.md",title:"Choosing a New, Family-Friendly Name for this project!",description:"Hello, everyone!",date:"2023-07-08T00:00:00.000Z",tags:[{inline:!0,label:"source-available",permalink:"/blog/tags/source-available"},{inline:!0,label:"gaming platform",permalink:"/blog/tags/gaming-platform"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"new name",permalink:"/blog/tags/new-name"},{inline:!0,label:"family-friendly",permalink:"/blog/tags/family-friendly"},{inline:!0,label:"poll",permalink:"/blog/tags/poll"},{inline:!0,label:"AI-generated names",permalink:"/blog/tags/ai-generated-names"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"inclusivity",permalink:"/blog/tags/inclusivity"},{inline:!0,label:"user participation",permalink:"/blog/tags/user-participation"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"},{inline:!0,label:"decision-making",permalink:"/blog/tags/decision-making"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"platform values",permalink:"/blog/tags/platform-values"},{inline:!0,label:"voting",permalink:"/blog/tags/voting"},{inline:!0,label:"future development",permalink:"/blog/tags/future-development"}],readingTime:1.26,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},unlisted:!1,prevItem:{title:"Battling Harassment and Trolls in Our App Community",permalink:"/blog/2023/07/09/"},nextItem:{title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",permalink:"/blog/2023/07/01/"}},s={authorsImageUrls:[void 0]},m=[];function c(e){const a={a:"a",p:"p",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.p,{children:"Hello, everyone!"}),"\n",(0,t.jsxs)(a.p,{children:["We have an important announcement to share about our ",(0,t.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform's values. To make this decision-making process more convenient, we have created a poll with 100 potential names, suggested by you on our ",(0,t.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", some of which were generated by AI. Your participation in shaping the future of our platform is greatly appreciated."]}),"\n",(0,t.jsx)(a.p,{children:"We kindly request your support in selecting a new name for our gaming platform. The poll offers a variety of names, and we ask that you choose at least 10 names (10%) that appeal to you. By gathering diverse input and minimizing bias, we aim to create an inclusive and enjoyable experience for all users. We apologize if the current name has caused any discomfort, and we are committed to creating a welcoming environment for gamers."}),"\n",(0,t.jsxs)(a.p,{children:["To cast your votes and contribute to the selection of a new, family-friendly name for our ",(0,t.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, please click on the link provided at the end of this post. Your voice matters, and together, we can find a name that truly represents our app's essence. The results will be announced on this blog around July 15, 2023."]}),"\n",(0,t.jsx)(a.p,{children:"We sincerely appreciate your support and encourage you to stay tuned for updates as we continue to improve our platform based on your valuable feedback."}),"\n",(0,t.jsxs)(a.p,{children:["Link to the poll: ",(0,t.jsx)(a.a,{href:"https://forms.gle/cYsURG6BqMXcxE3B8",children:"https://forms.gle/cYsURG6BqMXcxE3B8"})]}),"\n",(0,t.jsx)(a.p,{children:"Happy voting!"})]})}function u(e={}){const{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>o});var t=n(5271);const i={},l=t.createContext(i);function o(e){const a=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7486ddfc.bb66f90e.js b/assets/js/7486ddfc.bb66f90e.js deleted file mode 100644 index 50c1a128b..000000000 --- a/assets/js/7486ddfc.bb66f90e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8437],{7734:e=>{e.exports=JSON.parse('{"tag":{"label":"November Update","permalink":"/blog/tags/november-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/november-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7486ddfc.f88d6585.js b/assets/js/7486ddfc.f88d6585.js new file mode 100644 index 000000000..2d666f8a7 --- /dev/null +++ b/assets/js/7486ddfc.f88d6585.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6053],{460:e=>{e.exports=JSON.parse('{"tag":{"label":"November Update","permalink":"/blog/tags/november-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/november-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7489ed02.06343463.js b/assets/js/7489ed02.06343463.js deleted file mode 100644 index e93ea31fb..000000000 --- a/assets/js/7489ed02.06343463.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6515],{1173:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>m});var l=t(2676),n=t(8358);const i={title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},r=void 0,o={permalink:"/blog/2023/07/01/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md",source:"@site/blog/2023-07-01.md",title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",description:"Hey Guys,",date:"2023-07-01T00:00:00.000Z",tags:[{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"source-available",permalink:"/blog/tags/source-available"},{inline:!0,label:"self-hosted",permalink:"/blog/tags/self-hosted"},{inline:!0,label:"alternative",permalink:"/blog/tags/alternative"},{inline:!0,label:"cloud-based game platforms",permalink:"/blog/tags/cloud-based-game-platforms"},{inline:!0,label:"DRM-free games",permalink:"/blog/tags/drm-free-games"},{inline:!0,label:"file server",permalink:"/blog/tags/file-server"},{inline:!0,label:"multi-user authentication",permalink:"/blog/tags/multi-user-authentication"},{inline:!0,label:"metadata",permalink:"/blog/tags/metadata"},{inline:!0,label:"RAWG API",permalink:"/blog/tags/rawg-api"},{inline:!0,label:"health monitoring",permalink:"/blog/tags/health-monitoring"},{inline:!0,label:"API",permalink:"/blog/tags/api"},{inline:!0,label:"Discord server",permalink:"/blog/tags/discord-server"},{inline:!0,label:"Reddit forum",permalink:"/blog/tags/reddit-forum"},{inline:!0,label:"Lemmy forum",permalink:"/blog/tags/lemmy-forum"}],readingTime:1.78,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},unlisted:!1,prevItem:{title:"Choosing a New, Family-Friendly Name for this project!",permalink:"/blog/2023/07/08/"}},s={authorsImageUrls:[void 0]},m=[];function g(e){const a={p:"p",...(0,n.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.p,{children:"Hey Guys,"}),"\n",(0,l.jsx)(a.p,{children:"Our team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community."})]})}function u(e={}){const{wrapper:a}={...(0,n.a)(),...e.components};return a?(0,l.jsx)(a,{...e,children:(0,l.jsx)(g,{...e})}):g(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>o,a:()=>r});var l=t(5271);const n={},i=l.createContext(n);function r(e){const a=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),l.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7489ed02.f3248100.js b/assets/js/7489ed02.f3248100.js new file mode 100644 index 000000000..637063f6c --- /dev/null +++ b/assets/js/7489ed02.f3248100.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8354],{4440:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var l=t(5518),r=t(6070),n=t(8591);const i={title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},o=void 0,s={authorsImageUrls:[void 0]},m=[];function u(e){const a={p:"p",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.p,{children:"Hey Guys,"}),"\n",(0,r.jsx)(a.p,{children:"Our team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community."})]})}function g(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},8591:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var l=t(758);const r={},n=l.createContext(r);function i(e){const a=l.useContext(n);return l.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),l.createElement(n.Provider,{value:a},e.children)}},5518:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md","source":"@site/blog/2023-07-01.md","title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","description":"Hey Guys,","date":"2023-07-01T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"alternative","permalink":"/blog/tags/alternative"},{"inline":true,"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms"},{"inline":true,"label":"DRM-free games","permalink":"/blog/tags/drm-free-games"},{"inline":true,"label":"file server","permalink":"/blog/tags/file-server"},{"inline":true,"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"RAWG API","permalink":"/blog/tags/rawg-api"},{"inline":true,"label":"health monitoring","permalink":"/blog/tags/health-monitoring"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"Discord server","permalink":"/blog/tags/discord-server"},{"inline":true,"label":"Reddit forum","permalink":"/blog/tags/reddit-forum"},{"inline":true,"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum"}],"readingTime":1.78,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","authors":["alfagun74"],"tags":["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},"unlisted":false,"prevItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}}')}}]); \ No newline at end of file diff --git a/assets/js/751a244a.7c13fc97.js b/assets/js/751a244a.7c13fc97.js new file mode 100644 index 000000000..4524b8668 --- /dev/null +++ b/assets/js/751a244a.7c13fc97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9514],{584:a=>{a.exports=JSON.parse('{"tag":{"label":"community management","permalink":"/blog/tags/community-management","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-management","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/751a244a.99de35a7.js b/assets/js/751a244a.99de35a7.js deleted file mode 100644 index 1b2ee0253..000000000 --- a/assets/js/751a244a.99de35a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9041],{2108:a=>{a.exports=JSON.parse('{"tag":{"label":"community management","permalink":"/blog/tags/community-management","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community-management","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7558b7a2.df837680.js b/assets/js/7558b7a2.a9d5ae10.js similarity index 85% rename from assets/js/7558b7a2.df837680.js rename to assets/js/7558b7a2.a9d5ae10.js index 2da05e2a5..a2f22b46c 100644 --- a/assets/js/7558b7a2.df837680.js +++ b/assets/js/7558b7a2.a9d5ae10.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4327],{1416:a=>{a.exports=JSON.parse('{"tag":{"label":"transition process","permalink":"/blog/tags/transition-process","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/transition-process","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7400],{2016:a=>{a.exports=JSON.parse('{"tag":{"label":"transition process","permalink":"/blog/tags/transition-process","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/transition-process","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7576ca6a.ca031a19.js b/assets/js/7576ca6a.ca031a19.js deleted file mode 100644 index 67f7e3c19..000000000 --- a/assets/js/7576ca6a.ca031a19.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3236],{6467:a=>{a.exports=JSON.parse('{"tag":{"label":"video games","permalink":"/blog/tags/video-games","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/video-games","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5ac1a9ec.ee9e635b.js b/assets/js/7576ca6a.f5ca8cb5.js similarity index 53% rename from assets/js/5ac1a9ec.ee9e635b.js rename to assets/js/7576ca6a.f5ca8cb5.js index d954e0549..a6376ac12 100644 --- a/assets/js/5ac1a9ec.ee9e635b.js +++ b/assets/js/7576ca6a.f5ca8cb5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2518],{139:a=>{a.exports=JSON.parse('{"tag":{"label":"alternative","permalink":"/blog/tags/alternative","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/alternative","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[135],{4970:a=>{a.exports=JSON.parse('{"tag":{"label":"video games","permalink":"/blog/tags/video-games","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/video-games","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7754063d.2f94657f.js b/assets/js/7754063d.4e7b3133.js similarity index 85% rename from assets/js/7754063d.2f94657f.js rename to assets/js/7754063d.4e7b3133.js index d5b4ae957..65111be85 100644 --- a/assets/js/7754063d.2f94657f.js +++ b/assets/js/7754063d.4e7b3133.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3116],{1552:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-journey","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8341],{7565:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-journey","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/77a8abe0.6cee7d2b.js b/assets/js/77a8abe0.6cee7d2b.js deleted file mode 100644 index aa4c35a33..000000000 --- a/assets/js/77a8abe0.6cee7d2b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9348],{134:t=>{t.exports=JSON.parse('{"tag":{"label":"continued support","permalink":"/blog/tags/continued-support","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/continued-support","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/77a8abe0.b52c3a5b.js b/assets/js/77a8abe0.b52c3a5b.js new file mode 100644 index 000000000..8f17d73fd --- /dev/null +++ b/assets/js/77a8abe0.b52c3a5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4404],{3021:t=>{t.exports=JSON.parse('{"tag":{"label":"continued support","permalink":"/blog/tags/continued-support","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/continued-support","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/77f7e459.a29ad4a7.js b/assets/js/77f7e459.a37cfdfd.js similarity index 84% rename from assets/js/77f7e459.a29ad4a7.js rename to assets/js/77f7e459.a37cfdfd.js index 9f71da688..fe8b43eae 100644 --- a/assets/js/77f7e459.a29ad4a7.js +++ b/assets/js/77f7e459.a37cfdfd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5805],{9919:a=>{a.exports=JSON.parse('{"tag":{"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/git-hub-issue","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3973],{9912:a=>{a.exports=JSON.parse('{"tag":{"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/git-hub-issue","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7864c493.9645bd45.js b/assets/js/7864c493.9645bd45.js deleted file mode 100644 index a4090cac5..000000000 --- a/assets/js/7864c493.9645bd45.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[111],{2941:a=>{a.exports=JSON.parse('{"tag":{"label":"blackmail","permalink":"/blog/tags/blackmail","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/blackmail","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7864c493.9ddb930d.js b/assets/js/7864c493.9ddb930d.js new file mode 100644 index 000000000..cd36b5109 --- /dev/null +++ b/assets/js/7864c493.9ddb930d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7457],{2565:a=>{a.exports=JSON.parse('{"tag":{"label":"blackmail","permalink":"/blog/tags/blackmail","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/blackmail","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7a0110f5.3ab6f421.js b/assets/js/7a0110f5.3ab6f421.js deleted file mode 100644 index 8d3777c3f..000000000 --- a/assets/js/7a0110f5.3ab6f421.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2777],{330:a=>{a.exports=JSON.parse('{"tag":{"label":"gaming platform","permalink":"/blog/tags/gaming-platform","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-platform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7a0110f5.45ceabe8.js b/assets/js/7a0110f5.45ceabe8.js new file mode 100644 index 000000000..09674ac19 --- /dev/null +++ b/assets/js/7a0110f5.45ceabe8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7530],{9714:a=>{a.exports=JSON.parse('{"tag":{"label":"gaming platform","permalink":"/blog/tags/gaming-platform","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-platform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7b99d5ba.a1b49a5b.js b/assets/js/7b99d5ba.a1b49a5b.js deleted file mode 100644 index ebca1a8e6..000000000 --- a/assets/js/7b99d5ba.a1b49a5b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1383],{5538:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>r,toc:()=>p});var t=n(2676),l=n(8358);const i={title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},s=void 0,r={permalink:"/blog/2023/07/09/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md",source:"@site/blog/2023-07-09.md",title:"Battling Harassment and Trolls in Our App Community",description:"Hey folks,",date:"2023-07-09T00:00:00.000Z",tags:[{inline:!0,label:"harassment",permalink:"/blog/tags/harassment"},{inline:!0,label:"blackmail",permalink:"/blog/tags/blackmail"},{inline:!0,label:"threats",permalink:"/blog/tags/threats"},{inline:!0,label:"spam",permalink:"/blog/tags/spam"},{inline:!0,label:"trolls",permalink:"/blog/tags/trolls"},{inline:!0,label:"negative narratives",permalink:"/blog/tags/negative-narratives"},{inline:!0,label:"safe environment",permalink:"/blog/tags/safe-environment"},{inline:!0,label:"racist",permalink:"/blog/tags/racist"},{inline:!0,label:"developers",permalink:"/blog/tags/developers"},{inline:!0,label:"public",permalink:"/blog/tags/public"},{inline:!0,label:"creepy behavior",permalink:"/blog/tags/creepy-behavior"},{inline:!0,label:"app",permalink:"/blog/tags/app"},{inline:!0,label:"support",permalink:"/blog/tags/support"},{inline:!0,label:"financial assistance",permalink:"/blog/tags/financial-assistance"},{inline:!0,label:"motivation",permalink:"/blog/tags/motivation"},{inline:!0,label:"GameVault app",permalink:"/blog/tags/game-vault-app"},{inline:!0,label:"bugs",permalink:"/blog/tags/bugs"},{inline:!0,label:"feature requests",permalink:"/blog/tags/feature-requests"},{inline:!0,label:"improvement",permalink:"/blog/tags/improvement"},{inline:!0,label:"success",permalink:"/blog/tags/success"},{inline:!0,label:"engagement",permalink:"/blog/tags/engagement"}],readingTime:1.955,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},unlisted:!1,prevItem:{title:"A Closer Look at GameVaults 'Source-Available' Nature",permalink:"/blog/2023/07/13/"},nextItem:{title:"Choosing a New, Family-Friendly Name for this project!",permalink:"/blog/2023/07/08/"}},o={authorsImageUrls:[void 0]},p=[];function m(e){const a={p:"p",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.p,{children:"Hey folks,"}),"\n",(0,t.jsx)(a.p,{children:"We have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us."})]})}function g(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(m,{...e})}):m(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>s});var t=n(5271);const l={},i=t.createContext(l);function s(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7b99d5ba.ca363ec4.js b/assets/js/7b99d5ba.ca363ec4.js new file mode 100644 index 000000000..7ac6d1517 --- /dev/null +++ b/assets/js/7b99d5ba.ca363ec4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5572],{2592:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>s,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>p});var n=t(1663),l=t(6070),i=t(8591);const r={title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},s=void 0,o={authorsImageUrls:[void 0]},p=[];function u(e){const a={p:"p",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.p,{children:"Hey folks,"}),"\n",(0,l.jsx)(a.p,{children:"We have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us."})]})}function m(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,l.jsx)(a,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>s});var n=t(758);const l={},i=n.createContext(l);function r(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),n.createElement(i.Provider,{value:a},e.children)}},1663:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md","source":"@site/blog/2023-07-09.md","title":"Battling Harassment and Trolls in Our App Community","description":"Hey folks,","date":"2023-07-09T00:00:00.000Z","tags":[{"inline":true,"label":"harassment","permalink":"/blog/tags/harassment"},{"inline":true,"label":"blackmail","permalink":"/blog/tags/blackmail"},{"inline":true,"label":"threats","permalink":"/blog/tags/threats"},{"inline":true,"label":"spam","permalink":"/blog/tags/spam"},{"inline":true,"label":"trolls","permalink":"/blog/tags/trolls"},{"inline":true,"label":"negative narratives","permalink":"/blog/tags/negative-narratives"},{"inline":true,"label":"safe environment","permalink":"/blog/tags/safe-environment"},{"inline":true,"label":"racist","permalink":"/blog/tags/racist"},{"inline":true,"label":"developers","permalink":"/blog/tags/developers"},{"inline":true,"label":"public","permalink":"/blog/tags/public"},{"inline":true,"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior"},{"inline":true,"label":"app","permalink":"/blog/tags/app"},{"inline":true,"label":"support","permalink":"/blog/tags/support"},{"inline":true,"label":"financial assistance","permalink":"/blog/tags/financial-assistance"},{"inline":true,"label":"motivation","permalink":"/blog/tags/motivation"},{"inline":true,"label":"GameVault app","permalink":"/blog/tags/game-vault-app"},{"inline":true,"label":"bugs","permalink":"/blog/tags/bugs"},{"inline":true,"label":"feature requests","permalink":"/blog/tags/feature-requests"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"success","permalink":"/blog/tags/success"},{"inline":true,"label":"engagement","permalink":"/blog/tags/engagement"}],"readingTime":1.955,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Battling Harassment and Trolls in Our App Community","authors":["alfagun74"],"tags":["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},"unlisted":false,"prevItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"},"nextItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}}')}}]); \ No newline at end of file diff --git a/assets/js/7c4a7780.96b1e592.js b/assets/js/7c4a7780.44b4fffc.js similarity index 85% rename from assets/js/7c4a7780.96b1e592.js rename to assets/js/7c4a7780.44b4fffc.js index 4f2783f39..ab32469de 100644 --- a/assets/js/7c4a7780.96b1e592.js +++ b/assets/js/7c4a7780.44b4fffc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5074],{6765:e=>{e.exports=JSON.parse('{"tag":{"label":"gaming experience","permalink":"/blog/tags/gaming-experience","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-experience","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6410],{4965:e=>{e.exports=JSON.parse('{"tag":{"label":"gaming experience","permalink":"/blog/tags/gaming-experience","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-experience","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/7ef69c2b.14d18f74.js b/assets/js/7ef69c2b.14d18f74.js deleted file mode 100644 index 77a590e24..000000000 --- a/assets/js/7ef69c2b.14d18f74.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7020],{7534:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var n=a(2676),l=a(8358);const o={title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},r=void 0,i={permalink:"/blog/2024/10/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md",source:"@site/blog/2024-10-20.md",title:"An update so major, we could have built the product from scratch.",description:"Hello, GameVault Community!",date:"2024-10-20T00:00:00.000Z",tags:[{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"Client Update",permalink:"/blog/tags/client-update"},{inline:!0,label:"Server Update",permalink:"/blog/tags/server-update"},{inline:!0,label:"metadata framework",permalink:"/blog/tags/metadata-framework"},{inline:!0,label:"plugin system",permalink:"/blog/tags/plugin-system"},{inline:!0,label:"parental control",permalink:"/blog/tags/parental-control"},{inline:!0,label:"age restrictions",permalink:"/blog/tags/age-restrictions"},{inline:!0,label:"theme",permalink:"/blog/tags/theme"},{inline:!0,label:"app optimization",permalink:"/blog/tags/app-optimization"},{inline:!0,label:"analytics",permalink:"/blog/tags/analytics"},{inline:!0,label:"notes",permalink:"/blog/tags/notes"},{inline:!0,label:"community management",permalink:"/blog/tags/community-management"}],readingTime:2.515,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},unlisted:!1,nextItem:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",permalink:"/blog/2024/05/07/"}},s={authorsImageUrls:[void 0]},m=[];function u(e){const t={p:"p",strong:"strong",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Hello, GameVault Community!"})}),"\n",(0,n.jsxs)(t.p,{children:["After six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: ",(0,n.jsx)(t.strong,{children:"GameVault Client v1.12"})," and ",(0,n.jsx)(t.strong,{children:"GameVault Server v13"}),"! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered."]})]})}function c(e={}){const{wrapper:t}={...(0,l.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>i,a:()=>r});var n=a(5271);const l={},o=n.createContext(l);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ef69c2b.a4f60197.js b/assets/js/7ef69c2b.a4f60197.js new file mode 100644 index 000000000..0a4773c6d --- /dev/null +++ b/assets/js/7ef69c2b.a4f60197.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6755],{9988:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>n,toc:()=>m});var n=a(7666),l=a(6070),r=a(8591);const o={title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},i=void 0,s={authorsImageUrls:[void 0]},m=[];function u(e){const t={p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.p,{children:(0,l.jsx)(t.strong,{children:"Hello, GameVault Community!"})}),"\n",(0,l.jsxs)(t.p,{children:["After six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: ",(0,l.jsx)(t.strong,{children:"GameVault Client v1.12"})," and ",(0,l.jsx)(t.strong,{children:"GameVault Server v13"}),"! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered."]})]})}function c(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(758);const l={},r=n.createContext(l);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},7666:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/10/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md","source":"@site/blog/2024-10-20.md","title":"An update so major, we could have built the product from scratch.","description":"Hello, GameVault Community!","date":"2024-10-20T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Client Update","permalink":"/blog/tags/client-update"},{"inline":true,"label":"Server Update","permalink":"/blog/tags/server-update"},{"inline":true,"label":"metadata framework","permalink":"/blog/tags/metadata-framework"},{"inline":true,"label":"plugin system","permalink":"/blog/tags/plugin-system"},{"inline":true,"label":"parental control","permalink":"/blog/tags/parental-control"},{"inline":true,"label":"age restrictions","permalink":"/blog/tags/age-restrictions"},{"inline":true,"label":"theme","permalink":"/blog/tags/theme"},{"inline":true,"label":"app optimization","permalink":"/blog/tags/app-optimization"},{"inline":true,"label":"analytics","permalink":"/blog/tags/analytics"},{"inline":true,"label":"notes","permalink":"/blog/tags/notes"},{"inline":true,"label":"community management","permalink":"/blog/tags/community-management"}],"readingTime":2.515,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"An update so major, we could have built the product from scratch.","authors":["alfagun74"],"tags":["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},"unlisted":false,"nextItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"}}')}}]); \ No newline at end of file diff --git a/assets/js/80292675.2227e39e.js b/assets/js/80292675.2227e39e.js deleted file mode 100644 index 33e8604c7..000000000 --- a/assets/js/80292675.2227e39e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6487],{6905:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var i=n(2676),s=n(8358);const a={title:"Using UNRAID",sidebar_position:5},r=void 0,o={id:"server-docs/setup/unraid",title:"Using UNRAID",description:"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.",source:"@site/docs/server-docs/setup/unraid.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/unraid",permalink:"/docs/server-docs/setup/unraid",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/unraid.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:5,frontMatter:{title:"Using UNRAID",sidebar_position:5},sidebar:"docs",previous:{title:"Using TrueNAS Scale",permalink:"/docs/server-docs/setup/truenas-scale"},next:{title:"Using Synology Container Manager",permalink:"/docs/server-docs/setup/synology-container-manager"}},l={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Setting up the Database",id:"step-1-setting-up-the-database",level:2},{value:"Step 2: Install POSTGRES",id:"step-2-install-postgres",level:2},{value:"Step 3: Setting up your GameVault Backend server",id:"step-3-setting-up-your-gamevault-backend-server",level:2},{value:"Alternative Step 3: Running without a PostgreSQL Database",id:"alternative-step-3-running-without-a-postgresql-database",level:3},{value:"Step 4: Configure install",id:"step-4-configure-install",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers."}),"\n",(0,i.jsx)(t.p,{children:"You can easily set up a GameVault Server by using one of our templates from the Unraid Community Applications Store."}),"\n",(0,i.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"UNRAID Server Running"}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://forums.unraid.net/topic/38582-plug-in-community-applications",children:"Community Applications Plugin installed"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"step-1-setting-up-the-database",children:"Step 1: Setting up the Database"}),"\n",(0,i.jsxs)(t.p,{children:["Log into your Unraid dashboard and navigate to your apps section of the dashboard and search for the offical ",(0,i.jsx)(t.code,{children:"postgresql15"})," Community Application by ",(0,i.jsx)(t.code,{children:"postgres"})]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 1",src:n(4580).Z+"",width:"1216",height:"721"})}),"\n",(0,i.jsx)(t.h2,{id:"step-2-install-postgres",children:"Step 2: Install POSTGRES"}),"\n",(0,i.jsx)(t.p,{children:"Using the default configuration making sure you add the following entries:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-yaml",children:"POSTGRES_USER: gamevault\nPOSTGRES_PASSWORD: RANDOMPASSWORD\nPOSTGRES_DB: gamevault\n"})}),"\n",(0,i.jsx)(t.p,{children:"Make sure you remember the password and port you set we will use this in step 3"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 2",src:n(5014).Z+"",width:"1531",height:"796"})}),"\n",(0,i.jsx)(t.h2,{id:"step-3-setting-up-your-gamevault-backend-server",children:"Step 3: Setting up your GameVault Backend server"}),"\n",(0,i.jsxs)(t.p,{children:["Search for ",(0,i.jsx)(t.code,{children:"gamevault-backend"})," on the Unraid app store making sure to click the one without the SQLITE in the title."]}),"\n",(0,i.jsx)(t.p,{children:"Click install"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 3",src:n(1183).Z+"",width:"1417",height:"758"})}),"\n",(0,i.jsx)(t.h3,{id:"alternative-step-3-running-without-a-postgresql-database",children:"Alternative Step 3: Running without a PostgreSQL Database"}),"\n",(0,i.jsxs)(t.p,{children:["We don't recommend it but you can run GameVault without a PostgreSQL Database too by instead using the ",(0,i.jsx)(t.code,{children:"GameVault-Backend-SQLITE"})," template by ",(0,i.jsx)(t.code,{children:"phalcode"})," in Step 2."]}),"\n",(0,i.jsx)(t.h2,{id:"step-4-configure-install",children:"Step 4: Configure install"}),"\n",(0,i.jsx)(t.p,{children:"Using the password and port fill out the information that is required and click apply at the bottom."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 4",src:n(2312).Z+"",width:"1920",height:"2011"})}),"\n",(0,i.jsxs)(t.p,{children:["Your GameVault should now be available at ",(0,i.jsx)(t.code,{children:"http://tower.local:8080/"})," or ",(0,i.jsx)(t.code,{children:"HOSTNAME:PORT"})," if you changed your hostname or port."]}),"\n",(0,i.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,i.jsx)(t.p,{children:"You have now successfully set up your GameVault Server using UNRAID."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,i.jsx)(t.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,i.jsx)(t.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,i.jsx)(t.p,{children:'Navigate to "Docker" tab and left click the GameVault app icon you have created.'}),"\n",(0,i.jsx)(t.p,{children:'Click on "Stop".'}),"\n",(0,i.jsx)(t.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,i.jsx)(t.p,{children:'Navigate to "Docker" tab and left click the GameVault app icon you have created.'}),"\n",(0,i.jsx)(t.p,{children:'Click on "Logs".'}),"\n",(0,i.jsx)(t.p,{children:"This should bring a pop-up window of the currently logs of the server."})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},4580:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/unraid1-ecd3a145196f65e0e6cca91aa7d48c7a.png"},5014:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/unraid2-fc2ab34ce802e69e4299c978335688d4.png"},1183:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/unraid3-1d0d4deaa54688b0dccb2bbdf15ea71f.png"},2312:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/unraid4-320f323ddb9e5652a93b19f4d9058c52.png"},8358:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var i=n(5271);const s={},a=i.createContext(s);function r(e){const t=i.useContext(a);return i.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(s):e.components||s:r(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80292675.8e7294e1.js b/assets/js/80292675.8e7294e1.js new file mode 100644 index 000000000..93eb2cd45 --- /dev/null +++ b/assets/js/80292675.8e7294e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3716],{8656:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"server-docs/setup/unraid","title":"Using UNRAID","description":"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.","source":"@site/docs/server-docs/setup/unraid.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/unraid","permalink":"/docs/server-docs/setup/unraid","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/unraid.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":5,"frontMatter":{"title":"Using UNRAID","sidebar_position":5},"sidebar":"docs","previous":{"title":"Using TrueNAS Scale","permalink":"/docs/server-docs/setup/truenas-scale"},"next":{"title":"Using Synology Container Manager","permalink":"/docs/server-docs/setup/synology-container-manager"}}');var i=n(6070),a=n(8591);const r={title:"Using UNRAID",sidebar_position:5},o=void 0,l={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Setting up the Database",id:"step-1-setting-up-the-database",level:2},{value:"Step 2: Install POSTGRES",id:"step-2-install-postgres",level:2},{value:"Step 3: Setting up your GameVault Backend server",id:"step-3-setting-up-your-gamevault-backend-server",level:2},{value:"Alternative Step 3: Running without a PostgreSQL Database",id:"alternative-step-3-running-without-a-postgresql-database",level:3},{value:"Step 4: Configure install",id:"step-4-configure-install",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers."}),"\n",(0,i.jsx)(t.p,{children:"You can easily set up a GameVault Server by using one of our templates from the Unraid Community Applications Store."}),"\n",(0,i.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"UNRAID Server Running"}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://forums.unraid.net/topic/38582-plug-in-community-applications",children:"Community Applications Plugin installed"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"step-1-setting-up-the-database",children:"Step 1: Setting up the Database"}),"\n",(0,i.jsxs)(t.p,{children:["Log into your Unraid dashboard and navigate to your apps section of the dashboard and search for the offical ",(0,i.jsx)(t.code,{children:"postgresql15"})," Community Application by ",(0,i.jsx)(t.code,{children:"postgres"})]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 1",src:n(6302).A+"",width:"1216",height:"721"})}),"\n",(0,i.jsx)(t.h2,{id:"step-2-install-postgres",children:"Step 2: Install POSTGRES"}),"\n",(0,i.jsx)(t.p,{children:"Using the default configuration making sure you add the following entries:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-yaml",children:"POSTGRES_USER: gamevault\nPOSTGRES_PASSWORD: RANDOMPASSWORD\nPOSTGRES_DB: gamevault\n"})}),"\n",(0,i.jsx)(t.p,{children:"Make sure you remember the password and port you set we will use this in step 3"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 2",src:n(8405).A+"",width:"1531",height:"796"})}),"\n",(0,i.jsx)(t.h2,{id:"step-3-setting-up-your-gamevault-backend-server",children:"Step 3: Setting up your GameVault Backend server"}),"\n",(0,i.jsxs)(t.p,{children:["Search for ",(0,i.jsx)(t.code,{children:"gamevault-backend"})," on the Unraid app store making sure to click the one without the SQLITE in the title."]}),"\n",(0,i.jsx)(t.p,{children:"Click install"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 3",src:n(3135).A+"",width:"1417",height:"758"})}),"\n",(0,i.jsx)(t.h3,{id:"alternative-step-3-running-without-a-postgresql-database",children:"Alternative Step 3: Running without a PostgreSQL Database"}),"\n",(0,i.jsxs)(t.p,{children:["We don't recommend it but you can run GameVault without a PostgreSQL Database too by instead using the ",(0,i.jsx)(t.code,{children:"GameVault-Backend-SQLITE"})," template by ",(0,i.jsx)(t.code,{children:"phalcode"})," in Step 2."]}),"\n",(0,i.jsx)(t.h2,{id:"step-4-configure-install",children:"Step 4: Configure install"}),"\n",(0,i.jsx)(t.p,{children:"Using the password and port fill out the information that is required and click apply at the bottom."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Step 4",src:n(5683).A+"",width:"1920",height:"2011"})}),"\n",(0,i.jsxs)(t.p,{children:["Your GameVault should now be available at ",(0,i.jsx)(t.code,{children:"http://tower.local:8080/"})," or ",(0,i.jsx)(t.code,{children:"HOSTNAME:PORT"})," if you changed your hostname or port."]}),"\n",(0,i.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,i.jsx)(t.p,{children:"You have now successfully set up your GameVault Server using UNRAID."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,i.jsx)(t.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,i.jsx)(t.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,i.jsx)(t.p,{children:'Navigate to "Docker" tab and left click the GameVault app icon you have created.'}),"\n",(0,i.jsx)(t.p,{children:'Click on "Stop".'}),"\n",(0,i.jsx)(t.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,i.jsx)(t.p,{children:'Navigate to "Docker" tab and left click the GameVault app icon you have created.'}),"\n",(0,i.jsx)(t.p,{children:'Click on "Logs".'}),"\n",(0,i.jsx)(t.p,{children:"This should bring a pop-up window of the currently logs of the server."})]})}function u(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},6302:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/unraid1-ecd3a145196f65e0e6cca91aa7d48c7a.png"},8405:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/unraid2-fc2ab34ce802e69e4299c978335688d4.png"},3135:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/unraid3-1d0d4deaa54688b0dccb2bbdf15ea71f.png"},5683:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/unraid4-320f323ddb9e5652a93b19f4d9058c52.png"},8591:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(758);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);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(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80404bfe.243fe57b.js b/assets/js/80404bfe.243fe57b.js deleted file mode 100644 index 5e624ca45..000000000 --- a/assets/js/80404bfe.243fe57b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[962],{4600:e=>{e.exports=JSON.parse('{"tag":{"label":"feature requests","permalink":"/blog/tags/feature-requests","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/feature-requests","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/80404bfe.f9fc8cc9.js b/assets/js/80404bfe.f9fc8cc9.js new file mode 100644 index 000000000..4c80eaba2 --- /dev/null +++ b/assets/js/80404bfe.f9fc8cc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3134],{9894:e=>{e.exports=JSON.parse('{"tag":{"label":"feature requests","permalink":"/blog/tags/feature-requests","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/feature-requests","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/805ec11d.af062f68.js b/assets/js/805ec11d.f0716136.js similarity index 84% rename from assets/js/805ec11d.af062f68.js rename to assets/js/805ec11d.f0716136.js index 696f6e045..6525e6b45 100644 --- a/assets/js/805ec11d.af062f68.js +++ b/assets/js/805ec11d.f0716136.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5164],{3342:e=>{e.exports=JSON.parse('{"tag":{"label":"Server Update","permalink":"/blog/tags/server-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/server-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4974],{6913:e=>{e.exports=JSON.parse('{"tag":{"label":"Server Update","permalink":"/blog/tags/server-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/server-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.c8be6700.js b/assets/js/814f3328.858950a4.js similarity index 97% rename from assets/js/814f3328.c8be6700.js rename to assets/js/814f3328.858950a4.js index 94c19f09d..91eefe2c3 100644 --- a/assets/js/814f3328.c8be6700.js +++ b/assets/js/814f3328.858950a4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/","unlisted":false,"date":"2024-10-20T00:00:00.000Z"},{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/","unlisted":false,"date":"2024-05-07T00:00:00.000Z"},{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/","unlisted":false,"date":"2024-04-14T00:00:00.000Z"},{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/","unlisted":false,"date":"2024-04-01T00:00:00.000Z"},{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/","unlisted":false,"date":"2024-03-28T00:00:00.000Z"},{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/","unlisted":false,"date":"2023-12-09T00:00:00.000Z"},{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/","unlisted":false,"date":"2023-11-20T00:00:00.000Z"},{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/","unlisted":false,"date":"2023-07-29T00:00:00.000Z"},{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/","unlisted":false,"date":"2023-07-24T00:00:00.000Z"},{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/","unlisted":false,"date":"2023-07-20T00:00:00.000Z"},{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/","unlisted":false,"date":"2023-07-19T00:00:00.000Z"},{"title":"A New Name","permalink":"/blog/2023/07/15/","unlisted":false,"date":"2023-07-15T00:00:00.000Z"},{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/","unlisted":false,"date":"2023-07-13T00:00:00.000Z"},{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/","unlisted":false,"date":"2023-07-09T00:00:00.000Z"},{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/","unlisted":false,"date":"2023-07-08T00:00:00.000Z"},{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/","unlisted":false,"date":"2023-07-01T00:00:00.000Z"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/","unlisted":false,"date":"2024-10-20T00:00:00.000Z"},{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/","unlisted":false,"date":"2024-05-07T00:00:00.000Z"},{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/","unlisted":false,"date":"2024-04-14T00:00:00.000Z"},{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/","unlisted":false,"date":"2024-04-01T00:00:00.000Z"},{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/","unlisted":false,"date":"2024-03-28T00:00:00.000Z"},{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/","unlisted":false,"date":"2023-12-09T00:00:00.000Z"},{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/","unlisted":false,"date":"2023-11-20T00:00:00.000Z"},{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/","unlisted":false,"date":"2023-07-29T00:00:00.000Z"},{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/","unlisted":false,"date":"2023-07-24T00:00:00.000Z"},{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/","unlisted":false,"date":"2023-07-20T00:00:00.000Z"},{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/","unlisted":false,"date":"2023-07-19T00:00:00.000Z"},{"title":"A New Name","permalink":"/blog/2023/07/15/","unlisted":false,"date":"2023-07-15T00:00:00.000Z"},{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/","unlisted":false,"date":"2023-07-13T00:00:00.000Z"},{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/","unlisted":false,"date":"2023-07-09T00:00:00.000Z"},{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/","unlisted":false,"date":"2023-07-08T00:00:00.000Z"},{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/","unlisted":false,"date":"2023-07-01T00:00:00.000Z"}]}')}}]); \ No newline at end of file diff --git a/assets/js/8167ef7e.c203e135.js b/assets/js/8167ef7e.c203e135.js new file mode 100644 index 000000000..0525e31c2 --- /dev/null +++ b/assets/js/8167ef7e.c203e135.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6142],{7988:e=>{e.exports=JSON.parse('{"tag":{"label":"developers","permalink":"/blog/tags/developers","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/developers","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8167ef7e.e23acf96.js b/assets/js/8167ef7e.e23acf96.js deleted file mode 100644 index 367fda651..000000000 --- a/assets/js/8167ef7e.e23acf96.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[241],{7497:e=>{e.exports=JSON.parse('{"tag":{"label":"developers","permalink":"/blog/tags/developers","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/developers","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/82c81335.7144e663.js b/assets/js/82c81335.40492f4a.js similarity index 84% rename from assets/js/82c81335.7144e663.js rename to assets/js/82c81335.40492f4a.js index 7695e9d3d..d012b4c7f 100644 --- a/assets/js/82c81335.7144e663.js +++ b/assets/js/82c81335.40492f4a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4251],{8576:t=>{t.exports=JSON.parse('{"tag":{"label":"testing","permalink":"/blog/tags/testing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/testing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1584],{8417:t=>{t.exports=JSON.parse('{"tag":{"label":"testing","permalink":"/blog/tags/testing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/testing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8577c450.c522d676.js b/assets/js/8577c450.e96dcaf1.js similarity index 83% rename from assets/js/8577c450.c522d676.js rename to assets/js/8577c450.e96dcaf1.js index a8a1647b8..a155c1b2f 100644 --- a/assets/js/8577c450.c522d676.js +++ b/assets/js/8577c450.e96dcaf1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2561],{8283:a=>{a.exports=JSON.parse('{"tag":{"label":"spam","permalink":"/blog/tags/spam","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/spam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3354],{1944:a=>{a.exports=JSON.parse('{"tag":{"label":"spam","permalink":"/blog/tags/spam","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/spam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8795eea9.c226c217.js b/assets/js/8795eea9.c226c217.js deleted file mode 100644 index 036bf67b0..000000000 --- a/assets/js/8795eea9.c226c217.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1053],{8671:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>g,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=o(2676),i=o(8358);const r={title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},a=void 0,l={permalink:"/blog/2023/07/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md",source:"@site/blog/2023-07-20.md",title:"The Migrations are finally completed",description:"Hey folks,",date:"2023-07-20T00:00:00.000Z",tags:[{inline:!0,label:"app name migration",permalink:"/blog/tags/app-name-migration"},{inline:!0,label:"Microsoft Store publication",permalink:"/blog/tags/microsoft-store-publication"},{inline:!0,label:"surge of new users",permalink:"/blog/tags/surge-of-new-users"},{inline:!0,label:"Discord server promotion",permalink:"/blog/tags/discord-server-promotion"},{inline:!0,label:"spreading the word",permalink:"/blog/tags/spreading-the-word"},{inline:!0,label:"logo deciphering",permalink:"/blog/tags/logo-deciphering"},{inline:!0,label:"box representation",permalink:"/blog/tags/box-representation"},{inline:!0,label:"keyhole representation",permalink:"/blog/tags/keyhole-representation"},{inline:!0,label:"logo concept discussion",permalink:"/blog/tags/logo-concept-discussion"},{inline:!0,label:"Discord channel",permalink:"/blog/tags/discord-channel"}],readingTime:.615,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},unlisted:!1,prevItem:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",permalink:"/blog/2023/07/24/"},nextItem:{title:"Quick Migration Update and new Logo",permalink:"/blog/2023/07/19/"}},s={authorsImageUrls:[void 0]},c=[];function p(e){const n={p:"p",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Hey folks,"}),"\n",(0,t.jsx)(n.p,{children:"Great news. We've successfully migrated our App name in its entirety and will resume advertising as soon as it's published on the Microsoft Store."})]})}function g(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},8358:(e,n,o)=>{o.d(n,{Z:()=>l,a:()=>a});var t=o(5271);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.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:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8795eea9.c6609c81.js b/assets/js/8795eea9.c6609c81.js new file mode 100644 index 000000000..8d85c04f8 --- /dev/null +++ b/assets/js/8795eea9.c6609c81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3154],{791:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var o=t(4580),r=t(6070),i=t(8591);const a={title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},l=void 0,s={authorsImageUrls:[void 0]},c=[];function p(e){const n={p:"p",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Hey folks,"}),"\n",(0,r.jsx)(n.p,{children:"Great news. We've successfully migrated our App name in its entirety and will resume advertising as soon as it's published on the Microsoft Store."})]})}function g(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var o=t(758);const r={},i=o.createContext(r);function a(e){const n=o.useContext(i);return o.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(r):e.components||r:a(e.components),o.createElement(i.Provider,{value:n},e.children)}},4580:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md","source":"@site/blog/2023-07-20.md","title":"The Migrations are finally completed","description":"Hey folks,","date":"2023-07-20T00:00:00.000Z","tags":[{"inline":true,"label":"app name migration","permalink":"/blog/tags/app-name-migration"},{"inline":true,"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication"},{"inline":true,"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users"},{"inline":true,"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering"},{"inline":true,"label":"box representation","permalink":"/blog/tags/box-representation"},{"inline":true,"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation"},{"inline":true,"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"The Migrations are finally completed","authors":["alfagun74"],"tags":["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},"unlisted":false,"prevItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"},"nextItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"}}')}}]); \ No newline at end of file diff --git a/assets/js/87cefd36.a188e09d.js b/assets/js/87cefd36.101b8e9b.js similarity index 85% rename from assets/js/87cefd36.a188e09d.js rename to assets/js/87cefd36.101b8e9b.js index 8bdb76ec0..5dba2331c 100644 --- a/assets/js/87cefd36.a188e09d.js +++ b/assets/js/87cefd36.101b8e9b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5240],{6623:a=>{a.exports=JSON.parse('{"tag":{"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/cloud-based-game-platforms","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7601],{7498:a=>{a.exports=JSON.parse('{"tag":{"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/cloud-based-game-platforms","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8852925a.709ac834.js b/assets/js/8852925a.5e6069f4.js similarity index 85% rename from assets/js/8852925a.709ac834.js rename to assets/js/8852925a.5e6069f4.js index 8e11bd5de..0037ff149 100644 --- a/assets/js/8852925a.709ac834.js +++ b/assets/js/8852925a.5e6069f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7964],{2805:e=>{e.exports=JSON.parse('{"tag":{"label":"new name announcement","permalink":"/blog/tags/new-name-announcement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-name-announcement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8793],{5033:e=>{e.exports=JSON.parse('{"tag":{"label":"new name announcement","permalink":"/blog/tags/new-name-announcement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-name-announcement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/886fdd87.566679ce.js b/assets/js/886fdd87.fb2bf073.js similarity index 83% rename from assets/js/886fdd87.566679ce.js rename to assets/js/886fdd87.fb2bf073.js index 4130017fa..d2626a933 100644 --- a/assets/js/886fdd87.566679ce.js +++ b/assets/js/886fdd87.fb2bf073.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6927],{2070:a=>{a.exports=JSON.parse('{"tag":{"label":"GitHub","permalink":"/blog/tags/git-hub","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/git-hub","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8896],{1976:a=>{a.exports=JSON.parse('{"tag":{"label":"GitHub","permalink":"/blog/tags/git-hub","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/git-hub","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/89db6d1d.21ff8d69.js b/assets/js/89db6d1d.21ff8d69.js new file mode 100644 index 000000000..4a2953be3 --- /dev/null +++ b/assets/js/89db6d1d.21ff8d69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[925],{539:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>m});var n=t(7985),l=t(6070),o=t(8591);const s={title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},r=void 0,i={authorsImageUrls:[void 0]},m=[];function u(e){const a={p:"p",...(0,o.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.p,{children:"Hey everyone,"}),"\n",(0,l.jsx)(a.p,{children:"We are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can't wait to share the exciting updates with you."})]})}function c(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,l.jsx)(a,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,a,t)=>{t.d(a,{R:()=>s,x:()=>r});var n=t(758);const l={},o=n.createContext(l);function s(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),n.createElement(o.Provider,{value:a},e.children)}},7985:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/15/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md","source":"@site/blog/2023-07-15.md","title":"A New Name","description":"Hey everyone,","date":"2023-07-15T00:00:00.000Z","tags":[{"inline":true,"label":"poll results","permalink":"/blog/tags/poll-results"},{"inline":true,"label":"renaming app","permalink":"/blog/tags/renaming-app"},{"inline":true,"label":"community feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"GameStash","permalink":"/blog/tags/game-stash"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameShelf","permalink":"/blog/tags/game-shelf"},{"inline":true,"label":"Harbor","permalink":"/blog/tags/harbor"},{"inline":true,"label":"GameHub","permalink":"/blog/tags/game-hub"},{"inline":true,"label":"market analysis","permalink":"/blog/tags/market-analysis"},{"inline":true,"label":"new name announcement","permalink":"/blog/tags/new-name-announcement"},{"inline":true,"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain"},{"inline":true,"label":"special thanks","permalink":"/blog/tags/special-thanks"},{"inline":true,"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast"},{"inline":true,"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter"},{"inline":true,"label":"transition process","permalink":"/blog/tags/transition-process"}],"readingTime":3.85,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A New Name","authors":["alfagun74"],"tags":["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},"unlisted":false,"prevItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"},"nextItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"}}')}}]); \ No newline at end of file diff --git a/assets/js/89db6d1d.830f4491.js b/assets/js/89db6d1d.830f4491.js deleted file mode 100644 index 6e6dcdb3e..000000000 --- a/assets/js/89db6d1d.830f4491.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5855],{9402:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>r,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var t=n(2676),l=n(8358);const o={title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},s=void 0,i={permalink:"/blog/2023/07/15/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md",source:"@site/blog/2023-07-15.md",title:"A New Name",description:"Hey everyone,",date:"2023-07-15T00:00:00.000Z",tags:[{inline:!0,label:"poll results",permalink:"/blog/tags/poll-results"},{inline:!0,label:"renaming app",permalink:"/blog/tags/renaming-app"},{inline:!0,label:"community feedback",permalink:"/blog/tags/community-feedback"},{inline:!0,label:"GameStash",permalink:"/blog/tags/game-stash"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameShelf",permalink:"/blog/tags/game-shelf"},{inline:!0,label:"Harbor",permalink:"/blog/tags/harbor"},{inline:!0,label:"GameHub",permalink:"/blog/tags/game-hub"},{inline:!0,label:"market analysis",permalink:"/blog/tags/market-analysis"},{inline:!0,label:"new name announcement",permalink:"/blog/tags/new-name-announcement"},{inline:!0,label:"GameVault domain",permalink:"/blog/tags/game-vault-domain"},{inline:!0,label:"special thanks",permalink:"/blog/tags/special-thanks"},{inline:!0,label:"Selfhosted Podcast",permalink:"/blog/tags/selfhosted-podcast"},{inline:!0,label:"Self-Hosted Newsletter",permalink:"/blog/tags/self-hosted-newsletter"},{inline:!0,label:"transition process",permalink:"/blog/tags/transition-process"}],readingTime:3.85,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},unlisted:!1,prevItem:{title:"Quick Migration Update and new Logo",permalink:"/blog/2023/07/19/"},nextItem:{title:"A Closer Look at GameVaults 'Source-Available' Nature",permalink:"/blog/2023/07/13/"}},r={authorsImageUrls:[void 0]},m=[];function c(e){const a={p:"p",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.p,{children:"Hey everyone,"}),"\n",(0,t.jsx)(a.p,{children:"We are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can't wait to share the exciting updates with you."})]})}function u(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>i,a:()=>s});var t=n(5271);const l={},o=t.createContext(l);function s(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),t.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a3716b4.f601d9b6.js b/assets/js/8a3716b4.ac7a2898.js similarity index 85% rename from assets/js/8a3716b4.f601d9b6.js rename to assets/js/8a3716b4.ac7a2898.js index aacd488a5..32065805b 100644 --- a/assets/js/8a3716b4.f601d9b6.js +++ b/assets/js/8a3716b4.ac7a2898.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5059],{7858:a=>{a.exports=JSON.parse('{"tag":{"label":"metadata framework","permalink":"/blog/tags/metadata-framework","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/metadata-framework","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3503],{4453:a=>{a.exports=JSON.parse('{"tag":{"label":"metadata framework","permalink":"/blog/tags/metadata-framework","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/metadata-framework","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8a3c85db.0ea59cd7.js b/assets/js/8a3c85db.0ea59cd7.js deleted file mode 100644 index 734f375b9..000000000 --- a/assets/js/8a3c85db.0ea59cd7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[235],{6381:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-domain","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8a3c85db.e7acb88a.js b/assets/js/8a3c85db.e7acb88a.js new file mode 100644 index 000000000..5047ad87f --- /dev/null +++ b/assets/js/8a3c85db.e7acb88a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8611],{3658:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-domain","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8b8fd5aa.88742189.js b/assets/js/8b8fd5aa.88742189.js deleted file mode 100644 index 29dc328cd..000000000 --- a/assets/js/8b8fd5aa.88742189.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1151],{393:l=>{l.exports=JSON.parse('{"tag":{"label":"polls","permalink":"/blog/tags/polls","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/polls","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8b8fd5aa.9d70c1ec.js b/assets/js/8b8fd5aa.9d70c1ec.js new file mode 100644 index 000000000..60c73c5b8 --- /dev/null +++ b/assets/js/8b8fd5aa.9d70c1ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1172],{8707:l=>{l.exports=JSON.parse('{"tag":{"label":"polls","permalink":"/blog/tags/polls","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/polls","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8ba18f4f.52640931.js b/assets/js/8ba18f4f.52640931.js new file mode 100644 index 000000000..d809b35de --- /dev/null +++ b/assets/js/8ba18f4f.52640931.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5735],{9696:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"server-docs/parental-control","title":"Parental Control","description":"GameVault supports a parental control feature that hides games and game progresses based on the games age rating for some users. By default, age restrictions are disabled.","source":"@site/docs/server-docs/parental-control.md","sourceDirName":"server-docs","slug":"/server-docs/parental-control","permalink":"/docs/server-docs/parental-control","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/parental-control.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":10,"frontMatter":{"sidebar_position":10},"sidebar":"docs","previous":{"title":"Plugins","permalink":"/docs/server-docs/plugins"},"next":{"title":"Server News","permalink":"/docs/server-docs/server-news"}}');var s=n(6070),a=n(8591);const i={sidebar_position:10},o="Parental Control",l={},d=[{value:"Enabling Parental Control",id:"enabling-parental-control",level:2},{value:"Changing the Age of Majority",id:"changing-the-age-of-majority",level:2},{value:"Overriding the Age Rating of a Game",id:"overriding-the-age-rating-of-a-game",level:2}];function c(e){const t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"parental-control",children:"Parental Control"})}),"\n",(0,s.jsxs)(t.p,{children:["GameVault supports a parental control feature that ",(0,s.jsx)(t.strong,{children:"hides"})," games and game progresses based on the games age rating for some users. ",(0,s.jsx)(t.strong,{children:"By default"}),", age restrictions are ",(0,s.jsx)(t.strong,{children:"disabled"}),"."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"When enabled:"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Users will ",(0,s.jsx)(t.strong,{children:"not be able"})," to see ",(0,s.jsx)(t.strong,{children:"games"})," above their age rating."]}),"\n",(0,s.jsxs)(t.li,{children:["Users will ",(0,s.jsx)(t.strong,{children:"not be able"})," to see any ",(0,s.jsx)(t.strong,{children:"progresses"})," for games above their age rating."]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{title:"Things to keep in mind",type:"warning",children:(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["If you ",(0,s.jsx)(t.strong,{children:"enable"})," parental control, ",(0,s.jsx)(t.strong,{children:"do not forget"})," to set the ",(0,s.jsx)(t.strong,{children:"birth date"})," for ",(0,s.jsx)(t.strong,{children:"existing"})," users."]}),"\n",(0,s.jsxs)(t.li,{children:["Children ",(0,s.jsx)(t.strong,{children:"must not"})," be of ",(0,s.jsx)(t.strong,{children:"role"})," ",(0,s.jsx)(t.code,{children:"ADMIN"}),", because they would be able to alter their birth date."]}),"\n",(0,s.jsxs)(t.li,{children:["The age rating value for games is set by the ",(0,s.jsx)(t.strong,{children:"metadata providers you use"}),". It is in your responsibility to check how the providers determine the age rating."]}),"\n",(0,s.jsxs)(t.li,{children:["If you use multiple metadata providers, the provider with the ",(0,s.jsx)(t.strong,{children:"highest priority"})," will be used to determine the age rating. ",(0,s.jsx)(t.strong,{children:"User-set"})," age ratings will ",(0,s.jsx)(t.strong,{children:"always override"})," the metadata providers setting. You can check the actively applied minimum age on the game page in your client."]}),"\n"]})}),"\n",(0,s.jsx)(t.h2,{id:"enabling-parental-control",children:"Enabling Parental Control"}),"\n",(0,s.jsxs)(t.p,{children:["To enable parental control, set the ",(0,s.jsx)(t.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})," environment variable to ",(0,s.jsx)(t.code,{children:"true"}),". Then set the birth date for all existing users."]}),"\n",(0,s.jsxs)(t.p,{children:["Keep in mind that, when you set this variable to ",(0,s.jsx)(t.code,{children:"true"}),", new users will also be required to set their Birth date upon registration."]}),"\n",(0,s.jsx)(t.h2,{id:"changing-the-age-of-majority",children:"Changing the Age of Majority"}),"\n",(0,s.jsxs)(t.p,{children:["The age of majority determines the age at which an individual is legally recognized as an adult. Reaching the age of majority ",(0,s.jsx)(t.strong,{children:"enables users to alter their birth date"}),". Otherwise, users will not be able to set their own birth date and an admin will be required to set their birth date."]}),"\n",(0,s.jsxs)(t.p,{children:["You can configure the age of majority for parental control by setting the ",(0,s.jsx)(t.code,{children:"PARENTAL_AGE_OF_MAJORITY"})," environment variable. The default value is ",(0,s.jsx)(t.code,{children:"18"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"overriding-the-age-rating-of-a-game",children:"Overriding the Age Rating of a Game"}),"\n",(0,s.jsx)(t.p,{children:"Admins can override the age rating of a single game by simply editing the age rating field of a game directly."})]})}function h(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var r=n(758);const s={},a=r.createContext(s);function i(e){const t=r.useContext(a);return r.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(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ba18f4f.bf6e5915.js b/assets/js/8ba18f4f.bf6e5915.js deleted file mode 100644 index f87199695..000000000 --- a/assets/js/8ba18f4f.bf6e5915.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[147],{8508:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var r=n(2676),s=n(8358);const a={sidebar_position:10},i="Parental Control",o={id:"server-docs/parental-control",title:"Parental Control",description:"GameVault supports a parental control feature that hides games and game progresses based on the games age rating for some users. By default, age restrictions are disabled.",source:"@site/docs/server-docs/parental-control.md",sourceDirName:"server-docs",slug:"/server-docs/parental-control",permalink:"/docs/server-docs/parental-control",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/parental-control.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"docs",previous:{title:"Plugins",permalink:"/docs/server-docs/plugins"},next:{title:"Server News",permalink:"/docs/server-docs/server-news"}},l={},d=[{value:"Enabling Parental Control",id:"enabling-parental-control",level:2},{value:"Changing the Age of Majority",id:"changing-the-age-of-majority",level:2},{value:"Overriding the Age Rating of a Game",id:"overriding-the-age-rating-of-a-game",level:2}];function c(e){const t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"parental-control",children:"Parental Control"})}),"\n",(0,r.jsxs)(t.p,{children:["GameVault supports a parental control feature that ",(0,r.jsx)(t.strong,{children:"hides"})," games and game progresses based on the games age rating for some users. ",(0,r.jsx)(t.strong,{children:"By default"}),", age restrictions are ",(0,r.jsx)(t.strong,{children:"disabled"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"When enabled:"})}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Users will ",(0,r.jsx)(t.strong,{children:"not be able"})," to see ",(0,r.jsx)(t.strong,{children:"games"})," above their age rating."]}),"\n",(0,r.jsxs)(t.li,{children:["Users will ",(0,r.jsx)(t.strong,{children:"not be able"})," to see any ",(0,r.jsx)(t.strong,{children:"progresses"})," for games above their age rating."]}),"\n"]}),"\n",(0,r.jsx)(t.admonition,{title:"Things to keep in mind",type:"warning",children:(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["If you ",(0,r.jsx)(t.strong,{children:"enable"})," parental control, ",(0,r.jsx)(t.strong,{children:"do not forget"})," to set the ",(0,r.jsx)(t.strong,{children:"birth date"})," for ",(0,r.jsx)(t.strong,{children:"existing"})," users."]}),"\n",(0,r.jsxs)(t.li,{children:["Children ",(0,r.jsx)(t.strong,{children:"must not"})," be of ",(0,r.jsx)(t.strong,{children:"role"})," ",(0,r.jsx)(t.code,{children:"ADMIN"}),", because they would be able to alter their birth date."]}),"\n",(0,r.jsxs)(t.li,{children:["The age rating value for games is set by the ",(0,r.jsx)(t.strong,{children:"metadata providers you use"}),". It is in your responsibility to check how the providers determine the age rating."]}),"\n",(0,r.jsxs)(t.li,{children:["If you use multiple metadata providers, the provider with the ",(0,r.jsx)(t.strong,{children:"highest priority"})," will be used to determine the age rating. ",(0,r.jsx)(t.strong,{children:"User-set"})," age ratings will ",(0,r.jsx)(t.strong,{children:"always override"})," the metadata providers setting. You can check the actively applied minimum age on the game page in your client."]}),"\n"]})}),"\n",(0,r.jsx)(t.h2,{id:"enabling-parental-control",children:"Enabling Parental Control"}),"\n",(0,r.jsxs)(t.p,{children:["To enable parental control, set the ",(0,r.jsx)(t.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})," environment variable to ",(0,r.jsx)(t.code,{children:"true"}),". Then set the birth date for all existing users."]}),"\n",(0,r.jsxs)(t.p,{children:["Keep in mind that, when you set this variable to ",(0,r.jsx)(t.code,{children:"true"}),", new users will also be required to set their Birth date upon registration."]}),"\n",(0,r.jsx)(t.h2,{id:"changing-the-age-of-majority",children:"Changing the Age of Majority"}),"\n",(0,r.jsxs)(t.p,{children:["The age of majority determines the age at which an individual is legally recognized as an adult. Reaching the age of majority ",(0,r.jsx)(t.strong,{children:"enables users to alter their birth date"}),". Otherwise, users will not be able to set their own birth date and an admin will be required to set their birth date."]}),"\n",(0,r.jsxs)(t.p,{children:["You can configure the age of majority for parental control by setting the ",(0,r.jsx)(t.code,{children:"PARENTAL_AGE_OF_MAJORITY"})," environment variable. The default value is ",(0,r.jsx)(t.code,{children:"18"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"overriding-the-age-rating-of-a-game",children:"Overriding the Age Rating of a Game"}),"\n",(0,r.jsx)(t.p,{children:"Admins can override the age rating of a single game by simply editing the age rating field of a game directly."})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>i});var r=n(5271);const s={},a=r.createContext(s);function i(e){const t=r.useContext(a);return r.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(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8c4108df.5a581c4b.js b/assets/js/8c4108df.5a581c4b.js deleted file mode 100644 index c3957d32f..000000000 --- a/assets/js/8c4108df.5a581c4b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4145],{9287:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var s=o(2676),t=o(8358);const r={title:"Using Docker Compose",sidebar_position:2},i=void 0,a={id:"server-docs/setup/docker-compose",title:"Using Docker Compose",description:"Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.",source:"@site/docs/server-docs/setup/docker-compose.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/docker-compose",permalink:"/docs/server-docs/setup/docker-compose",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/docker-compose.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2,frontMatter:{title:"Using Docker Compose",sidebar_position:2},sidebar:"docs",previous:{title:"Setting up a GameVault Server",permalink:"/docs/server-docs/setup/"},next:{title:"Using CapRover",permalink:"/docs/server-docs/setup/caprover"}},l={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Creating a Docker Compose file",id:"step-1-creating-a-docker-compose-file",level:2},{value:"Tips for Running Docker on Windows",id:"tips-for-running-docker-on-windows",level:3},{value:"Alternative Step 1: Running without a PostgreSQL Database",id:"alternative-step-1-running-without-a-postgresql-database",level:3},{value:"Step 2: Start the Service",id:"step-2-start-the-service",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the server",id:"stopping-the-server",level:3},{value:"Reading the logs",id:"reading-the-logs",level:3}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://www.docker.com",children:"Docker"})," is a platform for developing, shipping, and running applications in containers, and ",(0,s.jsx)(n.a,{href:"https://docs.docker.com/compose",children:"Docker Compose"})," is a tool for defining and managing multi-container Docker applications."]}),"\n",(0,s.jsx)(n.p,{children:"In this guide, you will learn how to set up GameVault using Docker and Docker Compose."}),"\n",(0,s.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://docs.docker.com/engine/install/",children:"Docker Engine"})," is installed on your system. (",(0,s.jsx)(n.a,{href:"https://docs.docker.com/get-docker/",children:"Docker Desktop"})," should work too, but this guide is tailored for Docker Engine. Steps might look different on Desktop, but the gist is the same.)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"step-1-creating-a-docker-compose-file",children:"Step 1: Creating a Docker Compose file"}),"\n",(0,s.jsxs)(n.p,{children:["Create a new file named ",(0,s.jsx)(n.code,{children:"docker-compose.yml"})," in a directory of your choice and copy the following code:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"services:\n gamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n DB_HOST: db\n DB_USERNAME: gamevault\n DB_PASSWORD: YOURPASSWORDHERE\n volumes:\n # Mount the folder where your games are\n - /your/games/folder:/files\n # Mount the folder where GameVault should store its media\n - /your/media/folder:/media\n ports:\n - 8080:8080/tcp\n db:\n image: postgres:16\n restart: unless-stopped\n environment:\n POSTGRES_USER: gamevault\n POSTGRES_PASSWORD: YOURPASSWORDHERE\n POSTGRES_DB: gamevault\n volumes:\n # Mount the folder where your PostgreSQL database files should land\n - /your/database/folder:/var/lib/postgresql/data\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["Replace the variables (",(0,s.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,s.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)"})}),"\n",(0,s.jsx)(n.h3,{id:"tips-for-running-docker-on-windows",children:"Tips for Running Docker on Windows"}),"\n",(0,s.jsxs)(n.p,{children:["The above ",(0,s.jsx)(n.code,{children:"docker-compose.yaml"})," file might not work as expected with Docker for Windows. Here are some things to consider to make it compatible:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Use Forward Slashes in Paths"}),": In your volumes, replace Windows-style backslashes (",(0,s.jsx)(n.code,{children:"\\"}),") with forward slashes (",(0,s.jsx)(n.code,{children:"/"}),")."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"volumes:\n # Path to your games folder\n - C:/Your/Games/Folder:/files\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"PostgreSQL Database Volume"}),": For PostgreSQL, it\u2019s often better to use a Docker volume instead of mounting a folder, due to compatibility issues of PostgreSQL with Windows Filesystems. To do this, leave out any volume definition in the database section of your YAML file. ",(0,s.jsx)(n.a,{href:"https://github.com/docker-library/postgres/issues/116",children:"Read more here"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"alternative-step-1-running-without-a-postgresql-database",children:"Alternative Step 1: Running without a PostgreSQL Database"}),"\n",(0,s.jsx)(n.p,{children:"We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'services:\n gamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n DB_SYSTEM: "SQLITE"\n volumes:\n - /your/games/folder:/files\n - /your/media/folder:/media\n - /your/sqlite/database/folder:/db\n ports:\n - 8080:8080/tcp\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["Replace the variables (",(0,s.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,s.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,s.jsx)(n.h2,{id:"step-2-start-the-service",children:"Step 2: Start the Service"}),"\n",(0,s.jsxs)(n.p,{children:["Open a terminal, navigate to the directory where the ",(0,s.jsx)(n.code,{children:"docker-compose.yml"})," file is located, and run the following command:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker compose up -d\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This will start the GameVault server and PostgreSQL server in the background. The ",(0,s.jsx)(n.code,{children:"-d"})," parameter detaches the process from the terminal."]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,s.jsxs)(n.p,{children:["Congratulations! Your GameVault Server has been successfully set up using Docker and Docker Compose. You can now access it using your server's IP address followed by the designated port, such as ",(0,s.jsx)(n.code,{children:"http://192.168.0.15:8080"})," for example."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,s.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,s.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the server"}),"\n",(0,s.jsxs)(n.p,{children:["Open a terminal, navigate to the directory where the ",(0,s.jsx)(n.code,{children:"docker-compose.yml"})," file is located, and run the following command:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker compose down\n"})}),"\n",(0,s.jsx)(n.h3,{id:"reading-the-logs",children:"Reading the logs"}),"\n",(0,s.jsx)(n.p,{children:"Open a terminal and run the following command:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker logs gamevault-backend\n"})})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8358:(e,n,o)=>{o.d(n,{Z:()=>a,a:()=>i});var s=o(5271);const t={},r=s.createContext(t);function i(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(t):e.components||t:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8c4108df.fa37aed9.js b/assets/js/8c4108df.fa37aed9.js new file mode 100644 index 000000000..60aed347a --- /dev/null +++ b/assets/js/8c4108df.fa37aed9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[179],{8794:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"server-docs/setup/docker-compose","title":"Using Docker Compose","description":"Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.","source":"@site/docs/server-docs/setup/docker-compose.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/docker-compose","permalink":"/docs/server-docs/setup/docker-compose","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/docker-compose.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2,"frontMatter":{"title":"Using Docker Compose","sidebar_position":2},"sidebar":"docs","previous":{"title":"Setting up a GameVault Server","permalink":"/docs/server-docs/setup/"},"next":{"title":"Using CapRover","permalink":"/docs/server-docs/setup/caprover"}}');var t=o(6070),r=o(8591);const i={title:"Using Docker Compose",sidebar_position:2},a=void 0,l={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Creating a Docker Compose file",id:"step-1-creating-a-docker-compose-file",level:2},{value:"Tips for Running Docker on Windows",id:"tips-for-running-docker-on-windows",level:3},{value:"Alternative Step 1: Running without a PostgreSQL Database",id:"alternative-step-1-running-without-a-postgresql-database",level:3},{value:"Step 2: Start the Service",id:"step-2-start-the-service",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the server",id:"stopping-the-server",level:3},{value:"Reading the logs",id:"reading-the-logs",level:3}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.docker.com",children:"Docker"})," is a platform for developing, shipping, and running applications in containers, and ",(0,t.jsx)(n.a,{href:"https://docs.docker.com/compose",children:"Docker Compose"})," is a tool for defining and managing multi-container Docker applications."]}),"\n",(0,t.jsx)(n.p,{children:"In this guide, you will learn how to set up GameVault using Docker and Docker Compose."}),"\n",(0,t.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://docs.docker.com/engine/install/",children:"Docker Engine"})," is installed on your system. (",(0,t.jsx)(n.a,{href:"https://docs.docker.com/get-docker/",children:"Docker Desktop"})," should work too, but this guide is tailored for Docker Engine. Steps might look different on Desktop, but the gist is the same.)"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"step-1-creating-a-docker-compose-file",children:"Step 1: Creating a Docker Compose file"}),"\n",(0,t.jsxs)(n.p,{children:["Create a new file named ",(0,t.jsx)(n.code,{children:"docker-compose.yml"})," in a directory of your choice and copy the following code:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"services:\n gamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n DB_HOST: db\n DB_USERNAME: gamevault\n DB_PASSWORD: YOURPASSWORDHERE\n volumes:\n # Mount the folder where your games are\n - /your/games/folder:/files\n # Mount the folder where GameVault should store its media\n - /your/media/folder:/media\n ports:\n - 8080:8080/tcp\n db:\n image: postgres:16\n restart: unless-stopped\n environment:\n POSTGRES_USER: gamevault\n POSTGRES_PASSWORD: YOURPASSWORDHERE\n POSTGRES_DB: gamevault\n volumes:\n # Mount the folder where your PostgreSQL database files should land\n - /your/database/folder:/var/lib/postgresql/data\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Replace the variables (",(0,t.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,t.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsx)(n.p,{children:"Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)"})}),"\n",(0,t.jsx)(n.h3,{id:"tips-for-running-docker-on-windows",children:"Tips for Running Docker on Windows"}),"\n",(0,t.jsxs)(n.p,{children:["The above ",(0,t.jsx)(n.code,{children:"docker-compose.yaml"})," file might not work as expected with Docker for Windows. Here are some things to consider to make it compatible:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Use Forward Slashes in Paths"}),": In your volumes, replace Windows-style backslashes (",(0,t.jsx)(n.code,{children:"\\"}),") with forward slashes (",(0,t.jsx)(n.code,{children:"/"}),")."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"volumes:\n # Path to your games folder\n - C:/Your/Games/Folder:/files\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"PostgreSQL Database Volume"}),": For PostgreSQL, it\u2019s often better to use a Docker volume instead of mounting a folder, due to compatibility issues of PostgreSQL with Windows Filesystems. To do this, leave out any volume definition in the database section of your YAML file. ",(0,t.jsx)(n.a,{href:"https://github.com/docker-library/postgres/issues/116",children:"Read more here"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"alternative-step-1-running-without-a-postgresql-database",children:"Alternative Step 1: Running without a PostgreSQL Database"}),"\n",(0,t.jsx)(n.p,{children:"We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'services:\n gamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n DB_SYSTEM: "SQLITE"\n volumes:\n - /your/games/folder:/files\n - /your/media/folder:/media\n - /your/sqlite/database/folder:/db\n ports:\n - 8080:8080/tcp\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Replace the variables (",(0,t.jsx)(n.code,{children:"YOURPASSWORDHERE"}),", ",(0,t.jsx)(n.code,{children:"etc."}),"), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell."]})}),"\n",(0,t.jsx)(n.h2,{id:"step-2-start-the-service",children:"Step 2: Start the Service"}),"\n",(0,t.jsxs)(n.p,{children:["Open a terminal, navigate to the directory where the ",(0,t.jsx)(n.code,{children:"docker-compose.yml"})," file is located, and run the following command:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker compose up -d\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This will start the GameVault server and PostgreSQL server in the background. The ",(0,t.jsx)(n.code,{children:"-d"})," parameter detaches the process from the terminal."]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(n.p,{children:["Congratulations! Your GameVault Server has been successfully set up using Docker and Docker Compose. You can now access it using your server's IP address followed by the designated port, such as ",(0,t.jsx)(n.code,{children:"http://192.168.0.15:8080"})," for example."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,t.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,t.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the server"}),"\n",(0,t.jsxs)(n.p,{children:["Open a terminal, navigate to the directory where the ",(0,t.jsx)(n.code,{children:"docker-compose.yml"})," file is located, and run the following command:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker compose down\n"})}),"\n",(0,t.jsx)(n.h3,{id:"reading-the-logs",children:"Reading the logs"}),"\n",(0,t.jsx)(n.p,{children:"Open a terminal and run the following command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker logs gamevault-backend\n"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8591:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>a});var s=o(758);const t={},r=s.createContext(t);function i(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(t):e.components||t:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8e064018.192c037f.js b/assets/js/8e064018.c581259a.js similarity index 86% rename from assets/js/8e064018.192c037f.js rename to assets/js/8e064018.c581259a.js index a73238004..6bdeb09dc 100644 --- a/assets/js/8e064018.192c037f.js +++ b/assets/js/8e064018.c581259a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1691],{7614:e=>{e.exports=JSON.parse('{"tag":{"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/celebration-of-achievements","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3163],{8232:e=>{e.exports=JSON.parse('{"tag":{"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/celebration-of-achievements","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8ea09047.3c33b70a.js b/assets/js/8ea09047.3c33b70a.js new file mode 100644 index 000000000..2411fd1b5 --- /dev/null +++ b/assets/js/8ea09047.3c33b70a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9385],{600:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog/page/2","page":2,"postsPerPage":10,"totalPages":2,"totalCount":16,"previousPage":"/blog","blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8ea09047.8882bedc.js b/assets/js/8ea09047.8882bedc.js deleted file mode 100644 index 512c35ff3..000000000 --- a/assets/js/8ea09047.8882bedc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8644],{7362:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog/page/2","page":2,"postsPerPage":10,"totalPages":2,"totalCount":16,"previousPage":"/blog","blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8f8e2e78.9c2f6ed8.js b/assets/js/8f8e2e78.6fe8f6f5.js similarity index 85% rename from assets/js/8f8e2e78.9c2f6ed8.js rename to assets/js/8f8e2e78.6fe8f6f5.js index 946c018b5..9ccd3e491 100644 --- a/assets/js/8f8e2e78.9c2f6ed8.js +++ b/assets/js/8f8e2e78.6fe8f6f5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8407],{5016:e=>{e.exports=JSON.parse('{"tag":{"label":"future development","permalink":"/blog/tags/future-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/future-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1142],{2884:e=>{e.exports=JSON.parse('{"tag":{"label":"future development","permalink":"/blog/tags/future-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/future-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/8ff99662.58f8bcce.js b/assets/js/8ff99662.2ec05f81.js similarity index 84% rename from assets/js/8ff99662.58f8bcce.js rename to assets/js/8ff99662.2ec05f81.js index 8b105bdba..2fc2da2a5 100644 --- a/assets/js/8ff99662.58f8bcce.js +++ b/assets/js/8ff99662.2ec05f81.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8489],{4233:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault app","permalink":"/blog/tags/game-vault-app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6355],{4466:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault app","permalink":"/blog/tags/game-vault-app","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-app","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9019cc36.071ddb15.js b/assets/js/9019cc36.071ddb15.js deleted file mode 100644 index 28245be3c..000000000 --- a/assets/js/9019cc36.071ddb15.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9565],{2716:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=n(2676),r=n(8358);const i={title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},o=void 0,s={permalink:"/blog/2024/10/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md",source:"@site/blog/2024-10-20.md",title:"An update so major, we could have built the product from scratch.",description:"Hello, GameVault Community!",date:"2024-10-20T00:00:00.000Z",tags:[{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"Client Update",permalink:"/blog/tags/client-update"},{inline:!0,label:"Server Update",permalink:"/blog/tags/server-update"},{inline:!0,label:"metadata framework",permalink:"/blog/tags/metadata-framework"},{inline:!0,label:"plugin system",permalink:"/blog/tags/plugin-system"},{inline:!0,label:"parental control",permalink:"/blog/tags/parental-control"},{inline:!0,label:"age restrictions",permalink:"/blog/tags/age-restrictions"},{inline:!0,label:"theme",permalink:"/blog/tags/theme"},{inline:!0,label:"app optimization",permalink:"/blog/tags/app-optimization"},{inline:!0,label:"analytics",permalink:"/blog/tags/analytics"},{inline:!0,label:"notes",permalink:"/blog/tags/notes"},{inline:!0,label:"community management",permalink:"/blog/tags/community-management"}],readingTime:2.515,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},unlisted:!1,nextItem:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",permalink:"/blog/2024/05/07/"}},l={authorsImageUrls:[void 0]},d=[{value:"What\u2019s New?",id:"whats-new",level:3},{value:"Major New Features",id:"major-new-features",level:3},{value:"Critical Update Info",id:"critical-update-info",level:3},{value:"Support Us",id:"support-us",level:3}];function u(e){const t={a:"a",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Hello, GameVault Community!"})}),"\n",(0,a.jsxs)(t.p,{children:["After six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: ",(0,a.jsx)(t.strong,{children:"GameVault Client v1.12"})," and ",(0,a.jsx)(t.strong,{children:"GameVault Server v13"}),"! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered. "]}),"\n",(0,a.jsx)(t.h3,{id:"whats-new",children:"What\u2019s New?"}),"\n",(0,a.jsxs)(t.p,{children:["We\u2019ve introduced some game-changing improvements. First and foremost, we\u2019ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we\u2019ve built something much better: a brand-new ",(0,a.jsx)(t.strong,{children:"plugin system"})," on the backend, complete with an official partnership with ",(0,a.jsx)(t.strong,{children:"IGDB/Twitch"}),"."]}),"\n",(0,a.jsx)(t.p,{children:"The new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata\u2014if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom."}),"\n",(0,a.jsx)(t.p,{children:"We\u2019ve been rigorously testing this system for 2\u20133 months, running an early access phase for about a month. While we\u2019ve optimized it as much as possible, we ask for your patience if any bugs pop up\u2014mastillke sure to back up before migrating!"}),"\n",(0,a.jsx)(t.h3,{id:"major-new-features",children:"Major New Features"}),"\n",(0,a.jsx)(t.p,{children:"Here\u2019s a quick rundown of some other incredible additions in this update:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Parental Controls & Age Restrictions:"})," Now, families can manage access based on age-appropriate content, giving more control over what\u2019s playable and viewable for children."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Built-in Media Player:"})," You can now watch trailers and gameplay videos directly in GameVault."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"UI Overhaul:"})," We\u2019ve refreshed the Game, Community, and Admin Tabs, along with a redesigned App Bar for a sleeker look."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Halloween Theme:"})," Just in time for spooky season! GameVault+ users can enjoy a themed Halloween skin."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Convenience Features:"})," We\u2019ve added default arguments and launch/install executables to streamline app functionality."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Markdown Support:"})," Both Notes and Server News now support markdown, making formatting a breeze and improving readability."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"critical-update-info",children:"Critical Update Info"}),"\n",(0,a.jsx)(t.p,{children:"Before updating, please ensure compatibility between clients and servers:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Client v1.12"})," is required for servers running ",(0,a.jsx)(t.strong,{children:"v13 or above"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:["Older clients (",(0,a.jsx)(t.strong,{children:"before v1.12"}),") won\u2019t work with server running on ",(0,a.jsx)(t.strong,{children:"Version 13 or above"}),"."]}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:["For a smooth update and a guide on how to use all these new features, check out the detailed ",(0,a.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/CHANGELOG.md#1300",children:"migration instructions"})," in the server changelogs. As always, if you hit any snags, feel free to reach out to us on ",(0,a.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"."]}),"\n",(0,a.jsx)(t.h3,{id:"support-us",children:"Support Us"}),"\n",(0,a.jsxs)(t.p,{children:["If you\u2019d like to support our development and help us keep most of GameVault\u2019s features free, consider ",(0,a.jsxs)(t.a,{href:"https://gamevau.lt/gamevault-plus",children:["subscribing to ",(0,a.jsx)(t.strong,{children:"GameVault+"})]})," or making ",(0,a.jsx)(t.a,{href:"https://phalco.de/support-us",children:"a one-time donation"}),". Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all."]}),"\n",(0,a.jsx)(t.p,{children:"Thank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we've added."})]})}function c(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>o});var a=n(5271);const r={},i=a.createContext(r);function o(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9019cc36.cbcaeb75.js b/assets/js/9019cc36.cbcaeb75.js new file mode 100644 index 000000000..0e27b4c00 --- /dev/null +++ b/assets/js/9019cc36.cbcaeb75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8095],{8216:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var a=n(7666),r=n(6070),i=n(8591);const o={title:"An update so major, we could have built the product from scratch.",authors:["alfagun74"],tags:["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},s=void 0,l={authorsImageUrls:[void 0]},u=[{value:"What\u2019s New?",id:"whats-new",level:3},{value:"Major New Features",id:"major-new-features",level:3},{value:"Critical Update Info",id:"critical-update-info",level:3},{value:"Support Us",id:"support-us",level:3}];function d(e){const t={a:"a",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Hello, GameVault Community!"})}),"\n",(0,r.jsxs)(t.p,{children:["After six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: ",(0,r.jsx)(t.strong,{children:"GameVault Client v1.12"})," and ",(0,r.jsx)(t.strong,{children:"GameVault Server v13"}),"! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered. "]}),"\n",(0,r.jsx)(t.h3,{id:"whats-new",children:"What\u2019s New?"}),"\n",(0,r.jsxs)(t.p,{children:["We\u2019ve introduced some game-changing improvements. First and foremost, we\u2019ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we\u2019ve built something much better: a brand-new ",(0,r.jsx)(t.strong,{children:"plugin system"})," on the backend, complete with an official partnership with ",(0,r.jsx)(t.strong,{children:"IGDB/Twitch"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"The new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata\u2014if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom."}),"\n",(0,r.jsx)(t.p,{children:"We\u2019ve been rigorously testing this system for 2\u20133 months, running an early access phase for about a month. While we\u2019ve optimized it as much as possible, we ask for your patience if any bugs pop up\u2014mastillke sure to back up before migrating!"}),"\n",(0,r.jsx)(t.h3,{id:"major-new-features",children:"Major New Features"}),"\n",(0,r.jsx)(t.p,{children:"Here\u2019s a quick rundown of some other incredible additions in this update:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Parental Controls & Age Restrictions:"})," Now, families can manage access based on age-appropriate content, giving more control over what\u2019s playable and viewable for children."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Built-in Media Player:"})," You can now watch trailers and gameplay videos directly in GameVault."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"UI Overhaul:"})," We\u2019ve refreshed the Game, Community, and Admin Tabs, along with a redesigned App Bar for a sleeker look."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Halloween Theme:"})," Just in time for spooky season! GameVault+ users can enjoy a themed Halloween skin."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Convenience Features:"})," We\u2019ve added default arguments and launch/install executables to streamline app functionality."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Markdown Support:"})," Both Notes and Server News now support markdown, making formatting a breeze and improving readability."]}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"critical-update-info",children:"Critical Update Info"}),"\n",(0,r.jsx)(t.p,{children:"Before updating, please ensure compatibility between clients and servers:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Client v1.12"})," is required for servers running ",(0,r.jsx)(t.strong,{children:"v13 or above"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Older clients (",(0,r.jsx)(t.strong,{children:"before v1.12"}),") won\u2019t work with server running on ",(0,r.jsx)(t.strong,{children:"Version 13 or above"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For a smooth update and a guide on how to use all these new features, check out the detailed ",(0,r.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/CHANGELOG.md#1300",children:"migration instructions"})," in the server changelogs. As always, if you hit any snags, feel free to reach out to us on ",(0,r.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"support-us",children:"Support Us"}),"\n",(0,r.jsxs)(t.p,{children:["If you\u2019d like to support our development and help us keep most of GameVault\u2019s features free, consider ",(0,r.jsxs)(t.a,{href:"https://gamevau.lt/gamevault-plus",children:["subscribing to ",(0,r.jsx)(t.strong,{children:"GameVault+"})]})," or making ",(0,r.jsx)(t.a,{href:"https://phalco.de/support-us",children:"a one-time donation"}),". Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all."]}),"\n",(0,r.jsx)(t.p,{children:"Thank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we've added."})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var a=n(758);const r={},i=a.createContext(r);function o(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(i.Provider,{value:t},e.children)}},7666:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/10/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md","source":"@site/blog/2024-10-20.md","title":"An update so major, we could have built the product from scratch.","description":"Hello, GameVault Community!","date":"2024-10-20T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Client Update","permalink":"/blog/tags/client-update"},{"inline":true,"label":"Server Update","permalink":"/blog/tags/server-update"},{"inline":true,"label":"metadata framework","permalink":"/blog/tags/metadata-framework"},{"inline":true,"label":"plugin system","permalink":"/blog/tags/plugin-system"},{"inline":true,"label":"parental control","permalink":"/blog/tags/parental-control"},{"inline":true,"label":"age restrictions","permalink":"/blog/tags/age-restrictions"},{"inline":true,"label":"theme","permalink":"/blog/tags/theme"},{"inline":true,"label":"app optimization","permalink":"/blog/tags/app-optimization"},{"inline":true,"label":"analytics","permalink":"/blog/tags/analytics"},{"inline":true,"label":"notes","permalink":"/blog/tags/notes"},{"inline":true,"label":"community management","permalink":"/blog/tags/community-management"}],"readingTime":2.515,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"An update so major, we could have built the product from scratch.","authors":["alfagun74"],"tags":["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},"unlisted":false,"nextItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"}}')}}]); \ No newline at end of file diff --git a/assets/js/9046e000.f43ecc9e.js b/assets/js/9046e000.208ab4b5.js similarity index 84% rename from assets/js/9046e000.f43ecc9e.js rename to assets/js/9046e000.208ab4b5.js index dfbc82033..297e14557 100644 --- a/assets/js/9046e000.f43ecc9e.js +++ b/assets/js/9046e000.208ab4b5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2650],{9205:a=>{a.exports=JSON.parse('{"tag":{"label":"solution","permalink":"/blog/tags/solution","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/solution","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6013],{6231:a=>{a.exports=JSON.parse('{"tag":{"label":"solution","permalink":"/blog/tags/solution","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/solution","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9147d3af.0a76dcd5.js b/assets/js/9147d3af.0a76dcd5.js deleted file mode 100644 index 2bad7045d..000000000 --- a/assets/js/9147d3af.0a76dcd5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5954],{8248:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var a=t(2676),o=t(8358);const l={title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},i=void 0,s={permalink:"/blog/2024/03/28/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md",source:"@site/blog/2024-03-28.md",title:"Announcing GameVault+ (coming soon)",description:"Hey Everyone!",date:"2024-03-28T00:00:00.000Z",tags:[{inline:!0,label:"startup",permalink:"/blog/tags/startup"},{inline:!0,label:"software",permalink:"/blog/tags/software"},{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"subscription model",permalink:"/blog/tags/subscription-model"},{inline:!0,label:"development",permalink:"/blog/tags/development"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"}],readingTime:3.725,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},unlisted:!1,prevItem:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",permalink:"/blog/2024/04/01/2024-04-01/"},nextItem:{title:"Join the GameVault Early-Access Program Now!",permalink:"/blog/2023/12/09/"}},r={authorsImageUrls:[void 0]},m=[];function u(e){const n={a:"a",p:"p",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Hey Everyone!"}),"\n",(0,a.jsxs)(n.p,{children:["It feels like it's been ages since we last caught up regarding the development of ",(0,a.jsx)(n.a,{href:"https://gamevau.lt",children:"GameVault (the self-hostable platform for drm-free videogames)"}),", but trust me, the silence from our end doesn't mean we've been slacking off. In fact,quite the opposite has been happening behind the scenes."]})]})}function c(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>i});var a=t(5271);const o={},l=a.createContext(o);function i(e){const n=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9147d3af.b382849a.js b/assets/js/9147d3af.b382849a.js new file mode 100644 index 000000000..923a2d173 --- /dev/null +++ b/assets/js/9147d3af.b382849a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1840],{8396:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var a=n(3696),o=n(6070),l=n(8591);const i={title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},s=void 0,r={authorsImageUrls:[void 0]},u=[];function m(e){const t={a:"a",p:"p",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,o.jsxs)(t.p,{children:["It feels like it's been ages since we last caught up regarding the development of ",(0,o.jsx)(t.a,{href:"https://gamevau.lt",children:"GameVault (the self-hostable platform for drm-free videogames)"}),", but trust me, the silence from our end doesn't mean we've been slacking off. In fact,quite the opposite has been happening behind the scenes."]})]})}function c(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>s});var a=n(758);const o={},l=a.createContext(o);function i(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),a.createElement(l.Provider,{value:t},e.children)}},3696:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/03/28/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md","source":"@site/blog/2024-03-28.md","title":"Announcing GameVault+ (coming soon)","description":"Hey Everyone!","date":"2024-03-28T00:00:00.000Z","tags":[{"inline":true,"label":"startup","permalink":"/blog/tags/startup"},{"inline":true,"label":"software","permalink":"/blog/tags/software"},{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription model","permalink":"/blog/tags/subscription-model"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"}],"readingTime":3.725,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Announcing GameVault+ (coming soon)","authors":["alfagun74"],"tags":["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},"unlisted":false,"prevItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"},"nextItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"}}')}}]); \ No newline at end of file diff --git a/assets/js/bcc2422e.cc2251a8.js b/assets/js/915cb6f7.036aa9bc.js similarity index 53% rename from assets/js/bcc2422e.cc2251a8.js rename to assets/js/915cb6f7.036aa9bc.js index 6aa7e80a7..4ad15ad0f 100644 --- a/assets/js/bcc2422e.cc2251a8.js +++ b/assets/js/915cb6f7.036aa9bc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8704],{939:e=>{e.exports=JSON.parse('{"tag":{"label":"UI Redesign","permalink":"/blog/tags/ui-redesign","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ui-redesign","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[384],{9547:l=>{l.exports=JSON.parse('{"tag":{"label":"April Fools","permalink":"/blog/tags/april-fools","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/april-fools","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/915cb6f7.f5acc05c.js b/assets/js/915cb6f7.f5acc05c.js deleted file mode 100644 index 5ecd471a8..000000000 --- a/assets/js/915cb6f7.f5acc05c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4509],{5532:l=>{l.exports=JSON.parse('{"tag":{"label":"April Fools","permalink":"/blog/tags/april-fools","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/april-fools","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/92440753.444c601f.js b/assets/js/92440753.ce494dc0.js similarity index 85% rename from assets/js/92440753.444c601f.js rename to assets/js/92440753.ce494dc0.js index 4a69c4562..1725be8c5 100644 --- a/assets/js/92440753.444c601f.js +++ b/assets/js/92440753.ce494dc0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3439],{8819:a=>{a.exports=JSON.parse('{"tag":{"label":"financial assistance","permalink":"/blog/tags/financial-assistance","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/financial-assistance","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2873],{4787:a=>{a.exports=JSON.parse('{"tag":{"label":"financial assistance","permalink":"/blog/tags/financial-assistance","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/financial-assistance","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/92fb1dcd.8516da11.js b/assets/js/92fb1dcd.738b9044.js similarity index 84% rename from assets/js/92fb1dcd.8516da11.js rename to assets/js/92fb1dcd.738b9044.js index d31c83be9..6786360e1 100644 --- a/assets/js/92fb1dcd.8516da11.js +++ b/assets/js/92fb1dcd.738b9044.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2908],{6583:a=>{a.exports=JSON.parse('{"tag":{"label":"roadmap","permalink":"/blog/tags/roadmap","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/roadmap","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9552],{6129:a=>{a.exports=JSON.parse('{"tag":{"label":"roadmap","permalink":"/blog/tags/roadmap","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/roadmap","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9404f843.223d7f9d.js b/assets/js/9404f843.223d7f9d.js deleted file mode 100644 index 5dbf264a3..000000000 --- a/assets/js/9404f843.223d7f9d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4811],{7130:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var a=i(2676),t=i(8358);const l={sidebar_position:4,title:"Client APIs"},s=void 0,r={id:"gamevault-plus/client-apis",title:"Client APIs",description:"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you're interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)",source:"@site/docs/gamevault-plus/client-apis.md",sourceDirName:"gamevault-plus",slug:"/gamevault-plus/client-apis",permalink:"/docs/gamevault-plus/client-apis",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/client-apis.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Client APIs"},sidebar:"docs",previous:{title:"Themes",permalink:"/docs/gamevault-plus/themes"},next:{title:"Licensing and Contributions",permalink:"/docs/license-contribute"}},d={},c=[{value:"Available APIs",id:"available-apis",level:2},{value:"CLI",id:"cli",level:3},{value:"URI",id:"uri",level:3},{value:"NamedPipe",id:"namedpipe",level:3},{value:"Usage",id:"usage",level:2},{value:"Available Actions & Parameters",id:"available-actions--parameters",level:2},{value:"URI "Query" Action",id:"uri-query-action",level:2},{value:"Command-line Examples",id:"command-line-examples",level:2},{value:"URI Examples",id:"uri-examples",level:2},{value:"Query Examples",id:"query-examples",level:2},{value:"C# Code Example",id:"c-code-example",level:2}];function o(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you're interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)"}),"\n",(0,a.jsx)(n.p,{children:"This guide provides comprehensive information on utilizing various interfaces offered by the GameVault client application for third-party developers. Whether you're building extensions or integrating with the GameVault ecosystem, this documentation will guide you through the available APIs and their specifications."}),"\n",(0,a.jsx)(n.h2,{id:"available-apis",children:"Available APIs"}),"\n",(0,a.jsx)(n.h3,{id:"cli",children:"CLI"}),"\n",(0,a.jsx)(n.p,{children:"The Command Line Interface (CLI) provides a straightforward way to interact with the GameVault client application directly from the command line. It supports various actions and parameters for seamless integration into your workflows."}),"\n",(0,a.jsx)(n.h3,{id:"uri",children:"URI"}),"\n",(0,a.jsx)(n.p,{children:"The Uniform Resource Identifier (URI) handler allows for communication with the GameVault client application through custom URI schemes. By leveraging URI endpoints, you can trigger actions and pass parameters conveniently."}),"\n",(0,a.jsx)(n.h3,{id:"namedpipe",children:"NamedPipe"}),"\n",(0,a.jsx)(n.p,{children:"The NamedPipe interface facilitates communication between processes on the same machine. Through NamedPipe, you can send messages to and receive responses from the GameVault client application, enabling real-time interaction."}),"\n",(0,a.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsx)(n.p,{children:"The following sections detail how to use each API provided by the GameVault client application."}),"\n",(0,a.jsx)(n.h2,{id:"available-actions--parameters",children:"Available Actions & Parameters"}),"\n",(0,a.jsx)(n.p,{children:"Explore the list of actions and parameters supported by the GameVault client APIs. (Bold parameters are required, Asterisks indicate default values )"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"<none>"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Supported for direct command-line usage only."}),"\n",(0,a.jsxs)(n.li,{children:["Alias for ",(0,a.jsx)(n.code,{children:"show"})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"show"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Starts and if the main application or a specific game."}),"\n",(0,a.jsxs)(n.li,{children:["Parameters:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to show."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"install"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Starts the download of a specific game defined by ",(0,a.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,a.jsxs)(n.li,{children:["Additional parameters:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsxs)(n.strong,{children:[(0,a.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to install."]})}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"uninstall"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Uninstalls a specific game defined by ",(0,a.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,a.jsxs)(n.li,{children:["Additional parameters:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsxs)(n.strong,{children:[(0,a.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to uninstall."]})}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"start"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Starts a specific game defined by ",(0,a.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,a.jsxs)(n.li,{children:["Additional parameters:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsxs)(n.strong,{children:[(0,a.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to start."]})}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"autoinstall=[true/false*]"}),": Whether to automatically install the game if not already installed."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"help <action>"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Displays help for the command line interface or a specific action."}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:["\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"version"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Displays the version of the GameVault client application."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"uri-query-action",children:'URI "Query" Action'}),"\n",(0,a.jsx)(n.p,{children:'The URI "query" action allows you to retrieve information from the client-side app. It is not a replacement for server-side backend interaction but serves as a means to obtain simple information.'}),"\n",(0,a.jsxs)(n.p,{children:["When sending a request via URI, an additional action called ",(0,a.jsx)(n.code,{children:"query"})," is available, which lets you get information from the client-side app. This is ",(0,a.jsx)(n.strong,{children:"not"})," a replacement for the server-side backend and is just a way to get simple information. The specific value to query is provided in the ",(0,a.jsx)(n.code,{children:"query"})," parameter, with the following options available:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"exists"}),": Check if the provided ",(0,a.jsx)(n.code,{children:"gameid"}),"-parameter exists locally or on the configured server (True/False)."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"installed"}),": Check if the provided ",(0,a.jsx)(n.code,{children:"gameid"}),"-parameter is installed (True/False)."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"downloaded"}),": Check if the provided ",(0,a.jsx)(n.code,{children:"gameid"}),"-parameter is downloaded (True/False)."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"getname"}),": Get the name of the game defined by ",(0,a.jsx)(n.code,{children:"gameid"}),"-parameter."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"getinstalldirectory"}),": Get the install directory of the game defined by ",(0,a.jsx)(n.code,{children:"gameid"}),"-parameter."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"getappversion"}),": Get the version of the application."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"getserverurl"}),": Get the URL that we're currently configured to point to."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"isloggedin"}),": Returns if the user is currently logged in (True/False)."]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"command-line-examples",children:"Command-line Examples"}),"\n",(0,a.jsx)(n.p,{children:"Explore examples of using the GameVault client APIs via the command line:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ps1",children:"# Launch GameVault\ngamevault.exe\n\n# Open GameVault in the background\ngamevault.exe --minimized=true\n\n# Show a specific game (ID 3)\ngamevault.exe show --gameid=3\n\n# Install a game (ID 3)\ngamevault.exe install --gameid=3\n\n# Uninstall a game (ID 3)\ngamevault.exe uninstall --gameid=3\n\n# Start a game (ID 3)\ngamevault.exe start --gameid=3\n\n# Start a game (ID 3) and bring GameVault into view\ngamevault.exe start --gameid=3 --minimized=false\n\n# Same as above without '='\ngamevault.exe start --gameid 3 --minimized false\n\n# Display help screen\ngamevault.exe help\n\n# Display help for 'start'\ngamevault.exe help start\n"})}),"\n",(0,a.jsx)(n.h2,{id:"uri-examples",children:"URI Examples"}),"\n",(0,a.jsx)(n.p,{children:"Discover examples of using the GameVault client APIs via URI:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-uri",children:"gamevault://show\ngamevault://show?minimized=true\ngamevault://install?gameid=3\ngamevault://uninstall?gameid=3\ngamevault://start?gameid=3\ngamevault://start?gameid=3&minimized=false\n"})}),"\n",(0,a.jsx)(n.h2,{id:"query-examples",children:"Query Examples"}),"\n",(0,a.jsx)(n.p,{children:"Explore examples of querying the GameVault client application through URI:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-uri",children:"gamevault://query?query=exists&gameid=3\ngamevault://query?query=installed&gameid=3\ngamevault://query?query=downloaded&gameid=3\ngamevault://query?query=getname&gameid=3\ngamevault://query?query=getinstalldirectory&gameid=3\ngamevault://query?query=getappversion\ngamevault://query?query=getserverurl\ngamevault://query?query=isloggedin\n"})}),"\n",(0,a.jsx)(n.h2,{id:"c-code-example",children:"C# Code Example"}),"\n",(0,a.jsx)(n.p,{children:"For developers working with C#, here's an example of interacting with the GameVault app through the NamedPipe:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-csharp",children:'using System;\nusing System.IO;\nusing System.IO.Pipes;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\n\npublic static class GameVaultInteraction\n{\n public static async Task<string> SendPipeMessage(string message, CancellationToken cancellationToken, bool expectsResult = false, int timeout = 500)\n {\n string result = null;\n using var client = new NamedPipeClientStream("GameVault");\n StreamWriter writer = null;\n StreamReader reader = null;\n\n try\n {\n await client.ConnectAsync(timeout, cancellationToken);\n\n writer = new StreamWriter(client, Encoding.UTF8, 1024, leaveOpen: true) { AutoFlush = true };\n await writer.WriteLineAsync(message);\n\n if (expectsResult)\n {\n reader = new StreamReader(client, Encoding.UTF8, false, 1024, leaveOpen: true);\n result = await reader.ReadLineAsync();\n }\n }\n finally\n {\n SafeDispose(writer);\n SafeDispose(reader);\n SafeDispose(client);\n }\n\n return result;\n }\n\n private static void SafeDispose(IDisposable disposable)\n {\n if (disposable == null)\n return;\n\n try\n {\n disposable.Dispose();\n }\n catch (Exception) { }\n }\n}\n'})})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}},8358:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>s});var a=i(5271);const t={},l=a.createContext(t);function s(e){const n=a.useContext(l);return a.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(t):e.components||t:s(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9404f843.436aab42.js b/assets/js/9404f843.436aab42.js new file mode 100644 index 000000000..762d05722 --- /dev/null +++ b/assets/js/9404f843.436aab42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5849],{340:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"gamevault-plus/client-apis","title":"Client APIs","description":"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you\'re interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)","source":"@site/docs/gamevault-plus/client-apis.md","sourceDirName":"gamevault-plus","slug":"/gamevault-plus/client-apis","permalink":"/docs/gamevault-plus/client-apis","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/client-apis.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"Client APIs"},"sidebar":"docs","previous":{"title":"Themes","permalink":"/docs/gamevault-plus/themes"},"next":{"title":"Licensing and Contributions","permalink":"/docs/license-contribute"}}');var t=i(6070),l=i(8591);const s={sidebar_position:4,title:"Client APIs"},r=void 0,d={},c=[{value:"Available APIs",id:"available-apis",level:2},{value:"CLI",id:"cli",level:3},{value:"URI",id:"uri",level:3},{value:"NamedPipe",id:"namedpipe",level:3},{value:"Usage",id:"usage",level:2},{value:"Available Actions & Parameters",id:"available-actions--parameters",level:2},{value:"URI "Query" Action",id:"uri-query-action",level:2},{value:"Command-line Examples",id:"command-line-examples",level:2},{value:"URI Examples",id:"uri-examples",level:2},{value:"Query Examples",id:"query-examples",level:2},{value:"C# Code Example",id:"c-code-example",level:2}];function o(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"The GameVault Client APIs offer interfaces for external use of the GameVault client application for subscribers of GameVault+. Whether you're interacting via the command line, URI, or NamedPipe, you have access to various functionalities provided by the GameVault Client Application. This can be useful for third-party developers who want to integrate with the GameVault ecosystem. (e.g. Playnite Extension)"}),"\n",(0,t.jsx)(n.p,{children:"This guide provides comprehensive information on utilizing various interfaces offered by the GameVault client application for third-party developers. Whether you're building extensions or integrating with the GameVault ecosystem, this documentation will guide you through the available APIs and their specifications."}),"\n",(0,t.jsx)(n.h2,{id:"available-apis",children:"Available APIs"}),"\n",(0,t.jsx)(n.h3,{id:"cli",children:"CLI"}),"\n",(0,t.jsx)(n.p,{children:"The Command Line Interface (CLI) provides a straightforward way to interact with the GameVault client application directly from the command line. It supports various actions and parameters for seamless integration into your workflows."}),"\n",(0,t.jsx)(n.h3,{id:"uri",children:"URI"}),"\n",(0,t.jsx)(n.p,{children:"The Uniform Resource Identifier (URI) handler allows for communication with the GameVault client application through custom URI schemes. By leveraging URI endpoints, you can trigger actions and pass parameters conveniently."}),"\n",(0,t.jsx)(n.h3,{id:"namedpipe",children:"NamedPipe"}),"\n",(0,t.jsx)(n.p,{children:"The NamedPipe interface facilitates communication between processes on the same machine. Through NamedPipe, you can send messages to and receive responses from the GameVault client application, enabling real-time interaction."}),"\n",(0,t.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsx)(n.p,{children:"The following sections detail how to use each API provided by the GameVault client application."}),"\n",(0,t.jsx)(n.h2,{id:"available-actions--parameters",children:"Available Actions & Parameters"}),"\n",(0,t.jsx)(n.p,{children:"Explore the list of actions and parameters supported by the GameVault client APIs. (Bold parameters are required, Asterisks indicate default values )"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"<none>"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Supported for direct command-line usage only."}),"\n",(0,t.jsxs)(n.li,{children:["Alias for ",(0,t.jsx)(n.code,{children:"show"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"show"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Starts and if the main application or a specific game."}),"\n",(0,t.jsxs)(n.li,{children:["Parameters:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to show."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"install"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Starts the download of a specific game defined by ",(0,t.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Additional parameters:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to install."]})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"uninstall"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Uninstalls a specific game defined by ",(0,t.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Additional parameters:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to uninstall."]})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"start"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Starts a specific game defined by ",(0,t.jsx)(n.code,{children:"gameid"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Additional parameters:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.code,{children:"gameid=[id]"}),": Target a specific game to start."]})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"minimized=[true/false*]"}),": Run the application minimized to the tray."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"autoinstall=[true/false*]"}),": Whether to automatically install the game if not already installed."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"help <action>"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Displays help for the command line interface or a specific action."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"version"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Displays the version of the GameVault client application."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"uri-query-action",children:'URI "Query" Action'}),"\n",(0,t.jsx)(n.p,{children:'The URI "query" action allows you to retrieve information from the client-side app. It is not a replacement for server-side backend interaction but serves as a means to obtain simple information.'}),"\n",(0,t.jsxs)(n.p,{children:["When sending a request via URI, an additional action called ",(0,t.jsx)(n.code,{children:"query"})," is available, which lets you get information from the client-side app. This is ",(0,t.jsx)(n.strong,{children:"not"})," a replacement for the server-side backend and is just a way to get simple information. The specific value to query is provided in the ",(0,t.jsx)(n.code,{children:"query"})," parameter, with the following options available:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"exists"}),": Check if the provided ",(0,t.jsx)(n.code,{children:"gameid"}),"-parameter exists locally or on the configured server (True/False)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"installed"}),": Check if the provided ",(0,t.jsx)(n.code,{children:"gameid"}),"-parameter is installed (True/False)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"downloaded"}),": Check if the provided ",(0,t.jsx)(n.code,{children:"gameid"}),"-parameter is downloaded (True/False)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"getname"}),": Get the name of the game defined by ",(0,t.jsx)(n.code,{children:"gameid"}),"-parameter."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"getinstalldirectory"}),": Get the install directory of the game defined by ",(0,t.jsx)(n.code,{children:"gameid"}),"-parameter."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"getappversion"}),": Get the version of the application."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"getserverurl"}),": Get the URL that we're currently configured to point to."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"isloggedin"}),": Returns if the user is currently logged in (True/False)."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"command-line-examples",children:"Command-line Examples"}),"\n",(0,t.jsx)(n.p,{children:"Explore examples of using the GameVault client APIs via the command line:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ps1",children:"# Launch GameVault\ngamevault.exe\n\n# Open GameVault in the background\ngamevault.exe --minimized=true\n\n# Show a specific game (ID 3)\ngamevault.exe show --gameid=3\n\n# Install a game (ID 3)\ngamevault.exe install --gameid=3\n\n# Uninstall a game (ID 3)\ngamevault.exe uninstall --gameid=3\n\n# Start a game (ID 3)\ngamevault.exe start --gameid=3\n\n# Start a game (ID 3) and bring GameVault into view\ngamevault.exe start --gameid=3 --minimized=false\n\n# Same as above without '='\ngamevault.exe start --gameid 3 --minimized false\n\n# Display help screen\ngamevault.exe help\n\n# Display help for 'start'\ngamevault.exe help start\n"})}),"\n",(0,t.jsx)(n.h2,{id:"uri-examples",children:"URI Examples"}),"\n",(0,t.jsx)(n.p,{children:"Discover examples of using the GameVault client APIs via URI:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-uri",children:"gamevault://show\ngamevault://show?minimized=true\ngamevault://install?gameid=3\ngamevault://uninstall?gameid=3\ngamevault://start?gameid=3\ngamevault://start?gameid=3&minimized=false\n"})}),"\n",(0,t.jsx)(n.h2,{id:"query-examples",children:"Query Examples"}),"\n",(0,t.jsx)(n.p,{children:"Explore examples of querying the GameVault client application through URI:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-uri",children:"gamevault://query?query=exists&gameid=3\ngamevault://query?query=installed&gameid=3\ngamevault://query?query=downloaded&gameid=3\ngamevault://query?query=getname&gameid=3\ngamevault://query?query=getinstalldirectory&gameid=3\ngamevault://query?query=getappversion\ngamevault://query?query=getserverurl\ngamevault://query?query=isloggedin\n"})}),"\n",(0,t.jsx)(n.h2,{id:"c-code-example",children:"C# Code Example"}),"\n",(0,t.jsx)(n.p,{children:"For developers working with C#, here's an example of interacting with the GameVault app through the NamedPipe:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-csharp",children:'using System;\nusing System.IO;\nusing System.IO.Pipes;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\n\npublic static class GameVaultInteraction\n{\n public static async Task<string> SendPipeMessage(string message, CancellationToken cancellationToken, bool expectsResult = false, int timeout = 500)\n {\n string result = null;\n using var client = new NamedPipeClientStream("GameVault");\n StreamWriter writer = null;\n StreamReader reader = null;\n\n try\n {\n await client.ConnectAsync(timeout, cancellationToken);\n\n writer = new StreamWriter(client, Encoding.UTF8, 1024, leaveOpen: true) { AutoFlush = true };\n await writer.WriteLineAsync(message);\n\n if (expectsResult)\n {\n reader = new StreamReader(client, Encoding.UTF8, false, 1024, leaveOpen: true);\n result = await reader.ReadLineAsync();\n }\n }\n finally\n {\n SafeDispose(writer);\n SafeDispose(reader);\n SafeDispose(client);\n }\n\n return result;\n }\n\n private static void SafeDispose(IDisposable disposable)\n {\n if (disposable == null)\n return;\n\n try\n {\n disposable.Dispose();\n }\n catch (Exception) { }\n }\n}\n'})})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8591:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>r});var a=i(758);const t={},l=a.createContext(t);function s(e){const n=a.useContext(l);return a.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(t):e.components||t:s(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9748c478.099aef4c.js b/assets/js/9748c478.099aef4c.js new file mode 100644 index 000000000..a7060ea39 --- /dev/null +++ b/assets/js/9748c478.099aef4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3911],{8169:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>t,toc:()=>h});var t=a(7985),s=a(6070),l=a(8591);const i={title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},r=void 0,o={authorsImageUrls:[void 0]},h=[{value:"Summary",id:"summary",level:2},{value:"Market Analysis",id:"market-analysis",level:2},{value:"1. GameStash",id:"1-gamestash",level:3},{value:"2. GameVault",id:"2-gamevault",level:3},{value:"3. GameShelf",id:"3-gameshelf",level:3},{value:"4. Harbor",id:"4-harbor",level:3},{value:"5. GameHub",id:"5-gamehub",level:3},{value:"What's Next?",id:"whats-next",level:2},{value:"Special Thanks \u2764\ufe0f",id:"special-thanks-\ufe0f",level:2}];function d(e){const n={a:"a",br:"br",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Hey everyone,"}),"\n",(0,s.jsx)(n.p,{children:"We are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can't wait to share the exciting updates with you."}),"\n",(0,s.jsx)(n.p,{children:"But first, let's dive into the poll results and shed some light on the important facts without further delay:"}),"\n",(0,s.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsx)(n.p,{children:"In total, 71 people participated in the poll, providing us with valuable data to draw conclusions from. Here's a summary of the key findings:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"52.1% of the community voted against using any terms related to piracy in the app. We understand and respect this choice because it would harm our business and attract the wrong users, as we have no affiliation with piracy."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"42.3% of the community voted to recommend the app under a different name but not with its current name. This feedback motivated us to rename the app, confirming that it wasn't just a few critics on Reddit. We want to expand our community to include the families, friends, and colleagues of these people. So please, help us spread the word about the name change!"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"36.6% of you said you wouldn't contribute to our app at all solely because of its name, even if you had the opportunity. We depend on these contributions to grow and improve, so we now encourage you to participate!"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Without further ado, here are the top 5 names that emerged as winners in the poll:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"GameStash (38%)"}),"\n",(0,s.jsx)(n.li,{children:"GameVault (35.2%)"}),"\n",(0,s.jsx)(n.li,{children:"GameShelf (31%)"}),"\n",(0,s.jsx)(n.li,{children:"Harbor (29.6%)"}),"\n",(0,s.jsx)(n.li,{children:"GameHub (28.2%)"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"As mentioned earlier, we conducted the poll without conducting market analysis beforehand. However, we recognized the significance of making an informed decision for the benefit of the community. Consequently, we proceeded to analyze each name after the poll to ensure the chosen name resonates with our vision."}),"\n",(0,s.jsx)(n.p,{children:"Allow us to share the summarized results of our market analysis:"}),"\n",(0,s.jsx)(n.h2,{id:"market-analysis",children:"Market Analysis"}),"\n",(0,s.jsx)(n.h3,{id:"1-gamestash",children:"1. GameStash"}),"\n",(0,s.jsxs)(n.p,{children:["Google Search Results: ~33,600",(0,s.jsx)(n.br,{}),"\n","Possible Domains: gamestash.de"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["There's already an app called ",(0,s.jsx)(n.a,{href:"https://gamestash.app/",children:"GameStash"})," that offers similar features to ours."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"2-gamevault",children:"2. GameVault"}),"\n",(0,s.jsxs)(n.p,{children:["Google Search Results: ~800,000",(0,s.jsx)(n.br,{}),"\n","Possible Domains: gamevau.lt, game-vault.de"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:['The term "GameVault" is associated with a popular online casino/gambling application called ',(0,s.jsx)(n.a,{href:"https://gamevault999.com/",children:"GameVault999"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-gameshelf",children:"3. GameShelf"}),"\n",(0,s.jsxs)(n.p,{children:["Google Search Results: ~560,000",(0,s.jsx)(n.br,{}),"\n","Possible Domains: gameshelf.de"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:['The name "Gameshelf" is already used by two existing applications. One is a ',(0,s.jsx)(n.a,{href:"https://gameshelf.io/",children:"Board-Game-Collection Viewer"}),", and the other is a ",(0,s.jsx)(n.a,{href:"https://gameshelf.dev",children:"Gaming Backlog"})," app."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"4-harbor",children:"4. Harbor"}),"\n",(0,s.jsxs)(n.p,{children:["Google Search Results: ~393,000,000",(0,s.jsx)(n.br,{}),"\n","Possible Domains: harborapp.de"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:'"Harbor" is a very common word, making it challenging to find a suitable domain that aligns with our brand identity.'}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Additionally, there's a well-known app called ",(0,s.jsx)(n.a,{href:"https://goharbor.io",children:"Harbor on the Market"})," related to Docker/Kubernetes."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"5-gamehub",children:"5. GameHub"}),"\n",(0,s.jsx)(n.p,{children:"Google Search Results: ~5,690,000\nPossible Domains: gamehubapp.de"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/tkashkin/GameHub",children:"GameHub"})," is a popular game library manager"]}),"\n",(0,s.jsx)(n.li,{children:"it also sounds like a popular adult site \ud83d\ude01"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,s.jsx)(n.p,{children:"We understand your eagerness for a new name, and we are equally committed to distancing ourselves from the old one. Taking into account all the suggested names and feedback, we engaged in extensive internal brainstorming, free from outside influences."}),"\n",(0,s.jsx)(n.p,{children:"We sought a name that is descriptive, intuitive, and effectively conveys the purpose of our app. Additionally, we aimed for a name that is easily memorable and emphasizes the ownership and control of a self-hosted server, security, and exclusivity."}),"\n",(0,s.jsxs)(n.p,{children:["Introducing our new name: ",(0,s.jsx)(n.strong,{children:"GameVault"}),(0,s.jsx)(n.br,{}),"\n","Available soon under this domain: ",(0,s.jsx)(n.a,{href:"https://gamevau.lt",children:"gamevau.lt"})]}),"\n",(0,s.jsx)(n.p,{children:"We have already secured the domain and registered the name wherever possible. The transition process will commence shortly. We are eager to hear your thoughts on the new name. Do you like it?"}),"\n",(0,s.jsx)(n.h2,{id:"special-thanks-\ufe0f",children:"Special Thanks \u2764\ufe0f"}),"\n",(0,s.jsx)(n.p,{children:"Well, as you all know, this was quite a journey to get here, and we wanted to give our special thanks to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Everybody who gave this project's idea a chance, even if the name was kind of weird."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Everybody who made suggestions on our ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server and participated in the discussions."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Everybody who voted."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["A special shoutout to @KairuByte on ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," for coming up with the name GameVault."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["We would also like to extend our gratitude to ",(0,s.jsx)(n.a,{href:"https://selfhosted.show/101?t=2731",children:"The Selfhosted Podcast"})," for discussing our app. (Brent, we are excited to hear your thoughts on the new name from a marketing standpoint \ud83d\ude1c)"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Last but not least, thank you to ",(0,s.jsx)(n.a,{href:"https://selfh.st/newsletter/2023-07-07/",children:"The Self-Hosted Newsletter"})," for mentioning our release."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Thank you all for your continued support!"}),"\n",(0,s.jsxs)(n.p,{children:["We will keep you updated as the transition unfolds. In the meantime, head over to our ",(0,s.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," channel to celebrate and share your thoughts on the new name."]}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned!"})]})}function u(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8591:(e,n,a)=>{a.d(n,{R:()=>i,x:()=>r});var t=a(758);const s={},l=t.createContext(s);function i(e){const n=t.useContext(l);return t.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(s):e.components||s:i(e.components),t.createElement(l.Provider,{value:n},e.children)}},7985:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/15/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md","source":"@site/blog/2023-07-15.md","title":"A New Name","description":"Hey everyone,","date":"2023-07-15T00:00:00.000Z","tags":[{"inline":true,"label":"poll results","permalink":"/blog/tags/poll-results"},{"inline":true,"label":"renaming app","permalink":"/blog/tags/renaming-app"},{"inline":true,"label":"community feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"GameStash","permalink":"/blog/tags/game-stash"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameShelf","permalink":"/blog/tags/game-shelf"},{"inline":true,"label":"Harbor","permalink":"/blog/tags/harbor"},{"inline":true,"label":"GameHub","permalink":"/blog/tags/game-hub"},{"inline":true,"label":"market analysis","permalink":"/blog/tags/market-analysis"},{"inline":true,"label":"new name announcement","permalink":"/blog/tags/new-name-announcement"},{"inline":true,"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain"},{"inline":true,"label":"special thanks","permalink":"/blog/tags/special-thanks"},{"inline":true,"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast"},{"inline":true,"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter"},{"inline":true,"label":"transition process","permalink":"/blog/tags/transition-process"}],"readingTime":3.85,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A New Name","authors":["alfagun74"],"tags":["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},"unlisted":false,"prevItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"},"nextItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"}}')}}]); \ No newline at end of file diff --git a/assets/js/9748c478.ab7b920b.js b/assets/js/9748c478.ab7b920b.js deleted file mode 100644 index eaf573759..000000000 --- a/assets/js/9748c478.ab7b920b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7807],{3326:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>h});var t=a(2676),s=a(8358);const l={title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},i=void 0,o={permalink:"/blog/2023/07/15/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md",source:"@site/blog/2023-07-15.md",title:"A New Name",description:"Hey everyone,",date:"2023-07-15T00:00:00.000Z",tags:[{inline:!0,label:"poll results",permalink:"/blog/tags/poll-results"},{inline:!0,label:"renaming app",permalink:"/blog/tags/renaming-app"},{inline:!0,label:"community feedback",permalink:"/blog/tags/community-feedback"},{inline:!0,label:"GameStash",permalink:"/blog/tags/game-stash"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameShelf",permalink:"/blog/tags/game-shelf"},{inline:!0,label:"Harbor",permalink:"/blog/tags/harbor"},{inline:!0,label:"GameHub",permalink:"/blog/tags/game-hub"},{inline:!0,label:"market analysis",permalink:"/blog/tags/market-analysis"},{inline:!0,label:"new name announcement",permalink:"/blog/tags/new-name-announcement"},{inline:!0,label:"GameVault domain",permalink:"/blog/tags/game-vault-domain"},{inline:!0,label:"special thanks",permalink:"/blog/tags/special-thanks"},{inline:!0,label:"Selfhosted Podcast",permalink:"/blog/tags/selfhosted-podcast"},{inline:!0,label:"Self-Hosted Newsletter",permalink:"/blog/tags/self-hosted-newsletter"},{inline:!0,label:"transition process",permalink:"/blog/tags/transition-process"}],readingTime:3.85,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A New Name",authors:["alfagun74"],tags:["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},unlisted:!1,prevItem:{title:"Quick Migration Update and new Logo",permalink:"/blog/2023/07/19/"},nextItem:{title:"A Closer Look at GameVaults 'Source-Available' Nature",permalink:"/blog/2023/07/13/"}},r={authorsImageUrls:[void 0]},h=[{value:"Summary",id:"summary",level:2},{value:"Market Analysis",id:"market-analysis",level:2},{value:"1. GameStash",id:"1-gamestash",level:3},{value:"2. GameVault",id:"2-gamevault",level:3},{value:"3. GameShelf",id:"3-gameshelf",level:3},{value:"4. Harbor",id:"4-harbor",level:3},{value:"5. GameHub",id:"5-gamehub",level:3},{value:"What's Next?",id:"whats-next",level:2},{value:"Special Thanks \u2764\ufe0f",id:"special-thanks-\ufe0f",level:2}];function d(e){const n={a:"a",br:"br",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Hey everyone,"}),"\n",(0,t.jsx)(n.p,{children:"We are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can't wait to share the exciting updates with you."}),"\n",(0,t.jsx)(n.p,{children:"But first, let's dive into the poll results and shed some light on the important facts without further delay:"}),"\n",(0,t.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,t.jsx)(n.p,{children:"In total, 71 people participated in the poll, providing us with valuable data to draw conclusions from. Here's a summary of the key findings:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"52.1% of the community voted against using any terms related to piracy in the app. We understand and respect this choice because it would harm our business and attract the wrong users, as we have no affiliation with piracy."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"42.3% of the community voted to recommend the app under a different name but not with its current name. This feedback motivated us to rename the app, confirming that it wasn't just a few critics on Reddit. We want to expand our community to include the families, friends, and colleagues of these people. So please, help us spread the word about the name change!"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"36.6% of you said you wouldn't contribute to our app at all solely because of its name, even if you had the opportunity. We depend on these contributions to grow and improve, so we now encourage you to participate!"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Without further ado, here are the top 5 names that emerged as winners in the poll:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"GameStash (38%)"}),"\n",(0,t.jsx)(n.li,{children:"GameVault (35.2%)"}),"\n",(0,t.jsx)(n.li,{children:"GameShelf (31%)"}),"\n",(0,t.jsx)(n.li,{children:"Harbor (29.6%)"}),"\n",(0,t.jsx)(n.li,{children:"GameHub (28.2%)"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"As mentioned earlier, we conducted the poll without conducting market analysis beforehand. However, we recognized the significance of making an informed decision for the benefit of the community. Consequently, we proceeded to analyze each name after the poll to ensure the chosen name resonates with our vision."}),"\n",(0,t.jsx)(n.p,{children:"Allow us to share the summarized results of our market analysis:"}),"\n",(0,t.jsx)(n.h2,{id:"market-analysis",children:"Market Analysis"}),"\n",(0,t.jsx)(n.h3,{id:"1-gamestash",children:"1. GameStash"}),"\n",(0,t.jsxs)(n.p,{children:["Google Search Results: ~33,600",(0,t.jsx)(n.br,{}),"\n","Possible Domains: gamestash.de"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["There's already an app called ",(0,t.jsx)(n.a,{href:"https://gamestash.app/",children:"GameStash"})," that offers similar features to ours."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-gamevault",children:"2. GameVault"}),"\n",(0,t.jsxs)(n.p,{children:["Google Search Results: ~800,000",(0,t.jsx)(n.br,{}),"\n","Possible Domains: gamevau.lt, game-vault.de"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:['The term "GameVault" is associated with a popular online casino/gambling application called ',(0,t.jsx)(n.a,{href:"https://gamevault999.com/",children:"GameVault999"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-gameshelf",children:"3. GameShelf"}),"\n",(0,t.jsxs)(n.p,{children:["Google Search Results: ~560,000",(0,t.jsx)(n.br,{}),"\n","Possible Domains: gameshelf.de"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:['The name "Gameshelf" is already used by two existing applications. One is a ',(0,t.jsx)(n.a,{href:"https://gameshelf.io/",children:"Board-Game-Collection Viewer"}),", and the other is a ",(0,t.jsx)(n.a,{href:"https://gameshelf.dev",children:"Gaming Backlog"})," app."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"4-harbor",children:"4. Harbor"}),"\n",(0,t.jsxs)(n.p,{children:["Google Search Results: ~393,000,000",(0,t.jsx)(n.br,{}),"\n","Possible Domains: harborapp.de"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:'"Harbor" is a very common word, making it challenging to find a suitable domain that aligns with our brand identity.'}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Additionally, there's a well-known app called ",(0,t.jsx)(n.a,{href:"https://goharbor.io",children:"Harbor on the Market"})," related to Docker/Kubernetes."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"5-gamehub",children:"5. GameHub"}),"\n",(0,t.jsx)(n.p,{children:"Google Search Results: ~5,690,000\nPossible Domains: gamehubapp.de"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/tkashkin/GameHub",children:"GameHub"})," is a popular game library manager"]}),"\n",(0,t.jsx)(n.li,{children:"it also sounds like a popular adult site \ud83d\ude01"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,t.jsx)(n.p,{children:"We understand your eagerness for a new name, and we are equally committed to distancing ourselves from the old one. Taking into account all the suggested names and feedback, we engaged in extensive internal brainstorming, free from outside influences."}),"\n",(0,t.jsx)(n.p,{children:"We sought a name that is descriptive, intuitive, and effectively conveys the purpose of our app. Additionally, we aimed for a name that is easily memorable and emphasizes the ownership and control of a self-hosted server, security, and exclusivity."}),"\n",(0,t.jsxs)(n.p,{children:["Introducing our new name: ",(0,t.jsx)(n.strong,{children:"GameVault"}),(0,t.jsx)(n.br,{}),"\n","Available soon under this domain: ",(0,t.jsx)(n.a,{href:"https://gamevau.lt",children:"gamevau.lt"})]}),"\n",(0,t.jsx)(n.p,{children:"We have already secured the domain and registered the name wherever possible. The transition process will commence shortly. We are eager to hear your thoughts on the new name. Do you like it?"}),"\n",(0,t.jsx)(n.h2,{id:"special-thanks-\ufe0f",children:"Special Thanks \u2764\ufe0f"}),"\n",(0,t.jsx)(n.p,{children:"Well, as you all know, this was quite a journey to get here, and we wanted to give our special thanks to:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Everybody who gave this project's idea a chance, even if the name was kind of weird."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Everybody who made suggestions on our ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server and participated in the discussions."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Everybody who voted."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["A special shoutout to @KairuByte on ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," for coming up with the name GameVault."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["We would also like to extend our gratitude to ",(0,t.jsx)(n.a,{href:"https://selfhosted.show/101?t=2731",children:"The Selfhosted Podcast"})," for discussing our app. (Brent, we are excited to hear your thoughts on the new name from a marketing standpoint \ud83d\ude1c)"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Last but not least, thank you to ",(0,t.jsx)(n.a,{href:"https://selfh.st/newsletter/2023-07-07/",children:"The Self-Hosted Newsletter"})," for mentioning our release."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Thank you all for your continued support!"}),"\n",(0,t.jsxs)(n.p,{children:["We will keep you updated as the transition unfolds. In the meantime, head over to our ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," channel to celebrate and share your thoughts on the new name."]}),"\n",(0,t.jsx)(n.p,{children:"Stay tuned!"})]})}function c(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8358:(e,n,a)=>{a.d(n,{Z:()=>o,a:()=>i});var t=a(5271);const s={},l=t.createContext(s);function i(e){const n=t.useContext(l);return t.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(s):e.components||s:i(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/979ccdb6.8cea7923.js b/assets/js/979ccdb6.7ccff8b7.js similarity index 83% rename from assets/js/979ccdb6.8cea7923.js rename to assets/js/979ccdb6.7ccff8b7.js index 3828f41ae..ea0f2d82e 100644 --- a/assets/js/979ccdb6.8cea7923.js +++ b/assets/js/979ccdb6.7ccff8b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9264],{4668:a=>{a.exports=JSON.parse('{"tag":{"label":"racist","permalink":"/blog/tags/racist","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/racist","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2082],{4846:a=>{a.exports=JSON.parse('{"tag":{"label":"racist","permalink":"/blog/tags/racist","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/racist","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/99d3d5ac.1aaa4761.js b/assets/js/99d3d5ac.700a7a58.js similarity index 85% rename from assets/js/99d3d5ac.1aaa4761.js rename to assets/js/99d3d5ac.700a7a58.js index b62087ab9..ed3e38531 100644 --- a/assets/js/99d3d5ac.1aaa4761.js +++ b/assets/js/99d3d5ac.700a7a58.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5150],{9782:e=>{e.exports=JSON.parse('{"tag":{"label":"Game Development","permalink":"/blog/tags/game-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9931],{5845:e=>{e.exports=JSON.parse('{"tag":{"label":"Game Development","permalink":"/blog/tags/game-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/99f2b7e6.acd277ff.js b/assets/js/99f2b7e6.a77edf89.js similarity index 84% rename from assets/js/99f2b7e6.acd277ff.js rename to assets/js/99f2b7e6.a77edf89.js index 106daea5a..3191b9ea8 100644 --- a/assets/js/99f2b7e6.acd277ff.js +++ b/assets/js/99f2b7e6.a77edf89.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7546],{8222:t=>{t.exports=JSON.parse('{"tag":{"label":"twitch.tv","permalink":"/blog/tags/twitch-tv","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/twitch-tv","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4309],{5318:t=>{t.exports=JSON.parse('{"tag":{"label":"twitch.tv","permalink":"/blog/tags/twitch-tv","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/twitch-tv","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9b1663d8.b5d4c1d6.js b/assets/js/9b1663d8.7486e176.js similarity index 83% rename from assets/js/9b1663d8.b5d4c1d6.js rename to assets/js/9b1663d8.7486e176.js index 18b7e8bef..208cae999 100644 --- a/assets/js/9b1663d8.b5d4c1d6.js +++ b/assets/js/9b1663d8.7486e176.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6497],{2022:a=>{a.exports=JSON.parse('{"tag":{"label":"gaming","permalink":"/blog/tags/gaming","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8446],{8819:a=>{a.exports=JSON.parse('{"tag":{"label":"gaming","permalink":"/blog/tags/gaming","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9b95b357.29f7c58b.js b/assets/js/9b95b357.ed73422d.js similarity index 84% rename from assets/js/9b95b357.29f7c58b.js rename to assets/js/9b95b357.ed73422d.js index de12bcdab..98ca7e73d 100644 --- a/assets/js/9b95b357.29f7c58b.js +++ b/assets/js/9b95b357.ed73422d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2942],{4133:a=>{a.exports=JSON.parse('{"tag":{"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-servers","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8069],{8642:a=>{a.exports=JSON.parse('{"tag":{"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-servers","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9d5a95a9.5e01b5f3.js b/assets/js/9d5a95a9.102a19d8.js similarity index 83% rename from assets/js/9d5a95a9.5e01b5f3.js rename to assets/js/9d5a95a9.102a19d8.js index 5c9f2beae..d4e8eaba8 100644 --- a/assets/js/9d5a95a9.5e01b5f3.js +++ b/assets/js/9d5a95a9.102a19d8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8023],{1272:a=>{a.exports=JSON.parse('{"tag":{"label":"IGDB","permalink":"/blog/tags/igdb","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/igdb","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7782],{8324:a=>{a.exports=JSON.parse('{"tag":{"label":"IGDB","permalink":"/blog/tags/igdb","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/igdb","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9d86e7fa.2f9f9808.js b/assets/js/9d86e7fa.ceef2bf7.js similarity index 84% rename from assets/js/9d86e7fa.2f9f9808.js rename to assets/js/9d86e7fa.ceef2bf7.js index 58e7fa5c5..18aab4edc 100644 --- a/assets/js/9d86e7fa.2f9f9808.js +++ b/assets/js/9d86e7fa.ceef2bf7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7508],{1629:a=>{a.exports=JSON.parse('{"tag":{"label":"announcement","permalink":"/blog/tags/announcement","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/announcement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4129],{1136:a=>{a.exports=JSON.parse('{"tag":{"label":"announcement","permalink":"/blog/tags/announcement","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/announcement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9d9f8394.562ecabc.js b/assets/js/9d9f8394.562ecabc.js deleted file mode 100644 index 6dfc43ae5..000000000 --- a/assets/js/9d9f8394.562ecabc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9360],{5465:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=r(2676),i=r(8358);const o={sidebar_position:99},t="Troubleshooting",a={id:"troubleshooting",title:"Troubleshooting",description:"Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can't find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via Discord. Alternatively, you may also directly email our company address if the issue is confidential.",source:"@site/docs/troubleshooting.md",sourceDirName:".",slug:"/troubleshooting",permalink:"/docs/troubleshooting",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/troubleshooting.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:99,frontMatter:{sidebar_position:99},sidebar:"docs",previous:{title:"Licensing and Contributions",permalink:"/docs/license-contribute"}},l={},d=[{value:"All-Rounder Solutions that Fix Most Problems",id:"all-rounder-solutions-that-fix-most-problems",level:2},{value:"Common Problems and Solutions",id:"common-problems-and-solutions",level:2},{value:"Incorrect Game Mapping",id:"incorrect-game-mapping",level:3},{value:"Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error",id:"server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",level:3},{value:"Unable to Connect to Server / 500 Internal Server Error",id:"unable-to-connect-to-server--500-internal-server-error",level:3},{value:"Initial Admin User is not working",id:"initial-admin-user-is-not-working",level:3},{value:"Games Not Appearing in the Installations / Servers List",id:"games-not-appearing-in-the-installations--servers-list",level:3},{value:"Missing Box Arts",id:"missing-box-arts",level:3},{value:"Lack of Metadata in Games",id:"lack-of-metadata-in-games",level:3},{value:"Lost my Admin Role",id:"lost-my-admin-role",level:3},{value:"Forgot my Admin Password",id:"forgot-my-admin-password",level:3},{value:"Game Downloads are slow",id:"game-downloads-are-slow",level:3}];function c(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"troubleshooting",children:"Troubleshooting"})}),"\n",(0,n.jsxs)(s.p,{children:["Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can't find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via ",(0,n.jsx)(s.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),". Alternatively, you may also directly ",(0,n.jsx)(s.a,{href:"mailto:contact@phalco.de",children:"email our company address"})," if the issue is confidential."]}),"\n",(0,n.jsx)(s.admonition,{title:"How to report an issue",type:"tip",children:(0,n.jsxs)(s.p,{children:["Always provide as much information as possible so that we can reproduce the problem, and ",(0,n.jsx)(s.strong,{children:"always"})," attach a full (from the start of the server to when the problem occurs) log file with the ",(0,n.jsx)(s.code,{children:"SERVER_LOG_LEVEL"})," env-var set to ",(0,n.jsx)(s.code,{children:"debug"}),". You ",(0,n.jsx)(s.strong,{children:"must not"})," shorten log files. It just makes it harder for us to understand what went wrong. We know they get big, but we know how to read them."]})}),"\n",(0,n.jsx)(s.h2,{id:"all-rounder-solutions-that-fix-most-problems",children:"All-Rounder Solutions that Fix Most Problems"}),"\n",(0,n.jsx)(s.p,{children:"I can't mention these in every single Section below, so before you try to solve anything, try these:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Check if the server is running healthy and is reachable from your client."}),"\n",(0,n.jsx)(s.li,{children:"Restart GameVault Client and Server."}),"\n",(0,n.jsxs)(s.li,{children:["Examine Client and Server Logs for error details. (Set ",(0,n.jsx)(s.code,{children:"SERVER_LOG_LEVEL"})," to ",(0,n.jsx)(s.code,{children:"debug"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:["Check ",(0,n.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"Server for any issues with Configuration"}),"."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"common-problems-and-solutions",children:"Common Problems and Solutions"}),"\n",(0,n.jsx)(s.h3,{id:"incorrect-game-mapping",children:"Incorrect Game Mapping"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Refer to ",(0,n.jsx)(s.a,{href:"/docs/client-docs/how-to-use#modifying-games",children:"this"})," for instructions on how to remap your games."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",children:"Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error"}),"\n",(0,n.jsx)(s.p,{children:"This is most probably a permissions issue due to the fact that gamevault runs as a non-root user (1000:1000) by default for security purposes."}),"\n",(0,n.jsxs)(s.p,{children:["Either make sure this user has permissions to read/write to the folders you map in as volumes, or run GameVault with a user that has the permissions to do so. You can do this by using the ",(0,n.jsx)(s.code,{children:"PUID"})," & ",(0,n.jsx)(s.code,{children:"PGID"})," environment variables."]}),"\n",(0,n.jsx)(s.h3,{id:"unable-to-connect-to-server--500-internal-server-error",children:"Unable to Connect to Server / 500 Internal Server Error"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Ensure that you use the correct protocol (http or https) in the connection string, particularly if your server doesn't support SSL."}),"\n",(0,n.jsxs)(s.li,{children:["If you have disabled authentication in your server configuration, make sure to include the authentication header for user-specific requests. ",(0,n.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"See here"})," for more information."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"initial-admin-user-is-not-working",children:"Initial Admin User is not working"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"You need to register the first user. It is automatically activated and granted admin permissions."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"games-not-appearing-in-the-installations--servers-list",children:"Games Not Appearing in the Installations / Servers List"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/docs/server-docs/adding-games",children:"Add Games to your server"})}),"\n",(0,n.jsx)(s.li,{children:"Clear the Searchbox"}),"\n",(0,n.jsx)(s.li,{children:"Clear all active Filters"}),"\n",(0,n.jsx)(s.li,{children:"Press F5 to trigger a new search"}),"\n",(0,n.jsxs)(s.li,{children:["For installations, verify your correct root folder is set ",(0,n.jsx)(s.a,{href:"/docs/client-docs/gui#data",children:"in the settings"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Verify your server's game id does not differ from the one in your installation folder (The game's server id can be found in the lower left corner of ",(0,n.jsx)(s.a,{href:"/docs/client-docs/gui#game-settings",children:"the game's settings"}),")."]}),"\n",(0,n.jsxs)(s.li,{children:["Verify ",(0,n.jsx)(s.a,{href:"/docs/server-docs/structure",children:"your file names are correct"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Check the Filesystem Permissions. See ",(0,n.jsx)(s.a,{href:"#server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",children:"here"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"missing-box-arts",children:"Missing Box Arts"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Set up a Metadata Provider"})," that provides box art for your games."]}),"\n",(0,n.jsxs)(s.li,{children:["Clear media caches ",(0,n.jsx)(s.a,{href:"/docs/client-docs/gui#data",children:"in the settings."})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"lack-of-metadata-in-games",children:"Lack of Metadata in Games"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Set up a Metadata Provider"})," that provides metadata for your games."]}),"\n",(0,n.jsxs)(s.li,{children:["Verify if ",(0,n.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"your Metadata Provider is disabled in your server configuration"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Verify if ",(0,n.jsx)(s.a,{href:"/docs/server-docs/structure",children:"your file names are correct"})]}),"\n",(0,n.jsxs)(s.li,{children:["Verify if you accidently marked your game as ",(0,n.jsx)(s.code,{children:"(NC)"})," (No Cache Flag)"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"lost-my-admin-role",children:"Lost my Admin Role"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Refer to ",(0,n.jsx)(s.a,{href:"./server-docs/user-management#admin-role-recovery",children:"this"})," for instructions on how to regain admin privileges for your user."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"forgot-my-admin-password",children:"Forgot my Admin Password"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Refer to ",(0,n.jsx)(s.a,{href:"./server-docs/user-management#admin-password-recovery",children:"this"})," for instructions on how to reset the password of your admin user."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"game-downloads-are-slow",children:"Game Downloads are slow"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Make sure the Clients Bandwidth Speed Limit is unset under ",(0,n.jsx)(s.code,{children:"Settings -> Application"})]}),"\n",(0,n.jsxs)(s.li,{children:["Make sure the Servers Bandwidth Speed Limit is unset (",(0,n.jsx)(s.code,{children:"SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS"})," environment variable unset or 0)"]}),"\n",(0,n.jsx)(s.li,{children:"Restart your Client and Server"}),"\n",(0,n.jsx)(s.li,{children:"If your server is in your LAN, make sure you don't mistakenly access it from WAN"}),"\n",(0,n.jsx)(s.li,{children:"Check your middle-mans: Proxies, VPNs and older Network Hardware could all affect the download speeds."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8358:(e,s,r)=>{r.d(s,{Z:()=>a,a:()=>t});var n=r(5271);const i={},o=n.createContext(i);function t(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9d9f8394.fa0ce498.js b/assets/js/9d9f8394.fa0ce498.js new file mode 100644 index 000000000..b7737b629 --- /dev/null +++ b/assets/js/9d9f8394.fa0ce498.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9013],{3303:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"troubleshooting","title":"Troubleshooting","description":"Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can\'t find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via Discord. Alternatively, you may also directly email our company address if the issue is confidential.","source":"@site/docs/troubleshooting.md","sourceDirName":".","slug":"/troubleshooting","permalink":"/docs/troubleshooting","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/troubleshooting.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":99,"frontMatter":{"sidebar_position":99},"sidebar":"docs","previous":{"title":"Licensing and Contributions","permalink":"/docs/license-contribute"}}');var i=r(6070),o=r(8591);const t={sidebar_position:99},a="Troubleshooting",l={},d=[{value:"All-Rounder Solutions that Fix Most Problems",id:"all-rounder-solutions-that-fix-most-problems",level:2},{value:"Common Problems and Solutions",id:"common-problems-and-solutions",level:2},{value:"Incorrect Game Mapping",id:"incorrect-game-mapping",level:3},{value:"Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error",id:"server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",level:3},{value:"Unable to Connect to Server / 500 Internal Server Error",id:"unable-to-connect-to-server--500-internal-server-error",level:3},{value:"Initial Admin User is not working",id:"initial-admin-user-is-not-working",level:3},{value:"Games Not Appearing in the Installations / Servers List",id:"games-not-appearing-in-the-installations--servers-list",level:3},{value:"Missing Box Arts",id:"missing-box-arts",level:3},{value:"Lack of Metadata in Games",id:"lack-of-metadata-in-games",level:3},{value:"Lost my Admin Role",id:"lost-my-admin-role",level:3},{value:"Forgot my Admin Password",id:"forgot-my-admin-password",level:3},{value:"Game Downloads are slow",id:"game-downloads-are-slow",level:3}];function c(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"troubleshooting",children:"Troubleshooting"})}),"\n",(0,i.jsxs)(s.p,{children:["Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can't find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via ",(0,i.jsx)(s.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),". Alternatively, you may also directly ",(0,i.jsx)(s.a,{href:"mailto:contact@phalco.de",children:"email our company address"})," if the issue is confidential."]}),"\n",(0,i.jsx)(s.admonition,{title:"How to report an issue",type:"tip",children:(0,i.jsxs)(s.p,{children:["Always provide as much information as possible so that we can reproduce the problem, and ",(0,i.jsx)(s.strong,{children:"always"})," attach a full (from the start of the server to when the problem occurs) log file with the ",(0,i.jsx)(s.code,{children:"SERVER_LOG_LEVEL"})," env-var set to ",(0,i.jsx)(s.code,{children:"debug"}),". You ",(0,i.jsx)(s.strong,{children:"must not"})," shorten log files. It just makes it harder for us to understand what went wrong. We know they get big, but we know how to read them."]})}),"\n",(0,i.jsx)(s.h2,{id:"all-rounder-solutions-that-fix-most-problems",children:"All-Rounder Solutions that Fix Most Problems"}),"\n",(0,i.jsx)(s.p,{children:"I can't mention these in every single Section below, so before you try to solve anything, try these:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Check if the server is running healthy and is reachable from your client."}),"\n",(0,i.jsx)(s.li,{children:"Restart GameVault Client and Server."}),"\n",(0,i.jsxs)(s.li,{children:["Examine Client and Server Logs for error details. (Set ",(0,i.jsx)(s.code,{children:"SERVER_LOG_LEVEL"})," to ",(0,i.jsx)(s.code,{children:"debug"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:["Check ",(0,i.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"Server for any issues with Configuration"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"common-problems-and-solutions",children:"Common Problems and Solutions"}),"\n",(0,i.jsx)(s.h3,{id:"incorrect-game-mapping",children:"Incorrect Game Mapping"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Refer to ",(0,i.jsx)(s.a,{href:"/docs/client-docs/how-to-use#modifying-games",children:"this"})," for instructions on how to remap your games."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",children:"Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error"}),"\n",(0,i.jsx)(s.p,{children:"This is most probably a permissions issue due to the fact that gamevault runs as a non-root user (1000:1000) by default for security purposes."}),"\n",(0,i.jsxs)(s.p,{children:["Either make sure this user has permissions to read/write to the folders you map in as volumes, or run GameVault with a user that has the permissions to do so. You can do this by using the ",(0,i.jsx)(s.code,{children:"PUID"})," & ",(0,i.jsx)(s.code,{children:"PGID"})," environment variables."]}),"\n",(0,i.jsx)(s.h3,{id:"unable-to-connect-to-server--500-internal-server-error",children:"Unable to Connect to Server / 500 Internal Server Error"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Ensure that you use the correct protocol (http or https) in the connection string, particularly if your server doesn't support SSL."}),"\n",(0,i.jsxs)(s.li,{children:["If you have disabled authentication in your server configuration, make sure to include the authentication header for user-specific requests. ",(0,i.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"See here"})," for more information."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"initial-admin-user-is-not-working",children:"Initial Admin User is not working"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"You need to register the first user. It is automatically activated and granted admin permissions."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"games-not-appearing-in-the-installations--servers-list",children:"Games Not Appearing in the Installations / Servers List"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/server-docs/adding-games",children:"Add Games to your server"})}),"\n",(0,i.jsx)(s.li,{children:"Clear the Searchbox"}),"\n",(0,i.jsx)(s.li,{children:"Clear all active Filters"}),"\n",(0,i.jsx)(s.li,{children:"Press F5 to trigger a new search"}),"\n",(0,i.jsxs)(s.li,{children:["For installations, verify your correct root folder is set ",(0,i.jsx)(s.a,{href:"/docs/client-docs/gui#data",children:"in the settings"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Verify your server's game id does not differ from the one in your installation folder (The game's server id can be found in the lower left corner of ",(0,i.jsx)(s.a,{href:"/docs/client-docs/gui#game-settings",children:"the game's settings"}),")."]}),"\n",(0,i.jsxs)(s.li,{children:["Verify ",(0,i.jsx)(s.a,{href:"/docs/server-docs/structure",children:"your file names are correct"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Check the Filesystem Permissions. See ",(0,i.jsx)(s.a,{href:"#server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"missing-box-arts",children:"Missing Box Arts"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Set up a Metadata Provider"})," that provides box art for your games."]}),"\n",(0,i.jsxs)(s.li,{children:["Clear media caches ",(0,i.jsx)(s.a,{href:"/docs/client-docs/gui#data",children:"in the settings."})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"lack-of-metadata-in-games",children:"Lack of Metadata in Games"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"Set up a Metadata Provider"})," that provides metadata for your games."]}),"\n",(0,i.jsxs)(s.li,{children:["Verify if ",(0,i.jsx)(s.a,{href:"/docs/server-docs/configuration",children:"your Metadata Provider is disabled in your server configuration"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Verify if ",(0,i.jsx)(s.a,{href:"/docs/server-docs/structure",children:"your file names are correct"})]}),"\n",(0,i.jsxs)(s.li,{children:["Verify if you accidently marked your game as ",(0,i.jsx)(s.code,{children:"(NC)"})," (No Cache Flag)"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"lost-my-admin-role",children:"Lost my Admin Role"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Refer to ",(0,i.jsx)(s.a,{href:"./server-docs/user-management#admin-role-recovery",children:"this"})," for instructions on how to regain admin privileges for your user."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"forgot-my-admin-password",children:"Forgot my Admin Password"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Refer to ",(0,i.jsx)(s.a,{href:"./server-docs/user-management#admin-password-recovery",children:"this"})," for instructions on how to reset the password of your admin user."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"game-downloads-are-slow",children:"Game Downloads are slow"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Make sure the Clients Bandwidth Speed Limit is unset under ",(0,i.jsx)(s.code,{children:"Settings -> Application"})]}),"\n",(0,i.jsxs)(s.li,{children:["Make sure the Servers Bandwidth Speed Limit is unset (",(0,i.jsx)(s.code,{children:"SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS"})," environment variable unset or 0)"]}),"\n",(0,i.jsx)(s.li,{children:"Restart your Client and Server"}),"\n",(0,i.jsx)(s.li,{children:"If your server is in your LAN, make sure you don't mistakenly access it from WAN"}),"\n",(0,i.jsx)(s.li,{children:"Check your middle-mans: Proxies, VPNs and older Network Hardware could all affect the download speeds."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,s,r)=>{r.d(s,{R:()=>t,x:()=>a});var n=r(758);const i={},o=n.createContext(i);function t(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.c436fd83.js b/assets/js/9e4087bc.c436fd83.js deleted file mode 100644 index d5d99ddaa..000000000 --- a/assets/js/9e4087bc.c436fd83.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3608],{7579:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});a(5271);var r=a(6527),n=a(2922),s=a(9967),i=a(1956),c=a(3557),l=a(3221),o=a(2676);function d(e){let{year:t,posts:a}=e;const n=(0,i.P)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.Z,{as:"h3",id:t,children:t}),(0,o.jsx)("ul",{children:a.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(r.Z,{to:e.metadata.permalink,children:[(t=e.metadata.date,n.format(new Date(t)))," - ",e.metadata.title]})},e.metadata.date);var t}))})]})}function h(e){let{years:t}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:t.map(((e,t)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},t)))})})})}function m(e){let{archive:t}=e;const a=(0,n.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),r=(0,n.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const t=e.reduce(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.d,{title:a,description:r}),(0,o.jsxs)(c.Z,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.Z,{as:"h1",className:"hero__title",children:a}),(0,o.jsx)("p",{className:"hero__subtitle",children:r})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},1956:(e,t,a)=>{a.d(t,{P:()=>n});var r=a(6172);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,r.Z)(),a=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,r.Z)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:a,...e})}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.ef008bbb.js b/assets/js/9e4087bc.ef008bbb.js new file mode 100644 index 000000000..16938f51c --- /dev/null +++ b/assets/js/9e4087bc.ef008bbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2711],{4597:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});a(758);var r=a(88),n=a(8072),s=a(5003),i=a(3886),c=a(3385),l=a(8038),o=a(6070);function d(e){let{year:t,posts:a}=e;const n=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:t,children:t}),(0,o.jsx)("ul",{children:a.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(r.A,{to:e.metadata.permalink,children:[(t=e.metadata.date,n.format(new Date(t)))," - ",e.metadata.title]})},e.metadata.date);var t}))})]})}function h(e){let{years:t}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:t.map(((e,t)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},t)))})})})}function m(e){let{archive:t}=e;const a=(0,n.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),r=(0,n.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const t=e.reduce(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.be,{title:a,description:r}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:a}),(0,o.jsx)("p",{className:"hero__subtitle",children:r})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},3886:(e,t,a)=>{a.d(t,{i:()=>n});var r=a(4480);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,r.A)(),a=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,r.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:a,...e})}}}]); \ No newline at end of file diff --git a/assets/js/9e75d8bf.09251459.js b/assets/js/9e75d8bf.09251459.js deleted file mode 100644 index 8526b3316..000000000 --- a/assets/js/9e75d8bf.09251459.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8444],{2611:a=>{a.exports=JSON.parse('{"tag":{"label":"platform values","permalink":"/blog/tags/platform-values","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/platform-values","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9e75d8bf.76ee71a4.js b/assets/js/9e75d8bf.76ee71a4.js new file mode 100644 index 000000000..2f394df93 --- /dev/null +++ b/assets/js/9e75d8bf.76ee71a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6569],{324:a=>{a.exports=JSON.parse('{"tag":{"label":"platform values","permalink":"/blog/tags/platform-values","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/platform-values","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/9fafd272.8c3e8bdf.js b/assets/js/9fafd272.52f35ff2.js similarity index 84% rename from assets/js/9fafd272.8c3e8bdf.js rename to assets/js/9fafd272.52f35ff2.js index 509a6a4dd..b5db89c41 100644 --- a/assets/js/9fafd272.8c3e8bdf.js +++ b/assets/js/9fafd272.52f35ff2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8666],{6839:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault","permalink":"/blog/tags/game-vault","allTagsPath":"/blog/tags","count":9,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault","page":1,"postsPerPage":10,"totalPages":1,"totalCount":9,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9482],{3917:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault","permalink":"/blog/tags/game-vault","allTagsPath":"/blog/tags","count":9,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault","page":1,"postsPerPage":10,"totalPages":1,"totalCount":9,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a1072f2a.635f4127.js b/assets/js/a1072f2a.635f4127.js new file mode 100644 index 000000000..1d3fab6fd --- /dev/null +++ b/assets/js/a1072f2a.635f4127.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4365],{8136:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"client-docs/gui","title":"GUI Overview","description":"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities.","source":"@site/docs/client-docs/gui.md","sourceDirName":"client-docs","slug":"/client-docs/gui","permalink":"/docs/client-docs/gui","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/gui.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":98,"frontMatter":{"sidebar_position":98},"sidebar":"docs","previous":{"title":"Data Management","permalink":"/docs/client-docs/data"},"next":{"title":"Themes","permalink":"/docs/client-docs/themes"}}');var t=n(6070),a=n(8591);const l={sidebar_position:98},d="GUI Overview",r={},o=[{value:"Setup Wizard",id:"setup-wizard",level:2},{value:"Library",id:"library",level:2},{value:"Game",id:"game",level:2},{value:"Game Settings",id:"game-settings",level:2},{value:"Your Computer",id:"your-computer",level:3},{value:"Installation",id:"installation",level:4},{value:"Launch Options",id:"launch-options",level:4},{value:"Server",id:"server",level:3},{value:"Edit Game Images",id:"edit-game-images",level:4},{value:"Metadata",id:"metadata",level:4},{value:"Custom Metadata",id:"custom-metadata",level:4},{value:"Downloads",id:"downloads",level:2},{value:"Community",id:"community",level:2},{value:"User Settings",id:"user-settings",level:2},{value:"Edit User Images",id:"edit-user-images",level:3},{value:"Edit Details",id:"edit-details",level:3},{value:"Settings",id:"settings",level:2},{value:"Application",id:"application",level:3},{value:"Installation",id:"installation-1",level:3},{value:"User",id:"user",level:3},{value:"Data",id:"data",level:3},{value:"Administration",id:"administration",level:2},{value:"News",id:"news",level:2}];function c(e){const i={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.header,{children:(0,t.jsx)(i.h1,{id:"gui-overview",children:"GUI Overview"})}),"\n",(0,t.jsx)(i.p,{children:"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities."}),"\n",(0,t.jsx)(i.h2,{id:"setup-wizard",children:"Setup Wizard"}),"\n",(0,t.jsx)(i.p,{children:"The Setup Wizard is a sub-page that appears when the necessary settings for GameVault are not configured. It guides users through these settings with detailed explanations. Exiting the wizard is optional, as all settings can also be configured in the settings tab."}),"\n",(0,t.jsx)(i.h2,{id:"library",children:"Library"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Library Tab"",src:n(1957).A+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Browse available and installed games."}),"\n",(0,t.jsx)(i.li,{children:"Expand or collapse sections with expanders."}),"\n",(0,t.jsx)(i.li,{children:"Launch installed games by clicking the play button on box art."}),"\n",(0,t.jsx)(i.li,{children:"Download available games by clicking the download button on box art."}),"\n",(0,t.jsx)(i.li,{children:"Access game settings directly with the Settings icon."}),"\n",(0,t.jsx)(i.li,{children:"The paged Library loads a maximum of 80 games at once for bandwidth efficiency."}),"\n",(0,t.jsx)(i.li,{children:"Use the dice icon to open a random game on the server."}),"\n",(0,t.jsx)(i.li,{children:"Employ the Filter icon for server game filtering."}),"\n",(0,t.jsx)(i.li,{children:"Utilize the search bar to find specific games."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"game",children:"Game"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Game Page"",src:n(2772).A+"",width:"1920",height:"1040"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View comprehensive game details including a Media Player for Trailers/Gameplays/Screenshots"}),"\n",(0,t.jsx)(i.li,{children:"Descriptions and Notes can also be displayed as Markdown."}),"\n",(0,t.jsx)(i.li,{children:"Set progress states (e.g., completed or aborted)."}),"\n",(0,t.jsx)(i.li,{children:"Review personal progress and that of other users"}),"\n",(0,t.jsx)(i.li,{children:"Add games to the download queue or launch installed games."}),"\n",(0,t.jsx)(i.li,{children:"Bookmark the game or create a share link"}),"\n",(0,t.jsxs)(i.li,{children:["Navigate back to the Library Tab using the back-arrow button or ",(0,t.jsx)(i.code,{children:"ESC"})," key."]}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"game-settings",children:"Game Settings"}),"\n",(0,t.jsx)(i.h3,{id:"your-computer",children:"Your Computer"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Settings affecting local game installations."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"installation",children:"Installation"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View installation directory."}),"\n",(0,t.jsx)(i.li,{children:"Uninstall games."}),"\n",(0,t.jsx)(i.li,{children:"Check disk usage for the game."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"launch-options",children:"Launch Options"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set default executable and launch parameters."}),"\n",(0,t.jsx)(i.li,{children:"Create desktop shortcuts."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"server",children:"Server"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Settings affecting all users on the server (visible to editors or higher)."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"edit-game-images",children:"Edit Game Images"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set a different thumbnail/background image using URLs or uploads. Has also a button to simplify the search for box/background images"}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"metadata",children:"Metadata"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Metadata"",src:n(1491).A+"",width:"1920",height:"1038"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View available metadata providers."}),"\n",(0,t.jsx)(i.li,{children:"Change metadata providers priority."}),"\n",(0,t.jsx)(i.li,{children:"Unmap metadata providers. If unmaped the header text will be grayed out a bit and the action buttons are disabled."}),"\n",(0,t.jsx)(i.li,{children:"Recache selected metadata provider."}),"\n",(0,t.jsx)(i.li,{children:'Switch metadata from selectd metadata providers in the "Remap Game" section.'}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"custom-metadata",children:"Custom Metadata"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Custom Metadata"",src:n(3721).A+"",width:"1920",height:"1039"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Have full control of all the specific game details such as description, genres, tags etc including a preview of the current set data."}),"\n",(0,t.jsx)(i.li,{children:"Click the relead icon beside a game detail to load the current values into the textbox."}),"\n",(0,t.jsxs)(i.li,{children:["Clear all user overwritten details by clicking the related button on the top right.","\n",(0,t.jsx)(i.admonition,{title:"Format",type:"note",children:(0,t.jsx)(i.p,{children:"Multiple entries such as genres, tags etc. must be separated by a comma."})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"downloads",children:"Downloads"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Downloads Tab"",src:n(8115).A+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Monitor running and completed downloads."}),"\n",(0,t.jsx)(i.li,{children:"View download statistics and progress."}),"\n",(0,t.jsx)(i.li,{children:"Abort downloads."}),"\n",(0,t.jsx)(i.li,{children:"Extract game archives and view extraction progress."}),"\n",(0,t.jsx)(i.li,{children:"Perform installations based on game types."}),"\n",(0,t.jsx)(i.li,{children:"Open download folders and delete downloaded files."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"community",children:"Community"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Community Tab"",src:n(8091).A+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View all users on the GameVault Server."}),"\n",(0,t.jsx)(i.li,{children:"Select users for detailed game progress information."}),"\n",(0,t.jsx)(i.li,{children:"Sort and delete progresses."}),"\n",(0,t.jsx)(i.li,{children:"Edit user details and reload progresses."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"user-settings",children:"User Settings"}),"\n",(0,t.jsx)(i.h3,{id:"edit-user-images",children:"Edit User Images"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set avatar/background images using URLs or uploads."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"edit-details",children:"Edit Details"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View and update user details."}),"\n",(0,t.jsx)(i.li,{children:"Update passwords with confirmation."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"settings",children:"Settings"}),"\n",(0,t.jsx)(i.h3,{id:"application",children:"Application"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Configure server URL and startup options."}),"\n",(0,t.jsx)(i.li,{children:"Change curren client theme or open the theme folder to insert your own."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"installation-1",children:"Installation"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Configure the donwload bandwidth limit."}),"\n",(0,t.jsx)(i.li,{children:"Set if you want to auto extract downloaded games and set a default password for encrypted archives."}),"\n",(0,t.jsx)(i.li,{children:"Set if portable games should be auto installed and if the install files should be auto deleted."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"user",children:"User"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Log In to GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Log Out from GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Register a new user on the GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Enter current User Settings"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"data",children:"Data"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Select GameVault root path and clear image and offline caches."}),"\n",(0,t.jsx)(i.li,{children:"Clear image/offline cache"}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"administration",children:"Administration"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Admin Tab"",src:n(4545).A+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Visible to admins only."}),"\n",(0,t.jsx)(i.li,{children:"View, activate/deactivate, and edit user roles."}),"\n",(0,t.jsx)(i.li,{children:"Delete or restore users."}),"\n",(0,t.jsx)(i.li,{children:"Open Community Tab profile by clicking on users' avatars."}),"\n",(0,t.jsx)(i.li,{children:"Re-index games on the server."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"news",children:"News"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""News"",src:n(5671).A+"",width:"1920",height:"1035"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"At the bottom left of the screen is a button with which you can display the latest news from gamevault or the server's own news."}),"\n",(0,t.jsx)(i.li,{children:"When new news are available the button will be marked with a red badged."}),"\n",(0,t.jsx)(i.li,{children:"News can also be displayed as Markdown."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},4545:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/admin-0ad4037b89a248bffa4e939d647d326c.png"},8091:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/community-717286c80fce866c158ab595629a937a.png"},8115:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/downloads-895661ab44edeb12e017a72eb3442d34.png"},2772:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/game-45374cc5b999ec17b1ca3578f8ff926b.png"},3721:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/gamesettings_custom_metadata-693ae3ed5dbea28c3afa3b4e88bea21a.png"},1491:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/gamesettings_metadata-92dd4562e50f7332b17bf9b7f0915583.png"},1957:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/library-afce4846b08b60cecca986a39b1fa331.png"},5671:(e,i,n)=>{n.d(i,{A:()=>s});const s=n.p+"assets/images/news-c0dbf35a1fb7b8c3573951a7649d2327.png"},8591:(e,i,n)=>{n.d(i,{R:()=>l,x:()=>d});var s=n(758);const t={},a=s.createContext(t);function l(e){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a1072f2a.7616025d.js b/assets/js/a1072f2a.7616025d.js deleted file mode 100644 index a56c0c673..000000000 --- a/assets/js/a1072f2a.7616025d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7650],{1674:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>o});var t=n(2676),s=n(8358);const a={sidebar_position:98},l="GUI Overview",d={id:"client-docs/gui",title:"GUI Overview",description:"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities.",source:"@site/docs/client-docs/gui.md",sourceDirName:"client-docs",slug:"/client-docs/gui",permalink:"/docs/client-docs/gui",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/gui.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:98,frontMatter:{sidebar_position:98},sidebar:"docs",previous:{title:"Data Management",permalink:"/docs/client-docs/data"},next:{title:"Themes",permalink:"/docs/client-docs/themes"}},r={},o=[{value:"Setup Wizard",id:"setup-wizard",level:2},{value:"Library",id:"library",level:2},{value:"Game",id:"game",level:2},{value:"Game Settings",id:"game-settings",level:2},{value:"Your Computer",id:"your-computer",level:3},{value:"Installation",id:"installation",level:4},{value:"Launch Options",id:"launch-options",level:4},{value:"Server",id:"server",level:3},{value:"Edit Game Images",id:"edit-game-images",level:4},{value:"Metadata",id:"metadata",level:4},{value:"Custom Metadata",id:"custom-metadata",level:4},{value:"Downloads",id:"downloads",level:2},{value:"Community",id:"community",level:2},{value:"User Settings",id:"user-settings",level:2},{value:"Edit User Images",id:"edit-user-images",level:3},{value:"Edit Details",id:"edit-details",level:3},{value:"Settings",id:"settings",level:2},{value:"Application",id:"application",level:3},{value:"Installation",id:"installation-1",level:3},{value:"User",id:"user",level:3},{value:"Data",id:"data",level:3},{value:"Administration",id:"administration",level:2},{value:"News",id:"news",level:2}];function c(e){const i={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.header,{children:(0,t.jsx)(i.h1,{id:"gui-overview",children:"GUI Overview"})}),"\n",(0,t.jsx)(i.p,{children:"This documentation provides a clear overview of the Graphical User Interface (GUI) for GameVault. The GUI encompasses various tabs, each offering distinct functionalities."}),"\n",(0,t.jsx)(i.h2,{id:"setup-wizard",children:"Setup Wizard"}),"\n",(0,t.jsx)(i.p,{children:"The Setup Wizard is a sub-page that appears when the necessary settings for GameVault are not configured. It guides users through these settings with detailed explanations. Exiting the wizard is optional, as all settings can also be configured in the settings tab."}),"\n",(0,t.jsx)(i.h2,{id:"library",children:"Library"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Library Tab"",src:n(5665).Z+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Browse available and installed games."}),"\n",(0,t.jsx)(i.li,{children:"Expand or collapse sections with expanders."}),"\n",(0,t.jsx)(i.li,{children:"Launch installed games by clicking the play button on box art."}),"\n",(0,t.jsx)(i.li,{children:"Download available games by clicking the download button on box art."}),"\n",(0,t.jsx)(i.li,{children:"Access game settings directly with the Settings icon."}),"\n",(0,t.jsx)(i.li,{children:"The paged Library loads a maximum of 80 games at once for bandwidth efficiency."}),"\n",(0,t.jsx)(i.li,{children:"Use the dice icon to open a random game on the server."}),"\n",(0,t.jsx)(i.li,{children:"Employ the Filter icon for server game filtering."}),"\n",(0,t.jsx)(i.li,{children:"Utilize the search bar to find specific games."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"game",children:"Game"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Game Page"",src:n(7345).Z+"",width:"1920",height:"1040"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View comprehensive game details including a Media Player for Trailers/Gameplays/Screenshots"}),"\n",(0,t.jsx)(i.li,{children:"Descriptions and Notes can also be displayed as Markdown."}),"\n",(0,t.jsx)(i.li,{children:"Set progress states (e.g., completed or aborted)."}),"\n",(0,t.jsx)(i.li,{children:"Review personal progress and that of other users"}),"\n",(0,t.jsx)(i.li,{children:"Add games to the download queue or launch installed games."}),"\n",(0,t.jsx)(i.li,{children:"Bookmark the game or create a share link"}),"\n",(0,t.jsxs)(i.li,{children:["Navigate back to the Library Tab using the back-arrow button or ",(0,t.jsx)(i.code,{children:"ESC"})," key."]}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"game-settings",children:"Game Settings"}),"\n",(0,t.jsx)(i.h3,{id:"your-computer",children:"Your Computer"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Settings affecting local game installations."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"installation",children:"Installation"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View installation directory."}),"\n",(0,t.jsx)(i.li,{children:"Uninstall games."}),"\n",(0,t.jsx)(i.li,{children:"Check disk usage for the game."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"launch-options",children:"Launch Options"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set default executable and launch parameters."}),"\n",(0,t.jsx)(i.li,{children:"Create desktop shortcuts."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"server",children:"Server"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Settings affecting all users on the server (visible to editors or higher)."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"edit-game-images",children:"Edit Game Images"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set a different thumbnail/background image using URLs or uploads. Has also a button to simplify the search for box/background images"}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"metadata",children:"Metadata"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Metadata"",src:n(413).Z+"",width:"1920",height:"1038"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View available metadata providers."}),"\n",(0,t.jsx)(i.li,{children:"Change metadata providers priority."}),"\n",(0,t.jsx)(i.li,{children:"Unmap metadata providers. If unmaped the header text will be grayed out a bit and the action buttons are disabled."}),"\n",(0,t.jsx)(i.li,{children:"Recache selected metadata provider."}),"\n",(0,t.jsx)(i.li,{children:'Switch metadata from selectd metadata providers in the "Remap Game" section.'}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"custom-metadata",children:"Custom Metadata"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Custom Metadata"",src:n(951).Z+"",width:"1920",height:"1039"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Have full control of all the specific game details such as description, genres, tags etc including a preview of the current set data."}),"\n",(0,t.jsx)(i.li,{children:"Click the relead icon beside a game detail to load the current values into the textbox."}),"\n",(0,t.jsxs)(i.li,{children:["Clear all user overwritten details by clicking the related button on the top right.","\n",(0,t.jsx)(i.admonition,{title:"Format",type:"note",children:(0,t.jsx)(i.p,{children:"Multiple entries such as genres, tags etc. must be separated by a comma."})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"downloads",children:"Downloads"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Downloads Tab"",src:n(8250).Z+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Monitor running and completed downloads."}),"\n",(0,t.jsx)(i.li,{children:"View download statistics and progress."}),"\n",(0,t.jsx)(i.li,{children:"Abort downloads."}),"\n",(0,t.jsx)(i.li,{children:"Extract game archives and view extraction progress."}),"\n",(0,t.jsx)(i.li,{children:"Perform installations based on game types."}),"\n",(0,t.jsx)(i.li,{children:"Open download folders and delete downloaded files."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"community",children:"Community"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Community Tab"",src:n(9263).Z+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View all users on the GameVault Server."}),"\n",(0,t.jsx)(i.li,{children:"Select users for detailed game progress information."}),"\n",(0,t.jsx)(i.li,{children:"Sort and delete progresses."}),"\n",(0,t.jsx)(i.li,{children:"Edit user details and reload progresses."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"user-settings",children:"User Settings"}),"\n",(0,t.jsx)(i.h3,{id:"edit-user-images",children:"Edit User Images"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Set avatar/background images using URLs or uploads."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"edit-details",children:"Edit Details"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"View and update user details."}),"\n",(0,t.jsx)(i.li,{children:"Update passwords with confirmation."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"settings",children:"Settings"}),"\n",(0,t.jsx)(i.h3,{id:"application",children:"Application"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Configure server URL and startup options."}),"\n",(0,t.jsx)(i.li,{children:"Change curren client theme or open the theme folder to insert your own."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"installation-1",children:"Installation"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Configure the donwload bandwidth limit."}),"\n",(0,t.jsx)(i.li,{children:"Set if you want to auto extract downloaded games and set a default password for encrypted archives."}),"\n",(0,t.jsx)(i.li,{children:"Set if portable games should be auto installed and if the install files should be auto deleted."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"user",children:"User"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Log In to GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Log Out from GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Register a new user on the GameVault Backend Server."}),"\n",(0,t.jsx)(i.li,{children:"Enter current User Settings"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"data",children:"Data"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Select GameVault root path and clear image and offline caches."}),"\n",(0,t.jsx)(i.li,{children:"Clear image/offline cache"}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"administration",children:"Administration"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""Admin Tab"",src:n(7783).Z+"",width:"2560",height:"1401"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Visible to admins only."}),"\n",(0,t.jsx)(i.li,{children:"View, activate/deactivate, and edit user roles."}),"\n",(0,t.jsx)(i.li,{children:"Delete or restore users."}),"\n",(0,t.jsx)(i.li,{children:"Open Community Tab profile by clicking on users' avatars."}),"\n",(0,t.jsx)(i.li,{children:"Re-index games on the server."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"news",children:"News"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:""News"",src:n(6550).Z+"",width:"1920",height:"1035"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"At the bottom left of the screen is a button with which you can display the latest news from gamevault or the server's own news."}),"\n",(0,t.jsx)(i.li,{children:"When new news are available the button will be marked with a red badged."}),"\n",(0,t.jsx)(i.li,{children:"News can also be displayed as Markdown."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},7783:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/admin-0ad4037b89a248bffa4e939d647d326c.png"},9263:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/community-717286c80fce866c158ab595629a937a.png"},8250:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/downloads-895661ab44edeb12e017a72eb3442d34.png"},7345:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/game-45374cc5b999ec17b1ca3578f8ff926b.png"},951:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/gamesettings_custom_metadata-693ae3ed5dbea28c3afa3b4e88bea21a.png"},413:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/gamesettings_metadata-92dd4562e50f7332b17bf9b7f0915583.png"},5665:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/library-afce4846b08b60cecca986a39b1fa331.png"},6550:(e,i,n)=>{n.d(i,{Z:()=>t});const t=n.p+"assets/images/news-c0dbf35a1fb7b8c3573951a7649d2327.png"},8358:(e,i,n)=>{n.d(i,{Z:()=>d,a:()=>l});var t=n(5271);const s={},a=t.createContext(s);function l(e){const i=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a1216fa4.53700068.js b/assets/js/a1216fa4.53700068.js new file mode 100644 index 000000000..a1f254d5e --- /dev/null +++ b/assets/js/a1216fa4.53700068.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8457],{81:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var a=n(1757),i=n(6070),o=n(8591);const l={title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},s=void 0,r={authorsImageUrls:[void 0]},u=[{value:"GameVault's Installation Pipeline",id:"gamevaults-installation-pipeline",level:4},{value:"Join us on Lemmy",id:"join-us-on-lemmy",level:4},{value:"Share GameVault with Others",id:"share-gamevault-with-others",level:4},{value:"Support Us",id:"support-us",level:4}];function m(e){const t={a:"a",code:"code",h4:"h4",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Hey everyone,"}),"\n",(0,i.jsxs)(t.p,{children:["We're excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application. What's even more amazing is that around 200 dedicated users, a third of these installations, have joined our ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," community to connect, chat, and share their experiences."]}),"\n",(0,i.jsx)(t.p,{children:"We want to express our immense gratitude for your incredible support, feedback, and love for GameVault. Your ongoing encouragement inspires us to push boundaries and enhance your gaming experience. We're thrilled to announce that an awesome update is being worked on right now - the highly anticipated release of GameVault's Installation Pipeline!"}),"\n",(0,i.jsx)(t.h4,{id:"gamevaults-installation-pipeline",children:"GameVault's Installation Pipeline"}),"\n",(0,i.jsxs)(t.p,{children:["The Installation Pipeline is designed to revolutionize how you install and manage your games. It was suggested by members on our ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord server"}),". We understand the challenges of navigating through different installation processes, especially for family members who may not be tech-savvy. With the Installation Pipeline, our goal is to simplify the entire process and make it user-friendly. Whether you're an experienced gamer or not, this update will make installing games easier for you."]}),"\n",(0,i.jsxs)(t.p,{children:["You can read the details ",(0,i.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues/18",children:"here on the GitHub issue"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Stay tuned for its upcoming release, and to be among the first to try out this awesome feature, make sure to subscribe to the ",(0,i.jsx)(t.code,{children:"@Updates"})," Role on our ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord server"})," , if you haven't already. We'll ping you as soon as it's live!"]}),"\n",(0,i.jsx)(t.h4,{id:"join-us-on-lemmy",children:"Join us on Lemmy"}),"\n",(0,i.jsxs)(t.p,{children:["To further connect with our amazing community, we're excited to announce the launch of our ",(0,i.jsx)(t.a,{href:"https://lemmy.world/c/phalcode",children:"official Lemmy community"}),". From now on, we'll also regularly share new blog posts there, providing you with more ways to stay informed and engaged. Join the Lemmy forum and become part of the growing GameVault community!"]}),"\n",(0,i.jsx)(t.h4,{id:"share-gamevault-with-others",children:"Share GameVault with Others"}),"\n",(0,i.jsx)(t.p,{children:"As we celebrate this milestone and eagerly anticipate more exciting updates, we invite you to spread the word about GameVault among your friends, family, and gaming or self-hosting communities. Your personal recommendations and referrals have played a significant role in our journey so far, and we believe they'll continue to do so in the future."}),"\n",(0,i.jsx)(t.p,{children:"We want to express our heartfelt appreciation for the feature requests, discussions, and invaluable help on our GitHub. Your support and collaborative efforts help a lot."}),"\n",(0,i.jsx)(t.h4,{id:"support-us",children:"Support Us"}),"\n",(0,i.jsx)(t.p,{children:"As we move forward, we kindly ask for your continued support. GameVault's success is currently solely built upon our incredible community, and your encouragement is what fuels us. If you love our app and believe in our vision, please consider supporting us in any way you can. It could even be something simple like a rating on the Microsoft Store. Your backing empowers us to keep our hard work going."}),"\n",(0,i.jsx)(t.p,{children:"We're eagerly looking forward to celebrating more achievements with all of you."}),"\n",(0,i.jsx)(t.p,{children:"Stay tuned, stay connected, and let's continue this journey together!"})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>s});var a=n(758);const i={},o=a.createContext(i);function l(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(o.Provider,{value:t},e.children)}},1757:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/24/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md","source":"@site/blog/2023-07-24.md","title":"Celebrating 600+ Installations and announcing the upcoming big feature","description":"Hey everyone,","date":"2023-07-24T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone"},{"inline":true,"label":"official installations","permalink":"/blog/tags/official-installations"},{"inline":true,"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth"},{"inline":true,"label":"gratitude","permalink":"/blog/tags/gratitude"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault"},{"inline":true,"label":"upcoming update","permalink":"/blog/tags/upcoming-update"},{"inline":true,"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline"},{"inline":true,"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation"},{"inline":true,"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue"},{"inline":true,"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role"},{"inline":true,"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch"},{"inline":true,"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"support request","permalink":"/blog/tags/support-request"},{"inline":true,"label":"continued support","permalink":"/blog/tags/continued-support"},{"inline":true,"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements"}],"readingTime":2.39,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","authors":["alfagun74"],"tags":["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},"unlisted":false,"prevItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"},"nextItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"}}')}}]); \ No newline at end of file diff --git a/assets/js/a1216fa4.b3f075b9.js b/assets/js/a1216fa4.b3f075b9.js deleted file mode 100644 index c2ef4f572..000000000 --- a/assets/js/a1216fa4.b3f075b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5662],{6746:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=t(2676),i=t(8358);const o={title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},l=void 0,s={permalink:"/blog/2023/07/24/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md",source:"@site/blog/2023-07-24.md",title:"Celebrating 600+ Installations and announcing the upcoming big feature",description:"Hey everyone,",date:"2023-07-24T00:00:00.000Z",tags:[{inline:!0,label:"GameVault milestone",permalink:"/blog/tags/game-vault-milestone"},{inline:!0,label:"official installations",permalink:"/blog/tags/official-installations"},{inline:!0,label:"Discord community growth",permalink:"/blog/tags/discord-community-growth"},{inline:!0,label:"gratitude",permalink:"/blog/tags/gratitude"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"love for GameVault",permalink:"/blog/tags/love-for-game-vault"},{inline:!0,label:"upcoming update",permalink:"/blog/tags/upcoming-update"},{inline:!0,label:"Installation Pipeline",permalink:"/blog/tags/installation-pipeline"},{inline:!0,label:"simplifying game installation",permalink:"/blog/tags/simplifying-game-installation"},{inline:!0,label:"GitHub issue",permalink:"/blog/tags/git-hub-issue"},{inline:!0,label:"subscription to Updates role",permalink:"/blog/tags/subscription-to-updates-role"},{inline:!0,label:"Lemmy community launch",permalink:"/blog/tags/lemmy-community-launch"},{inline:!0,label:"sharing blog posts",permalink:"/blog/tags/sharing-blog-posts"},{inline:!0,label:"spreading the word",permalink:"/blog/tags/spreading-the-word"},{inline:!0,label:"support request",permalink:"/blog/tags/support-request"},{inline:!0,label:"continued support",permalink:"/blog/tags/continued-support"},{inline:!0,label:"celebration of achievements",permalink:"/blog/tags/celebration-of-achievements"}],readingTime:2.39,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},unlisted:!1,prevItem:{title:"Please help us prioritize!",permalink:"/blog/2023/07/29/"},nextItem:{title:"The Migrations are finally completed",permalink:"/blog/2023/07/20/"}},r={authorsImageUrls:[void 0]},u=[{value:"GameVault's Installation Pipeline",id:"gamevaults-installation-pipeline",level:4},{value:"Join us on Lemmy",id:"join-us-on-lemmy",level:4},{value:"Share GameVault with Others",id:"share-gamevault-with-others",level:4},{value:"Support Us",id:"support-us",level:4}];function m(e){const n={a:"a",code:"code",h4:"h4",p:"p",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Hey everyone,"}),"\n",(0,a.jsxs)(n.p,{children:["We're excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application. What's even more amazing is that around 200 dedicated users, a third of these installations, have joined our ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," community to connect, chat, and share their experiences."]}),"\n",(0,a.jsx)(n.p,{children:"We want to express our immense gratitude for your incredible support, feedback, and love for GameVault. Your ongoing encouragement inspires us to push boundaries and enhance your gaming experience. We're thrilled to announce that an awesome update is being worked on right now - the highly anticipated release of GameVault's Installation Pipeline!"}),"\n",(0,a.jsx)(n.h4,{id:"gamevaults-installation-pipeline",children:"GameVault's Installation Pipeline"}),"\n",(0,a.jsxs)(n.p,{children:["The Installation Pipeline is designed to revolutionize how you install and manage your games. It was suggested by members on our ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord server"}),". We understand the challenges of navigating through different installation processes, especially for family members who may not be tech-savvy. With the Installation Pipeline, our goal is to simplify the entire process and make it user-friendly. Whether you're an experienced gamer or not, this update will make installing games easier for you."]}),"\n",(0,a.jsxs)(n.p,{children:["You can read the details ",(0,a.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-app/issues/18",children:"here on the GitHub issue"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["Stay tuned for its upcoming release, and to be among the first to try out this awesome feature, make sure to subscribe to the ",(0,a.jsx)(n.code,{children:"@Updates"})," Role on our ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord server"})," , if you haven't already. We'll ping you as soon as it's live!"]}),"\n",(0,a.jsx)(n.h4,{id:"join-us-on-lemmy",children:"Join us on Lemmy"}),"\n",(0,a.jsxs)(n.p,{children:["To further connect with our amazing community, we're excited to announce the launch of our ",(0,a.jsx)(n.a,{href:"https://lemmy.world/c/phalcode",children:"official Lemmy community"}),". From now on, we'll also regularly share new blog posts there, providing you with more ways to stay informed and engaged. Join the Lemmy forum and become part of the growing GameVault community!"]}),"\n",(0,a.jsx)(n.h4,{id:"share-gamevault-with-others",children:"Share GameVault with Others"}),"\n",(0,a.jsx)(n.p,{children:"As we celebrate this milestone and eagerly anticipate more exciting updates, we invite you to spread the word about GameVault among your friends, family, and gaming or self-hosting communities. Your personal recommendations and referrals have played a significant role in our journey so far, and we believe they'll continue to do so in the future."}),"\n",(0,a.jsx)(n.p,{children:"We want to express our heartfelt appreciation for the feature requests, discussions, and invaluable help on our GitHub. Your support and collaborative efforts help a lot."}),"\n",(0,a.jsx)(n.h4,{id:"support-us",children:"Support Us"}),"\n",(0,a.jsx)(n.p,{children:"As we move forward, we kindly ask for your continued support. GameVault's success is currently solely built upon our incredible community, and your encouragement is what fuels us. If you love our app and believe in our vision, please consider supporting us in any way you can. It could even be something simple like a rating on the Microsoft Store. Your backing empowers us to keep our hard work going."}),"\n",(0,a.jsx)(n.p,{children:"We're eagerly looking forward to celebrating more achievements with all of you."}),"\n",(0,a.jsx)(n.p,{children:"Stay tuned, stay connected, and let's continue this journey together!"})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>l});var a=t(5271);const i={},o=a.createContext(i);function l(e){const n=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a1f57275.aa4d0682.js b/assets/js/a1f57275.aa4d0682.js new file mode 100644 index 000000000..1652e486f --- /dev/null +++ b/assets/js/a1f57275.aa4d0682.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2333],{2348:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>r,toc:()=>u});var r=t(5518),n=t(6070),o=t(8591);const l={title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},i=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const a={a:"a",p:"p",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey Guys,"}),"\n",(0,n.jsx)(a.p,{children:"Our team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community. "}),"\n",(0,n.jsx)(a.p,{children:"With GameVault, you can play and track games together with your friends on a shared file server, free from any restrictions that traditional game platforms may impose. We have designed it to work with DRM-free games, providing a unique solution for those who want a more flexible and open approach to gaming. Think of it like Jellyfin, but for Videogames."}),"\n",(0,n.jsx)(a.p,{children:"GameVault offers a self-hosted approach that gives you complete control over your gaming experience. The platform enables you to browse your server's game collection, securely download games, launch and play them, and even track your playtimes and progress - regardless of whether the server is offline. Additionally, you can compare stats and play states with other users on the server."}),"\n",(0,n.jsx)(a.p,{children:"Our server features offer automatic indexing of games on the file system into a database, enrichment of games with metadata like tags and genres using RAWG API, multi-user authentication, and configurable logging. We have also implemented health monitoring, full-text search, filters, sorting, pagination, and a fully documented API. The GameVault platform is highly configurable to suit your needs."}),"\n",(0,n.jsxs)(a.p,{children:["We are thrilled that you have found us, and we invite you to try GameVault today. We would be grateful for any contributions, feedback, bug reports, and feature requests you might have. You can also support us by donating using the links provided on our website. If you have any questions or would like to connect with other GameVault users, please join our ",(0,n.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", Reddit and Lemmy communities - links to which are available in the footer."]}),"\n",(0,n.jsx)(a.p,{children:"We are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault."})]})}function g(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},8591:(e,a,t)=>{t.d(a,{R:()=>l,x:()=>i});var r=t(758);const n={},o=r.createContext(n);function l(e){const a=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),r.createElement(o.Provider,{value:a},e.children)}},5518:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md","source":"@site/blog/2023-07-01.md","title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","description":"Hey Guys,","date":"2023-07-01T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"alternative","permalink":"/blog/tags/alternative"},{"inline":true,"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms"},{"inline":true,"label":"DRM-free games","permalink":"/blog/tags/drm-free-games"},{"inline":true,"label":"file server","permalink":"/blog/tags/file-server"},{"inline":true,"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"RAWG API","permalink":"/blog/tags/rawg-api"},{"inline":true,"label":"health monitoring","permalink":"/blog/tags/health-monitoring"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"Discord server","permalink":"/blog/tags/discord-server"},{"inline":true,"label":"Reddit forum","permalink":"/blog/tags/reddit-forum"},{"inline":true,"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum"}],"readingTime":1.78,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","authors":["alfagun74"],"tags":["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},"unlisted":false,"prevItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}}')}}]); \ No newline at end of file diff --git a/assets/js/a1f57275.f5d129b3.js b/assets/js/a1f57275.f5d129b3.js deleted file mode 100644 index be00713dc..000000000 --- a/assets/js/a1f57275.f5d129b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5325],{2688:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var n=t(2676),o=t(8358);const l={title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},i=void 0,r={permalink:"/blog/2023/07/01/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md",source:"@site/blog/2023-07-01.md",title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",description:"Hey Guys,",date:"2023-07-01T00:00:00.000Z",tags:[{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"source-available",permalink:"/blog/tags/source-available"},{inline:!0,label:"self-hosted",permalink:"/blog/tags/self-hosted"},{inline:!0,label:"alternative",permalink:"/blog/tags/alternative"},{inline:!0,label:"cloud-based game platforms",permalink:"/blog/tags/cloud-based-game-platforms"},{inline:!0,label:"DRM-free games",permalink:"/blog/tags/drm-free-games"},{inline:!0,label:"file server",permalink:"/blog/tags/file-server"},{inline:!0,label:"multi-user authentication",permalink:"/blog/tags/multi-user-authentication"},{inline:!0,label:"metadata",permalink:"/blog/tags/metadata"},{inline:!0,label:"RAWG API",permalink:"/blog/tags/rawg-api"},{inline:!0,label:"health monitoring",permalink:"/blog/tags/health-monitoring"},{inline:!0,label:"API",permalink:"/blog/tags/api"},{inline:!0,label:"Discord server",permalink:"/blog/tags/discord-server"},{inline:!0,label:"Reddit forum",permalink:"/blog/tags/reddit-forum"},{inline:!0,label:"Lemmy forum",permalink:"/blog/tags/lemmy-forum"}],readingTime:1.78,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",authors:["alfagun74"],tags:["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},unlisted:!1,prevItem:{title:"Choosing a New, Family-Friendly Name for this project!",permalink:"/blog/2023/07/08/"}},s={authorsImageUrls:[void 0]},m=[];function u(e){const a={a:"a",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey Guys,"}),"\n",(0,n.jsx)(a.p,{children:"Our team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community. "}),"\n",(0,n.jsx)(a.p,{children:"With GameVault, you can play and track games together with your friends on a shared file server, free from any restrictions that traditional game platforms may impose. We have designed it to work with DRM-free games, providing a unique solution for those who want a more flexible and open approach to gaming. Think of it like Jellyfin, but for Videogames."}),"\n",(0,n.jsx)(a.p,{children:"GameVault offers a self-hosted approach that gives you complete control over your gaming experience. The platform enables you to browse your server's game collection, securely download games, launch and play them, and even track your playtimes and progress - regardless of whether the server is offline. Additionally, you can compare stats and play states with other users on the server."}),"\n",(0,n.jsx)(a.p,{children:"Our server features offer automatic indexing of games on the file system into a database, enrichment of games with metadata like tags and genres using RAWG API, multi-user authentication, and configurable logging. We have also implemented health monitoring, full-text search, filters, sorting, pagination, and a fully documented API. The GameVault platform is highly configurable to suit your needs."}),"\n",(0,n.jsxs)(a.p,{children:["We are thrilled that you have found us, and we invite you to try GameVault today. We would be grateful for any contributions, feedback, bug reports, and feature requests you might have. You can also support us by donating using the links provided on our website. If you have any questions or would like to connect with other GameVault users, please join our ",(0,n.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", Reddit and Lemmy communities - links to which are available in the footer."]}),"\n",(0,n.jsx)(a.p,{children:"We are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault."})]})}function g(e={}){const{wrapper:a}={...(0,o.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>r,a:()=>i});var n=t(5271);const o={},l=n.createContext(o);function i(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a3fd4b44.55b11bf1.js b/assets/js/a3fd4b44.55b11bf1.js deleted file mode 100644 index d78d9fc74..000000000 --- a/assets/js/a3fd4b44.55b11bf1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9303],{9921:e=>{e.exports=JSON.parse('{"tag":{"label":"file server","permalink":"/blog/tags/file-server","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/file-server","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a3fd4b44.6d8f20c3.js b/assets/js/a3fd4b44.6d8f20c3.js new file mode 100644 index 000000000..6a9850ace --- /dev/null +++ b/assets/js/a3fd4b44.6d8f20c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[11],{4080:e=>{e.exports=JSON.parse('{"tag":{"label":"file server","permalink":"/blog/tags/file-server","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/file-server","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a67f6c3e.40a0a035.js b/assets/js/a67f6c3e.0e7afd75.js similarity index 84% rename from assets/js/a67f6c3e.40a0a035.js rename to assets/js/a67f6c3e.0e7afd75.js index dd2ebb711..e103fb7d9 100644 --- a/assets/js/a67f6c3e.40a0a035.js +++ b/assets/js/a67f6c3e.0e7afd75.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2999],{8758:a=>{a.exports=JSON.parse('{"tag":{"label":"videogame","permalink":"/blog/tags/videogame","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/videogame","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2652],{5054:a=>{a.exports=JSON.parse('{"tag":{"label":"videogame","permalink":"/blog/tags/videogame","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/videogame","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.87c8d08d.js b/assets/js/a6aa9e1f.87c8d08d.js deleted file mode 100644 index 90b9b8e50..000000000 --- a/assets/js/a6aa9e1f.87c8d08d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3089],{8602:(e,t,a)=>{a.r(t),a.d(t,{default:()=>j});a(5271);var n=a(4814),s=a(6172),r=a(9967),l=a(3509),i=a(6566),o=a(3400),c=a(8625),d=a(2740),m=a(2791),g=a(5023),u=a(2676);function h(e){const t=(0,g.CS)(e);return(0,u.jsx)(m.Z,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function x(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,s.Z)(),{blogDescription:n,blogTitle:l,permalink:i}=t,o="/"===i?a:l;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.d,{title:o,description:n}),(0,u.jsx)(c.Z,{tag:"blog_posts_list"})]})}function p(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(i.Z,{sidebar:n,children:[(0,u.jsx)(d.Z,{items:a}),(0,u.jsx)(o.Z,{metadata:t})]})}function j(e){return(0,u.jsxs)(r.FG,{className:(0,n.Z)(l.k.wrapper.blogPages,l.k.page.blogListPage),children:[(0,u.jsx)(x,{...e}),(0,u.jsx)(h,{...e}),(0,u.jsx)(p,{...e})]})}},3400:(e,t,a)=>{a.d(t,{Z:()=>l});a(5271);var n=a(2922),s=a(5066),r=a(2676);function l(e){const{metadata:t}=e,{previousPage:a,nextPage:l}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(s.Z,{permalink:a,title:(0,r.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),l&&(0,r.jsx)(s.Z,{permalink:l,title:(0,r.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9449:(e,t,a)=>{a.d(t,{Z:()=>R});a(5271);var n=a(4814),s=a(5023),r=a(2676);function l(e){let{children:t,className:a}=e;return(0,r.jsx)("article",{className:a,children:t})}var i=a(6527);const o={title:"title_c9tz"};function c(e){let{className:t}=e;const{metadata:a,isBlogPostPage:l}=(0,s.nO)(),{permalink:c,title:d}=a,m=l?"h1":"h2";return(0,r.jsx)(m,{className:(0,n.Z)(o.title,t),children:l?d:(0,r.jsx)(i.Z,{to:c,children:d})})}var d=a(2922),m=a(2351),g=a(1956);const u={container:"container_xAnX"};function h(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,m.c)();return t=>{const a=Math.ceil(t);return e(a,(0,d.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:a(t)})}function x(e){let{date:t,formattedDate:a}=e;return(0,r.jsx)("time",{dateTime:t,children:a})}function p(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function j(e){let{className:t}=e;const{metadata:a}=(0,s.nO)(),{date:l,readingTime:i}=a,o=(0,g.P)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,n.Z)(u.container,"margin-vert--md",t),children:[(0,r.jsx)(x,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p,{}),(0,r.jsx)(h,{readingTime:i})]})]});var c}var b=a(8059);const f={authorCol:"authorCol_btVC",imageOnlyAuthorRow:"imageOnlyAuthorRow_fBnr",imageOnlyAuthorCol:"imageOnlyAuthorCol_Y2d8"};function Z(e){let{className:t}=e;const{metadata:{authors:a},assets:l}=(0,s.nO)();if(0===a.length)return null;const i=a.every((e=>{let{name:t}=e;return!t})),o=1===a.length;return(0,r.jsx)("div",{className:(0,n.Z)("margin-top--md margin-bottom--sm",i?f.imageOnlyAuthorRow:"row",t),children:a.map(((e,t)=>(0,r.jsx)("div",{className:(0,n.Z)(!i&&(o?"col col--12":"col col--6"),i?f.imageOnlyAuthorCol:f.authorCol),children:(0,r.jsx)(b.Z,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(j,{}),(0,r.jsx)(Z,{})]})}var N=a(5678),w=a(2714);function k(e){let{children:t,className:a}=e;const{isBlogPostPage:l}=(0,s.nO)();return(0,r.jsx)("div",{id:l?N.uR:void 0,className:(0,n.Z)("markdown",a),children:(0,r.jsx)(w.Z,{children:t})})}var T=a(3509),P=a(3362),y=a(9813);function O(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function A(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(i.Z,{"aria-label":(0,d.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(O,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,s.nO)(),{tags:a,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,g=a.length>0;if(!(g||m||i))return null;if(t){const e=!!(i||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[g&&(0,r.jsx)("div",{className:(0,n.Z)("row","margin-top--sm",T.k.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(y.Z,{tags:a})})}),e&&(0,r.jsx)(P.Z,{className:(0,n.Z)("margin-top--sm",T.k.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[g&&(0,r.jsx)("div",{className:(0,n.Z)("col",{"col--9":m}),children:(0,r.jsx)(y.Z,{tags:a})}),m&&(0,r.jsx)("div",{className:(0,n.Z)("col text--right",{"col--3":g}),children:(0,r.jsx)(A,{blogPostTitle:l,to:e.permalink})})]})}function R(e){let{children:t,className:a}=e;const i=function(){const{isBlogPostPage:e}=(0,s.nO)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(l,{className:(0,n.Z)(i,a),children:[(0,r.jsx)(v,{}),(0,r.jsx)(k,{children:t}),(0,r.jsx)(C,{})]})}},2740:(e,t,a)=>{a.d(t,{Z:()=>l});a(5271);var n=a(5023),s=a(9449),r=a(2676);function l(e){let{items:t,component:a=s.Z}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(n.n4,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.eb8f82b5.js b/assets/js/a6aa9e1f.eb8f82b5.js new file mode 100644 index 000000000..5540bb89f --- /dev/null +++ b/assets/js/a6aa9e1f.eb8f82b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7643],{4939:(e,t,a)=>{a.r(t),a.d(t,{default:()=>j});a(758);var s=a(3526),n=a(4480),r=a(5003),l=a(8539),i=a(8777),o=a(6191),c=a(4981),d=a(8098),m=a(950),g=a(7073),u=a(6070);function h(e){const t=(0,g.kJ)(e);return(0,u.jsx)(m.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,n.A)(),{blogDescription:s,blogTitle:l,permalink:i}=t,o="/"===i?a:l;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:o,description:s}),(0,u.jsx)(c.A,{tag:"blog_posts_list"})]})}function x(e){const{metadata:t,items:a,sidebar:s}=e;return(0,u.jsxs)(i.A,{sidebar:s,children:[(0,u.jsx)(d.A,{items:a}),(0,u.jsx)(o.A,{metadata:t})]})}function j(e){return(0,u.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogListPage),children:[(0,u.jsx)(p,{...e}),(0,u.jsx)(h,{...e}),(0,u.jsx)(x,{...e})]})}},6191:(e,t,a)=>{a.d(t,{A:()=>l});a(758);var s=a(8072),n=a(5336),r=a(6070);function l(e){const{metadata:t}=e,{previousPage:a,nextPage:l}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(n.A,{permalink:a,title:(0,r.jsx)(s.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),l&&(0,r.jsx)(n.A,{permalink:l,title:(0,r.jsx)(s.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},8736:(e,t,a)=>{a.d(t,{A:()=>_});a(758);var s=a(3526),n=a(7073),r=a(6070);function l(e){let{children:t,className:a}=e;return(0,r.jsx)("article",{className:a,children:t})}var i=a(88);const o={title:"title_C9tp"};function c(e){let{className:t}=e;const{metadata:a,isBlogPostPage:l}=(0,n.e7)(),{permalink:c,title:d}=a,m=l?"h1":"h2";return(0,r.jsx)(m,{className:(0,s.A)(o.title,t),children:l?d:(0,r.jsx)(i.A,{to:c,children:d})})}var d=a(8072),m=a(7773),g=a(3886);const u={container:"container_eyWC"};function h(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,m.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:a(t)})}function p(e){let{date:t,formattedDate:a}=e;return(0,r.jsx)("time",{dateTime:t,children:a})}function x(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function j(e){let{className:t}=e;const{metadata:a}=(0,n.e7)(),{date:l,readingTime:i}=a,o=(0,g.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,s.A)(u.container,"margin-vert--md",t),children:[(0,r.jsx)(p,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{}),(0,r.jsx)(h,{readingTime:i})]})]});var c}var A=a(5582);const b={authorCol:"authorCol_GZzj",imageOnlyAuthorRow:"imageOnlyAuthorRow_oXEi",imageOnlyAuthorCol:"imageOnlyAuthorCol_kgo0"};function f(e){let{className:t}=e;const{metadata:{authors:a},assets:l}=(0,n.e7)();if(0===a.length)return null;const i=a.every((e=>{let{name:t}=e;return!t})),o=1===a.length;return(0,r.jsx)("div",{className:(0,s.A)("margin-top--md margin-bottom--sm",i?b.imageOnlyAuthorRow:"row",t),children:a.map(((e,t)=>(0,r.jsx)("div",{className:(0,s.A)(!i&&(o?"col col--12":"col col--6"),i?b.imageOnlyAuthorCol:b.authorCol),children:(0,r.jsx)(A.A,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(j,{}),(0,r.jsx)(f,{})]})}var N=a(3652),T=a(3416);function w(e){let{children:t,className:a}=e;const{isBlogPostPage:l}=(0,n.e7)();return(0,r.jsx)("div",{id:l?N.LU:void 0,className:(0,s.A)("markdown",a),children:(0,r.jsx)(T.A,{children:t})})}var k=a(8539),y=a(3739),P=a(7304);function C(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function U(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(i.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(C,{})})}function R(){const{metadata:e,isBlogPostPage:t}=(0,n.e7)(),{tags:a,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,g=a.length>0;if(!(g||m||i))return null;if(t){const e=!!(i||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[g&&(0,r.jsx)("div",{className:(0,s.A)("row","margin-top--sm",k.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(P.A,{tags:a})})}),e&&(0,r.jsx)(y.A,{className:(0,s.A)("margin-top--sm",k.G.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[g&&(0,r.jsx)("div",{className:(0,s.A)("col",{"col--9":m}),children:(0,r.jsx)(P.A,{tags:a})}),m&&(0,r.jsx)("div",{className:(0,s.A)("col text--right",{"col--3":g}),children:(0,r.jsx)(U,{blogPostTitle:l,to:e.permalink})})]})}function _(e){let{children:t,className:a}=e;const i=function(){const{isBlogPostPage:e}=(0,n.e7)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(l,{className:(0,s.A)(i,a),children:[(0,r.jsx)(v,{}),(0,r.jsx)(w,{children:t}),(0,r.jsx)(R,{})]})}},8098:(e,t,a)=>{a.d(t,{A:()=>l});a(758);var s=a(7073),n=a(8736),r=a(6070);function l(e){let{items:t,component:a=n.A}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(s.in,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); \ No newline at end of file diff --git a/assets/js/a6fed517.59bc7dcb.js b/assets/js/a6fed517.54a1ad12.js similarity index 84% rename from assets/js/a6fed517.59bc7dcb.js rename to assets/js/a6fed517.54a1ad12.js index 18fae037a..f3c7dd397 100644 --- a/assets/js/a6fed517.59bc7dcb.js +++ b/assets/js/a6fed517.54a1ad12.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4884],{3063:a=>{a.exports=JSON.parse('{"tag":{"label":"database","permalink":"/blog/tags/database","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/database","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7672],{5219:a=>{a.exports=JSON.parse('{"tag":{"label":"database","permalink":"/blog/tags/database","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/database","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a7456010.c4d9ffaa.js b/assets/js/a7456010.543d0101.js similarity index 66% rename from assets/js/a7456010.c4d9ffaa.js rename to assets/js/a7456010.543d0101.js index f0cc4d966..1ee3f8756 100644 --- a/assets/js/a7456010.c4d9ffaa.js +++ b/assets/js/a7456010.543d0101.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5980],{9365:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.4ca513a1.js b/assets/js/a7bd4aaa.4ca513a1.js new file mode 100644 index 000000000..e8a9a50ea --- /dev/null +++ b/assets/js/a7bd4aaa.4ca513a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7098],{7278:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(758);var r=s(5003),o=s(9419),t=s(6235),c=s(389),a=s(4981),i=s(6070);function u(n){const{version:e}=n;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.A,{version:e.version,tag:(0,o.k)(e.pluginId,e.version)}),(0,i.jsx)(r.be,{children:e.noIndex&&(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,i.jsx)(r.e3,{className:e.className,children:(0,i.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function d(n){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(u,{...n}),(0,i.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.b6217e6b.js b/assets/js/a7bd4aaa.b6217e6b.js deleted file mode 100644 index 56ec77b2f..000000000 --- a/assets/js/a7bd4aaa.b6217e6b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8518],{2767:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(5271);var r=s(9967),o=s(684),t=s(5219),c=s(7677),a=s(8625),i=s(2676);function u(n){const{version:e}=n;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Z,{version:e.version,tag:(0,o.J)(e.pluginId,e.version)}),(0,i.jsx)(r.d,{children:e.noIndex&&(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,i.jsx)(r.FG,{className:e.className,children:(0,i.jsx)(t.q,{version:e,children:(0,c.H)(s.routes)})})}function d(n){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(u,{...n}),(0,i.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a7d982d4.7f0435a0.js b/assets/js/a7d982d4.7f0435a0.js new file mode 100644 index 000000000..888eab906 --- /dev/null +++ b/assets/js/a7d982d4.7f0435a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7268],{6713:a=>{a.exports=JSON.parse('{"tag":{"label":"software","permalink":"/blog/tags/software","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a7d982d4.8de9df24.js b/assets/js/a7d982d4.8de9df24.js deleted file mode 100644 index 6bf68a98c..000000000 --- a/assets/js/a7d982d4.8de9df24.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4691],{66:a=>{a.exports=JSON.parse('{"tag":{"label":"software","permalink":"/blog/tags/software","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.4436cafa.js b/assets/js/a94703ab.4436cafa.js deleted file mode 100644 index aa74d916f..000000000 --- a/assets/js/a94703ab.4436cafa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4368],{7872:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(5271),o=n(4814),i=n(9967),s=n(3509),l=n(4376),r=n(1081),c=n(2922),d=n(1309),u=n(4890);const m={backToTopButton:"backToTopButton_WX52",backToTopButtonShow:"backToTopButtonShow_OIBR"};var b=n(2676);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(9276),x=n(3225),f=n(3320),j=n(9364),_=n(698);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 k={collapseSidebarButton:"collapseSidebarButton_t0mP",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_yoHO"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",k.collapseSidebarButton),onClick:t,children:(0,b.jsx)(v,{className:k.collapseSidebarButtonIcon})})}var C=n(6701),S=n(8274);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(3955),Z=n(6422),A=n(6527),y=n(6594);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),_=function(e){const t=(0,y.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),v=(0,l._F)(t,i),k=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":k?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(374),H=n(2366);const M={menuExternalLink:"menuExternalLink_EnPB"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_KuMc"};function W(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function F(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(W,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(F,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_R21V",menuWithAnnouncementBar:"menuWithAnnouncementBar_BzAP"};function z(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.n)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_bUer",K="sidebarWithHideableNavbar_SoJA",O="sidebarHidden_UCvX",X="sidebarLogo_rxVR";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&K,i&&O),children:[s&&(0,b.jsx)(_.Z,{tabIndex:-1,className:X}),(0,b.jsx)(z,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const G=a.memo(q);var J=n(3158),Q=n(8568);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Q.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(J.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(G,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_RF0L",expandButtonIcon:"expandButtonIcon_KM58"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({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:t,onClick:t,children:(0,b.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_HC4d",docSidebarContainerHidden:"docSidebarContainerHidden_ZfRM",sidebarViewport:"sidebarViewport_N_1E"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer__7rY",docMainContainerEnhanced:"docMainContainerEnhanced_dowq",docItemWrapperEnhanced:"docItemWrapperEnhanced_ApAT"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_rWX7",docsWrapper:"docsWrapper_n3t2"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(195);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},195:(e,t,n)=>{n.d(t,{Z:()=>l});n(5271);var a=n(4814),o=n(2922),i=n(3221),s=n(2676);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{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)(o.Z,{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."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.fff35d7b.js b/assets/js/a94703ab.fff35d7b.js new file mode 100644 index 000000000..8ffb322f8 --- /dev/null +++ b/assets/js/a94703ab.fff35d7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9048],{4590:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(758),o=n(3526),i=n(5003),s=n(8539),l=n(1614),r=n(3139),c=n(8072),d=n(372),u=n(3354);const m={backToTopButton:"backToTopButton_YGZV",backToTopButtonShow:"backToTopButtonShow_UULB"};var b=n(6070);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(769),x=n(5557),f=n(7569),j=n(9618),_=n(31);function g(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 v={collapseSidebarButton:"collapseSidebarButton_yCAH",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_gJMs"};function A(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(g,{className:v.collapseSidebarButtonIcon})})}var C=n(5309),k=n(7888);const S=Symbol("EmptyContext"),T=a.createContext(S);function I(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var N=n(5186),B=n(1197),y=n(88),w=n(5473);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),g=(0,l.w8)(t,i),v=(0,B.ys)(x,i),{collapsed:A,setCollapsed:C}=(0,N.u)({initialState:()=>!!h&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new k.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!A),E(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,k.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:g,collapsed:A,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=I&&I!==c&&f&&C(!0)}),[h,I,c,C,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":A},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":g}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":v?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!A:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:A,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(N.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:A,children:(0,b.jsx)(V,{items:u,tabIndex:A?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(2048),H=n(4799);const G={menuExternalLink:"menuExternalLink_sjV1"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_UfCu"};function W(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(W,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function U(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(I,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(U),F={menu:"menu_Mtze",menuWithAnnouncementBar:"menuWithAnnouncementBar_R37n"};function z(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",F.menu,l&&F.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_Xzp7",Z="sidebarWithHideableNavbar_Rm_Q",Q="sidebarHidden_JKMG",X="sidebarLogo_DUBQ";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(Y,s&&Z,i&&Q),children:[s&&(0,b.jsx)(_.A,{tabIndex:-1,className:X}),(0,b.jsx)(z,{path:t,sidebar:n}),l&&(0,b.jsx)(A,{onClick:a})]})}const J=a.memo(q);var K=n(5508),O=n(8260);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,O.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(K.GX,{component:$,props:e})}const te=a.memo(ee);function ne(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)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_jrzn",expandButtonIcon:"expandButtonIcon_gDgF"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.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,c.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:t,onClick:t,children:(0,b.jsx)(g,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_ZiXa",docSidebarContainerHidden:"docSidebarContainerHidden_QvwP",sidebarViewport:"sidebarViewport_A9_Z"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer__kDR",docMainContainerEnhanced:"docMainContainerEnhanced_Fp9U",docItemWrapperEnhanced:"docItemWrapperEnhanced_kVnM"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_c4xT",docsWrapper:"docsWrapper_sIP3"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(2581);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},2581:(e,t,n)=>{n.d(t,{A:()=>l});n(758);var a=n(3526),o=n(8072),i=n(8038),s=n(6070);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.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,s.jsx)("p",{children:(0,s.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."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/ab6782ba.45f5ab35.js b/assets/js/ab6782ba.54fe4fe4.js similarity index 83% rename from assets/js/ab6782ba.45f5ab35.js rename to assets/js/ab6782ba.54fe4fe4.js index 25819df5d..8f8415c87 100644 --- a/assets/js/ab6782ba.45f5ab35.js +++ b/assets/js/ab6782ba.54fe4fe4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6003],{3306:a=>{a.exports=JSON.parse('{"tag":{"label":"Steam","permalink":"/blog/tags/steam","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/steam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4146],{9535:a=>{a.exports=JSON.parse('{"tag":{"label":"Steam","permalink":"/blog/tags/steam","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/steam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/aba21aa0.f1ffa9ac.js b/assets/js/aba21aa0.ce524908.js similarity index 66% rename from assets/js/aba21aa0.f1ffa9ac.js rename to assets/js/aba21aa0.ce524908.js index 1523fcba1..9ec21f383 100644 --- a/assets/js/aba21aa0.f1ffa9ac.js +++ b/assets/js/aba21aa0.ce524908.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3629],{1765:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/acecf23e.55a1a4b9.js b/assets/js/acecf23e.dbb40a62.js similarity index 69% rename from assets/js/acecf23e.55a1a4b9.js rename to assets/js/acecf23e.dbb40a62.js index 523804a52..21b8f9170 100644 --- a/assets/js/acecf23e.55a1a4b9.js +++ b/assets/js/acecf23e.dbb40a62.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7393],{1838:s=>{s.exports=JSON.parse('{"blogBasePath":"/blog","blogTitle":"Blog","authorsListPath":"/blog/authors"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1903],{1912:s=>{s.exports=JSON.parse('{"blogBasePath":"/blog","blogTitle":"Blog","authorsListPath":"/blog/authors"}')}}]); \ No newline at end of file diff --git a/assets/js/aeb57253.2a2f6685.js b/assets/js/aeb57253.2a2f6685.js deleted file mode 100644 index a63592763..000000000 --- a/assets/js/aeb57253.2a2f6685.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5447],{4733:e=>{e.exports=JSON.parse('{"tag":{"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/surge-of-new-users","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/aeb57253.4e489080.js b/assets/js/aeb57253.4e489080.js new file mode 100644 index 000000000..bace2413b --- /dev/null +++ b/assets/js/aeb57253.4e489080.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[885],{9253:e=>{e.exports=JSON.parse('{"tag":{"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/surge-of-new-users","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/b1d7f5b9.cbac1d1d.js b/assets/js/b1d7f5b9.cbac1d1d.js new file mode 100644 index 000000000..e4dd17035 --- /dev/null +++ b/assets/js/b1d7f5b9.cbac1d1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1387],{9091:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"server-docs/indexing","title":"Game Indexing","description":"The server watches the files directory (by default /files) and creates an index of all games, when changes occur. The indexing can also be triggered via API.","source":"@site/docs/server-docs/indexing.md","sourceDirName":"server-docs","slug":"/server-docs/indexing","permalink":"/docs/server-docs/indexing","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/indexing.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":7,"frontMatter":{"sidebar_position":7},"sidebar":"docs","previous":{"title":"User Management","permalink":"/docs/server-docs/user-management"},"next":{"title":"Enriching your Games with Metadata","permalink":"/docs/server-docs/metadata-enrichment/metadata"}}');var n=s(6070),i=s(8591);const r={sidebar_position:7},d="Game Indexing",c={},o=[];function l(e){const t={code:"code",h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"game-indexing",children:"Game Indexing"})}),"\n",(0,n.jsxs)(t.p,{children:["The server watches the files directory (by default ",(0,n.jsx)(t.code,{children:"/files"}),") and creates an index of all games, when changes occur. The indexing can also be triggered via API."]}),"\n",(0,n.jsx)(t.p,{children:"The indexing algorithm follows these steps:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"It recursively scans all game files for changes in the files directory."}),"\n",(0,n.jsxs)(t.li,{children:["For each changed game file:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"It checks if the exact same game already exists in the database, either based on the file path or a combination of the title and release year. If it does, the game is skipped, as it is already indexed."}),"\n",(0,n.jsx)(t.li,{children:"It checks if the game exists in the database but was previously deleted, again based on the file path or a combination of the title and release year. If so, it restores the game and updates its information with the current file's details, such as size, title, year, early access flag, path, and version."}),"\n",(0,n.jsx)(t.li,{children:"It checks if the game already exists in the database. If so, it updates the game's information with the current file's details. Such as version, game-type or early-access flag."}),"\n",(0,n.jsx)(t.li,{children:"If the game does not exist in the database at all, it indexes the game."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Finally, a simple integrity check is performed to ensure that the games in the database also exist in the files directory, and vice versa."})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8591:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>d});var a=s(758);const n={},i=a.createContext(n);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b1d7f5b9.e4770812.js b/assets/js/b1d7f5b9.e4770812.js deleted file mode 100644 index ab0d59119..000000000 --- a/assets/js/b1d7f5b9.e4770812.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4039],{9490:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>o});var a=s(2676),n=s(8358);const i={sidebar_position:7},r="Game Indexing",d={id:"server-docs/indexing",title:"Game Indexing",description:"The server watches the files directory (by default /files) and creates an index of all games, when changes occur. The indexing can also be triggered via API.",source:"@site/docs/server-docs/indexing.md",sourceDirName:"server-docs",slug:"/server-docs/indexing",permalink:"/docs/server-docs/indexing",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/indexing.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"docs",previous:{title:"User Management",permalink:"/docs/server-docs/user-management"},next:{title:"Enriching your Games with Metadata",permalink:"/docs/server-docs/metadata-enrichment/metadata"}},c={},o=[];function l(e){const t={code:"code",h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"game-indexing",children:"Game Indexing"})}),"\n",(0,a.jsxs)(t.p,{children:["The server watches the files directory (by default ",(0,a.jsx)(t.code,{children:"/files"}),") and creates an index of all games, when changes occur. The indexing can also be triggered via API."]}),"\n",(0,a.jsx)(t.p,{children:"The indexing algorithm follows these steps:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"It recursively scans all game files for changes in the files directory."}),"\n",(0,a.jsxs)(t.li,{children:["For each changed game file:","\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"It checks if the exact same game already exists in the database, either based on the file path or a combination of the title and release year. If it does, the game is skipped, as it is already indexed."}),"\n",(0,a.jsx)(t.li,{children:"It checks if the game exists in the database but was previously deleted, again based on the file path or a combination of the title and release year. If so, it restores the game and updates its information with the current file's details, such as size, title, year, early access flag, path, and version."}),"\n",(0,a.jsx)(t.li,{children:"It checks if the game already exists in the database. If so, it updates the game's information with the current file's details. Such as version, game-type or early-access flag."}),"\n",(0,a.jsx)(t.li,{children:"If the game does not exist in the database at all, it indexes the game."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Finally, a simple integrity check is performed to ensure that the games in the database also exist in the files directory, and vice versa."})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},8358:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>r});var a=s(5271);const n={},i=a.createContext(n);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b28c3188.709befc6.js b/assets/js/b28c3188.709befc6.js new file mode 100644 index 000000000..781064b23 --- /dev/null +++ b/assets/js/b28c3188.709befc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3468],{6266:(e,d,s)=>{s.r(d),s.d(d,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>t,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"server-docs/configuration","title":"Configuration","description":"Check out configuration.ts for all possible environment variables in case we forgot to update this page.","source":"@site/docs/server-docs/configuration.md","sourceDirName":"server-docs","slug":"/server-docs/configuration","permalink":"/docs/server-docs/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/configuration.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"docs","previous":{"title":"Using Native Approach","permalink":"/docs/server-docs/setup/native"},"next":{"title":"File and Folder Structure","permalink":"/docs/server-docs/structure"}}');var i=s(6070),n=s(8591);const t={sidebar_position:2},c="Configuration",l={},h=[{value:"Configuration Properties",id:"configuration-properties",level:2},{value:"SERVER",id:"server",level:2},{value:"VOLUMES",id:"volumes",level:2},{value:"DB",id:"db",level:2},{value:"USERS",id:"users",level:2},{value:"PARENTAL",id:"parental",level:2},{value:"GAMES",id:"games",level:2},{value:"MEDIA",id:"media",level:2},{value:"METADATA",id:"metadata",level:2},{value:"TESTING",id:"testing",level:2}];function o(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.header,{children:(0,i.jsx)(d.h1,{id:"configuration",children:"Configuration"})}),"\n",(0,i.jsx)(d.admonition,{type:"tip",children:(0,i.jsxs)(d.p,{children:["Check out ",(0,i.jsx)(d.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/src/configuration.ts",children:"configuration.ts"})," for all possible environment variables in case we forgot to update this page."]})}),"\n",(0,i.jsx)(d.p,{children:"All configuration properties of your GameVault server are passed as environment variables or via a .env file. The following tables describe the available properties, their default values, explanations, and possible values."}),"\n",(0,i.jsx)(d.h2,{id:"configuration-properties",children:"Configuration Properties"}),"\n",(0,i.jsxs)(d.p,{children:["This page describes the various configuration properties used in the application. These properties can be configured in the environment variables or in a ",(0,i.jsx)(d.code,{children:".env"})," file."]}),"\n",(0,i.jsx)(d.h2,{id:"server",children:"SERVER"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"PUID"})}),(0,i.jsx)(d.td,{children:"The User-Identifer that should be used."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"1000"})}),(0,i.jsx)(d.td,{children:"Any user id (number)"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"PGID"})}),(0,i.jsx)(d.td,{children:"The Group-Identifer that should be used."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"1000"})}),(0,i.jsx)(d.td,{children:"Any group id (number)"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_PORT"})}),(0,i.jsx)(d.td,{children:"The port the server should use. (Only relevant if the server is run without docker on bare metal.)"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"8080"})}),(0,i.jsx)(d.td,{children:"Any non-reserved free port (1024 to 49151)"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_LOG_LEVEL"})}),(0,i.jsx)(d.td,{children:"The log level of the server."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"info"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"debug"}),", ",(0,i.jsx)(d.code,{children:"info"}),", ",(0,i.jsx)(d.code,{children:"warn"}),", ",(0,i.jsx)(d.code,{children:"error"}),", ",(0,i.jsx)(d.code,{children:"fatal"}),", ",(0,i.jsx)(d.code,{children:"off"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_LOG_FILES_ENABLED"})}),(0,i.jsxs)(d.td,{children:["If the server should also write the logs to the ",(0,i.jsx)(d.code,{children:"VOLUMES_LOGS"})," directory via rolling file logger."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"true"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_REQUEST_LOG_FORMAT"})}),(0,i.jsxs)(d.td,{children:["The ",(0,i.jsx)(d.a,{href:"https://www.npmjs.com/package/morgan#predefined-formats",children:"morgan log format"})," for incoming HTTP Requests"]}),(0,i.jsx)(d.td,{children:"Custom Log Format"}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"short"}),", ",(0,i.jsx)(d.code,{children:"combined"})," ",(0,i.jsx)(d.a,{href:"https://www.npmjs.com/package/morgan#predefined-formats",children:"and many more"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_CORS_ALLOWED_ORIGINS"})}),(0,i.jsx)(d.td,{children:"Allowed CORS origins for the server."}),(0,i.jsx)(d.td,{children:"All Origins"}),(0,i.jsx)(d.td,{children:"A comma-separated list of origins"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_REGISTRATION_DISABLED"})}),(0,i.jsx)(d.td,{children:"If registration is enabled or not."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_ACCOUNT_ACTIVATION_DISABLED"})}),(0,i.jsx)(d.td,{children:"If accounts need to be activated by an admin before using them."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_ADMIN_USERNAME"})}),(0,i.jsxs)(d.td,{children:["Used for role recovery of existing users. The Server grants Admin Role to an existing User with this Username on register or startup. ",(0,i.jsx)(d.strong,{children:"\u26a0\ufe0f This won't register a new account!"})]}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Any username"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_ADMIN_PASSWORD"})}),(0,i.jsxs)(d.td,{children:["Used for password recovery of existing users. Resets the password of the existing user with the username set in ",(0,i.jsx)(d.code,{children:"SERVER_ADMIN_USERNAME"})," to this password on startup. ",(0,i.jsx)(d.strong,{children:"\u26a0\ufe0f This won't register a new account!"})]}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Any password (No Length Validation)"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_API_DOCS_ENABLED"})}),(0,i.jsxs)(d.td,{children:["Enables the API Documentation on ",(0,i.jsx)(d.code,{children:"/api/docs"}),", ",(0,i.jsx)(d.code,{children:"/api/docs-json"})," & ",(0,i.jsx)(d.code,{children:"/api/docs/yaml"}),"."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS"})}),(0,i.jsx)(d.td,{children:"Maximum bandwidth for downloads on this server in KB/s."}),(0,i.jsx)(d.td,{children:"- (Unlimited)"}),(0,i.jsx)(d.td,{children:"Any Number"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_ONLINE_ACTIVITIES_DISABLED"})}),(0,i.jsx)(d.td,{children:'Whether or not the server should listen to online activities like "ONLINE", "BUSY", "PLAYING" etc. If this is set to true, all users will always be shown as offline.'}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"SERVER_STACK_TRACE_LIMIT"})}),(0,i.jsx)(d.td,{children:"Configures the maximum number of stack frames to display in error stack traces, with a higher value providing more detailed debugging information."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"10"})}),(0,i.jsx)(d.td,{children:"Any Number"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"volumes",children:"VOLUMES"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_CONFIG"})}),(0,i.jsx)(d.td,{children:"Folder inside container used for configuring GameVault."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/config"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_FILES"})}),(0,i.jsx)(d.td,{children:"Folder inside container used for game files."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/files"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_MEDIA"})}),(0,i.jsx)(d.td,{children:"Folder inside container used for media."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/media"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_LOGS"})}),(0,i.jsx)(d.td,{children:"Folder inside container used for logs."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/logs"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_SQLITEDB"})}),(0,i.jsxs)(d.td,{children:["Folder inside container used for ",(0,i.jsx)(d.code,{children:"SQLITE"})," database. (Not needed if ",(0,i.jsx)(d.code,{children:"DB_SYSTEM"})," is set to ",(0,i.jsx)(d.code,{children:"POSTGRESQL"}),")"]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/db"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"VOLUMES_PLUGINS"})}),(0,i.jsx)(d.td,{children:"Folder inside container used for plugins."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"/plugins"})}),(0,i.jsx)(d.td,{children:"Any valid folder path"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"db",children:"DB"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_SYSTEM"})}),(0,i.jsx)(d.td,{children:"The database system used (POSTGRESQL or SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"POSTGRESQL"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"POSTGRESQL"}),", ",(0,i.jsx)(d.code,{children:"SQLITE"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_HOST"})}),(0,i.jsx)(d.td,{children:"The host of the database (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"localhost"})}),(0,i.jsx)(d.td,{children:"Any valid host name"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_PORT"})}),(0,i.jsx)(d.td,{children:"The port of the database (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"5432"})}),(0,i.jsx)(d.td,{children:"Any valid port number"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_USERNAME"})}),(0,i.jsx)(d.td,{children:"The username for the database (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"default"})}),(0,i.jsx)(d.td,{children:"Any valid username"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_PASSWORD"})}),(0,i.jsx)(d.td,{children:"The password for the database (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"default"})}),(0,i.jsx)(d.td,{children:"Any valid password"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_DATABASE"})}),(0,i.jsx)(d.td,{children:"The database name (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"gamevault"})}),(0,i.jsx)(d.td,{children:"Any valid database name"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_DEBUG"})}),(0,i.jsx)(d.td,{children:"Log all SQL Statements sent to the database."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_SYNCHRONIZE"})}),(0,i.jsx)(d.td,{children:"Force synchronizes the database with the entities. (This could break your database!)"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_TLS_ENABLED"})}),(0,i.jsx)(d.td,{children:"Enables TLS for the database. (not needed for SQLITE)."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_TLS_REJECT_UNAUTHORIZED_ENABLED"})}),(0,i.jsx)(d.td,{children:"Whether the database will reject TLS connections that do not present a valid, trusted certificate."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_TLS_KEY_PATH"})}),(0,i.jsx)(d.td,{children:"The file path to the private key used for securing TLS connections to the database."}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Any file path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_TLS_CERTIFICATE_PATH"})}),(0,i.jsx)(d.td,{children:"The file path to the TLS certificate used for authenticating the database server."}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Any file path"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"DB_TLS_CA_CERTIFICATE_PATH"})}),(0,i.jsx)(d.td,{children:"The file path to the CA certificate used for verifying client certificates in TLS connections."}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Any file path"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"users",children:"USERS"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"USERS_REQUIRE_EMAIL"})}),(0,i.jsxs)(d.td,{children:["Require ",(0,i.jsx)(d.strong,{children:"Email"})," for new registrations."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"USERS_REQUIRE_FIRST_NAME"})}),(0,i.jsxs)(d.td,{children:["Require ",(0,i.jsx)(d.strong,{children:"First Name"})," for new registrations."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"USERS_REQUIRE_LAST_NAME"})}),(0,i.jsxs)(d.td,{children:["Require ",(0,i.jsx)(d.strong,{children:"Last Name"})," for new registrations."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"USERS_REQUIRE_BIRTH_DATE"})}),(0,i.jsxs)(d.td,{children:["Require ",(0,i.jsx)(d.strong,{children:"Birth Date"})," for new registrations. (",(0,i.jsxs)(d.strong,{children:["Automatically set to ",(0,i.jsx)(d.code,{children:"true"})," when ",(0,i.jsx)(d.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})," is true"]}),")"]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"parental",children:"PARENTAL"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})}),(0,i.jsx)(d.td,{children:"Determines whether age-based parental restrictions are enforced."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"PARENTAL_AGE_OF_MAJORITY"})}),(0,i.jsx)(d.td,{children:"The age at which an individual is legally recognized as an adult for parental restrictions."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"18"})}),(0,i.jsx)(d.td,{children:"Any number"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"games",children:"GAMES"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"GAMES_INDEX_INTERVAL_IN_MINUTES"})}),(0,i.jsx)(d.td,{children:"The index interval, measured in minutes, decides how frequently the server should check for changes in games in the /files directory. This used to be essential before we implemented the filewatcher to the server. Nowadays, it's optional for rare situations where the filewatcher might miss changes. If set to 0, it won't regularly trigger reindexing and solely depend on the filewatcher."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"60"})}),(0,i.jsx)(d.td,{children:"Any number"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"GAMES_SUPPORTED_FILE_FORMATS"})}),(0,i.jsx)(d.td,{children:"Comma-Seperated list of supported file-types GameVault should detect."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.a,{href:"/docs/server-docs/structure#supported-archive-formats",children:"All Supported Formats"})}),(0,i.jsx)(d.td,{children:'".zip,.7z,.rar"'})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"GAMES_SEARCH_RECURSIVE"})}),(0,i.jsx)(d.td,{children:"If indexer should search for games in subfolders."}),(0,i.jsx)(d.td,{children:"true"}),(0,i.jsx)(d.td,{children:'"true", "false'})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"GAMES_DEFAULT_ARCHIVE_PASSWORD"})}),(0,i.jsx)(d.td,{children:"A default password for archives. Useful if you always use the same password for your games and want Game Type Detection to work with the encrypted files. Without this game type detection on encrypted archives depends on the file extension and if the headers are encrypted"}),(0,i.jsx)(d.td,{children:'"Anything"'}),(0,i.jsx)(d.td,{children:"Any string"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"media",children:"MEDIA"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"MEDIA_MAX_SIZE"})}),(0,i.jsx)(d.td,{children:"The maximum size for media uploads. Set it to 0 to disable media uploads."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"10 mb"})}),(0,i.jsx)(d.td,{children:'e.g. "10 mb", "5 gb", "300 kb"'})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"MEDIA_SUPPORTED_FORMATS"})}),(0,i.jsx)(d.td,{children:"List of supported media formats (MIME Types) on this server, separated by commas."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.a,{href:"/docs/server-docs/media#supported-formats",children:"See here"})}),(0,i.jsx)(d.td,{children:"Comma separated list of MIME Types."})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})}),(0,i.jsx)(d.td,{children:"Whether or not media garbage collection is enabled. (Deletes unused media)"}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"MEDIA_GC_INTERVAL_IN_MINUTES"})}),(0,i.jsx)(d.td,{children:"The interval in minutes for media garbage collection."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"60"})}),(0,i.jsx)(d.td,{children:"Any number"})]})]})]}),"\n",(0,i.jsx)(d.p,{children:"Here are the descriptions for the metadata properties:"}),"\n",(0,i.jsx)(d.h2,{id:"metadata",children:"METADATA"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_TTL_IN_DAYS"})}),(0,i.jsx)(d.td,{children:"The number of days metadata is considered fresh before requiring an update."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"30"})}),(0,i.jsx)(d.td,{children:"Any number of days"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_IGDB_ENABLED"})}),(0,i.jsx)(d.td,{children:"Enables or disables the built-in integration with IGDB for metadata retrieval."}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"true"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_IGDB_PRIORITY"})}),(0,i.jsx)(d.td,{children:"The priority level for IGDB metadata sources when multiple metadata sources are available."}),(0,i.jsx)(d.td,{children:"1"}),(0,i.jsx)(d.td,{children:"Any number"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_IGDB_REQUEST_INTERVAL_MS"})}),(0,i.jsxs)(d.td,{children:["The interval, in milliseconds, to wait between consecutive requests to prevent exceeding rate limits. This delay will be applied ",(0,i.jsx)(d.strong,{children:"before"})," each call to the provider."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"250"})}),(0,i.jsx)(d.td,{children:"Any number"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})}),(0,i.jsx)(d.td,{children:"The Client-ID used for authenticating requests to the IGDB API."}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Your Client ID"})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})}),(0,i.jsx)(d.td,{children:"The Client-Secret used for authenticating requests to the IGDB API."}),(0,i.jsx)(d.td,{children:"-"}),(0,i.jsx)(d.td,{children:"Your Client Secret"})]})]})]}),"\n",(0,i.jsx)(d.h2,{id:"testing",children:"TESTING"}),"\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:"Property"}),(0,i.jsx)(d.th,{children:"Description"}),(0,i.jsx)(d.th,{children:"Default"}),(0,i.jsx)(d.th,{children:"Possible Values"})]})}),(0,i.jsxs)(d.tbody,{children:[(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"TESTING_AUTHENTICATION_DISABLED"})}),(0,i.jsxs)(d.td,{children:["If ",(0,i.jsx)(d.code,{children:"true"}),", the API will accept any auth header. Useful for testing without authentication."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"TESTING_MOCK_FILES"})}),(0,i.jsxs)(d.td,{children:["If ",(0,i.jsx)(d.code,{children:"true"}),", the server will mock all files or ignore filesystem functionalities. Useful for testing without real files."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"TESTING_IN_MEMORY_DB"})}),(0,i.jsxs)(d.td,{children:["If ",(0,i.jsx)(d.code,{children:"true"}),", the server will use an in-memory database. Useful for testing without creating an actual database. Only works with SQLITE."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]}),(0,i.jsxs)(d.tr,{children:[(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"TESTING_MOCK_PROVIDERS"})}),(0,i.jsxs)(d.td,{children:["If ",(0,i.jsx)(d.code,{children:"true"}),", the server will create two mock providers. (-9999 and 9999 Priority) Useful for testing metadata-merges."]}),(0,i.jsx)(d.td,{children:(0,i.jsx)(d.code,{children:"false"})}),(0,i.jsxs)(d.td,{children:[(0,i.jsx)(d.code,{children:"true"}),", ",(0,i.jsx)(d.code,{children:"false"})]})]})]})]})]})}function x(e={}){const{wrapper:d}={...(0,n.R)(),...e.components};return d?(0,i.jsx)(d,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},8591:(e,d,s)=>{s.d(d,{R:()=>t,x:()=>c});var r=s(758);const i={},n=r.createContext(i);function t(e){const d=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(n.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b28c3188.de9c75ef.js b/assets/js/b28c3188.de9c75ef.js deleted file mode 100644 index 7ef8ff8f2..000000000 --- a/assets/js/b28c3188.de9c75ef.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3559],{1234:(e,d,s)=>{s.r(d),s.d(d,{assets:()=>l,contentTitle:()=>t,default:()=>x,frontMatter:()=>n,metadata:()=>c,toc:()=>h});var r=s(2676),i=s(8358);const n={sidebar_position:2},t="Configuration",c={id:"server-docs/configuration",title:"Configuration",description:"Check out configuration.ts for all possible environment variables in case we forgot to update this page.",source:"@site/docs/server-docs/configuration.md",sourceDirName:"server-docs",slug:"/server-docs/configuration",permalink:"/docs/server-docs/configuration",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/configuration.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"docs",previous:{title:"Using Native Approach",permalink:"/docs/server-docs/setup/native"},next:{title:"File and Folder Structure",permalink:"/docs/server-docs/structure"}},l={},h=[{value:"Configuration Properties",id:"configuration-properties",level:2},{value:"SERVER",id:"server",level:2},{value:"VOLUMES",id:"volumes",level:2},{value:"DB",id:"db",level:2},{value:"USERS",id:"users",level:2},{value:"PARENTAL",id:"parental",level:2},{value:"GAMES",id:"games",level:2},{value:"MEDIA",id:"media",level:2},{value:"METADATA",id:"metadata",level:2},{value:"TESTING",id:"testing",level:2}];function o(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.header,{children:(0,r.jsx)(d.h1,{id:"configuration",children:"Configuration"})}),"\n",(0,r.jsx)(d.admonition,{type:"tip",children:(0,r.jsxs)(d.p,{children:["Check out ",(0,r.jsx)(d.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/src/configuration.ts",children:"configuration.ts"})," for all possible environment variables in case we forgot to update this page."]})}),"\n",(0,r.jsx)(d.p,{children:"All configuration properties of your GameVault server are passed as environment variables or via a .env file. The following tables describe the available properties, their default values, explanations, and possible values."}),"\n",(0,r.jsx)(d.h2,{id:"configuration-properties",children:"Configuration Properties"}),"\n",(0,r.jsxs)(d.p,{children:["This page describes the various configuration properties used in the application. These properties can be configured in the environment variables or in a ",(0,r.jsx)(d.code,{children:".env"})," file."]}),"\n",(0,r.jsx)(d.h2,{id:"server",children:"SERVER"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"PUID"})}),(0,r.jsx)(d.td,{children:"The User-Identifer that should be used."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"1000"})}),(0,r.jsx)(d.td,{children:"Any user id (number)"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"PGID"})}),(0,r.jsx)(d.td,{children:"The Group-Identifer that should be used."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"1000"})}),(0,r.jsx)(d.td,{children:"Any group id (number)"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_PORT"})}),(0,r.jsx)(d.td,{children:"The port the server should use. (Only relevant if the server is run without docker on bare metal.)"}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"8080"})}),(0,r.jsx)(d.td,{children:"Any non-reserved free port (1024 to 49151)"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_LOG_LEVEL"})}),(0,r.jsx)(d.td,{children:"The log level of the server."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"info"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"debug"}),", ",(0,r.jsx)(d.code,{children:"info"}),", ",(0,r.jsx)(d.code,{children:"warn"}),", ",(0,r.jsx)(d.code,{children:"error"}),", ",(0,r.jsx)(d.code,{children:"fatal"}),", ",(0,r.jsx)(d.code,{children:"off"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_LOG_FILES_ENABLED"})}),(0,r.jsxs)(d.td,{children:["If the server should also write the logs to the ",(0,r.jsx)(d.code,{children:"VOLUMES_LOGS"})," directory via rolling file logger."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"true"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_REQUEST_LOG_FORMAT"})}),(0,r.jsxs)(d.td,{children:["The ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/morgan#predefined-formats",children:"morgan log format"})," for incoming HTTP Requests"]}),(0,r.jsx)(d.td,{children:"Custom Log Format"}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"short"}),", ",(0,r.jsx)(d.code,{children:"combined"})," ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/morgan#predefined-formats",children:"and many more"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_CORS_ALLOWED_ORIGINS"})}),(0,r.jsx)(d.td,{children:"Allowed CORS origins for the server."}),(0,r.jsx)(d.td,{children:"All Origins"}),(0,r.jsx)(d.td,{children:"A comma-separated list of origins"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_REGISTRATION_DISABLED"})}),(0,r.jsx)(d.td,{children:"If registration is enabled or not."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_ACCOUNT_ACTIVATION_DISABLED"})}),(0,r.jsx)(d.td,{children:"If accounts need to be activated by an admin before using them."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_ADMIN_USERNAME"})}),(0,r.jsxs)(d.td,{children:["Used for role recovery of existing users. The Server grants Admin Role to an existing User with this Username on register or startup. ",(0,r.jsx)(d.strong,{children:"\u26a0\ufe0f This won't register a new account!"})]}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Any username"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_ADMIN_PASSWORD"})}),(0,r.jsxs)(d.td,{children:["Used for password recovery of existing users. Resets the password of the existing user with the username set in ",(0,r.jsx)(d.code,{children:"SERVER_ADMIN_USERNAME"})," to this password on startup. ",(0,r.jsx)(d.strong,{children:"\u26a0\ufe0f This won't register a new account!"})]}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Any password (No Length Validation)"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_API_DOCS_ENABLED"})}),(0,r.jsxs)(d.td,{children:["Enables the API Documentation on ",(0,r.jsx)(d.code,{children:"/api/docs"}),", ",(0,r.jsx)(d.code,{children:"/api/docs-json"})," & ",(0,r.jsx)(d.code,{children:"/api/docs/yaml"}),"."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS"})}),(0,r.jsx)(d.td,{children:"Maximum bandwidth for downloads on this server in KB/s."}),(0,r.jsx)(d.td,{children:"- (Unlimited)"}),(0,r.jsx)(d.td,{children:"Any Number"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_ONLINE_ACTIVITIES_DISABLED"})}),(0,r.jsx)(d.td,{children:'Whether or not the server should listen to online activities like "ONLINE", "BUSY", "PLAYING" etc. If this is set to true, all users will always be shown as offline.'}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"SERVER_STACK_TRACE_LIMIT"})}),(0,r.jsx)(d.td,{children:"Configures the maximum number of stack frames to display in error stack traces, with a higher value providing more detailed debugging information."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"10"})}),(0,r.jsx)(d.td,{children:"Any Number"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"volumes",children:"VOLUMES"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_CONFIG"})}),(0,r.jsx)(d.td,{children:"Folder inside container used for configuring GameVault."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/config"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_FILES"})}),(0,r.jsx)(d.td,{children:"Folder inside container used for game files."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/files"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_MEDIA"})}),(0,r.jsx)(d.td,{children:"Folder inside container used for media."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/media"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_LOGS"})}),(0,r.jsx)(d.td,{children:"Folder inside container used for logs."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/logs"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_SQLITEDB"})}),(0,r.jsxs)(d.td,{children:["Folder inside container used for ",(0,r.jsx)(d.code,{children:"SQLITE"})," database. (Not needed if ",(0,r.jsx)(d.code,{children:"DB_SYSTEM"})," is set to ",(0,r.jsx)(d.code,{children:"POSTGRESQL"}),")"]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/db"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"VOLUMES_PLUGINS"})}),(0,r.jsx)(d.td,{children:"Folder inside container used for plugins."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"/plugins"})}),(0,r.jsx)(d.td,{children:"Any valid folder path"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"db",children:"DB"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_SYSTEM"})}),(0,r.jsx)(d.td,{children:"The database system used (POSTGRESQL or SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"POSTGRESQL"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"POSTGRESQL"}),", ",(0,r.jsx)(d.code,{children:"SQLITE"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_HOST"})}),(0,r.jsx)(d.td,{children:"The host of the database (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"localhost"})}),(0,r.jsx)(d.td,{children:"Any valid host name"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_PORT"})}),(0,r.jsx)(d.td,{children:"The port of the database (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"5432"})}),(0,r.jsx)(d.td,{children:"Any valid port number"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_USERNAME"})}),(0,r.jsx)(d.td,{children:"The username for the database (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"default"})}),(0,r.jsx)(d.td,{children:"Any valid username"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_PASSWORD"})}),(0,r.jsx)(d.td,{children:"The password for the database (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"default"})}),(0,r.jsx)(d.td,{children:"Any valid password"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_DATABASE"})}),(0,r.jsx)(d.td,{children:"The database name (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"gamevault"})}),(0,r.jsx)(d.td,{children:"Any valid database name"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_DEBUG"})}),(0,r.jsx)(d.td,{children:"Log all SQL Statements sent to the database."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_SYNCHRONIZE"})}),(0,r.jsx)(d.td,{children:"Force synchronizes the database with the entities. (This could break your database!)"}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_TLS_ENABLED"})}),(0,r.jsx)(d.td,{children:"Enables TLS for the database. (not needed for SQLITE)."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_TLS_REJECT_UNAUTHORIZED_ENABLED"})}),(0,r.jsx)(d.td,{children:"Whether the database will reject TLS connections that do not present a valid, trusted certificate."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_TLS_KEY_PATH"})}),(0,r.jsx)(d.td,{children:"The file path to the private key used for securing TLS connections to the database."}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Any file path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_TLS_CERTIFICATE_PATH"})}),(0,r.jsx)(d.td,{children:"The file path to the TLS certificate used for authenticating the database server."}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Any file path"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"DB_TLS_CA_CERTIFICATE_PATH"})}),(0,r.jsx)(d.td,{children:"The file path to the CA certificate used for verifying client certificates in TLS connections."}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Any file path"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"users",children:"USERS"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"USERS_REQUIRE_EMAIL"})}),(0,r.jsxs)(d.td,{children:["Require ",(0,r.jsx)(d.strong,{children:"Email"})," for new registrations."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"USERS_REQUIRE_FIRST_NAME"})}),(0,r.jsxs)(d.td,{children:["Require ",(0,r.jsx)(d.strong,{children:"First Name"})," for new registrations."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"USERS_REQUIRE_LAST_NAME"})}),(0,r.jsxs)(d.td,{children:["Require ",(0,r.jsx)(d.strong,{children:"Last Name"})," for new registrations."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"USERS_REQUIRE_BIRTH_DATE"})}),(0,r.jsxs)(d.td,{children:["Require ",(0,r.jsx)(d.strong,{children:"Birth Date"})," for new registrations. (",(0,r.jsxs)(d.strong,{children:["Automatically set to ",(0,r.jsx)(d.code,{children:"true"})," when ",(0,r.jsx)(d.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})," is true"]}),")"]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"parental",children:"PARENTAL"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"PARENTAL_AGE_RESTRICTION_ENABLED"})}),(0,r.jsx)(d.td,{children:"Determines whether age-based parental restrictions are enforced."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"PARENTAL_AGE_OF_MAJORITY"})}),(0,r.jsx)(d.td,{children:"The age at which an individual is legally recognized as an adult for parental restrictions."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"18"})}),(0,r.jsx)(d.td,{children:"Any number"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"games",children:"GAMES"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"GAMES_INDEX_INTERVAL_IN_MINUTES"})}),(0,r.jsx)(d.td,{children:"The index interval, measured in minutes, decides how frequently the server should check for changes in games in the /files directory. This used to be essential before we implemented the filewatcher to the server. Nowadays, it's optional for rare situations where the filewatcher might miss changes. If set to 0, it won't regularly trigger reindexing and solely depend on the filewatcher."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"60"})}),(0,r.jsx)(d.td,{children:"Any number"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"GAMES_SUPPORTED_FILE_FORMATS"})}),(0,r.jsx)(d.td,{children:"Comma-Seperated list of supported file-types GameVault should detect."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.a,{href:"/docs/server-docs/structure#supported-archive-formats",children:"All Supported Formats"})}),(0,r.jsx)(d.td,{children:'".zip,.7z,.rar"'})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"GAMES_SEARCH_RECURSIVE"})}),(0,r.jsx)(d.td,{children:"If indexer should search for games in subfolders."}),(0,r.jsx)(d.td,{children:"true"}),(0,r.jsx)(d.td,{children:'"true", "false'})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"GAMES_DEFAULT_ARCHIVE_PASSWORD"})}),(0,r.jsx)(d.td,{children:"A default password for archives. Useful if you always use the same password for your games and want Game Type Detection to work with the encrypted files. Without this game type detection on encrypted archives depends on the file extension and if the headers are encrypted"}),(0,r.jsx)(d.td,{children:'"Anything"'}),(0,r.jsx)(d.td,{children:"Any string"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"media",children:"MEDIA"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"MEDIA_MAX_SIZE"})}),(0,r.jsx)(d.td,{children:"The maximum size for media uploads. Set it to 0 to disable media uploads."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"10 mb"})}),(0,r.jsx)(d.td,{children:'e.g. "10 mb", "5 gb", "300 kb"'})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"MEDIA_SUPPORTED_FORMATS"})}),(0,r.jsx)(d.td,{children:"List of supported media formats (MIME Types) on this server, separated by commas."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.a,{href:"/docs/server-docs/media#supported-formats",children:"See here"})}),(0,r.jsx)(d.td,{children:"Comma separated list of MIME Types."})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"MEDIA_GC_DISABLED"})}),(0,r.jsx)(d.td,{children:"Whether or not media garbage collection is enabled. (Deletes unused media)"}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"MEDIA_GC_INTERVAL_IN_MINUTES"})}),(0,r.jsx)(d.td,{children:"The interval in minutes for media garbage collection."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"60"})}),(0,r.jsx)(d.td,{children:"Any number"})]})]})]}),"\n",(0,r.jsx)(d.p,{children:"Here are the descriptions for the metadata properties:"}),"\n",(0,r.jsx)(d.h2,{id:"metadata",children:"METADATA"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_TTL_IN_DAYS"})}),(0,r.jsx)(d.td,{children:"The number of days metadata is considered fresh before requiring an update."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"30"})}),(0,r.jsx)(d.td,{children:"Any number of days"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_ENABLED"})}),(0,r.jsx)(d.td,{children:"Enables or disables the built-in integration with IGDB for metadata retrieval."}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"true"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_PRIORITY"})}),(0,r.jsx)(d.td,{children:"The priority level for IGDB metadata sources when multiple metadata sources are available."}),(0,r.jsx)(d.td,{children:"1"}),(0,r.jsx)(d.td,{children:"Any number"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_REQUEST_INTERVAL_MS"})}),(0,r.jsxs)(d.td,{children:["The interval, in milliseconds, to wait between consecutive requests to prevent exceeding rate limits. This delay will be applied ",(0,r.jsx)(d.strong,{children:"before"})," each call to the provider."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"250"})}),(0,r.jsx)(d.td,{children:"Any number"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_ID"})}),(0,r.jsx)(d.td,{children:"The Client-ID used for authenticating requests to the IGDB API."}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Your Client ID"})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"METADATA_IGDB_CLIENT_SECRET"})}),(0,r.jsx)(d.td,{children:"The Client-Secret used for authenticating requests to the IGDB API."}),(0,r.jsx)(d.td,{children:"-"}),(0,r.jsx)(d.td,{children:"Your Client Secret"})]})]})]}),"\n",(0,r.jsx)(d.h2,{id:"testing",children:"TESTING"}),"\n",(0,r.jsxs)(d.table,{children:[(0,r.jsx)(d.thead,{children:(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.th,{children:"Property"}),(0,r.jsx)(d.th,{children:"Description"}),(0,r.jsx)(d.th,{children:"Default"}),(0,r.jsx)(d.th,{children:"Possible Values"})]})}),(0,r.jsxs)(d.tbody,{children:[(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"TESTING_AUTHENTICATION_DISABLED"})}),(0,r.jsxs)(d.td,{children:["If ",(0,r.jsx)(d.code,{children:"true"}),", the API will accept any auth header. Useful for testing without authentication."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"TESTING_MOCK_FILES"})}),(0,r.jsxs)(d.td,{children:["If ",(0,r.jsx)(d.code,{children:"true"}),", the server will mock all files or ignore filesystem functionalities. Useful for testing without real files."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"TESTING_IN_MEMORY_DB"})}),(0,r.jsxs)(d.td,{children:["If ",(0,r.jsx)(d.code,{children:"true"}),", the server will use an in-memory database. Useful for testing without creating an actual database. Only works with SQLITE."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]}),(0,r.jsxs)(d.tr,{children:[(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"TESTING_MOCK_PROVIDERS"})}),(0,r.jsxs)(d.td,{children:["If ",(0,r.jsx)(d.code,{children:"true"}),", the server will create two mock providers. (-9999 and 9999 Priority) Useful for testing metadata-merges."]}),(0,r.jsx)(d.td,{children:(0,r.jsx)(d.code,{children:"false"})}),(0,r.jsxs)(d.td,{children:[(0,r.jsx)(d.code,{children:"true"}),", ",(0,r.jsx)(d.code,{children:"false"})]})]})]})]})]})}function x(e={}){const{wrapper:d}={...(0,i.a)(),...e.components};return d?(0,r.jsx)(d,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},8358:(e,d,s)=>{s.d(d,{Z:()=>c,a:()=>t});var r=s(5271);const i={},n=r.createContext(i);function t(e){const d=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(n.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f677311a.3b2a60f5.js b/assets/js/b2ade0e8.d7e9a1d9.js similarity index 53% rename from assets/js/f677311a.3b2a60f5.js rename to assets/js/b2ade0e8.d7e9a1d9.js index 069a9112c..1548efa6e 100644 --- a/assets/js/f677311a.3b2a60f5.js +++ b/assets/js/b2ade0e8.d7e9a1d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[857],{1823:a=>{a.exports=JSON.parse('{"tag":{"label":"inclusivity","permalink":"/blog/tags/inclusivity","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/inclusivity","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6216],{391:e=>{e.exports=JSON.parse('{"tag":{"label":"open-source","permalink":"/blog/tags/open-source","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/open-source","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/b2c9ad8a.ff2e4e5e.js b/assets/js/b2c9ad8a.a9d785bd.js similarity index 85% rename from assets/js/b2c9ad8a.ff2e4e5e.js rename to assets/js/b2c9ad8a.a9d785bd.js index da5fb2470..344490782 100644 --- a/assets/js/b2c9ad8a.ff2e4e5e.js +++ b/assets/js/b2c9ad8a.a9d785bd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3680],{2319:a=>{a.exports=JSON.parse('{"tag":{"label":"app optimization","permalink":"/blog/tags/app-optimization","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app-optimization","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5541],{2523:a=>{a.exports=JSON.parse('{"tag":{"label":"app optimization","permalink":"/blog/tags/app-optimization","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/app-optimization","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/b4068411.9f392b92.js b/assets/js/b4068411.9f392b92.js new file mode 100644 index 000000000..e2338571c --- /dev/null +++ b/assets/js/b4068411.9f392b92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7881],{763:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"server-docs/setup/caprover","title":"Using CapRover","description":"CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.","source":"@site/docs/server-docs/setup/caprover.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/caprover","permalink":"/docs/server-docs/setup/caprover","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/caprover.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":3,"frontMatter":{"title":"Using CapRover","sidebar_position":3},"sidebar":"docs","previous":{"title":"Using Docker Compose","permalink":"/docs/server-docs/setup/docker-compose"},"next":{"title":"Using TrueNAS Scale","permalink":"/docs/server-docs/setup/truenas-scale"}}');var n=o(6070),r=o(8591);const a={title:"Using CapRover",sidebar_position:3},i=void 0,p={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Log in to your CapRover Dashboard",id:"step-1-log-in-to-your-caprover-dashboard",level:2},{value:"Step 2: Navigate to the One-Click-Apps/Databases",id:"step-2-navigate-to-the-one-click-appsdatabases",level:2},{value:"Step 3: Connect Phalcode's third-party repository",id:"step-3-connect-phalcodes-third-party-repository",level:2},{value:"Step 4: Install our GameVault One-Click-App",id:"step-4-install-our-gamevault-one-click-app",level:2},{value:"Step 5: Enable WebSocket Support",id:"step-5-enable-websocket-support",level:2},{value:"Step 6: Configuring Volumes",id:"step-6-configuring-volumes",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://caprover.com",children:"CapRover"})," is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers."]}),"\n",(0,n.jsxs)(t.p,{children:["Setting up a GameVault Server on CapRover is just a click away because we have created a CapRover ",(0,n.jsx)(t.a,{href:"https://caprover.com/docs/one-click-apps.html",children:"One-Click-App"})," Integration for this purpose. However, our app hasn't gained enough prominence to be included in the official ",(0,n.jsx)(t.a,{href:"https://caprover.com/docs/one-click-apps.html",children:"One-Click-App"})," Repository of CapRover. So, we decided to create our own ",(0,n.jsx)(t.a,{href:"https://github.com/Phalcode/caprover-one-click-apps",children:"third-party repository"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["In this guide, you will learn how to connect to our ",(0,n.jsx)(t.a,{href:"https://github.com/Phalcode/caprover-one-click-apps",children:"third-party repository"})," and install GameVault on your CapRover Instance."]}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["A running ",(0,n.jsx)(t.a,{href:"https://caprover.com",children:"CapRover"})," Server"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"step-1-log-in-to-your-caprover-dashboard",children:"Step 1: Log in to your CapRover Dashboard"}),"\n",(0,n.jsx)(t.p,{children:"Log in to your CapRover dashboard."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 1",src:o(360).A+"",width:"1917",height:"1038"})}),"\n",(0,n.jsx)(t.h2,{id:"step-2-navigate-to-the-one-click-appsdatabases",children:"Step 2: Navigate to the One-Click-Apps/Databases"}),"\n",(0,n.jsx)(t.p,{children:'Go to "Apps" and click on "One-Click Apps/Databases."'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 2",src:o(5971).A+"",width:"1896",height:"558"})}),"\n",(0,n.jsx)(t.h2,{id:"step-3-connect-phalcodes-third-party-repository",children:"Step 3: Connect Phalcode's third-party repository"}),"\n",(0,n.jsxs)(t.p,{children:['Scroll down to the bottom. Under "3rd party repositories," copy and paste the following link: ',(0,n.jsx)(t.code,{children:"https://phalcode.github.io/caprover-one-click-apps"}),'. Click the "Connect New Repository" button.']}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 3",src:o(410).A+"",width:"1885",height:"1021"})}),"\n",(0,n.jsx)(t.h2,{id:"step-4-install-our-gamevault-one-click-app",children:"Step 4: Install our GameVault One-Click-App"}),"\n",(0,n.jsx)(t.p,{children:"Now, all you need to do is search for 'GameVault' using the search box and follow the installation wizard."}),"\n",(0,n.jsx)(t.p,{children:"If you can't find GameVault in the list, try reloading the page and search again."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 4",src:o(837).A+"",width:"1895",height:"1044"})}),"\n",(0,n.jsx)(t.h2,{id:"step-5-enable-websocket-support",children:"Step 5: Enable WebSocket Support"}),"\n",(0,n.jsx)(t.p,{children:'Go to "Apps" and click on the GameVault App you just created. Make sure WebSocket Support is enabled.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 5",src:o(8572).A+"",width:"1896",height:"1039"})}),"\n",(0,n.jsx)(t.h2,{id:"step-6-configuring-volumes",children:"Step 6: Configuring Volumes"}),"\n",(0,n.jsx)(t.p,{children:"Configure your mounted volumes as you like."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step 6",src:o(2503).A+"",width:"1896",height:"815"})}),"\n",(0,n.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,n.jsx)(t.p,{children:"You have now successfully set up your GameVault Server using CapRover."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,n.jsx)(t.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,n.jsx)(t.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,n.jsx)(t.p,{children:'Navigate to "Apps" and select the GameVault App you have created.'}),"\n",(0,n.jsx)(t.p,{children:'Click on "App Configs".'}),"\n",(0,n.jsx)(t.p,{children:'Set "Instance Count" to 0.'}),"\n",(0,n.jsx)(t.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,n.jsx)(t.p,{children:'Navigate to "Apps" and choose the GameVault App you have created.'}),"\n",(0,n.jsx)(t.p,{children:'Click on "Deployment".'}),"\n",(0,n.jsx)(t.p,{children:'You should now see the logs. If needed, click on "View App Logs" first.'})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},360:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover1-b2e08c5a64d4fc667209502af5bd7d18.png"},5971:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover2-1ad3c8c65512162cf8b296ad9696ef97.png"},410:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover3-61b95eef2e0c46c890e880b0f4958e52.png"},837:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover4-282b9233c452d0493f0e290320b23fa2.png"},8572:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover5-7c38f01362e6e9aaf3bab20273c7c82d.png"},2503:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/caprover6-9b25099f9bb4f31ace08f01a557a69c5.png"},8591:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>i});var s=o(758);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b4068411.a6cf9b2a.js b/assets/js/b4068411.a6cf9b2a.js deleted file mode 100644 index 8977198dc..000000000 --- a/assets/js/b4068411.a6cf9b2a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8042],{176:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=o(2676),n=o(8358);const r={title:"Using CapRover",sidebar_position:3},a=void 0,i={id:"server-docs/setup/caprover",title:"Using CapRover",description:"CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.",source:"@site/docs/server-docs/setup/caprover.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/caprover",permalink:"/docs/server-docs/setup/caprover",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/caprover.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:3,frontMatter:{title:"Using CapRover",sidebar_position:3},sidebar:"docs",previous:{title:"Using Docker Compose",permalink:"/docs/server-docs/setup/docker-compose"},next:{title:"Using TrueNAS Scale",permalink:"/docs/server-docs/setup/truenas-scale"}},p={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Log in to your CapRover Dashboard",id:"step-1-log-in-to-your-caprover-dashboard",level:2},{value:"Step 2: Navigate to the One-Click-Apps/Databases",id:"step-2-navigate-to-the-one-click-appsdatabases",level:2},{value:"Step 3: Connect Phalcode's third-party repository",id:"step-3-connect-phalcodes-third-party-repository",level:2},{value:"Step 4: Install our GameVault One-Click-App",id:"step-4-install-our-gamevault-one-click-app",level:2},{value:"Step 5: Enable WebSocket Support",id:"step-5-enable-websocket-support",level:2},{value:"Step 6: Configuring Volumes",id:"step-6-configuring-volumes",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Reading the Logs",id:"reading-the-logs",level:3}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://caprover.com",children:"CapRover"})," is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers."]}),"\n",(0,s.jsxs)(t.p,{children:["Setting up a GameVault Server on CapRover is just a click away because we have created a CapRover ",(0,s.jsx)(t.a,{href:"https://caprover.com/docs/one-click-apps.html",children:"One-Click-App"})," Integration for this purpose. However, our app hasn't gained enough prominence to be included in the official ",(0,s.jsx)(t.a,{href:"https://caprover.com/docs/one-click-apps.html",children:"One-Click-App"})," Repository of CapRover. So, we decided to create our own ",(0,s.jsx)(t.a,{href:"https://github.com/Phalcode/caprover-one-click-apps",children:"third-party repository"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["In this guide, you will learn how to connect to our ",(0,s.jsx)(t.a,{href:"https://github.com/Phalcode/caprover-one-click-apps",children:"third-party repository"})," and install GameVault on your CapRover Instance."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["A running ",(0,s.jsx)(t.a,{href:"https://caprover.com",children:"CapRover"})," Server"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"step-1-log-in-to-your-caprover-dashboard",children:"Step 1: Log in to your CapRover Dashboard"}),"\n",(0,s.jsx)(t.p,{children:"Log in to your CapRover dashboard."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 1",src:o(1549).Z+"",width:"1917",height:"1038"})}),"\n",(0,s.jsx)(t.h2,{id:"step-2-navigate-to-the-one-click-appsdatabases",children:"Step 2: Navigate to the One-Click-Apps/Databases"}),"\n",(0,s.jsx)(t.p,{children:'Go to "Apps" and click on "One-Click Apps/Databases."'}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 2",src:o(1719).Z+"",width:"1896",height:"558"})}),"\n",(0,s.jsx)(t.h2,{id:"step-3-connect-phalcodes-third-party-repository",children:"Step 3: Connect Phalcode's third-party repository"}),"\n",(0,s.jsxs)(t.p,{children:['Scroll down to the bottom. Under "3rd party repositories," copy and paste the following link: ',(0,s.jsx)(t.code,{children:"https://phalcode.github.io/caprover-one-click-apps"}),'. Click the "Connect New Repository" button.']}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 3",src:o(5607).Z+"",width:"1885",height:"1021"})}),"\n",(0,s.jsx)(t.h2,{id:"step-4-install-our-gamevault-one-click-app",children:"Step 4: Install our GameVault One-Click-App"}),"\n",(0,s.jsx)(t.p,{children:"Now, all you need to do is search for 'GameVault' using the search box and follow the installation wizard."}),"\n",(0,s.jsx)(t.p,{children:"If you can't find GameVault in the list, try reloading the page and search again."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 4",src:o(1537).Z+"",width:"1895",height:"1044"})}),"\n",(0,s.jsx)(t.h2,{id:"step-5-enable-websocket-support",children:"Step 5: Enable WebSocket Support"}),"\n",(0,s.jsx)(t.p,{children:'Go to "Apps" and click on the GameVault App you just created. Make sure WebSocket Support is enabled.'}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 5",src:o(7451).Z+"",width:"1896",height:"1039"})}),"\n",(0,s.jsx)(t.h2,{id:"step-6-configuring-volumes",children:"Step 6: Configuring Volumes"}),"\n",(0,s.jsx)(t.p,{children:"Configure your mounted volumes as you like."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Step 6",src:o(4476).Z+"",width:"1896",height:"815"})}),"\n",(0,s.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,s.jsx)(t.p,{children:"You have now successfully set up your GameVault Server using CapRover."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,s.jsx)(t.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,s.jsx)(t.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,s.jsx)(t.p,{children:'Navigate to "Apps" and select the GameVault App you have created.'}),"\n",(0,s.jsx)(t.p,{children:'Click on "App Configs".'}),"\n",(0,s.jsx)(t.p,{children:'Set "Instance Count" to 0.'}),"\n",(0,s.jsx)(t.h3,{id:"reading-the-logs",children:"Reading the Logs"}),"\n",(0,s.jsx)(t.p,{children:'Navigate to "Apps" and choose the GameVault App you have created.'}),"\n",(0,s.jsx)(t.p,{children:'Click on "Deployment".'}),"\n",(0,s.jsx)(t.p,{children:'You should now see the logs. If needed, click on "View App Logs" first.'})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1549:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover1-b2e08c5a64d4fc667209502af5bd7d18.png"},1719:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover2-1ad3c8c65512162cf8b296ad9696ef97.png"},5607:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover3-61b95eef2e0c46c890e880b0f4958e52.png"},1537:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover4-282b9233c452d0493f0e290320b23fa2.png"},7451:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover5-7c38f01362e6e9aaf3bab20273c7c82d.png"},4476:(e,t,o)=>{o.d(t,{Z:()=>s});const s=o.p+"assets/images/caprover6-9b25099f9bb4f31ace08f01a557a69c5.png"},8358:(e,t,o)=>{o.d(t,{Z:()=>i,a:()=>a});var s=o(5271);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b493ea72.002e1b38.js b/assets/js/b493ea72.002e1b38.js deleted file mode 100644 index 46bdfb2f3..000000000 --- a/assets/js/b493ea72.002e1b38.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4781],{9794:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var t=o(2676),i=o(8358);const r={title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},s=void 0,a={permalink:"/blog/2023/07/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md",source:"@site/blog/2023-07-20.md",title:"The Migrations are finally completed",description:"Hey folks,",date:"2023-07-20T00:00:00.000Z",tags:[{inline:!0,label:"app name migration",permalink:"/blog/tags/app-name-migration"},{inline:!0,label:"Microsoft Store publication",permalink:"/blog/tags/microsoft-store-publication"},{inline:!0,label:"surge of new users",permalink:"/blog/tags/surge-of-new-users"},{inline:!0,label:"Discord server promotion",permalink:"/blog/tags/discord-server-promotion"},{inline:!0,label:"spreading the word",permalink:"/blog/tags/spreading-the-word"},{inline:!0,label:"logo deciphering",permalink:"/blog/tags/logo-deciphering"},{inline:!0,label:"box representation",permalink:"/blog/tags/box-representation"},{inline:!0,label:"keyhole representation",permalink:"/blog/tags/keyhole-representation"},{inline:!0,label:"logo concept discussion",permalink:"/blog/tags/logo-concept-discussion"},{inline:!0,label:"Discord channel",permalink:"/blog/tags/discord-channel"}],readingTime:.615,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},unlisted:!1,prevItem:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",permalink:"/blog/2023/07/24/"},nextItem:{title:"Quick Migration Update and new Logo",permalink:"/blog/2023/07/19/"}},l={authorsImageUrls:[void 0]},c=[];function g(e){const n={a:"a",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Hey folks,"}),"\n",(0,t.jsx)(n.p,{children:"Great news. We've successfully migrated our App name in its entirety and will resume advertising as soon as it's published on the Microsoft Store. "}),"\n",(0,t.jsxs)(n.p,{children:["Just a heads up, there might be a surge of new users joining the ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server due to us promoting GameVault across all available platforms now."]}),"\n",(0,t.jsx)(n.p,{children:"You're welcome to join in and spread the word about GameVault with your friends, family, social network, or colleagues!"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Let's decipher the mystery behind the new logo:"}),"\n",(0,t.jsx)(n.img,{alt:"logo",src:o(4474).Z+"",width:"1000",height:"103"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The Box represents a Vault with a Keyhole, but it also symbolizes a game dice."}),"\n",(0,t.jsx)(n.li,{children:"The Keyhole represents a Keyhole, and simultaneously signifies a game piece."}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Did you find the logo concept creative? Share your thoughts on ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"}),"!"]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(g,{...e})}):g(e)}},4474:(e,n,o)=>{o.d(n,{Z:()=>t});const t=o.p+"assets/images/logo-text-and-image-sbs-6a7a4b169bd1cf62f643469e715ae759.png"},8358:(e,n,o)=>{o.d(n,{Z:()=>a,a:()=>s});var t=o(5271);const i={},r=t.createContext(i);function s(e){const n=t.useContext(r);return t.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:s(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b493ea72.b58685f3.js b/assets/js/b493ea72.b58685f3.js new file mode 100644 index 000000000..713438824 --- /dev/null +++ b/assets/js/b493ea72.b58685f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5124],{165:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var o=t(4580),i=t(6070),r=t(8591);const s={title:"The Migrations are finally completed",authors:["alfagun74"],tags:["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},a=void 0,l={authorsImageUrls:[void 0]},c=[];function g(e){const n={a:"a",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Hey folks,"}),"\n",(0,i.jsx)(n.p,{children:"Great news. We've successfully migrated our App name in its entirety and will resume advertising as soon as it's published on the Microsoft Store. "}),"\n",(0,i.jsxs)(n.p,{children:["Just a heads up, there might be a surge of new users joining the ",(0,i.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," server due to us promoting GameVault across all available platforms now."]}),"\n",(0,i.jsx)(n.p,{children:"You're welcome to join in and spread the word about GameVault with your friends, family, social network, or colleagues!"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Let's decipher the mystery behind the new logo:"}),"\n",(0,i.jsx)(n.img,{alt:"logo",src:t(5364).A+"",width:"1000",height:"103"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The Box represents a Vault with a Keyhole, but it also symbolizes a game dice."}),"\n",(0,i.jsx)(n.li,{children:"The Keyhole represents a Keyhole, and simultaneously signifies a game piece."}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Did you find the logo concept creative? Share your thoughts on ",(0,i.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"}),"!"]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}},5364:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/logo-text-and-image-sbs-6a7a4b169bd1cf62f643469e715ae759.png"},8591:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var o=t(758);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.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:s(e.components),o.createElement(r.Provider,{value:n},e.children)}},4580:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md","source":"@site/blog/2023-07-20.md","title":"The Migrations are finally completed","description":"Hey folks,","date":"2023-07-20T00:00:00.000Z","tags":[{"inline":true,"label":"app name migration","permalink":"/blog/tags/app-name-migration"},{"inline":true,"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication"},{"inline":true,"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users"},{"inline":true,"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering"},{"inline":true,"label":"box representation","permalink":"/blog/tags/box-representation"},{"inline":true,"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation"},{"inline":true,"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"The Migrations are finally completed","authors":["alfagun74"],"tags":["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},"unlisted":false,"prevItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"},"nextItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"}}')}}]); \ No newline at end of file diff --git a/assets/js/b7026fb3.5b81eaa4.js b/assets/js/b7026fb3.5b81eaa4.js new file mode 100644 index 000000000..a6f6b6500 --- /dev/null +++ b/assets/js/b7026fb3.5b81eaa4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8033],{1620:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>u});var n=a(1663),i=a(6070),r=a(8591);const s={title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},o=void 0,l={authorsImageUrls:[void 0]},u=[];function p(e){const t={a:"a",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Hey folks,"}),"\n",(0,i.jsx)(t.p,{children:"We have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us. "}),"\n",(0,i.jsxs)(t.p,{children:["It began with spam on our Issue Trackers and ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),' Server but this situation has escalated to the point where these individuals went so far as to search me up on LinkedIn and threaten to inform my employer with baseless accusations of racism because of trivial reasons like the branch name in our github project being "master". Moreover, we have received reports that these trolls have extended their actions directly to other members of this server, attempting to spread negative narratives and disrupting the community atmosphere.']}),"\n",(0,i.jsxs)(t.p,{children:["To address this issue, we kindly request that you promptly report any encounters with these trolls to both ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," and our dedicated team of moderators. By doing so, we can take appropriate measures to handle the situation and maintain a safe environment for all."]}),"\n",(0,i.jsx)(t.p,{children:"We would like to emphasize that we are not racist individuals, but rather developers who decided to share our hard work with the community, hoping to bring joy and utility to everyone. Unfortunately, we did not anticipate encountering such creepy behavior when we made the project public. It has made us question whether it was the right decision to open up our work in the first place."}),"\n",(0,i.jsxs)(t.p,{children:["If you appreciate our efforts and would like to support us and the app, we humbly ask for your financial assistance. Even a small contribution of five bucks on ",(0,i.jsx)(t.a,{href:"https://ko-fi.com/phalcode",children:"Kofi"})," would go a long way in helping us maintain our motivation and dedication. Alternatively, if monetary support isn't possible, we would be incredibly grateful if you could share kind words about how the GameVault app has positively impacted your life in the #chat channel. Your encouragement means the world to us. \ud83e\udd70"]}),"\n",(0,i.jsx)(t.p,{children:"In addition, we encourage you to continue reporting any bugs you encounter and submitting feature requests in the respective GitHub trackers. With your valuable input, we can continue improving the app and making it even better."}),"\n",(0,i.jsx)(t.p,{children:"Remember, the success of this project relies on your support and engagement. Let's stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding."})]})}function c(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>o});var n=a(758);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.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(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},1663:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md","source":"@site/blog/2023-07-09.md","title":"Battling Harassment and Trolls in Our App Community","description":"Hey folks,","date":"2023-07-09T00:00:00.000Z","tags":[{"inline":true,"label":"harassment","permalink":"/blog/tags/harassment"},{"inline":true,"label":"blackmail","permalink":"/blog/tags/blackmail"},{"inline":true,"label":"threats","permalink":"/blog/tags/threats"},{"inline":true,"label":"spam","permalink":"/blog/tags/spam"},{"inline":true,"label":"trolls","permalink":"/blog/tags/trolls"},{"inline":true,"label":"negative narratives","permalink":"/blog/tags/negative-narratives"},{"inline":true,"label":"safe environment","permalink":"/blog/tags/safe-environment"},{"inline":true,"label":"racist","permalink":"/blog/tags/racist"},{"inline":true,"label":"developers","permalink":"/blog/tags/developers"},{"inline":true,"label":"public","permalink":"/blog/tags/public"},{"inline":true,"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior"},{"inline":true,"label":"app","permalink":"/blog/tags/app"},{"inline":true,"label":"support","permalink":"/blog/tags/support"},{"inline":true,"label":"financial assistance","permalink":"/blog/tags/financial-assistance"},{"inline":true,"label":"motivation","permalink":"/blog/tags/motivation"},{"inline":true,"label":"GameVault app","permalink":"/blog/tags/game-vault-app"},{"inline":true,"label":"bugs","permalink":"/blog/tags/bugs"},{"inline":true,"label":"feature requests","permalink":"/blog/tags/feature-requests"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"success","permalink":"/blog/tags/success"},{"inline":true,"label":"engagement","permalink":"/blog/tags/engagement"}],"readingTime":1.955,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Battling Harassment and Trolls in Our App Community","authors":["alfagun74"],"tags":["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},"unlisted":false,"prevItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"},"nextItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}}')}}]); \ No newline at end of file diff --git a/assets/js/b7026fb3.9d4162c0.js b/assets/js/b7026fb3.9d4162c0.js deleted file mode 100644 index 3579967d3..000000000 --- a/assets/js/b7026fb3.9d4162c0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[752],{2660:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>p});var n=t(2676),i=t(8358);const s={title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},r=void 0,o={permalink:"/blog/2023/07/09/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md",source:"@site/blog/2023-07-09.md",title:"Battling Harassment and Trolls in Our App Community",description:"Hey folks,",date:"2023-07-09T00:00:00.000Z",tags:[{inline:!0,label:"harassment",permalink:"/blog/tags/harassment"},{inline:!0,label:"blackmail",permalink:"/blog/tags/blackmail"},{inline:!0,label:"threats",permalink:"/blog/tags/threats"},{inline:!0,label:"spam",permalink:"/blog/tags/spam"},{inline:!0,label:"trolls",permalink:"/blog/tags/trolls"},{inline:!0,label:"negative narratives",permalink:"/blog/tags/negative-narratives"},{inline:!0,label:"safe environment",permalink:"/blog/tags/safe-environment"},{inline:!0,label:"racist",permalink:"/blog/tags/racist"},{inline:!0,label:"developers",permalink:"/blog/tags/developers"},{inline:!0,label:"public",permalink:"/blog/tags/public"},{inline:!0,label:"creepy behavior",permalink:"/blog/tags/creepy-behavior"},{inline:!0,label:"app",permalink:"/blog/tags/app"},{inline:!0,label:"support",permalink:"/blog/tags/support"},{inline:!0,label:"financial assistance",permalink:"/blog/tags/financial-assistance"},{inline:!0,label:"motivation",permalink:"/blog/tags/motivation"},{inline:!0,label:"GameVault app",permalink:"/blog/tags/game-vault-app"},{inline:!0,label:"bugs",permalink:"/blog/tags/bugs"},{inline:!0,label:"feature requests",permalink:"/blog/tags/feature-requests"},{inline:!0,label:"improvement",permalink:"/blog/tags/improvement"},{inline:!0,label:"success",permalink:"/blog/tags/success"},{inline:!0,label:"engagement",permalink:"/blog/tags/engagement"}],readingTime:1.955,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Battling Harassment and Trolls in Our App Community",authors:["alfagun74"],tags:["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},unlisted:!1,prevItem:{title:"A Closer Look at GameVaults 'Source-Available' Nature",permalink:"/blog/2023/07/13/"},nextItem:{title:"Choosing a New, Family-Friendly Name for this project!",permalink:"/blog/2023/07/08/"}},l={authorsImageUrls:[void 0]},p=[];function u(e){const a={a:"a",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey folks,"}),"\n",(0,n.jsx)(a.p,{children:"We have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us. "}),"\n",(0,n.jsxs)(a.p,{children:["It began with spam on our Issue Trackers and ",(0,n.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),' Server but this situation has escalated to the point where these individuals went so far as to search me up on LinkedIn and threaten to inform my employer with baseless accusations of racism because of trivial reasons like the branch name in our github project being "master". Moreover, we have received reports that these trolls have extended their actions directly to other members of this server, attempting to spread negative narratives and disrupting the community atmosphere.']}),"\n",(0,n.jsxs)(a.p,{children:["To address this issue, we kindly request that you promptly report any encounters with these trolls to both ",(0,n.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," and our dedicated team of moderators. By doing so, we can take appropriate measures to handle the situation and maintain a safe environment for all."]}),"\n",(0,n.jsx)(a.p,{children:"We would like to emphasize that we are not racist individuals, but rather developers who decided to share our hard work with the community, hoping to bring joy and utility to everyone. Unfortunately, we did not anticipate encountering such creepy behavior when we made the project public. It has made us question whether it was the right decision to open up our work in the first place."}),"\n",(0,n.jsxs)(a.p,{children:["If you appreciate our efforts and would like to support us and the app, we humbly ask for your financial assistance. Even a small contribution of five bucks on ",(0,n.jsx)(a.a,{href:"https://ko-fi.com/phalcode",children:"Kofi"})," would go a long way in helping us maintain our motivation and dedication. Alternatively, if monetary support isn't possible, we would be incredibly grateful if you could share kind words about how the GameVault app has positively impacted your life in the #chat channel. Your encouragement means the world to us. \ud83e\udd70"]}),"\n",(0,n.jsx)(a.p,{children:"In addition, we encourage you to continue reporting any bugs you encounter and submitting feature requests in the respective GitHub trackers. With your valuable input, we can continue improving the app and making it even better."}),"\n",(0,n.jsx)(a.p,{children:"Remember, the success of this project relies on your support and engagement. Let's stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding."})]})}function c(e={}){const{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>o,a:()=>r});var n=t(5271);const i={},s=n.createContext(i);function r(e){const a=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b8ecf3c5.1414f1c5.js b/assets/js/b8ecf3c5.1414f1c5.js new file mode 100644 index 000000000..c219cf669 --- /dev/null +++ b/assets/js/b8ecf3c5.1414f1c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7508],{1289:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"client-docs/setup","title":"Setting up a GameVault Client","description":"If you want to use GameVault to download and install games on your computer, you need to follow these steps.","source":"@site/docs/client-docs/setup.md","sourceDirName":"client-docs","slug":"/client-docs/setup","permalink":"/docs/client-docs/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/setup.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"docs","previous":{"title":"Server News","permalink":"/docs/server-docs/server-news"},"next":{"title":"How to Use","permalink":"/docs/client-docs/how-to-use"}}');var i=t(6070),l=t(8591);const s={sidebar_position:1},r="Setting up a GameVault Client",a={},d=[{value:"Installation",id:"installation",level:2},{value:"Recommended Installation Option",id:"recommended-installation-option",level:3},{value:"Alternative Installation Options",id:"alternative-installation-options",level:3},{value:"Option 1: Obtain Pre-Built Artifacts from Github",id:"option-1-obtain-pre-built-artifacts-from-github",level:4},{value:"Option 2: Linux Installation",id:"option-2-linux-installation",level:4},{value:"Option 3: Self-Compiling on Windows",id:"option-3-self-compiling-on-windows",level:4},{value:"Option 4: Extracting from the .appxbundle",id:"option-4-extracting-from-the-appxbundle",level:4},{value:"Initial Configuration",id:"initial-configuration",level:2},{value:"Step 1: Select the Root Folder",id:"step-1-select-the-root-folder",level:3},{value:"Step 2: Entering the Selfhosted Backend Server URL",id:"step-2-entering-the-selfhosted-backend-server-url",level:3},{value:"Option 1: Self-hosted GameVault Server",id:"option-1-self-hosted-gamevault-server",level:4},{value:"Option 2: Using the Demo Server",id:"option-2-using-the-demo-server",level:4},{value:"Step 3: Log In or Register",id:"step-3-log-in-or-register",level:3},{value:"Option 1: Login",id:"option-1-login",level:4},{value:"Option 2: Register",id:"option-2-register",level:4},{value:"Conclusion",id:"conclusion",level:2}];function c(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"setting-up-a-gamevault-client",children:"Setting up a GameVault Client"})}),"\n",(0,i.jsx)(n.p,{children:"If you want to use GameVault to download and install games on your computer, you need to follow these steps."}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsx)(n.h3,{id:"recommended-installation-option",children:"Recommended Installation Option"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Requirement:"})," Windows 10/11 Operating System with Microsoft Store installed"]}),"\n",(0,i.jsxs)(n.p,{children:["To begin, install the GameVault application from ",(0,i.jsx)(n.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"the official Microsoft Store"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Experienced users can also simply run this command in the PowerShell:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ps",children:"winget install gamevault\n"})}),"\n",(0,i.jsxs)(n.p,{children:["This process should be straightforward and will only consume a few minutes of your time. After installing, feel free to continue at ",(0,i.jsx)(n.a,{href:"#initial-configuration",children:"Initial Configuration"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"alternative-installation-options",children:"Alternative Installation Options"}),"\n",(0,i.jsx)(n.p,{children:"If you for some reason prefer not to use the Microsoft Store or if you are operating on a different platform, there are multiple other methods available for installing the GameVault Client Application."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Please not that any other method than installing it from the Microsoft Store is ",(0,i.jsx)(n.strong,{children:"unsupported"})," and ",(0,i.jsx)(n.strong,{children:"unrecommended"})," and should only be used as a last resort. Also be aware ",(0,i.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"that you will be responsible for managing updates manually!"})]})}),"\n",(0,i.jsx)(n.h4,{id:"option-1-obtain-pre-built-artifacts-from-github",children:"Option 1: Obtain Pre-Built Artifacts from Github"}),"\n",(0,i.jsxs)(n.p,{children:["Access the most recent Pre-Built Artifact ",(0,i.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-app/releases/latest",children:"here."})]}),"\n",(0,i.jsx)(n.admonition,{title:"Antivirus/Smartscreen Warning",type:"note",children:(0,i.jsxs)(n.p,{children:["Your Antivirus or Windows Smartscreen may attempt to prevent you from running our pre-built application, because it is a suspicious-looking binary compiled by an unfamiliar source. This is because we lack a Code Signing Certificate due to budget constraints. You can safely disregard this warning and proceed to run the App by selecting ",(0,i.jsx)(n.code,{children:"More Details"})," and then choosing ",(0,i.jsx)(n.code,{children:"Run Anyway"}),"."]})}),"\n",(0,i.jsx)(n.h4,{id:"option-2-linux-installation",children:"Option 2: Linux Installation"}),"\n",(0,i.jsxs)(n.p,{children:["To run GameVault on Linux utilizing Wine, follow this community-driven method. Visit ",(0,i.jsx)(n.a,{href:"/docs/advanced-usage/linux-client",children:"this"})," page for more details."]}),"\n",(0,i.jsx)(n.h4,{id:"option-3-self-compiling-on-windows",children:"Option 3: Self-Compiling on Windows"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Install Visual Studio IDE"}),"\n",(0,i.jsx)(n.li,{children:"Include the 2017 build system"}),"\n",(0,i.jsx)(n.li,{children:"Clone the gamevault-app source code"}),"\n",(0,i.jsxs)(n.li,{children:["Open Visual Studio and choose the ",(0,i.jsx)(n.code,{children:".sln"})," file"]}),"\n",(0,i.jsxs)(n.li,{children:["Pick ",(0,i.jsx)(n.code,{children:"Release"})," from the Dropdown menu."]}),"\n",(0,i.jsx)(n.li,{children:"Build > Build gamevault"}),"\n",(0,i.jsx)(n.li,{children:"Utilize the output files."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"option-4-extracting-from-the-appxbundle",children:"Option 4: Extracting from the .appxbundle"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Go to ",(0,i.jsx)(n.a,{href:"https://store.rg-adguard.net",children:"https://store.rg-adguard.net"})]}),"\n",(0,i.jsxs)(n.li,{children:["Paste ",(0,i.jsx)(n.code,{children:"https://www.microsoft.com/store/apps/9PCKDV76GL75"})," in the search box"]}),"\n",(0,i.jsx)(n.li,{children:"Download the current .appxbundle"}),"\n",(0,i.jsxs)(n.li,{children:["Extract the .appxbundle, followed by the ",(0,i.jsx)(n.code,{children:"ReleasePackage_[VERSION]_x64.appx"})," file."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"initial-configuration",children:"Initial Configuration"}),"\n",(0,i.jsx)(n.p,{children:"Once you have installed and launched GameVault, you need to do some initial configuration to get it up and running properly."}),"\n",(0,i.jsx)(n.h3,{id:"step-1-select-the-root-folder",children:"Step 1: Select the Root Folder"}),"\n",(0,i.jsxs)(n.p,{children:["In this step, you will choose the location where all your downloaded and installed games will be stored. This folder will act as the central location for your game library. We recommend you to have a read on the ",(0,i.jsx)(n.a,{href:"/docs/client-docs/how-to-use",children:'"How to Use" Chapter'})," to understand how the root folder works."]}),"\n",(0,i.jsx)(n.p,{children:"To select the root folder, follow the instructions below:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:'Click the "Select Root Path" button.'}),"\n",(0,i.jsx)(n.li,{children:"Navigate to the desired location on your computer."}),"\n",(0,i.jsx)(n.li,{children:"Choose a folder with sufficient storage space to store your game collection."}),"\n",(0,i.jsx)(n.li,{children:'Once you have selected the folder, click "Next" to proceed.'}),"\n",(0,i.jsxs)(n.li,{children:["GameVault will automatically generate a Subfolder called ",(0,i.jsx)(n.code,{children:"GameVault"})," in your selected Folder with some initial data."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"step-2-entering-the-selfhosted-backend-server-url",children:"Step 2: Entering the Selfhosted Backend Server URL"}),"\n",(0,i.jsx)(n.p,{children:"To connect your GameVault application to the backend server, you need to provide the URL of the server. Depending on your setup, follow one of the two options below:"}),"\n",(0,i.jsx)(n.h4,{id:"option-1-self-hosted-gamevault-server",children:"Option 1: Self-hosted GameVault Server"}),"\n",(0,i.jsx)(n.p,{children:"If you have your own self-hosted GameVault server, please enter its URL in the provided field. Follow the instructions below:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Enter the URL of your self-hosted GameVault server in the provided field."}),"\n",(0,i.jsx)(n.li,{children:"Make sure you have the correct URL and it is accessible."}),"\n",(0,i.jsx)(n.li,{children:'Click "Next" to proceed.'}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"option-2-using-the-demo-server",children:"Option 2: Using the Demo Server"}),"\n",(0,i.jsx)(n.p,{children:"If you only want to try out GameVault, without setting up your own server, you can use our demo server. There open-source videogames available. Keep in mind that you will have mostly read-only non-admin rights on that server. To use the demo server, follow the instructions below:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:'Enter "demo.gamevau.lt" as the URL in the provided field.'}),"\n",(0,i.jsx)(n.li,{children:"This will allow you to explore the features and functionality of GameVault."}),"\n",(0,i.jsx)(n.li,{children:'Click "Next" to proceed'}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{title:"Demo Server Credentials",type:"info",children:(0,i.jsxs)(n.p,{children:["Username: ",(0,i.jsx)(n.strong,{children:"demo"}),(0,i.jsx)(n.br,{}),"\n","Password: ",(0,i.jsx)(n.strong,{children:"demodemo"})]})}),"\n",(0,i.jsx)(n.h3,{id:"step-3-log-in-or-register",children:"Step 3: Log In or Register"}),"\n",(0,i.jsx)(n.p,{children:"In this step, you will need to log in to your GameVault account on the selected backend server. Choose one of the following options based on your situation:"}),"\n",(0,i.jsx)(n.h4,{id:"option-1-login",children:"Option 1: Login"}),"\n",(0,i.jsx)(n.p,{children:"If you already have a GameVault account on the selected server, follow these steps:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:'Select "Login" from the options.'}),"\n",(0,i.jsx)(n.li,{children:"Enter your login credentials (username and password) in the provided fields."}),"\n",(0,i.jsx)(n.li,{children:"Ensure that the credentials are specific to the GameVault backend server you have chosen."}),"\n",(0,i.jsx)(n.li,{children:'Click "Log in" to proceed.'}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"option-2-register",children:"Option 2: Register"}),"\n",(0,i.jsx)(n.p,{children:"If you don't have an account on the selected GameVault backend server, follow these steps:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:'Click the "Register" button.'}),"\n",(0,i.jsx)(n.li,{children:"Follow the instructions provided to create your GameVault account on the backend server."}),"\n",(0,i.jsx)(n.li,{children:"The server administrators may have to activate your account before you can use it to log in. Contact them if necessary."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,i.jsx)(n.p,{children:"Congratulations! You have successfully installed and completed the initial configuration of GameVault. You are now ready to explore and enjoy the features and functionality of the app. If you have any further questions or need assistance, refer to the remaining chapters of this documentation or reach out to our support team for help."}),"\n",(0,i.jsxs)(n.p,{children:["We specifically recommend to read the ",(0,i.jsx)(n.a,{href:"/docs/client-docs/how-to-use",children:'"How to Use" Chapter'})," to understand how GameVault works."]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var o=t(758);const i={},l=o.createContext(i);function s(e){const n=o.useContext(l);return o.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(i):e.components||i:s(e.components),o.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b8ecf3c5.ef8f4fbe.js b/assets/js/b8ecf3c5.ef8f4fbe.js deleted file mode 100644 index 770bfbfdc..000000000 --- a/assets/js/b8ecf3c5.ef8f4fbe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9847],{6262:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>d});var o=t(2676),i=t(8358);const l={sidebar_position:1},s="Setting up a GameVault Client",r={id:"client-docs/setup",title:"Setting up a GameVault Client",description:"If you want to use GameVault to download and install games on your computer, you need to follow these steps.",source:"@site/docs/client-docs/setup.md",sourceDirName:"client-docs",slug:"/client-docs/setup",permalink:"/docs/client-docs/setup",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/setup.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"docs",previous:{title:"Server News",permalink:"/docs/server-docs/server-news"},next:{title:"How to Use",permalink:"/docs/client-docs/how-to-use"}},a={},d=[{value:"Installation",id:"installation",level:2},{value:"Recommended Installation Option",id:"recommended-installation-option",level:3},{value:"Alternative Installation Options",id:"alternative-installation-options",level:3},{value:"Option 1: Obtain Pre-Built Artifacts from Github",id:"option-1-obtain-pre-built-artifacts-from-github",level:4},{value:"Option 2: Linux Installation",id:"option-2-linux-installation",level:4},{value:"Option 3: Self-Compiling on Windows",id:"option-3-self-compiling-on-windows",level:4},{value:"Option 4: Extracting from the .appxbundle",id:"option-4-extracting-from-the-appxbundle",level:4},{value:"Initial Configuration",id:"initial-configuration",level:2},{value:"Step 1: Select the Root Folder",id:"step-1-select-the-root-folder",level:3},{value:"Step 2: Entering the Selfhosted Backend Server URL",id:"step-2-entering-the-selfhosted-backend-server-url",level:3},{value:"Option 1: Self-hosted GameVault Server",id:"option-1-self-hosted-gamevault-server",level:4},{value:"Option 2: Using the Demo Server",id:"option-2-using-the-demo-server",level:4},{value:"Step 3: Log In or Register",id:"step-3-log-in-or-register",level:3},{value:"Option 1: Login",id:"option-1-login",level:4},{value:"Option 2: Register",id:"option-2-register",level:4},{value:"Conclusion",id:"conclusion",level:2}];function c(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"setting-up-a-gamevault-client",children:"Setting up a GameVault Client"})}),"\n",(0,o.jsx)(n.p,{children:"If you want to use GameVault to download and install games on your computer, you need to follow these steps."}),"\n",(0,o.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsx)(n.h3,{id:"recommended-installation-option",children:"Recommended Installation Option"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Requirement:"})," Windows 10/11 Operating System with Microsoft Store installed"]}),"\n",(0,o.jsxs)(n.p,{children:["To begin, install the GameVault application from ",(0,o.jsx)(n.a,{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"the official Microsoft Store"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"Experienced users can also simply run this command in the PowerShell:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ps",children:"winget install gamevault\n"})}),"\n",(0,o.jsxs)(n.p,{children:["This process should be straightforward and will only consume a few minutes of your time. After installing, feel free to continue at ",(0,o.jsx)(n.a,{href:"#initial-configuration",children:"Initial Configuration"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"alternative-installation-options",children:"Alternative Installation Options"}),"\n",(0,o.jsx)(n.p,{children:"If you for some reason prefer not to use the Microsoft Store or if you are operating on a different platform, there are multiple other methods available for installing the GameVault Client Application."}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["Please not that any other method than installing it from the Microsoft Store is ",(0,o.jsx)(n.strong,{children:"unsupported"})," and ",(0,o.jsx)(n.strong,{children:"unrecommended"})," and should only be used as a last resort. Also be aware ",(0,o.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"that you will be responsible for managing updates manually!"})]})}),"\n",(0,o.jsx)(n.h4,{id:"option-1-obtain-pre-built-artifacts-from-github",children:"Option 1: Obtain Pre-Built Artifacts from Github"}),"\n",(0,o.jsxs)(n.p,{children:["Access the most recent Pre-Built Artifact ",(0,o.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-app/releases/latest",children:"here."})]}),"\n",(0,o.jsx)(n.admonition,{title:"Antivirus/Smartscreen Warning",type:"note",children:(0,o.jsxs)(n.p,{children:["Your Antivirus or Windows Smartscreen may attempt to prevent you from running our pre-built application, because it is a suspicious-looking binary compiled by an unfamiliar source. This is because we lack a Code Signing Certificate due to budget constraints. You can safely disregard this warning and proceed to run the App by selecting ",(0,o.jsx)(n.code,{children:"More Details"})," and then choosing ",(0,o.jsx)(n.code,{children:"Run Anyway"}),"."]})}),"\n",(0,o.jsx)(n.h4,{id:"option-2-linux-installation",children:"Option 2: Linux Installation"}),"\n",(0,o.jsxs)(n.p,{children:["To run GameVault on Linux utilizing Wine, follow this community-driven method. Visit ",(0,o.jsx)(n.a,{href:"/docs/advanced-usage/linux-client",children:"this"})," page for more details."]}),"\n",(0,o.jsx)(n.h4,{id:"option-3-self-compiling-on-windows",children:"Option 3: Self-Compiling on Windows"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Install Visual Studio IDE"}),"\n",(0,o.jsx)(n.li,{children:"Include the 2017 build system"}),"\n",(0,o.jsx)(n.li,{children:"Clone the gamevault-app source code"}),"\n",(0,o.jsxs)(n.li,{children:["Open Visual Studio and choose the ",(0,o.jsx)(n.code,{children:".sln"})," file"]}),"\n",(0,o.jsxs)(n.li,{children:["Pick ",(0,o.jsx)(n.code,{children:"Release"})," from the Dropdown menu."]}),"\n",(0,o.jsx)(n.li,{children:"Build > Build gamevault"}),"\n",(0,o.jsx)(n.li,{children:"Utilize the output files."}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"option-4-extracting-from-the-appxbundle",children:"Option 4: Extracting from the .appxbundle"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Go to ",(0,o.jsx)(n.a,{href:"https://store.rg-adguard.net",children:"https://store.rg-adguard.net"})]}),"\n",(0,o.jsxs)(n.li,{children:["Paste ",(0,o.jsx)(n.code,{children:"https://www.microsoft.com/store/apps/9PCKDV76GL75"})," in the search box"]}),"\n",(0,o.jsx)(n.li,{children:"Download the current .appxbundle"}),"\n",(0,o.jsxs)(n.li,{children:["Extract the .appxbundle, followed by the ",(0,o.jsx)(n.code,{children:"ReleasePackage_[VERSION]_x64.appx"})," file."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"initial-configuration",children:"Initial Configuration"}),"\n",(0,o.jsx)(n.p,{children:"Once you have installed and launched GameVault, you need to do some initial configuration to get it up and running properly."}),"\n",(0,o.jsx)(n.h3,{id:"step-1-select-the-root-folder",children:"Step 1: Select the Root Folder"}),"\n",(0,o.jsxs)(n.p,{children:["In this step, you will choose the location where all your downloaded and installed games will be stored. This folder will act as the central location for your game library. We recommend you to have a read on the ",(0,o.jsx)(n.a,{href:"/docs/client-docs/how-to-use",children:'"How to Use" Chapter'})," to understand how the root folder works."]}),"\n",(0,o.jsx)(n.p,{children:"To select the root folder, follow the instructions below:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:'Click the "Select Root Path" button.'}),"\n",(0,o.jsx)(n.li,{children:"Navigate to the desired location on your computer."}),"\n",(0,o.jsx)(n.li,{children:"Choose a folder with sufficient storage space to store your game collection."}),"\n",(0,o.jsx)(n.li,{children:'Once you have selected the folder, click "Next" to proceed.'}),"\n",(0,o.jsxs)(n.li,{children:["GameVault will automatically generate a Subfolder called ",(0,o.jsx)(n.code,{children:"GameVault"})," in your selected Folder with some initial data."]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"step-2-entering-the-selfhosted-backend-server-url",children:"Step 2: Entering the Selfhosted Backend Server URL"}),"\n",(0,o.jsx)(n.p,{children:"To connect your GameVault application to the backend server, you need to provide the URL of the server. Depending on your setup, follow one of the two options below:"}),"\n",(0,o.jsx)(n.h4,{id:"option-1-self-hosted-gamevault-server",children:"Option 1: Self-hosted GameVault Server"}),"\n",(0,o.jsx)(n.p,{children:"If you have your own self-hosted GameVault server, please enter its URL in the provided field. Follow the instructions below:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Enter the URL of your self-hosted GameVault server in the provided field."}),"\n",(0,o.jsx)(n.li,{children:"Make sure you have the correct URL and it is accessible."}),"\n",(0,o.jsx)(n.li,{children:'Click "Next" to proceed.'}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"option-2-using-the-demo-server",children:"Option 2: Using the Demo Server"}),"\n",(0,o.jsx)(n.p,{children:"If you only want to try out GameVault, without setting up your own server, you can use our demo server. There open-source videogames available. Keep in mind that you will have mostly read-only non-admin rights on that server. To use the demo server, follow the instructions below:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:'Enter "demo.gamevau.lt" as the URL in the provided field.'}),"\n",(0,o.jsx)(n.li,{children:"This will allow you to explore the features and functionality of GameVault."}),"\n",(0,o.jsx)(n.li,{children:'Click "Next" to proceed'}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{title:"Demo Server Credentials",type:"info",children:(0,o.jsxs)(n.p,{children:["Username: ",(0,o.jsx)(n.strong,{children:"demo"}),(0,o.jsx)(n.br,{}),"\n","Password: ",(0,o.jsx)(n.strong,{children:"demodemo"})]})}),"\n",(0,o.jsx)(n.h3,{id:"step-3-log-in-or-register",children:"Step 3: Log In or Register"}),"\n",(0,o.jsx)(n.p,{children:"In this step, you will need to log in to your GameVault account on the selected backend server. Choose one of the following options based on your situation:"}),"\n",(0,o.jsx)(n.h4,{id:"option-1-login",children:"Option 1: Login"}),"\n",(0,o.jsx)(n.p,{children:"If you already have a GameVault account on the selected server, follow these steps:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:'Select "Login" from the options.'}),"\n",(0,o.jsx)(n.li,{children:"Enter your login credentials (username and password) in the provided fields."}),"\n",(0,o.jsx)(n.li,{children:"Ensure that the credentials are specific to the GameVault backend server you have chosen."}),"\n",(0,o.jsx)(n.li,{children:'Click "Log in" to proceed.'}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"option-2-register",children:"Option 2: Register"}),"\n",(0,o.jsx)(n.p,{children:"If you don't have an account on the selected GameVault backend server, follow these steps:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:'Click the "Register" button.'}),"\n",(0,o.jsx)(n.li,{children:"Follow the instructions provided to create your GameVault account on the backend server."}),"\n",(0,o.jsx)(n.li,{children:"The server administrators may have to activate your account before you can use it to log in. Contact them if necessary."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsx)(n.p,{children:"Congratulations! You have successfully installed and completed the initial configuration of GameVault. You are now ready to explore and enjoy the features and functionality of the app. If you have any further questions or need assistance, refer to the remaining chapters of this documentation or reach out to our support team for help."}),"\n",(0,o.jsxs)(n.p,{children:["We specifically recommend to read the ",(0,o.jsx)(n.a,{href:"/docs/client-docs/how-to-use",children:'"How to Use" Chapter'})," to understand how GameVault works."]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>s});var o=t(5271);const i={},l=o.createContext(i);function s(e){const n=o.useContext(l);return o.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(i):e.components||i:s(e.components),o.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ba3af7ad.1e4788ab.js b/assets/js/ba3af7ad.1e4788ab.js new file mode 100644 index 000000000..7f3b311a3 --- /dev/null +++ b/assets/js/ba3af7ad.1e4788ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9378],{5085:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>s,contentTitle:()=>r,default:()=>g,frontMatter:()=>o,metadata:()=>t,toc:()=>m});var t=n(6944),l=n(6070),i=n(8591);const o={title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},r=void 0,s={authorsImageUrls:[void 0]},m=[];function u(e){const a={a:"a",p:"p",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.p,{children:"Hello, everyone!"}),"\n",(0,l.jsxs)(a.p,{children:["We have an important announcement to share about our ",(0,l.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform's values."]})]})}function g(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,l.jsx)(a,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>r});var t=n(758);const l={},i=t.createContext(l);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(i.Provider,{value:a},e.children)}},6944:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/08/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md","source":"@site/blog/2023-07-08.md","title":"Choosing a New, Family-Friendly Name for this project!","description":"Hello, everyone!","date":"2023-07-08T00:00:00.000Z","tags":[{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"gaming platform","permalink":"/blog/tags/gaming-platform"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"new name","permalink":"/blog/tags/new-name"},{"inline":true,"label":"family-friendly","permalink":"/blog/tags/family-friendly"},{"inline":true,"label":"poll","permalink":"/blog/tags/poll"},{"inline":true,"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"inclusivity","permalink":"/blog/tags/inclusivity"},{"inline":true,"label":"user participation","permalink":"/blog/tags/user-participation"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"decision-making","permalink":"/blog/tags/decision-making"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"platform values","permalink":"/blog/tags/platform-values"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"future development","permalink":"/blog/tags/future-development"}],"readingTime":1.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Choosing a New, Family-Friendly Name for this project!","authors":["alfagun74"],"tags":["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},"unlisted":false,"prevItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"},"nextItem":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/"}}')}}]); \ No newline at end of file diff --git a/assets/js/ba3af7ad.82300781.js b/assets/js/ba3af7ad.82300781.js deleted file mode 100644 index 821fb496d..000000000 --- a/assets/js/ba3af7ad.82300781.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1814],{5040:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>m,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>s});var l=n(2676),t=n(8358);const i={title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},o=void 0,r={permalink:"/blog/2023/07/08/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md",source:"@site/blog/2023-07-08.md",title:"Choosing a New, Family-Friendly Name for this project!",description:"Hello, everyone!",date:"2023-07-08T00:00:00.000Z",tags:[{inline:!0,label:"source-available",permalink:"/blog/tags/source-available"},{inline:!0,label:"gaming platform",permalink:"/blog/tags/gaming-platform"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"new name",permalink:"/blog/tags/new-name"},{inline:!0,label:"family-friendly",permalink:"/blog/tags/family-friendly"},{inline:!0,label:"poll",permalink:"/blog/tags/poll"},{inline:!0,label:"AI-generated names",permalink:"/blog/tags/ai-generated-names"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"inclusivity",permalink:"/blog/tags/inclusivity"},{inline:!0,label:"user participation",permalink:"/blog/tags/user-participation"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"},{inline:!0,label:"decision-making",permalink:"/blog/tags/decision-making"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"platform values",permalink:"/blog/tags/platform-values"},{inline:!0,label:"voting",permalink:"/blog/tags/voting"},{inline:!0,label:"future development",permalink:"/blog/tags/future-development"}],readingTime:1.26,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Choosing a New, Family-Friendly Name for this project!",authors:["alfagun74"],tags:["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},unlisted:!1,prevItem:{title:"Battling Harassment and Trolls in Our App Community",permalink:"/blog/2023/07/09/"},nextItem:{title:"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games",permalink:"/blog/2023/07/01/"}},m={authorsImageUrls:[void 0]},s=[];function g(e){const a={a:"a",p:"p",...(0,t.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.p,{children:"Hello, everyone!"}),"\n",(0,l.jsxs)(a.p,{children:["We have an important announcement to share about our ",(0,l.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Source-available_software",children:"source-available"})," gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform's values."]})]})}function u(e={}){const{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,l.jsx)(a,{...e,children:(0,l.jsx)(g,{...e})}):g(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>o});var l=n(5271);const t={},i=l.createContext(t);function o(e){const a=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),l.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ba57e113.a3d24f2c.js b/assets/js/ba57e113.a3d24f2c.js new file mode 100644 index 000000000..6cc12e31e --- /dev/null +++ b/assets/js/ba57e113.a3d24f2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7766],{2746:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"license-contribute","title":"Licensing and Contributions","description":"License","source":"@site/docs/license-contribute.md","sourceDirName":".","slug":"/license-contribute","permalink":"/docs/license-contribute","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/license-contribute.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":97,"frontMatter":{"sidebar_position":97},"sidebar":"docs","previous":{"title":"Client APIs","permalink":"/docs/gamevault-plus/client-apis"},"next":{"title":"Troubleshooting","permalink":"/docs/troubleshooting"}}');var o=n(6070),r=n(8591);const s={sidebar_position:97},a="Licensing and Contributions",l={},c=[{value:"License",id:"license",level:2},{value:"Why is GameVault not open-source?",id:"why-is-gamevault-not-open-source",level:3},{value:"Contributing to GameVault",id:"contributing-to-gamevault",level:2},{value:"Publishing Adaptations of GameVault",id:"publishing-adaptations-of-gamevault",level:2},{value:"Community Forks",id:"community-forks",level:2},{value:"gamevault-app",id:"gamevault-app",level:3},{value:"gamevault-backend",id:"gamevault-backend",level:3},{value:"Contributors to this Documentation",id:"contributors-to-this-documentation",level:2}];function d(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"licensing-and-contributions",children:"Licensing and Contributions"})}),"\n",(0,o.jsx)(t.h2,{id:"license",children:"License"}),"\n",(0,o.jsxs)(t.p,{children:["GameVault is licensed under the ",(0,o.jsx)(t.a,{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/",children:"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"})," with the exception of the some components, like extensions and plugins."]}),"\n",(0,o.jsx)(t.p,{children:"This means you are free to use, adapt, and share the work as long as you give appropriate credit, do not use it for commercial purposes, and distribute any derivative works under the same license."}),"\n",(0,o.jsxs)(t.p,{children:["This also means that ",(0,o.jsx)(t.strong,{children:"GameVault is not considered open-source"}),"."]}),"\n",(0,o.jsx)(t.h3,{id:"why-is-gamevault-not-open-source",children:"Why is GameVault not open-source?"}),"\n",(0,o.jsxs)(t.p,{children:['While GameVault is often confused with open-source software, it falls under the category of "source-available" software, providing access to its code for exploration and modification without fully meeting the criteria of open source. This decision is made to balance transparency and protection against unauthorized commercial exploitation, ensuring sustainability and revenue generation to support its development. See ',(0,o.jsx)(t.a,{href:"/blog/2023/07/13",children:"here"})," for more details."]}),"\n",(0,o.jsx)(t.h2,{id:"contributing-to-gamevault",children:"Contributing to GameVault"}),"\n",(0,o.jsx)(t.p,{children:"Everybody can contribute to GameVault."}),"\n",(0,o.jsx)(t.p,{children:"We welcome all contributions, whether it's a comment, a feature request, a bug report, or any other input. Share your thoughts on your blog, news article, forum, social media (e.g., Twitter, Facebook, Instagram), or online communities and discussion boards. Engage with others through videos or podcasts, create content to show how GameVault has positively affected your life, or write a detailed review highlighting its benefits. Your words and actions will bring us joy."}),"\n",(0,o.jsx)(t.p,{children:"Besides rating GameVault on the Microsoft Store or recommending it to a friend, you can also spread the word through different channels. Take part in relevant technology conferences or events and mention GameVault during discussions or presentations. Collaborate with fellow developers or tech enthusiasts in online coding communities like GitHub, Stack Overflow, or Reddit to promote GameVault and demonstrate its features."}),"\n",(0,o.jsx)(t.p,{children:"As we constantly strive to enhance GameVault's performance and features, your assistance is crucial. If you're a developer, please consider opening a pull request on our GitHub repository to contribute directly to the codebase. Alternatively, if you encounter any issues or have suggestions, feel free to create an issue and provide detailed feedback. Your expertise and insights will greatly support our ongoing development efforts."}),"\n",(0,o.jsx)(t.p,{children:"Before contributing any code, please read and accept the terms outlined in the CONTRIBUTING.md file of each project you want to contribute to. These terms include recognizing Phalcode as the owner of your contribution and transferring all rights and responsibilities to us. This ensures everything is legally clear and simple for everyone involved. This also means we can monetize your contribution, so that we can keep this project alive."}),"\n",(0,o.jsx)(t.h2,{id:"publishing-adaptations-of-gamevault",children:"Publishing Adaptations of GameVault"}),"\n",(0,o.jsx)(t.p,{children:"Commercial adaptations of GameVault are not permitted due to licensing restrictions. However, we encourage the creation of derivatives for non-commercial projects under certain conditions."}),"\n",(0,o.jsx)(t.p,{children:"GameVault is developed commercially, and any third-party software using our trademarks GameVault\u2122 or Phalcode\u2122 without our consent is unauthorized. We take measures to protect our intellectual property rights and brand integrity, preventing any unauthorized products from being associated with us."}),"\n",(0,o.jsx)(t.p,{children:"To maintain our reputation and protect our customers' interests, it's essential for third-party developers to avoid creating misleading products. Users may mistakenly believe these products are endorsed or developed by us, posing potential issues for safety and support. As a German GbR (Partnership), we hold full personal liability for our products, underscoring the need to retain control over our brand and software."}),"\n",(0,o.jsx)(t.p,{children:'We welcome creativity from third-party developers, encouraging them to create derivatives with distinct names like "GameVaulTux" or "GameVault Snake Edition". However, it\'s crucial to clearly indicate these as unofficial versions in the product description.'}),"\n",(0,o.jsx)(t.p,{children:"For those intending to publish an official product under our brand, acknowledgment of Phalcode as the sole rights holder and the transfer of all associated liabilities, rights, and responsibilities to us through a formal agreement is required. This aligns with our approach to handling contributions, ensuring clarity and legal compliance for all parties involved."}),"\n",(0,o.jsx)(t.h2,{id:"community-forks",children:"Community Forks"}),"\n",(0,o.jsx)(t.p,{children:"Here you can find an incomplete list of community-driven forks of our Projects. You can add your fork here by submitting a pull-request."}),"\n",(0,o.jsx)(t.h3,{id:"gamevault-app",children:"gamevault-app"}),"\n",(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Github Repository"}),(0,o.jsx)(t.th,{children:"Downloads"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"-"}),(0,o.jsx)(t.td,{children:"-"}),(0,o.jsx)(t.td,{children:"-"})]})})]}),"\n",(0,o.jsx)(t.h3,{id:"gamevault-backend",children:"gamevault-backend"}),"\n",(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Github Repository"}),(0,o.jsx)(t.th,{children:"Container Image"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"-"}),(0,o.jsx)(t.td,{children:"-"}),(0,o.jsx)(t.td,{children:"-"})]})})]}),"\n",(0,o.jsx)(t.h2,{id:"contributors-to-this-documentation",children:"Contributors to this Documentation"}),"\n",(0,o.jsx)(t.p,{children:"If you contributed to these docs, feel free to append your github username to the list below."}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"@Alfagun74"}),"\n",(0,o.jsx)(t.li,{children:"@Yelo420"}),"\n",(0,o.jsx)(t.li,{children:"@46620"}),"\n",(0,o.jsx)(t.li,{children:"@xstar97"}),"\n",(0,o.jsx)(t.li,{children:"@Ronald-Diemicke"}),"\n",(0,o.jsx)(t.li,{children:"@FletcherAU"}),"\n",(0,o.jsx)(t.li,{children:"@Toylerrr"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(758);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.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(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ba57e113.a8c89eee.js b/assets/js/ba57e113.a8c89eee.js deleted file mode 100644 index 952395ea7..000000000 --- a/assets/js/ba57e113.a8c89eee.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5948],{2826:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=n(2676),o=n(8358);const r={sidebar_position:97},s="Licensing and Contributions",a={id:"license-contribute",title:"Licensing and Contributions",description:"License",source:"@site/docs/license-contribute.md",sourceDirName:".",slug:"/license-contribute",permalink:"/docs/license-contribute",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/license-contribute.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:97,frontMatter:{sidebar_position:97},sidebar:"docs",previous:{title:"Client APIs",permalink:"/docs/gamevault-plus/client-apis"},next:{title:"Troubleshooting",permalink:"/docs/troubleshooting"}},l={},c=[{value:"License",id:"license",level:2},{value:"Why is GameVault not open-source?",id:"why-is-gamevault-not-open-source",level:3},{value:"Contributing to GameVault",id:"contributing-to-gamevault",level:2},{value:"Publishing Adaptations of GameVault",id:"publishing-adaptations-of-gamevault",level:2},{value:"Community Forks",id:"community-forks",level:2},{value:"gamevault-app",id:"gamevault-app",level:3},{value:"gamevault-backend",id:"gamevault-backend",level:3},{value:"Contributors to this Documentation",id:"contributors-to-this-documentation",level:2}];function d(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"licensing-and-contributions",children:"Licensing and Contributions"})}),"\n",(0,i.jsx)(t.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(t.p,{children:["GameVault is licensed under the ",(0,i.jsx)(t.a,{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/",children:"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"})," with the exception of the some components, like extensions and plugins."]}),"\n",(0,i.jsx)(t.p,{children:"This means you are free to use, adapt, and share the work as long as you give appropriate credit, do not use it for commercial purposes, and distribute any derivative works under the same license."}),"\n",(0,i.jsxs)(t.p,{children:["This also means that ",(0,i.jsx)(t.strong,{children:"GameVault is not considered open-source"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"why-is-gamevault-not-open-source",children:"Why is GameVault not open-source?"}),"\n",(0,i.jsxs)(t.p,{children:['While GameVault is often confused with open-source software, it falls under the category of "source-available" software, providing access to its code for exploration and modification without fully meeting the criteria of open source. This decision is made to balance transparency and protection against unauthorized commercial exploitation, ensuring sustainability and revenue generation to support its development. See ',(0,i.jsx)(t.a,{href:"/blog/2023/07/13",children:"here"})," for more details."]}),"\n",(0,i.jsx)(t.h2,{id:"contributing-to-gamevault",children:"Contributing to GameVault"}),"\n",(0,i.jsx)(t.p,{children:"Everybody can contribute to GameVault."}),"\n",(0,i.jsx)(t.p,{children:"We welcome all contributions, whether it's a comment, a feature request, a bug report, or any other input. Share your thoughts on your blog, news article, forum, social media (e.g., Twitter, Facebook, Instagram), or online communities and discussion boards. Engage with others through videos or podcasts, create content to show how GameVault has positively affected your life, or write a detailed review highlighting its benefits. Your words and actions will bring us joy."}),"\n",(0,i.jsx)(t.p,{children:"Besides rating GameVault on the Microsoft Store or recommending it to a friend, you can also spread the word through different channels. Take part in relevant technology conferences or events and mention GameVault during discussions or presentations. Collaborate with fellow developers or tech enthusiasts in online coding communities like GitHub, Stack Overflow, or Reddit to promote GameVault and demonstrate its features."}),"\n",(0,i.jsx)(t.p,{children:"As we constantly strive to enhance GameVault's performance and features, your assistance is crucial. If you're a developer, please consider opening a pull request on our GitHub repository to contribute directly to the codebase. Alternatively, if you encounter any issues or have suggestions, feel free to create an issue and provide detailed feedback. Your expertise and insights will greatly support our ongoing development efforts."}),"\n",(0,i.jsx)(t.p,{children:"Before contributing any code, please read and accept the terms outlined in the CONTRIBUTING.md file of each project you want to contribute to. These terms include recognizing Phalcode as the owner of your contribution and transferring all rights and responsibilities to us. This ensures everything is legally clear and simple for everyone involved. This also means we can monetize your contribution, so that we can keep this project alive."}),"\n",(0,i.jsx)(t.h2,{id:"publishing-adaptations-of-gamevault",children:"Publishing Adaptations of GameVault"}),"\n",(0,i.jsx)(t.p,{children:"Commercial adaptations of GameVault are not permitted due to licensing restrictions. However, we encourage the creation of derivatives for non-commercial projects under certain conditions."}),"\n",(0,i.jsx)(t.p,{children:"GameVault is developed commercially, and any third-party software using our trademarks GameVault\u2122 or Phalcode\u2122 without our consent is unauthorized. We take measures to protect our intellectual property rights and brand integrity, preventing any unauthorized products from being associated with us."}),"\n",(0,i.jsx)(t.p,{children:"To maintain our reputation and protect our customers' interests, it's essential for third-party developers to avoid creating misleading products. Users may mistakenly believe these products are endorsed or developed by us, posing potential issues for safety and support. As a German GbR (Partnership), we hold full personal liability for our products, underscoring the need to retain control over our brand and software."}),"\n",(0,i.jsx)(t.p,{children:'We welcome creativity from third-party developers, encouraging them to create derivatives with distinct names like "GameVaulTux" or "GameVault Snake Edition". However, it\'s crucial to clearly indicate these as unofficial versions in the product description.'}),"\n",(0,i.jsx)(t.p,{children:"For those intending to publish an official product under our brand, acknowledgment of Phalcode as the sole rights holder and the transfer of all associated liabilities, rights, and responsibilities to us through a formal agreement is required. This aligns with our approach to handling contributions, ensuring clarity and legal compliance for all parties involved."}),"\n",(0,i.jsx)(t.h2,{id:"community-forks",children:"Community Forks"}),"\n",(0,i.jsx)(t.p,{children:"Here you can find an incomplete list of community-driven forks of our Projects. You can add your fork here by submitting a pull-request."}),"\n",(0,i.jsx)(t.h3,{id:"gamevault-app",children:"gamevault-app"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Github Repository"}),(0,i.jsx)(t.th,{children:"Downloads"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"-"})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"gamevault-backend",children:"gamevault-backend"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Github Repository"}),(0,i.jsx)(t.th,{children:"Container Image"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"-"})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"contributors-to-this-documentation",children:"Contributors to this Documentation"}),"\n",(0,i.jsx)(t.p,{children:"If you contributed to these docs, feel free to append your github username to the list below."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"@Alfagun74"}),"\n",(0,i.jsx)(t.li,{children:"@Yelo420"}),"\n",(0,i.jsx)(t.li,{children:"@46620"}),"\n",(0,i.jsx)(t.li,{children:"@xstar97"}),"\n",(0,i.jsx)(t.li,{children:"@Ronald-Diemicke"}),"\n",(0,i.jsx)(t.li,{children:"@FletcherAU"}),"\n",(0,i.jsx)(t.li,{children:"@Toylerrr"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>s});var i=n(5271);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.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(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb12dd4d.2d4ebc9a.js b/assets/js/bb12dd4d.1d4186d6.js similarity index 85% rename from assets/js/bb12dd4d.2d4ebc9a.js rename to assets/js/bb12dd4d.1d4186d6.js index 6b80eff44..04026bea4 100644 --- a/assets/js/bb12dd4d.2d4ebc9a.js +++ b/assets/js/bb12dd4d.1d4186d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4286],{1988:s=>{s.exports=JSON.parse('{"tag":{"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/logo-concept-discussion","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5774],{5990:s=>{s.exports=JSON.parse('{"tag":{"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/logo-concept-discussion","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/bc0aa6af.65ec7d7b.js b/assets/js/bc0aa6af.5ae8d76b.js similarity index 84% rename from assets/js/bc0aa6af.65ec7d7b.js rename to assets/js/bc0aa6af.5ae8d76b.js index db7a2bfe9..c2092a354 100644 --- a/assets/js/bc0aa6af.65ec7d7b.js +++ b/assets/js/bc0aa6af.5ae8d76b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8404],{3389:a=>{a.exports=JSON.parse('{"tag":{"label":"plugin system","permalink":"/blog/tags/plugin-system","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/plugin-system","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9155],{5251:a=>{a.exports=JSON.parse('{"tag":{"label":"plugin system","permalink":"/blog/tags/plugin-system","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/plugin-system","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/bcc2422e.ec947659.js b/assets/js/bcc2422e.ec947659.js new file mode 100644 index 000000000..d42a83175 --- /dev/null +++ b/assets/js/bcc2422e.ec947659.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1312],{6299:e=>{e.exports=JSON.parse('{"tag":{"label":"UI Redesign","permalink":"/blog/tags/ui-redesign","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ui-redesign","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/bdf26d57.9e4d46f1.js b/assets/js/bdf26d57.9e4d46f1.js deleted file mode 100644 index 8cb3c9b81..000000000 --- a/assets/js/bdf26d57.9e4d46f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4452],{3806:a=>{a.exports=JSON.parse('{"tag":{"label":"collaboration","permalink":"/blog/tags/collaboration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/collaboration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/bdf26d57.e3d3fb7f.js b/assets/js/bdf26d57.e3d3fb7f.js new file mode 100644 index 000000000..9b81feda5 --- /dev/null +++ b/assets/js/bdf26d57.e3d3fb7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[671],{2166:a=>{a.exports=JSON.parse('{"tag":{"label":"collaboration","permalink":"/blog/tags/collaboration","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/collaboration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c15d9823.91f18004.js b/assets/js/c15d9823.cf1dab78.js similarity index 78% rename from assets/js/c15d9823.91f18004.js rename to assets/js/c15d9823.cf1dab78.js index 16ff68616..de9fd6304 100644 --- a/assets/js/c15d9823.91f18004.js +++ b/assets/js/c15d9823.cf1dab78.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6642],{2506:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":2,"totalCount":16,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8146],{9328:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":2,"totalCount":16,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c332f8df.2e78d6b5.js b/assets/js/c332f8df.2e78d6b5.js new file mode 100644 index 000000000..6718ea47e --- /dev/null +++ b/assets/js/c332f8df.2e78d6b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[482],{7861:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=t(4502),a=t(6070),o=t(8591);const r={title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},l=void 0,s={authorsImageUrls:[void 0]},c=[];function d(e){const n={a:"a",code:"code",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Hey guys,"}),"\n",(0,a.jsx)(n.p,{children:"We have a brief update on the progress of the name migration."}),"\n",(0,a.jsxs)(n.p,{children:["We've successfully completed the migration of the backend application, which is now accessible as ",(0,a.jsx)(n.code,{children:"gamevault-backend"}),". "]}),"\n",(0,a.jsx)(n.p,{children:"Furthermore, we've migrated the documentation and acquired this domain gamevau.lt. We've set up redirects for our previous domain and the demo server as well."}),"\n",(0,a.jsxs)(n.p,{children:["Lastly we migrated our Subreddit to ",(0,a.jsx)(n.a,{href:"https://reddit.com/r/Phalcode",children:"r/Phalcode"})," and opened up a new community on ",(0,a.jsx)(n.a,{href:"https://lemmy.world/c/phalcode",children:"Lemmy"}),". All further Updates and discussions regarding GameVault can be found there."]}),"\n",(0,a.jsx)(n.p,{children:"We're nearly finished, you might say."}),"\n",(0,a.jsx)(n.p,{children:"The only remaining task is the Client Application. We're actively working on it and currently testing the application on our developer edition. Soon, you'll be able to seamlessly update your client with the new name and appearance."}),"\n",(0,a.jsx)(n.p,{children:"In the meantime, our graphic designer has crafted a fresh logo for our new name, GameVault."}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"logo",src:t(5364).A+"",width:"1000",height:"103"})}),"\n",(0,a.jsx)(n.p,{children:"To make good use of your time while the migrations are in progress, what do you speculate the new logo represents?"}),"\n",(0,a.jsxs)(n.p,{children:["Share your theories in gamevaults #chat channel on ",(0,a.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"}),"! We'll reveal the answer and shoutout the winner(s) in the next blog post, once the migration is finalized!"]}),"\n",(0,a.jsx)(n.p,{children:"Until then \u270c\ufe0f"})]})}function m(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5364:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/logo-text-and-image-sbs-6a7a4b169bd1cf62f643469e715ae759.png"},8591:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>l});var i=t(758);const a={},o=i.createContext(a);function r(e){const n=i.useContext(o);return i.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(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:n},e.children)}},4502:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/19/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md","source":"@site/blog/2023-07-19.md","title":"Quick Migration Update and new Logo","description":"Hey guys,","date":"2023-07-19T00:00:00.000Z","tags":[{"inline":true,"label":"name migration progress","permalink":"/blog/tags/name-migration-progress"},{"inline":true,"label":"backend application migration","permalink":"/blog/tags/backend-application-migration"},{"inline":true,"label":"documentation migration","permalink":"/blog/tags/documentation-migration"},{"inline":true,"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition"},{"inline":true,"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration"},{"inline":true,"label":"Lemmy community","permalink":"/blog/tags/lemmy-community"},{"inline":true,"label":"Client Application update","permalink":"/blog/tags/client-application-update"},{"inline":true,"label":"testing","permalink":"/blog/tags/testing"},{"inline":true,"label":"new logo","permalink":"/blog/tags/new-logo"},{"inline":true,"label":"speculation","permalink":"/blog/tags/speculation"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"},{"inline":true,"label":"migration finalization","permalink":"/blog/tags/migration-finalization"}],"readingTime":0.965,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Quick Migration Update and new Logo","authors":["alfagun74"],"tags":["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},"unlisted":false,"prevItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"},"nextItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"}}')}}]); \ No newline at end of file diff --git a/assets/js/c332f8df.d52fc2ac.js b/assets/js/c332f8df.d52fc2ac.js deleted file mode 100644 index 62a62cd84..000000000 --- a/assets/js/c332f8df.d52fc2ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8258],{8314:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var t=i(2676),a=i(8358);const o={title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},l=void 0,r={permalink:"/blog/2023/07/19/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md",source:"@site/blog/2023-07-19.md",title:"Quick Migration Update and new Logo",description:"Hey guys,",date:"2023-07-19T00:00:00.000Z",tags:[{inline:!0,label:"name migration progress",permalink:"/blog/tags/name-migration-progress"},{inline:!0,label:"backend application migration",permalink:"/blog/tags/backend-application-migration"},{inline:!0,label:"documentation migration",permalink:"/blog/tags/documentation-migration"},{inline:!0,label:"domain acquisition",permalink:"/blog/tags/domain-acquisition"},{inline:!0,label:"Subreddit migration",permalink:"/blog/tags/subreddit-migration"},{inline:!0,label:"Lemmy community",permalink:"/blog/tags/lemmy-community"},{inline:!0,label:"Client Application update",permalink:"/blog/tags/client-application-update"},{inline:!0,label:"testing",permalink:"/blog/tags/testing"},{inline:!0,label:"new logo",permalink:"/blog/tags/new-logo"},{inline:!0,label:"speculation",permalink:"/blog/tags/speculation"},{inline:!0,label:"Discord channel",permalink:"/blog/tags/discord-channel"},{inline:!0,label:"migration finalization",permalink:"/blog/tags/migration-finalization"}],readingTime:.965,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Quick Migration Update and new Logo",authors:["alfagun74"],tags:["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},unlisted:!1,prevItem:{title:"The Migrations are finally completed",permalink:"/blog/2023/07/20/"},nextItem:{title:"A New Name",permalink:"/blog/2023/07/15/"}},s={authorsImageUrls:[void 0]},c=[];function d(e){const n={a:"a",code:"code",img:"img",p:"p",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Hey guys,"}),"\n",(0,t.jsx)(n.p,{children:"We have a brief update on the progress of the name migration."}),"\n",(0,t.jsxs)(n.p,{children:["We've successfully completed the migration of the backend application, which is now accessible as ",(0,t.jsx)(n.code,{children:"gamevault-backend"}),". "]}),"\n",(0,t.jsx)(n.p,{children:"Furthermore, we've migrated the documentation and acquired this domain gamevau.lt. We've set up redirects for our previous domain and the demo server as well."}),"\n",(0,t.jsxs)(n.p,{children:["Lastly we migrated our Subreddit to ",(0,t.jsx)(n.a,{href:"https://reddit.com/r/Phalcode",children:"r/Phalcode"})," and opened up a new community on ",(0,t.jsx)(n.a,{href:"https://lemmy.world/c/phalcode",children:"Lemmy"}),". All further Updates and discussions regarding GameVault can be found there."]}),"\n",(0,t.jsx)(n.p,{children:"We're nearly finished, you might say."}),"\n",(0,t.jsx)(n.p,{children:"The only remaining task is the Client Application. We're actively working on it and currently testing the application on our developer edition. Soon, you'll be able to seamlessly update your client with the new name and appearance."}),"\n",(0,t.jsx)(n.p,{children:"In the meantime, our graphic designer has crafted a fresh logo for our new name, GameVault."}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"logo",src:i(4474).Z+"",width:"1000",height:"103"})}),"\n",(0,t.jsx)(n.p,{children:"To make good use of your time while the migrations are in progress, what do you speculate the new logo represents?"}),"\n",(0,t.jsxs)(n.p,{children:["Share your theories in gamevaults #chat channel on ",(0,t.jsx)(n.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"}),"! We'll reveal the answer and shoutout the winner(s) in the next blog post, once the migration is finalized!"]}),"\n",(0,t.jsx)(n.p,{children:"Until then \u270c\ufe0f"})]})}function m(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},4474:(e,n,i)=>{i.d(n,{Z:()=>t});const t=i.p+"assets/images/logo-text-and-image-sbs-6a7a4b169bd1cf62f643469e715ae759.png"},8358:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>l});var t=i(5271);const a={},o=t.createContext(a);function l(e){const n=t.useContext(o);return t.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(a):e.components||a:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.5bde9f5e.js b/assets/js/c4f5d8e4.5bde9f5e.js deleted file mode 100644 index f3638c68b..000000000 --- a/assets/js/c4f5d8e4.5bde9f5e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4195],{7703:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>q});var n=a(6172),i=a(4814),o=a(5271);const r={features:"features_t9lD"},s=a.p+"assets/images/admin-0ad4037b89a248bffa4e939d647d326c.png",l=a.p+"assets/images/community-717286c80fce866c158ab595629a937a.png",c=a.p+"assets/images/game-45374cc5b999ec17b1ca3578f8ff926b.png",u=a.p+"assets/images/github-0cf1393534e30fd4eb2411670f3e9234.png",d=a.p+"assets/images/installation-318f17d2cf4b9f87ccafd406a2bdb009.png",h=a.p+"assets/images/library-afce4846b08b60cecca986a39b1fa331.png",m=a.p+"assets/medias/admin-3adfe380e11d3351a3ba7eb4e25ce685.mp4",p=a.p+"assets/medias/community-c59d264ef301a24c508f40a02340fd3c.mp4",f=a.p+"assets/medias/game-08b3dace3b1757584d3a82bab9bc7f93.mp4",g=a.p+"assets/medias/installation-b349635775bda338fd4babf0d8519e2c.mp4",v=a.p+"assets/medias/library-82c4106d4da1f0466e2995c53b6df7c0.mp4";var x=a(2676);const b=[{title:"\ud83c\udfae Browse Your Games",img:h,video:v,description:(0,x.jsx)(x.Fragment,{children:"Browse your server's beautifully organized library to download, install and play your collection of video games of all kinds!"})},{title:"\ud83d\udc6f Build Your Community",img:s,video:m,description:(0,x.jsx)(x.Fragment,{children:"Share your platform with your friends and family so they can enjoy your library, too. Administrate your users and games."})},{title:"\u23f1\ufe0f Track Your Progress",img:l,video:p,description:(0,x.jsx)(x.Fragment,{children:"See how long you or your friends have been playing a game, find out what they are and keep track of what you've already completed or abandoned."})},{title:"\ud83d\udd0e Automatic Metadata Enrichment",img:c,video:f,description:(0,x.jsx)(x.Fragment,{children:"GameVault automatically enriches your game with all the juicy information and and images from the largest video game database."})},{title:"\ud83d\udce6 Easy To Use",img:d,video:g,description:(0,x.jsxs)("div",{children:["There\u2019s no need to compile any code! The app is readily available in the"," ",(0,x.jsx)("a",{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"Microsoft Store"}),". Plus, ","",(0,x.jsx)("a",{href:"/docs/client-docs/how-to-use.md#2-installing-the-game",children:"installing games"})," and ",(0,x.jsx)("a",{href:"/docs/server-docs/setup",children:"setting up a server"})," is equally straightforward!"]})},{title:"\ud83d\udc65 Join The Movement",img:u,description:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("a",{target:"_blank",href:"https://discord.gg/NEdNen2dSu",children:"Join our growing community"})," ",", star us on GitHub, or even ",(0,x.jsx)("a",{href:"/docs/contribute",children:"contribute"})," ","to our source-available project! Everyone can help!"]})}];function y(e){let{title:t,img:a,video:n,description:o}=e;return(0,x.jsxs)("div",{className:(0,i.Z)("col col--4"),children:[(0,x.jsx)("div",{className:"text--center",children:n?(0,x.jsx)("video",{className:"w-full max-w-screen-sm rounded-xl",muted:!0,autoPlay:!0,controls:!0,loop:!0,src:n}):(0,x.jsx)("img",{className:"rounded-xl",alt:t,src:a})}),(0,x.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,x.jsx)("h3",{children:t}),(0,x.jsx)("p",{children:o})]})]})}function w(){return(0,x.jsx)("section",{className:r.features,children:(0,x.jsx)("div",{className:"container",children:(0,x.jsx)("div",{className:"row",children:b.map(((e,t)=>(0,x.jsx)(y,{...e},t)))})})})}var j=a(3557),N=a(1714);function k(e){let{className:t,...a}=e;return(0,x.jsx)("div",{className:(0,i.Z)("mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",t),...a})}var E=a(6527);const I=[[{question:"Does GameVault combine my gaming platforms in one place?",answer:"No, GameVault is not for combining games from different platforms into one app. Rather, it's for managing your own gaming platform with your own game files hosted on your server."},{question:"Is GameVault open-source?",answer:"No, GameVault is source-available, meaning the code is open for you to explore and modify for personal use. However, you may not use it for commercial purposes."},{question:"Is GameVault a tool for piracy?",answer:"No, it isn't. GameVault is designed to manage legally obtained DRM-free games. While it can technically be used with illegally obtained games, we do not endorse or support piracy. We encourage users to comply with copyright laws. Unlawful use is strictly improper and unauthorized."}],[{question:"Does GameVault work with games from Steam, Epic Games, Microsoft, etc.?",answer:"Usually not. GameVault is made for games you own and only works with DRM-free games, either pure game files or installers. Most platforms use DRM, but there are exceptions like GOG and Humble Bundle that don\u2019t."},{question:"Is there a native client for Mac or Linux?",answer:"No, apart from emulation or community-maintained clients, there is currently no native Linux or Mac GameVault client application."},{question:"Does GameVault have anything to do with gambling?",answer:"No, absolutely not. There's just a gambling app with a similar name on the market. If you're struggling with gambling addiction, please seek help."}],[{question:"Does GameVault stream games?",answer:"No, GameVault has nothing to do with streaming. It's simply an app to organize and browse your game library in a Steam-like experience and share it with your community."},{question:"Does GameVault cost any money?",answer:"No, the core features of GameVault are and will always be free. However, we do offer a paid GameVault+ subscription for some additional extra features, which you can subscribe to if you'd like to continuously support our work."},{question:"What was the former name of GameVault?",answer:"The first rule of GameVault is: you do not talk about the former name of GameVault."}]];function S(){return(0,x.jsx)("section",{id:"faq","aria-labelledby":"faq-title",className:"relative overflow-hidden py-16",children:(0,x.jsxs)(k,{className:"relative",children:[(0,x.jsxs)("div",{className:"mx-auto lg:mx-0",children:[(0,x.jsx)("h2",{id:"faq-title",className:"font-display text-3xl tracking-tight sm:text-4xl",children:"Frequently asked questions"}),(0,x.jsxs)("p",{className:"mt-4 text-lg tracking-tight text-text-light",children:["If you can\u2019t find what you\u2019re looking for here, check out the"," ",(0,x.jsx)(E.Z,{href:"https://gamevau.lt/docs/intro",children:"Docs"})," or contact us via"," ",(0,x.jsx)(E.Z,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),","," ",(0,x.jsx)(E.Z,{href:"https://github.com/Phalcode/gamevault-app/discussions",children:"GitHub"}),", or ",(0,x.jsx)(E.Z,{href:"mailto:contact@phalco.de",children:"Email"})]})]}),(0,x.jsx)("ul",{className:"list-none mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 lg:max-w-none lg:grid-cols-3",children:I.map(((e,t)=>(0,x.jsx)("li",{children:(0,x.jsx)("ul",{className:"list-none flex flex-col gap-y-8",children:e.map(((e,t)=>(0,x.jsxs)("li",{children:[(0,x.jsx)("h3",{className:"font-display text-lg leading-7",children:e.question}),(0,x.jsx)("p",{className:"mt-4 text-sm text-text-light",children:e.answer})]},t)))})},t)))})]})})}var C=a(507),L=a.n(C);const T={solid:"group inline-flex items-center justify-center rounded-full py-2 px-4 text-sm font-semibold focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 !no-underline",outline:"group inline-flex ring-1 items-center justify-center rounded-full py-2 px-4 text-sm focus:outline-none"},V={solid:{primary:"bg-primary-default text-white hover:text-white hover:bg-primary-darker active:bg-primary-darkest focus-visible:outline-primary-darkest"}};function P(e){let{className:t,...a}=e;a.variant??="solid",a.color??="primary";const n=(o=a.variant,r=a.color,"outline"===o?V.outline?.[r]:"solid"===o?V.solid?.[r]:void 0);var o,r;return t=(0,i.Z)(T[a.variant],n,t),console.log(t),void 0===a.href?(0,x.jsx)("button",{className:t,...a}):(0,x.jsx)(E.Z,{className:t,...a})}P.propTypes={href:L().string,className:L().string,variant:L().oneOf(["solid","outline"]),color:L().oneOf(["primary"])};const O=e=>{let{className:t,options:a,...n}=e;const[i,r]=(0,o.useState)(!1),s=(0,o.useRef)(null);return(0,o.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&r(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]),(0,x.jsxs)("span",{ref:s,className:"relative inline-block text-left",children:[(0,x.jsx)(P,{className:t+" w-full",...n,onClick:()=>r(!i)}),i&&(0,x.jsx)("div",{className:"absolute right-0 z-10 mt-2 w-full origin-top-right rounded-md bg-background-dark shadow-lg ring-1 ring-text-light",role:"menu","aria-orientation":"vertical",children:(0,x.jsx)("div",{className:"py-1",role:"none",children:a.map((e=>(0,x.jsx)(E.Z,{href:e.link,target:"_blank",className:"font-bold hover:no-underline block px-4 py-2 text-sm hover:bg-background-default text-text-default","aria-label":e.label,children:e.label},e.label)))})})]})};O.propTypes={className:L().string,options:L().arrayOf(L().shape({label:L().string.isRequired,link:L().string.isRequired})).isRequired};const G=O;function _(){const[e,t]=(0,o.useState)(!1);return(0,x.jsxs)(k,{className:"pb-16 pt-20 text-center",children:[(0,x.jsx)("button",{onClick:()=>{e||(t(!e),setTimeout((()=>t(!1)),1e3))},children:(0,x.jsx)("img",{src:"/img/logo.png",className:"h-48 nozoom cursor-pointer "+(e?"animate-spin":""),alt:"Logo"})}),(0,x.jsxs)("h1",{className:"mx-auto max-w-4xl font-display text-5xl font-medium tracking-tight sm:text-7xl",children:["Create"," ",(0,x.jsxs)("span",{className:"relative whitespace-nowrap text-primary-darker",children:[(0,x.jsx)("svg",{"aria-hidden":"true",viewBox:"0 0 418 42",className:"absolute left-0 top-2/3 h-[0.58em] w-full fill-primary-default opacity-30",preserveAspectRatio:"none",children:(0,x.jsx)("path",{d:"M203.371.916c-26.013-2.078-76.686 1.963-124.73 9.946L67.3 12.749C35.421 18.062 18.2 21.766 6.004 25.934 1.244 27.561.828 27.778.874 28.61c.07 1.214.828 1.121 9.595-1.176 9.072-2.377 17.15-3.92 39.246-7.496C123.565 7.986 157.869 4.492 195.942 5.046c7.461.108 19.25 1.696 19.17 2.582-.107 1.183-7.874 4.31-25.75 10.366-21.992 7.45-35.43 12.534-36.701 13.884-2.173 2.308-.202 4.407 4.442 4.734 2.654.187 3.263.157 15.593-.78 35.401-2.686 57.944-3.488 88.365-3.143 46.327.526 75.721 2.23 130.788 7.584 19.787 1.924 20.814 1.98 24.557 1.332l.066-.011c1.201-.203 1.53-1.825.399-2.335-2.911-1.31-4.893-1.604-22.048-3.261-57.509-5.556-87.871-7.36-132.059-7.842-23.239-.254-33.617-.116-50.627.674-11.629.54-42.371 2.494-46.696 2.967-2.359.259 8.133-3.625 26.504-9.81 23.239-7.825 27.934-10.149 28.304-14.005.417-4.348-3.529-6-16.878-7.066Z"})}),(0,x.jsx)("span",{className:"relative",children:"your own"})]}),(0,x.jsx)("br",{}),"gaming platform."]}),(0,x.jsxs)("p",{className:"mx-auto mt-6 max-w-2xl text-lg tracking-tight text-text-light",children:["Hoarding video games is fun, but a chaotic list of files on a network share is not. ",(0,x.jsx)("br",{})," Let GameVault organize everything for you and enjoy a selfhosted Steam-like experience for games on your own home server."]}),(0,x.jsxs)("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-xl mx-auto",children:[(0,x.jsx)(P,{href:"/docs/intro",children:"Learn more"}),(0,x.jsxs)(G,{options:[{label:"Microsoft Store",link:"https://www.microsoft.com/store/apps/9PCKDV76GL75"},{label:"GitHub",link:"https://github.com/Phalcode/gamevault-app/releases"}],children:["Download Client"," ",(0,x.jsx)("svg",{className:"-mr-1 h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,x.jsx)("path",{fillRule:"evenodd",d:"M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"})})]})]})]})}function q(){N.init("K6k7j6GHClhh"),N.trackViews();const{siteConfig:e}=(0,n.Z)();return(0,x.jsxs)(j.Z,{title:`${e.title}`,description:"the self-hosted gaming platform for drm-free games",children:[(0,x.jsx)("noscript",{children:(0,x.jsx)("img",{src:"https://api.swetrix.com/log/noscript?pid=K6k7j6GHClhh",alt:""})}),(0,x.jsxs)("main",{children:[(0,x.jsx)("section",{className:"bg-background-dark",children:(0,x.jsx)(_,{})}),(0,x.jsx)("br",{}),(0,x.jsx)(k,{children:(0,x.jsx)(w,{})}),(0,x.jsx)(S,{}),(0,x.jsx)("p",{className:"text--center text-xs font-bolder tracking-tighter",children:"*In case you're wondering, all depicted games on this website are placeholders and not real"})]})]})}},1714:function(e,t){!function(e){"use strict";var t=function(){return(t=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function a(e,t,a,n){return new(a=a||Promise)((function(i,o){function r(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof a?t:new a((function(e){e(t)}))).then(r,s)}l((n=n.apply(e,t||[])).next())}))}function n(e,t){var a,n,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},r={next:s(0),throw:s(1),return:s(2)};return"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(s){return function(l){var c=[s,l];if(a)throw new TypeError("Generator is already executing.");for(;o=r&&c[r=0]?0:o;)try{if(a=1,n&&(i=2&c[0]?n.return:c[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,c[1])).done)return i;switch(n=0,(c=i?[2&c[0],i.value]:c)[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,n=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=0<(i=o.trys).length&&i[i.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]<i[3]))o.label=c[1];else if(6===c[0]&&o.label<i[1])o.label=i[1],i=c;else{if(!(i&&o.label<i[2])){i[2]&&o.ops.pop(),o.trys.pop();continue}o.label=i[2],o.ops.push(c)}}c=t.call(e,o)}catch(l){c=[6,l],n=0}finally{a=i=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function i(e){return(e=location.search.match(e))&&e[2]||void 0}function o(){return void 0!==navigator.languages?navigator.languages[0]:navigator.language}function r(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(a){}}function s(){return document.referrer||void 0}function l(){return i(p)}function c(){return i(g)}function u(){return i(f)}function d(){return i(v)}function h(){return i(x)}function m(e){var t,a=location.pathname||"";return e.hash&&(a+=-1<(t=location.hash.indexOf("?"))?location.hash.substring(0,t):location.hash),e.search&&(t=location.hash.indexOf("?"),a+=location.search||(-1<t?location.hash.substring(t):"")),a}var p=/[?&](ref|source|utm_source)=([^?&]+)/,f=/[?&](utm_campaign)=([^?&]+)/,g=/[?&](utm_medium)=([^?&]+)/,v=/[?&](utm_term)=([^?&]+)/,x=/[?&](utm_content)=([^?&]+)/,b={stop:function(){}},y=(w.prototype.captureError=function(e){var t;"number"==typeof(null==(t=this.errorsOptions)?void 0:t.sampleRate)&&this.errorsOptions.sampleRate>Math.random()||this.submitError({filename:e.filename,lineno:e.lineno,colno:e.colno,name:(null==(t=e.error)?void 0:t.name)||"Error",message:(null==(t=e.error)?void 0:t.message)||e.message},!0)},w.prototype.trackErrors=function(e){var t=this;return this.errorListenerExists||!this.canTrack()?b:(this.errorsOptions=e,window.addEventListener("error",this.captureError),this.errorListenerExists=!0,{stop:function(){window.removeEventListener("error",t.captureError)}})},w.prototype.submitError=function(e,a){var n={pid:this.projectID},i=t({pg:this.activePage||m({hash:null==(i=this.pageViewsOptions)?void 0:i.hash,search:null==(i=this.pageViewsOptions)?void 0:i.search}),lc:o(),tz:r()},e);if(a&&null!=(e=this.errorsOptions)&&e.callback){if(!1===(a=this.errorsOptions.callback(i)))return;a&&"object"==typeof a&&Object.assign(i,a)}Object.assign(i,n),this.sendRequest("error",i)},w.prototype.track=function(e){return a(this,void 0,void 0,(function(){var a;return n(this,(function(n){switch(n.label){case 0:return this.canTrack()?(a=t(t({},e),{pid:this.projectID,pg:this.activePage,lc:o(),tz:r(),ref:s(),so:l(),me:c(),ca:u(),te:d(),co:h()}),[4,this.sendRequest("custom",a)]):[2];case 1:return n.sent(),[2]}}))}))},w.prototype.trackPageViews=function(e){var t,a,n;return this.canTrack()?(this.pageData||(null!=(this.pageViewsOptions=e)&&e.unique||(t=setInterval(this.trackPathChange,2e3)),setTimeout(this.heartbeat,3e3),a=setInterval(this.heartbeat,28e3),n=m({hash:null==e?void 0:e.hash,search:null==e?void 0:e.search}),this.pageData={path:n,actions:{stop:function(){clearInterval(t),clearInterval(a)}}},this.trackPage(n,null==e?void 0:e.unique)),this.pageData.actions):b},w.prototype.getPerformanceStats=function(){var e;return this.canTrack()&&!this.perfStatsCollected&&null!=(e=window.performance)&&e.getEntriesByType&&(e=window.performance.getEntriesByType("navigation")[0])?(this.perfStatsCollected=!0,{dns:e.domainLookupEnd-e.domainLookupStart,tls:e.secureConnectionStart?e.requestStart-e.secureConnectionStart:0,conn:e.secureConnectionStart?e.secureConnectionStart-e.connectStart:e.connectEnd-e.connectStart,response:e.responseEnd-e.responseStart,render:e.domComplete-e.domContentLoadedEventEnd,dom_load:e.domContentLoadedEventEnd-e.responseEnd,page_load:e.loadEventStart,ttfb:e.responseStart-e.requestStart}):{}},w.prototype.heartbeat=function(){var e;(null!=(e=this.pageViewsOptions)&&e.heartbeatOnBackground||"hidden"!==document.visibilityState)&&(e={pid:this.projectID},this.sendRequest("hb",e))},w.prototype.trackPathChange=function(){var e;this.pageData&&(e=m({hash:null==(e=this.pageViewsOptions)?void 0:e.hash,search:null==(e=this.pageViewsOptions)?void 0:e.search}),this.pageData.path!==e)&&this.trackPage(e,!1)},w.prototype.getPreviousPage=function(){if(this.activePage)return this.activePage;if("function"==typeof URL){var e=s();if(!e)return null;var t=location.host;try{var a=new URL(e),n=a.host,i=a.pathname;return t!==n?null:i}catch(e){}}return null},w.prototype.trackPage=function(e,t){var a;void 0===t&&(t=!1),this.pageData&&(this.pageData.path=e,a=this.getPerformanceStats(),this.activePage=e,this.submitPageView({pg:e},t,a,!0))},w.prototype.submitPageView=function(e,a,n,i){var m=this.getPreviousPage();if(n={pid:this.projectID,perf:n,unique:a},a=t({lc:o(),tz:r(),ref:s(),so:l(),me:c(),ca:u(),te:d(),co:h(),prev:m},e),i&&null!=(m=this.pageViewsOptions)&&m.callback){if(!1===(e=this.pageViewsOptions.callback(a)))return;e&&"object"==typeof e&&Object.assign(a,e)}Object.assign(a,n),this.sendRequest("",a)},w.prototype.canTrack=function(){var e;return!(null!=(e=this.options)&&e.disabled||"undefined"==typeof window||null!=(e=this.options)&&e.respectDNT&&"1"===(null==(e=window.navigator)?void 0:e.doNotTrack)||(null==(e=this.options)||!e.devMode)&&("localhost"===(null===location||void 0===location?void 0:location.hostname)||"127.0.0.1"===(null===location||void 0===location?void 0:location.hostname)||""===(null===location||void 0===location?void 0:location.hostname))||null!==navigator&&void 0!==navigator&&navigator.webdriver)},w.prototype.sendRequest=function(e,t){return a(this,void 0,void 0,(function(){var a;return n(this,(function(n){switch(n.label){case 0:return a=(null==(a=this.options)?void 0:a.apiURL)||"https://api.swetrix.com/log",[4,fetch("".concat(a,"/").concat(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})];case 1:return n.sent(),[2]}}))}))},w);function w(e,t){this.projectID=e,this.options=t,this.pageData=null,this.pageViewsOptions=null,this.errorsOptions=null,this.perfStatsCollected=!1,this.activePage=null,this.errorListenerExists=!1,this.trackPathChange=this.trackPathChange.bind(this),this.heartbeat=this.heartbeat.bind(this),this.captureError=this.captureError.bind(this)}e.LIB_INSTANCE=null,e.init=function(t,a){return e.LIB_INSTANCE||(e.LIB_INSTANCE=new y(t,a)),e.LIB_INSTANCE},e.pageview=function(t){e.LIB_INSTANCE&&e.LIB_INSTANCE.submitPageView(t.payload,Boolean(t.unique),{})},e.track=function(t){return a(this,void 0,void 0,(function(){return n(this,(function(a){switch(a.label){case 0:return e.LIB_INSTANCE?[4,e.LIB_INSTANCE.track(t)]:[2];case 1:return a.sent(),[2]}}))}))},e.trackError=function(t){e.LIB_INSTANCE&&e.LIB_INSTANCE.submitError(t,!1)},e.trackErrors=function(t){return e.LIB_INSTANCE?e.LIB_INSTANCE.trackErrors(t):b},e.trackPageview=function(t,a,n){e.LIB_INSTANCE&&e.LIB_INSTANCE.submitPageView({pg:t,prev:a||null},Boolean(n),{})},e.trackViews=function(t){return new Promise((function(a){e.LIB_INSTANCE?"undefined"==typeof document||"complete"===document.readyState?a(e.LIB_INSTANCE.trackPageViews(t)):window.addEventListener("load",(function(){a(e.LIB_INSTANCE.trackPageViews(t))})):a(b)}))},Object.defineProperty(e,"__esModule",{value:!0})}(t)}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.abd3f65c.js b/assets/js/c4f5d8e4.abd3f65c.js new file mode 100644 index 000000000..e35af5b3c --- /dev/null +++ b/assets/js/c4f5d8e4.abd3f65c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2634],{7933:(e,t,a)=>{a.r(t),a.d(t,{default:()=>X});var s=a(4480),i=a(3526),r=a(758);const o={features:"features_t9lD"},n=a.p+"assets/images/admin-0ad4037b89a248bffa4e939d647d326c.png",l=a.p+"assets/images/community-717286c80fce866c158ab595629a937a.png",c=a.p+"assets/images/game-45374cc5b999ec17b1ca3578f8ff926b.png",d=a.p+"assets/images/github-0cf1393534e30fd4eb2411670f3e9234.png",h=a.p+"assets/images/installation-318f17d2cf4b9f87ccafd406a2bdb009.png",m=a.p+"assets/images/library-afce4846b08b60cecca986a39b1fa331.png",u=a.p+"assets/medias/admin-3adfe380e11d3351a3ba7eb4e25ce685.mp4",p=a.p+"assets/medias/community-c59d264ef301a24c508f40a02340fd3c.mp4",g=a.p+"assets/medias/game-08b3dace3b1757584d3a82bab9bc7f93.mp4",f=a.p+"assets/medias/installation-b349635775bda338fd4babf0d8519e2c.mp4",x=a.p+"assets/medias/library-82c4106d4da1f0466e2995c53b6df7c0.mp4";var b=a(6070);const w=[{title:"\ud83c\udfae Browse Your Games",img:m,video:x,description:(0,b.jsx)(b.Fragment,{children:"Browse your server's beautifully organized library to download, install and play your collection of video games of all kinds!"})},{title:"\ud83d\udc6f Build Your Community",img:n,video:u,description:(0,b.jsx)(b.Fragment,{children:"Share your platform with your friends and family so they can enjoy your library, too. Administrate your users and games."})},{title:"\u23f1\ufe0f Track Your Progress",img:l,video:p,description:(0,b.jsx)(b.Fragment,{children:"See how long you or your friends have been playing a game, find out what they are and keep track of what you've already completed or abandoned."})},{title:"\ud83d\udd0e Automatic Metadata Enrichment",img:c,video:g,description:(0,b.jsx)(b.Fragment,{children:"GameVault automatically enriches your game with all the juicy information and and images from the largest video game database."})},{title:"\ud83d\udce6 Easy To Use",img:h,video:f,description:(0,b.jsxs)("div",{children:["There\u2019s no need to compile any code! The app is readily available in the"," ",(0,b.jsx)("a",{href:"https://www.microsoft.com/store/apps/9PCKDV76GL75",children:"Microsoft Store"}),". Plus, ","",(0,b.jsx)("a",{href:"/docs/client-docs/how-to-use.md#2-installing-the-game",children:"installing games"})," and ",(0,b.jsx)("a",{href:"/docs/server-docs/setup",children:"setting up a server"})," is equally straightforward!"]})},{title:"\ud83d\udc65 Join The Movement",img:d,description:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("a",{target:"_blank",href:"https://discord.gg/NEdNen2dSu",children:"Join our growing community"})," ",", star us on GitHub, or even ",(0,b.jsx)("a",{href:"/docs/contribute",children:"contribute"})," ","to our source-available project! Everyone can help!"]})}];function y(e){let{title:t,img:a,video:s,description:r}=e;return(0,b.jsxs)("div",{className:(0,i.A)("col col--4"),children:[(0,b.jsx)("div",{className:"text--center",children:s?(0,b.jsx)("video",{className:"w-full max-w-screen-sm rounded-xl",muted:!0,autoPlay:!0,controls:!0,loop:!0,src:s}):(0,b.jsx)("img",{className:"rounded-xl",alt:t,src:a})}),(0,b.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,b.jsx)("h3",{children:t}),(0,b.jsx)("p",{children:r})]})]})}function v(){return(0,b.jsx)("section",{className:o.features,children:(0,b.jsx)("div",{className:"container",children:(0,b.jsx)("div",{className:"row",children:w.map(((e,t)=>(0,b.jsx)(y,{...e},t)))})})})}var j=a(3385);const k=e=>{const t=location.search.match(e);return t&&t[2]||void 0},N=/[?&](ref|source|utm_source)=([^?&]+)/,E=/[?&](utm_campaign)=([^?&]+)/,V=/[?&](utm_medium)=([^?&]+)/,S=/[?&](utm_term)=([^?&]+)/,G=/[?&](utm_content)=([^?&]+)/,C=()=>void 0!==navigator.languages?navigator.languages[0]:navigator.language,D=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){return}},q=()=>document.referrer||void 0,O=()=>k(N),P=()=>k(V),L=()=>k(E),T=()=>k(S),R=()=>k(G),I=e=>{let t=location.pathname||"";if(e.hash){const e=location.hash.indexOf("?");t+=e>-1?location.hash.substring(0,e):location.hash}if(e.search){const e=location.hash.indexOf("?");t+=location.search||(e>-1?location.hash.substring(e):"")}return t},M={stop(){}};class A{constructor(e,t){this.projectID=e,this.options=t,this.pageData=null,this.pageViewsOptions=null,this.errorsOptions=null,this.perfStatsCollected=!1,this.activePage=null,this.errorListenerExists=!1,this.trackPathChange=this.trackPathChange.bind(this),this.heartbeat=this.heartbeat.bind(this),this.captureError=this.captureError.bind(this)}captureError(e){"number"==typeof this.errorsOptions?.sampleRate&&this.errorsOptions.sampleRate>Math.random()||this.submitError({filename:e.filename,lineno:e.lineno,colno:e.colno,name:e.error?.name||"Error",message:e.error?.message||e.message},!0)}trackErrors(e){return this.errorListenerExists||!this.canTrack()?M:(this.errorsOptions=e,window.addEventListener("error",this.captureError),this.errorListenerExists=!0,{stop:()=>{window.removeEventListener("error",this.captureError)}})}submitError(e,t){const a={pid:this.projectID},s={pg:this.activePage||I({hash:this.pageViewsOptions?.hash,search:this.pageViewsOptions?.search}),lc:C(),tz:D(),...e};if(t&&this.errorsOptions?.callback){const e=this.errorsOptions.callback(s);if(!1===e)return;e&&"object"==typeof e&&Object.assign(s,e)}Object.assign(s,a),this.sendRequest("error",s)}async track(e){if(!this.canTrack())return;const t={...e,pid:this.projectID,pg:this.activePage,lc:C(),tz:D(),ref:q(),so:O(),me:P(),ca:L(),te:T(),co:R()};await this.sendRequest("custom",t)}trackPageViews(e){if(!this.canTrack())return M;if(this.pageData)return this.pageData.actions;let t;this.pageViewsOptions=e,e?.unique||(t=setInterval(this.trackPathChange,2e3)),setTimeout(this.heartbeat,3e3);const a=setInterval(this.heartbeat,28e3),s=I({hash:e?.hash,search:e?.search});return this.pageData={path:s,actions:{stop:()=>{clearInterval(t),clearInterval(a)}}},this.trackPage(s,e?.unique),this.pageData.actions}getPerformanceStats(){if(!this.canTrack()||this.perfStatsCollected||!window.performance?.getEntriesByType)return{};const e=window.performance.getEntriesByType("navigation")[0];return e?(this.perfStatsCollected=!0,{dns:e.domainLookupEnd-e.domainLookupStart,tls:e.secureConnectionStart?e.requestStart-e.secureConnectionStart:0,conn:e.secureConnectionStart?e.secureConnectionStart-e.connectStart:e.connectEnd-e.connectStart,response:e.responseEnd-e.responseStart,render:e.domComplete-e.domContentLoadedEventEnd,dom_load:e.domContentLoadedEventEnd-e.responseEnd,page_load:e.loadEventStart,ttfb:e.responseStart-e.requestStart}):{}}heartbeat(){if(!this.pageViewsOptions?.heartbeatOnBackground&&"hidden"===document.visibilityState)return;const e={pid:this.projectID};this.sendRequest("hb",e)}trackPathChange(){if(!this.pageData)return;const e=I({hash:this.pageViewsOptions?.hash,search:this.pageViewsOptions?.search}),{path:t}=this.pageData;t!==e&&this.trackPage(e,!1)}trackPage(e,t=!1){if(!this.pageData)return;this.pageData.path=e;const a=this.getPerformanceStats();this.activePage=e,this.submitPageView({pg:e},t,a,!0)}submitPageView(e,t,a,s){const i={pid:this.projectID,perf:a,unique:t},r={lc:C(),tz:D(),ref:q(),so:O(),me:P(),ca:L(),te:T(),co:R(),...e};if(s&&this.pageViewsOptions?.callback){const e=this.pageViewsOptions.callback(r);if(!1===e)return;e&&"object"==typeof e&&Object.assign(r,e)}Object.assign(r,i),this.sendRequest("",r)}canTrack(){return!(this.options?.disabled||"undefined"==typeof window||this.options?.respectDNT&&"1"===window.navigator?.doNotTrack||!this.options?.devMode&&("localhost"===location?.hostname||"127.0.0.1"===location?.hostname||""===location?.hostname)||navigator?.webdriver)}async sendRequest(e,t){const a=this.options?.apiURL||"https://api.swetrix.com/log";await fetch(`${a}/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}}let _=null;function z(e){let{className:t,...a}=e;return(0,b.jsx)("div",{className:(0,i.A)("mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",t),...a})}var B=a(88);const H=[[{question:"Does GameVault combine my gaming platforms in one place?",answer:"No, GameVault is not for combining games from different platforms into one app. Rather, it's for managing your own gaming platform with your own game files hosted on your server."},{question:"Is GameVault open-source?",answer:"No, GameVault is source-available, meaning the code is open for you to explore and modify for personal use. However, you may not use it for commercial purposes."},{question:"Is GameVault a tool for piracy?",answer:"No, it isn't. GameVault is designed to manage legally obtained DRM-free games. While it can technically be used with illegally obtained games, we do not endorse or support piracy. We encourage users to comply with copyright laws. Unlawful use is strictly improper and unauthorized."}],[{question:"Does GameVault work with games from Steam, Epic Games, Microsoft, etc.?",answer:"Usually not. GameVault is made for games you own and only works with DRM-free games, either pure game files or installers. Most platforms use DRM, but there are exceptions like GOG and Humble Bundle that don\u2019t."},{question:"Is there a native client for Mac or Linux?",answer:"No, apart from emulation or community-maintained clients, there is currently no native Linux or Mac GameVault client application."},{question:"Does GameVault have anything to do with gambling?",answer:"No, absolutely not. There's just a gambling app with a similar name on the market. If you're struggling with gambling addiction, please seek help."}],[{question:"Does GameVault stream games?",answer:"No, GameVault has nothing to do with streaming. It's simply an app to organize and browse your game library in a Steam-like experience and share it with your community."},{question:"Does GameVault cost any money?",answer:"No, the core features of GameVault are and will always be free. However, we do offer a paid GameVault+ subscription for some additional extra features, which you can subscribe to if you'd like to continuously support our work."},{question:"What was the former name of GameVault?",answer:"The first rule of GameVault is: you do not talk about the former name of GameVault."}]];function F(){return(0,b.jsx)("section",{id:"faq","aria-labelledby":"faq-title",className:"relative overflow-hidden py-16",children:(0,b.jsxs)(z,{className:"relative",children:[(0,b.jsxs)("div",{className:"mx-auto lg:mx-0",children:[(0,b.jsx)("h2",{id:"faq-title",className:"font-display text-3xl tracking-tight sm:text-4xl",children:"Frequently asked questions"}),(0,b.jsxs)("p",{className:"mt-4 text-lg tracking-tight text-text-light",children:["If you can\u2019t find what you\u2019re looking for here, check out the"," ",(0,b.jsx)(B.A,{href:"https://gamevau.lt/docs/intro",children:"Docs"})," or contact us via"," ",(0,b.jsx)(B.A,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),","," ",(0,b.jsx)(B.A,{href:"https://github.com/Phalcode/gamevault-app/discussions",children:"GitHub"}),", or ",(0,b.jsx)(B.A,{href:"mailto:contact@phalco.de",children:"Email"})]})]}),(0,b.jsx)("ul",{className:"list-none mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 lg:max-w-none lg:grid-cols-3",children:H.map(((e,t)=>(0,b.jsx)("li",{children:(0,b.jsx)("ul",{className:"list-none flex flex-col gap-y-8",children:e.map(((e,t)=>(0,b.jsxs)("li",{children:[(0,b.jsx)("h3",{className:"font-display text-lg leading-7",children:e.question}),(0,b.jsx)("p",{className:"mt-4 text-sm text-text-light",children:e.answer})]},t)))})},t)))})]})})}var K=a(2736),U=a.n(K);const J={solid:"group inline-flex items-center justify-center rounded-full py-2 px-4 text-sm font-semibold focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 !no-underline",outline:"group inline-flex ring-1 items-center justify-center rounded-full py-2 px-4 text-sm focus:outline-none"},W={solid:{primary:"bg-primary-default text-white hover:text-white hover:bg-primary-darker active:bg-primary-darkest focus-visible:outline-primary-darkest"}};function Y(e){let{className:t,...a}=e;a.variant??="solid",a.color??="primary";const s=(r=a.variant,o=a.color,"outline"===r?W.outline?.[o]:"solid"===r?W.solid?.[o]:void 0);var r,o;return t=(0,i.A)(J[a.variant],s,t),console.log(t),void 0===a.href?(0,b.jsx)("button",{className:t,...a}):(0,b.jsx)(B.A,{className:t,...a})}Y.propTypes={href:U().string,className:U().string,variant:U().oneOf(["solid","outline"]),color:U().oneOf(["primary"])};const Z=e=>{let{className:t,options:a,...s}=e;const[i,o]=(0,r.useState)(!1),n=(0,r.useRef)(null);return(0,r.useEffect)((()=>{const e=e=>{n.current&&!n.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]),(0,b.jsxs)("span",{ref:n,className:"relative inline-block text-left",children:[(0,b.jsx)(Y,{className:t+" w-full",...s,onClick:()=>o(!i)}),i&&(0,b.jsx)("div",{className:"absolute right-0 z-10 mt-2 w-full origin-top-right rounded-md bg-background-dark shadow-lg ring-1 ring-text-light",role:"menu","aria-orientation":"vertical",children:(0,b.jsx)("div",{className:"py-1",role:"none",children:a.map((e=>(0,b.jsx)(B.A,{href:e.link,target:"_blank",className:"font-bold hover:no-underline block px-4 py-2 text-sm hover:bg-background-default text-text-default","aria-label":e.label,children:e.label},e.label)))})})]})};Z.propTypes={className:U().string,options:U().arrayOf(U().shape({label:U().string.isRequired,link:U().string.isRequired})).isRequired};const $=Z;function Q(){const[e,t]=(0,r.useState)(!1);return(0,b.jsxs)(z,{className:"pb-16 pt-20 text-center",children:[(0,b.jsx)("button",{onClick:()=>{e||(t(!e),setTimeout((()=>t(!1)),1e3))},children:(0,b.jsx)("img",{src:"/img/logo.png",className:"h-48 nozoom cursor-pointer "+(e?"animate-spin":""),alt:"Logo"})}),(0,b.jsxs)("h1",{className:"mx-auto max-w-4xl font-display text-5xl font-medium tracking-tight sm:text-7xl",children:["Create"," ",(0,b.jsxs)("span",{className:"relative whitespace-nowrap text-primary-darker",children:[(0,b.jsx)("svg",{"aria-hidden":"true",viewBox:"0 0 418 42",className:"absolute left-0 top-2/3 h-[0.58em] w-full fill-primary-default opacity-30",preserveAspectRatio:"none",children:(0,b.jsx)("path",{d:"M203.371.916c-26.013-2.078-76.686 1.963-124.73 9.946L67.3 12.749C35.421 18.062 18.2 21.766 6.004 25.934 1.244 27.561.828 27.778.874 28.61c.07 1.214.828 1.121 9.595-1.176 9.072-2.377 17.15-3.92 39.246-7.496C123.565 7.986 157.869 4.492 195.942 5.046c7.461.108 19.25 1.696 19.17 2.582-.107 1.183-7.874 4.31-25.75 10.366-21.992 7.45-35.43 12.534-36.701 13.884-2.173 2.308-.202 4.407 4.442 4.734 2.654.187 3.263.157 15.593-.78 35.401-2.686 57.944-3.488 88.365-3.143 46.327.526 75.721 2.23 130.788 7.584 19.787 1.924 20.814 1.98 24.557 1.332l.066-.011c1.201-.203 1.53-1.825.399-2.335-2.911-1.31-4.893-1.604-22.048-3.261-57.509-5.556-87.871-7.36-132.059-7.842-23.239-.254-33.617-.116-50.627.674-11.629.54-42.371 2.494-46.696 2.967-2.359.259 8.133-3.625 26.504-9.81 23.239-7.825 27.934-10.149 28.304-14.005.417-4.348-3.529-6-16.878-7.066Z"})}),(0,b.jsx)("span",{className:"relative",children:"your own"})]}),(0,b.jsx)("br",{}),"gaming platform."]}),(0,b.jsxs)("p",{className:"mx-auto mt-6 max-w-2xl text-lg tracking-tight text-text-light",children:["Hoarding video games is fun, but a chaotic list of files on a network share is not. ",(0,b.jsx)("br",{})," Let GameVault organize everything for you and enjoy a selfhosted Steam-like experience for games on your own home server."]}),(0,b.jsxs)("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-xl mx-auto",children:[(0,b.jsx)(Y,{href:"/docs/intro",children:"Learn more"}),(0,b.jsxs)($,{options:[{label:"Microsoft Store",link:"https://www.microsoft.com/store/apps/9PCKDV76GL75"},{label:"GitHub",link:"https://github.com/Phalcode/gamevault-app/releases"}],children:["Download Client"," ",(0,b.jsx)("svg",{className:"-mr-1 h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"})})]})]})]})}function X(){var e,t;e="K6k7j6GHClhh",_||(_=new A(e,t)),function(e){new Promise((t=>{_?"undefined"==typeof document||"complete"===document.readyState?t(_.trackPageViews(e)):window.addEventListener("load",(()=>{t(_.trackPageViews(e))})):t(M)}))}();const{siteConfig:a}=(0,s.A)();return(0,b.jsxs)(j.A,{title:`${a.title}`,description:"the self-hosted gaming platform for drm-free games",children:[(0,b.jsx)("noscript",{children:(0,b.jsx)("img",{src:"https://api.swetrix.com/log/noscript?pid=K6k7j6GHClhh",alt:""})}),(0,b.jsxs)("main",{children:[(0,b.jsx)("section",{className:"bg-background-dark",children:(0,b.jsx)(Q,{})}),(0,b.jsx)("br",{}),(0,b.jsx)(z,{children:(0,b.jsx)(v,{})}),(0,b.jsx)(F,{}),(0,b.jsx)("p",{className:"text--center text-xs font-bolder tracking-tighter",children:"*In case you're wondering, all depicted games on this website are placeholders and not real"})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/c71ef62c.433c7f12.js b/assets/js/c71ef62c.6837e458.js similarity index 85% rename from assets/js/c71ef62c.433c7f12.js rename to assets/js/c71ef62c.6837e458.js index 39baca80d..c85c16ac3 100644 --- a/assets/js/c71ef62c.433c7f12.js +++ b/assets/js/c71ef62c.6837e458.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2328],{3584:e=>{e.exports=JSON.parse('{"tag":{"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/keyhole-representation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8790],{1187:e=>{e.exports=JSON.parse('{"tag":{"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/keyhole-representation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c7bbcbc7.071b1ca6.js b/assets/js/c7bbcbc7.063da928.js similarity index 84% rename from assets/js/c7bbcbc7.071b1ca6.js rename to assets/js/c7bbcbc7.063da928.js index 0bd79a2f8..2f2d644c6 100644 --- a/assets/js/c7bbcbc7.071b1ca6.js +++ b/assets/js/c7bbcbc7.063da928.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2422],{1360:a=>{a.exports=JSON.parse('{"tag":{"label":"startup","permalink":"/blog/tags/startup","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/startup","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6260],{2227:a=>{a.exports=JSON.parse('{"tag":{"label":"startup","permalink":"/blog/tags/startup","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/startup","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c8472403.ffbd8f0a.js b/assets/js/c8472403.5b89e67c.js similarity index 84% rename from assets/js/c8472403.ffbd8f0a.js rename to assets/js/c8472403.5b89e67c.js index 01bb7b90c..5a8ed3273 100644 --- a/assets/js/c8472403.ffbd8f0a.js +++ b/assets/js/c8472403.5b89e67c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9710],{4051:a=>{a.exports=JSON.parse('{"tag":{"label":"special thanks","permalink":"/blog/tags/special-thanks","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/special-thanks","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2932],{3926:a=>{a.exports=JSON.parse('{"tag":{"label":"special thanks","permalink":"/blog/tags/special-thanks","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/special-thanks","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c89c7974.7746f383.js b/assets/js/c89c7974.7746f383.js deleted file mode 100644 index e7816994e..000000000 --- a/assets/js/c89c7974.7746f383.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5865],{433:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var n=a(2676),i=a(8358);const o={sidebar_position:4},s="REST API Usage",r={id:"advanced-usage/rest-api",title:"REST API Usage",description:"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically.",source:"@site/docs/advanced-usage/rest-api.md",sourceDirName:"advanced-usage",slug:"/advanced-usage/rest-api",permalink:"/docs/advanced-usage/rest-api",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/rest-api.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"docs",previous:{title:"Themes",permalink:"/docs/client-docs/themes"},next:{title:"Early Access Program",permalink:"/docs/advanced-usage/early-access-program"}},c={},d=[{value:"Register a Bot User",id:"register-a-bot-user",level:2},{value:"OpenAPI Specification",id:"openapi-specification",level:2},{value:"Authentication",id:"authentication",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"rest-api-usage",children:"REST API Usage"})}),"\n",(0,n.jsx)(t.p,{children:"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically."}),"\n",(0,n.jsx)(t.h2,{id:"register-a-bot-user",children:"Register a Bot User"}),"\n",(0,n.jsxs)(t.p,{children:["To use the GameVault API, it is recommended to register a separate user with the username prefix ",(0,n.jsx)(t.code,{children:"gvbot_"})," (e.g. ",(0,n.jsx)(t.code,{children:"gvbot_image_downloader"}),"). The bot user will not appear in the public user list. This user will be used to authenticate your API requests. You can do this by using the Register Form in the settings tab of the GameVault App."]}),"\n",(0,n.jsx)(t.h2,{id:"openapi-specification",children:"OpenAPI Specification"}),"\n",(0,n.jsxs)(t.p,{children:["You can check out the API specification at ",(0,n.jsx)(t.code,{children:"/api/docs"})," after making sure the server environment variable ",(0,n.jsx)(t.code,{children:"SERVER_API_DOCS_ENABLED"})," is set to ",(0,n.jsx)(t.code,{children:"true"}),". There is also a hosted version of the latest API Documentation available at ",(0,n.jsx)(t.a,{href:"https://demo.gamevau.lt/api/docs",children:"demo.gamevau.lt/api/docs"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"The API documentation provides a complete guide on how to use the API, including authentication, endpoints, and parameters."}),"\n",(0,n.jsxs)(t.p,{children:["You can also download the OpenAPI Specification in different formats using ",(0,n.jsx)(t.code,{children:"example.com/api/docs-json"})," or ",(0,n.jsx)(t.code,{children:"example.com/api/docs-yaml"}),". This is useful for importing the Calls into a tool like Postman or generate the client code using the openapi-generator."]}),"\n",(0,n.jsx)(t.h2,{id:"authentication",children:"Authentication"}),"\n",(0,n.jsx)(t.p,{children:"Almost all requests to the API require basic-auth authentication. You will need to include it in the Authentication header of each request."})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>r,a:()=>s});var n=a(5271);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);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:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c89c7974.dc12986b.js b/assets/js/c89c7974.dc12986b.js new file mode 100644 index 000000000..caa1e0706 --- /dev/null +++ b/assets/js/c89c7974.dc12986b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9267],{2830:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"advanced-usage/rest-api","title":"REST API Usage","description":"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically.","source":"@site/docs/advanced-usage/rest-api.md","sourceDirName":"advanced-usage","slug":"/advanced-usage/rest-api","permalink":"/docs/advanced-usage/rest-api","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/rest-api.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"docs","previous":{"title":"Themes","permalink":"/docs/client-docs/themes"},"next":{"title":"Early Access Program","permalink":"/docs/advanced-usage/early-access-program"}}');var i=a(6070),s=a(8591);const o={sidebar_position:4},r="REST API Usage",c={},d=[{value:"Register a Bot User",id:"register-a-bot-user",level:2},{value:"OpenAPI Specification",id:"openapi-specification",level:2},{value:"Authentication",id:"authentication",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"rest-api-usage",children:"REST API Usage"})}),"\n",(0,i.jsx)(t.p,{children:"The GameVault Backend Server offers a fully documented REST API for use to everyone. With the API, you can build your own GameVault clients or 3rd party integrations and manage your libraries automatically."}),"\n",(0,i.jsx)(t.h2,{id:"register-a-bot-user",children:"Register a Bot User"}),"\n",(0,i.jsxs)(t.p,{children:["To use the GameVault API, it is recommended to register a separate user with the username prefix ",(0,i.jsx)(t.code,{children:"gvbot_"})," (e.g. ",(0,i.jsx)(t.code,{children:"gvbot_image_downloader"}),"). The bot user will not appear in the public user list. This user will be used to authenticate your API requests. You can do this by using the Register Form in the settings tab of the GameVault App."]}),"\n",(0,i.jsx)(t.h2,{id:"openapi-specification",children:"OpenAPI Specification"}),"\n",(0,i.jsxs)(t.p,{children:["You can check out the API specification at ",(0,i.jsx)(t.code,{children:"/api/docs"})," after making sure the server environment variable ",(0,i.jsx)(t.code,{children:"SERVER_API_DOCS_ENABLED"})," is set to ",(0,i.jsx)(t.code,{children:"true"}),". There is also a hosted version of the latest API Documentation available at ",(0,i.jsx)(t.a,{href:"https://demo.gamevau.lt/api/docs",children:"demo.gamevau.lt/api/docs"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"The API documentation provides a complete guide on how to use the API, including authentication, endpoints, and parameters."}),"\n",(0,i.jsxs)(t.p,{children:["You can also download the OpenAPI Specification in different formats using ",(0,i.jsx)(t.code,{children:"example.com/api/docs-json"})," or ",(0,i.jsx)(t.code,{children:"example.com/api/docs-yaml"}),". This is useful for importing the Calls into a tool like Postman or generate the client code using the openapi-generator."]}),"\n",(0,i.jsx)(t.h2,{id:"authentication",children:"Authentication"}),"\n",(0,i.jsx)(t.p,{children:"Almost all requests to the API require basic-auth authentication. You will need to include it in the Authentication header of each request."})]})}function u(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>r});var n=a(758);const i={},s=n.createContext(i);function o(e){const t=n.useContext(s);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:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c8fbe42c.6e3567e1.js b/assets/js/c8fbe42c.17edd14e.js similarity index 85% rename from assets/js/c8fbe42c.6e3567e1.js rename to assets/js/c8fbe42c.17edd14e.js index 05bab68fd..e1046503f 100644 --- a/assets/js/c8fbe42c.6e3567e1.js +++ b/assets/js/c8fbe42c.17edd14e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8364],{3131:a=>{a.exports=JSON.parse('{"tag":{"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/selfhosted-podcast","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9748],{4022:a=>{a.exports=JSON.parse('{"tag":{"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/selfhosted-podcast","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c9618c72.f7a3fb5e.js b/assets/js/c9618c72.0b818960.js similarity index 85% rename from assets/js/c9618c72.f7a3fb5e.js rename to assets/js/c9618c72.0b818960.js index 8437e6b97..1a99413fe 100644 --- a/assets/js/c9618c72.f7a3fb5e.js +++ b/assets/js/c9618c72.0b818960.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1472],{9311:a=>{a.exports=JSON.parse('{"tag":{"label":"official installations","permalink":"/blog/tags/official-installations","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/official-installations","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9484],{3718:a=>{a.exports=JSON.parse('{"tag":{"label":"official installations","permalink":"/blog/tags/official-installations","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/official-installations","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c9cac9d9.33dd62bd.js b/assets/js/c9cac9d9.33dd62bd.js deleted file mode 100644 index 822378a26..000000000 --- a/assets/js/c9cac9d9.33dd62bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6325],{1305:e=>{e.exports=JSON.parse('{"tag":{"label":"release","permalink":"/blog/tags/release","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/release","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/dd9b1d9d.8e104c95.js b/assets/js/c9cac9d9.91b6f91c.js similarity index 51% rename from assets/js/dd9b1d9d.8e104c95.js rename to assets/js/c9cac9d9.91b6f91c.js index 0897a5b96..2682f699d 100644 --- a/assets/js/dd9b1d9d.8e104c95.js +++ b/assets/js/c9cac9d9.91b6f91c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3433],{836:s=>{s.exports=JSON.parse('{"tag":{"label":"success","permalink":"/blog/tags/success","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/success","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4918],{371:e=>{e.exports=JSON.parse('{"tag":{"label":"release","permalink":"/blog/tags/release","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/release","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c9d2adb2.72742313.js b/assets/js/c9d2adb2.72742313.js new file mode 100644 index 000000000..2609922a6 --- /dev/null +++ b/assets/js/c9d2adb2.72742313.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3506],{9829:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>r});const i=JSON.parse('{"id":"gamevault-plus/client-setup","title":"Client Setup","description":"Setting up your GameVault+ License within your GameVault Client Application is simple and easy.","source":"@site/docs/gamevault-plus/client-setup.md","sourceDirName":"gamevault-plus","slug":"/gamevault-plus/client-setup","permalink":"/docs/gamevault-plus/client-setup","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/client-setup.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Client Setup"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/gamevault-plus/introduction"},"next":{"title":"Themes","permalink":"/docs/gamevault-plus/themes"}}');var l=t(6070),s=t(8591);const o={sidebar_position:2,title:"Client Setup"},a=void 0,c={},r=[{value:"Linking Your Phalcode Account",id:"linking-your-phalcode-account",level:2},{value:"Retrieving Your License",id:"retrieving-your-license",level:2},{value:"Offline Usage",id:"offline-usage",level:3}];function u(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,s.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.p,{children:"Setting up your GameVault+ License within your GameVault Client Application is simple and easy."}),"\n",(0,l.jsx)(n.h2,{id:"linking-your-phalcode-account",children:"Linking Your Phalcode Account"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Open the GameVault Client Application and go to the ",(0,l.jsx)(n.code,{children:"Settings"})," tab. Then, click on the ",(0,l.jsx)(n.code,{children:"GameVault+"})," button."]}),"\n",(0,l.jsxs)(n.li,{children:["Click the ",(0,l.jsx)(n.code,{children:"Log In"})," button and enter your credentials to sign in."]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Your credentials will be securely stored within the application for future use."}),"\n",(0,l.jsx)(n.p,{children:"From now on, each time you start the application, it will automatically attempt to log in using the stored credentials and retrieve your licenses. If the credentials are no longer valid, you will be prompted to log in again."}),"\n",(0,l.jsx)(n.h2,{id:"retrieving-your-license",children:"Retrieving Your License"}),"\n",(0,l.jsx)(n.p,{children:"Upon successful login, the client will try to fetch your GameVault+ license."}),"\n",(0,l.jsx)(n.p,{children:"If a valid license is found, you will see your license details and a button to manage your subscription in the GameVault+ Settings. If no license is found, an error message will be displayed."}),"\n",(0,l.jsxs)(n.p,{children:["You can also manually request to refresh your licenses using the ",(0,l.jsx)(n.code,{children:"Refresh"})," button."]}),"\n",(0,l.jsx)(n.h3,{id:"offline-usage",children:"Offline Usage"}),"\n",(0,l.jsx)(n.p,{children:"Once the initial setup is complete, GameVault+ can be used offline."}),"\n",(0,l.jsx)(n.p,{children:"When a valid license is detected during the setup process, an encrypted copy of the license is stored within the application, enabling offline usage. You can access GameVault+ offline with its license until the license expires."}),"\n",(0,l.jsx)(n.p,{children:"Your offline licenses are renewed each time you log in, as long as an internet connection is available."})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(u,{...e})}):u(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var i=t(758);const l={},s=i.createContext(l);function o(e){const n=i.useContext(s);return i.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(l):e.components||l:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c9d2adb2.a548cf92.js b/assets/js/c9d2adb2.a548cf92.js deleted file mode 100644 index 6d0371224..000000000 --- a/assets/js/c9d2adb2.a548cf92.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2701],{5956:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>r});var i=t(2676),l=t(8358);const s={sidebar_position:2,title:"Client Setup"},o=void 0,a={id:"gamevault-plus/client-setup",title:"Client Setup",description:"Setting up your GameVault+ License within your GameVault Client Application is simple and easy.",source:"@site/docs/gamevault-plus/client-setup.md",sourceDirName:"gamevault-plus",slug:"/gamevault-plus/client-setup",permalink:"/docs/gamevault-plus/client-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/client-setup.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Client Setup"},sidebar:"docs",previous:{title:"Introduction",permalink:"/docs/gamevault-plus/introduction"},next:{title:"Themes",permalink:"/docs/gamevault-plus/themes"}},c={},r=[{value:"Linking Your Phalcode Account",id:"linking-your-phalcode-account",level:2},{value:"Retrieving Your License",id:"retrieving-your-license",level:2},{value:"Offline Usage",id:"offline-usage",level:3}];function u(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Setting up your GameVault+ License within your GameVault Client Application is simple and easy."}),"\n",(0,i.jsx)(n.h2,{id:"linking-your-phalcode-account",children:"Linking Your Phalcode Account"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Open the GameVault Client Application and go to the ",(0,i.jsx)(n.code,{children:"Settings"})," tab. Then, click on the ",(0,i.jsx)(n.code,{children:"GameVault+"})," button."]}),"\n",(0,i.jsxs)(n.li,{children:["Click the ",(0,i.jsx)(n.code,{children:"Log In"})," button and enter your credentials to sign in."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Your credentials will be securely stored within the application for future use."}),"\n",(0,i.jsx)(n.p,{children:"From now on, each time you start the application, it will automatically attempt to log in using the stored credentials and retrieve your licenses. If the credentials are no longer valid, you will be prompted to log in again."}),"\n",(0,i.jsx)(n.h2,{id:"retrieving-your-license",children:"Retrieving Your License"}),"\n",(0,i.jsx)(n.p,{children:"Upon successful login, the client will try to fetch your GameVault+ license."}),"\n",(0,i.jsx)(n.p,{children:"If a valid license is found, you will see your license details and a button to manage your subscription in the GameVault+ Settings. If no license is found, an error message will be displayed."}),"\n",(0,i.jsxs)(n.p,{children:["You can also manually request to refresh your licenses using the ",(0,i.jsx)(n.code,{children:"Refresh"})," button."]}),"\n",(0,i.jsx)(n.h3,{id:"offline-usage",children:"Offline Usage"}),"\n",(0,i.jsx)(n.p,{children:"Once the initial setup is complete, GameVault+ can be used offline."}),"\n",(0,i.jsx)(n.p,{children:"When a valid license is detected during the setup process, an encrypted copy of the license is stored within the application, enabling offline usage. You can access GameVault+ offline with its license until the license expires."}),"\n",(0,i.jsx)(n.p,{children:"Your offline licenses are renewed each time you log in, as long as an internet connection is available."})]})}function d(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var i=t(5271);const l={},s=i.createContext(l);function o(e){const n=i.useContext(s);return i.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(l):e.components||l:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ca2d5c98.f3114af4.js b/assets/js/ca2d5c98.f6c7881c.js similarity index 84% rename from assets/js/ca2d5c98.f3114af4.js rename to assets/js/ca2d5c98.f6c7881c.js index cefc2e91f..f000960be 100644 --- a/assets/js/ca2d5c98.f3114af4.js +++ b/assets/js/ca2d5c98.f6c7881c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3392],{9401:a=>{a.exports=JSON.parse('{"tag":{"label":"motivation","permalink":"/blog/tags/motivation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/motivation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9218],{7527:a=>{a.exports=JSON.parse('{"tag":{"label":"motivation","permalink":"/blog/tags/motivation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/motivation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/cc0b9cf0.be0010eb.js b/assets/js/cc0b9cf0.cede556c.js similarity index 85% rename from assets/js/cc0b9cf0.be0010eb.js rename to assets/js/cc0b9cf0.cede556c.js index a64550972..42a3e5b25 100644 --- a/assets/js/cc0b9cf0.be0010eb.js +++ b/assets/js/cc0b9cf0.cede556c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6364],{7587:a=>{a.exports=JSON.parse('{"tag":{"label":"source-available","permalink":"/blog/tags/source-available","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/source-available","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4605],{8043:a=>{a.exports=JSON.parse('{"tag":{"label":"source-available","permalink":"/blog/tags/source-available","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/source-available","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/cc616304.25ec3595.js b/assets/js/cc616304.25ec3595.js new file mode 100644 index 000000000..86379ff49 --- /dev/null +++ b/assets/js/cc616304.25ec3595.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2419],{5029:e=>{e.exports=JSON.parse('{"tag":{"label":"easter egg","permalink":"/blog/tags/easter-egg","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/easter-egg","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/cc616304.77584d59.js b/assets/js/cc616304.77584d59.js deleted file mode 100644 index 18d6ef7ba..000000000 --- a/assets/js/cc616304.77584d59.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[717],{2453:e=>{e.exports=JSON.parse('{"tag":{"label":"easter egg","permalink":"/blog/tags/easter-egg","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/easter-egg","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.3a091c2c.js b/assets/js/ccc49370.3a091c2c.js deleted file mode 100644 index 0ee9bbea8..000000000 --- a/assets/js/ccc49370.3a091c2c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6103],{9449:(e,t,n)=>{n.d(t,{Z:()=>w});n(5271);var a=n(4814),s=n(5023),r=n(2676);function i(e){let{children:t,className:n}=e;return(0,r.jsx)("article",{className:n,children:t})}var l=n(6527);const o={title:"title_c9tz"};function c(e){let{className:t}=e;const{metadata:n,isBlogPostPage:i}=(0,s.nO)(),{permalink:c,title:d}=n,m=i?"h1":"h2";return(0,r.jsx)(m,{className:(0,a.Z)(o.title,t),children:i?d:(0,r.jsx)(l.Z,{to:c,children:d})})}var d=n(2922),m=n(2351),u=n(1956);const g={container:"container_xAnX"};function h(e){let{readingTime:t}=e;const n=function(){const{selectMessage:e}=(0,m.c)();return t=>{const n=Math.ceil(t);return e(n,(0,d.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,r.jsx)(r.Fragment,{children:n(t)})}function x(e){let{date:t,formattedDate:n}=e;return(0,r.jsx)("time",{dateTime:t,children:n})}function f(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function p(e){let{className:t}=e;const{metadata:n}=(0,s.nO)(),{date:i,readingTime:l}=n,o=(0,u.P)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,a.Z)(g.container,"margin-vert--md",t),children:[(0,r.jsx)(x,{date:i,formattedDate:(c=i,o.format(new Date(c)))}),void 0!==l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(f,{}),(0,r.jsx)(h,{readingTime:l})]})]});var c}var v=n(8059);const j={authorCol:"authorCol_btVC",imageOnlyAuthorRow:"imageOnlyAuthorRow_fBnr",imageOnlyAuthorCol:"imageOnlyAuthorCol_Y2d8"};function b(e){let{className:t}=e;const{metadata:{authors:n},assets:i}=(0,s.nO)();if(0===n.length)return null;const l=n.every((e=>{let{name:t}=e;return!t})),o=1===n.length;return(0,r.jsx)("div",{className:(0,a.Z)("margin-top--md margin-bottom--sm",l?j.imageOnlyAuthorRow:"row",t),children:n.map(((e,t)=>(0,r.jsx)("div",{className:(0,a.Z)(!l&&(o?"col col--12":"col col--6"),l?j.imageOnlyAuthorCol:j.authorCol),children:(0,r.jsx)(v.Z,{author:{...e,imageURL:i.authorsImageUrls[t]??e.imageURL}})},t)))})}function N(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(p,{}),(0,r.jsx)(b,{})]})}var Z=n(5678),L=n(2714);function y(e){let{children:t,className:n}=e;const{isBlogPostPage:i}=(0,s.nO)();return(0,r.jsx)("div",{id:i?Z.uR:void 0,className:(0,a.Z)("markdown",n),children:(0,r.jsx)(L.Z,{children:t})})}var k=n(3509),C=n(3362),_=n(9813);function T(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function H(e){const{blogPostTitle:t,...n}=e;return(0,r.jsx)(l.Z,{"aria-label":(0,d.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,r.jsx)(T,{})})}function O(){const{metadata:e,isBlogPostPage:t}=(0,s.nO)(),{tags:n,title:i,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=n.length>0;if(!(u||m||l))return null;if(t){const e=!!(l||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,a.Z)("row","margin-top--sm",k.k.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(_.Z,{tags:n})})}),e&&(0,r.jsx)(C.Z,{className:(0,a.Z)("margin-top--sm",k.k.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,a.Z)("col",{"col--9":m}),children:(0,r.jsx)(_.Z,{tags:n})}),m&&(0,r.jsx)("div",{className:(0,a.Z)("col text--right",{"col--3":u}),children:(0,r.jsx)(H,{blogPostTitle:i,to:e.permalink})})]})}function w(e){let{children:t,className:n}=e;const l=function(){const{isBlogPostPage:e}=(0,s.nO)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(i,{className:(0,a.Z)(l,n),children:[(0,r.jsx)(N,{}),(0,r.jsx)(y,{children:t}),(0,r.jsx)(O,{})]})}},6509:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(5271);var a=n(4814),s=n(9967),r=n(3509),i=n(5023),l=n(6566),o=n(9449),c=n(2922),d=n(5066),m=n(2676);function u(e){const{nextItem:t,prevItem:n}=e;return(0,m.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,m.jsx)(d.Z,{...n,subLabel:(0,m.jsx)(c.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer post"})}),t&&(0,m.jsx)(d.Z,{...t,subLabel:(0,m.jsx)(c.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,i.nO)(),{title:n,description:a,date:r,tags:l,authors:o,frontMatter:c}=t,{keywords:d}=c,u=e.image??c.image;return(0,m.jsxs)(s.d,{title:n,description:a,keywords:d,image:u,children:[(0,m.jsx)("meta",{property:"og:type",content:"article"}),(0,m.jsx)("meta",{property:"article:published_time",content:r}),o.some((e=>e.url))&&(0,m.jsx)("meta",{property:"article:author",content:o.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,m.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var h=n(2791);function x(){const e=(0,i.iZ)();return(0,m.jsx)(h.Z,{children:(0,m.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var f=n(9298),p=n(1892);function v(e){let{sidebar:t,children:n}=e;const{metadata:a,toc:s}=(0,i.nO)(),{nextItem:r,prevItem:c,frontMatter:d}=a,{hide_table_of_contents:g,toc_min_heading_level:h,toc_max_heading_level:x}=d;return(0,m.jsxs)(l.Z,{sidebar:t,toc:!g&&s.length>0?(0,m.jsx)(f.Z,{toc:s,minHeadingLevel:h,maxHeadingLevel:x}):void 0,children:[(0,m.jsx)(p.Z,{metadata:a}),(0,m.jsx)(o.Z,{children:n}),(r||c)&&(0,m.jsx)(u,{nextItem:r,prevItem:c})]})}function j(e){const t=e.content;return(0,m.jsx)(i.n4,{content:e.content,isBlogPostPage:!0,children:(0,m.jsxs)(s.FG,{className:(0,a.Z)(r.k.wrapper.blogPages,r.k.page.blogPostPage),children:[(0,m.jsx)(g,{}),(0,m.jsx)(x,{}),(0,m.jsx)(v,{sidebar:e.sidebar,children:(0,m.jsx)(t,{})})]})})}},7491:(e,t,n)=>{n.d(t,{Z:()=>c});n(5271);var a=n(4814),s=n(4022),r=n(3509),i=n(44),l=n(2676);function o(e){let{className:t}=e;return(0,l.jsx)(i.Z,{type:"caution",title:(0,l.jsx)(s.cI,{}),className:(0,a.Z)(t,r.k.common.unlistedBanner),children:(0,l.jsx)(s.eU,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.T$,{}),(0,l.jsx)(o,{...e})]})}},1892:(e,t,n)=>{n.d(t,{Z:()=>d});n(5271);var a=n(4814),s=n(4022),r=n(3509),i=n(44),l=n(2676);function o(e){let{className:t}=e;return(0,l.jsx)(i.Z,{type:"caution",title:(0,l.jsx)(s.ht,{}),className:(0,a.Z)(t,r.k.common.draftBanner),children:(0,l.jsx)(s.xo,{})})}var c=n(7491);function d(e){let{metadata:t}=e;const{unlisted:n,frontMatter:a}=t;return(0,l.jsxs)(l.Fragment,{children:[(n||a.unlisted)&&(0,l.jsx)(c.Z,{}),a.draft&&(0,l.jsx)(o,{})]})}},9298:(e,t,n)=>{n.d(t,{Z:()=>c});n(5271);var a=n(4814),s=n(783);const r={tableOfContents:"tableOfContents_tnIz",docItemContainer:"docItemContainer_YM2y"};var i=n(2676);const l="table-of-contents__link toc-highlight",o="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,a.Z)(r.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(s.Z,{...n,linkClassName:l,linkActiveClassName:o})})}},783:(e,t,n)=>{n.d(t,{Z:()=>x});var a=n(5271),s=n(9364);function r(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...s}=e;n>=0?t[n].children.push(s):a.push(s)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function o(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>l(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function c(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:s,minHeadingLevel:r,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let s=t;s<=n;s+=1)a.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:i}),c=o(l,{anchorTopOffset:n.current}),d=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(s),e.classList.add(s),t.current=e):e.classList.remove(s)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}var m=n(6527),u=n(2676);function g(e){let{toc:t,className:n,linkClassName:a,isChild:s}=e;return t.length?(0,u.jsx)("ul",{className:s?void 0:n,children:t.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.Z,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:a})]},e.id)))}):null}const h=a.memo(g);function x(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:m,...g}=e;const x=(0,s.L)(),f=c??x.tableOfContents.minHeadingLevel,p=m??x.tableOfContents.maxHeadingLevel,v=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return(0,a.useMemo)((()=>i({toc:r(t),minHeadingLevel:n,maxHeadingLevel:s})),[t,n,s])}({toc:t,minHeadingLevel:f,maxHeadingLevel:p});return d((0,a.useMemo)((()=>{if(l&&o)return{linkClassName:l,linkActiveClassName:o,minHeadingLevel:f,maxHeadingLevel:p}}),[l,o,f,p])),(0,u.jsx)(h,{toc:v,className:n,linkClassName:l,...g})}},4022:(e,t,n)=>{n.d(t,{T$:()=>o,cI:()=>i,eU:()=>l,ht:()=>c,xo:()=>d});n(5271);var a=n(2922),s=n(2791),r=n(2676);function i(){return(0,r.jsx)(a.Z,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,r.jsx)(a.Z,{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 o(){return(0,r.jsx)(s.Z,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,r.jsx)(a.Z,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,r.jsx)(a.Z,{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."})}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.55a36fca.js b/assets/js/ccc49370.55a36fca.js new file mode 100644 index 000000000..1344c3bc7 --- /dev/null +++ b/assets/js/ccc49370.55a36fca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3249],{8736:(e,t,n)=>{n.d(t,{A:()=>O});n(758);var a=n(3526),s=n(7073),i=n(6070);function r(e){let{children:t,className:n}=e;return(0,i.jsx)("article",{className:n,children:t})}var l=n(88);const o={title:"title_C9tp"};function c(e){let{className:t}=e;const{metadata:n,isBlogPostPage:r}=(0,s.e7)(),{permalink:c,title:d}=n,m=r?"h1":"h2";return(0,i.jsx)(m,{className:(0,a.A)(o.title,t),children:r?d:(0,i.jsx)(l.A,{to:c,children:d})})}var d=n(8072),m=n(7773),u=n(3886);const h={container:"container_eyWC"};function g(e){let{readingTime:t}=e;const n=function(){const{selectMessage:e}=(0,m.W)();return t=>{const n=Math.ceil(t);return e(n,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,i.jsx)(i.Fragment,{children:n(t)})}function f(e){let{date:t,formattedDate:n}=e;return(0,i.jsx)("time",{dateTime:t,children:n})}function x(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function p(e){let{className:t}=e;const{metadata:n}=(0,s.e7)(),{date:r,readingTime:l}=n,o=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,a.A)(h.container,"margin-vert--md",t),children:[(0,i.jsx)(f,{date:r,formattedDate:(c=r,o.format(new Date(c)))}),void 0!==l&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{}),(0,i.jsx)(g,{readingTime:l})]})]});var c}var v=n(5582);const j={authorCol:"authorCol_GZzj",imageOnlyAuthorRow:"imageOnlyAuthorRow_oXEi",imageOnlyAuthorCol:"imageOnlyAuthorCol_kgo0"};function b(e){let{className:t}=e;const{metadata:{authors:n},assets:r}=(0,s.e7)();if(0===n.length)return null;const l=n.every((e=>{let{name:t}=e;return!t})),o=1===n.length;return(0,i.jsx)("div",{className:(0,a.A)("margin-top--md margin-bottom--sm",l?j.imageOnlyAuthorRow:"row",t),children:n.map(((e,t)=>(0,i.jsx)("div",{className:(0,a.A)(!l&&(o?"col col--12":"col col--6"),l?j.imageOnlyAuthorCol:j.authorCol),children:(0,i.jsx)(v.A,{author:{...e,imageURL:r.authorsImageUrls[t]??e.imageURL}})},t)))})}function A(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(p,{}),(0,i.jsx)(b,{})]})}var N=n(3652),L=n(3416);function y(e){let{children:t,className:n}=e;const{isBlogPostPage:r}=(0,s.e7)();return(0,i.jsx)("div",{id:r?N.LU:void 0,className:(0,a.A)("markdown",n),children:(0,i.jsx)(L.A,{children:t})})}var C=n(8539),T=n(3739),_=n(7304);function k(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function H(e){const{blogPostTitle:t,...n}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,i.jsx)(k,{})})}function w(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:n,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=n.length>0;if(!(u||m||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("row","margin-top--sm",C.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(_.A,{tags:n})})}),e&&(0,i.jsx)(T.A,{className:(0,a.A)("margin-top--sm",C.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("col",{"col--9":m}),children:(0,i.jsx)(_.A,{tags:n})}),m&&(0,i.jsx)("div",{className:(0,a.A)("col text--right",{"col--3":u}),children:(0,i.jsx)(H,{blogPostTitle:r,to:e.permalink})})]})}function O(e){let{children:t,className:n}=e;const l=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,a.A)(l,n),children:[(0,i.jsx)(A,{}),(0,i.jsx)(y,{children:t}),(0,i.jsx)(w,{})]})}},261:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(758);var a=n(3526),s=n(5003),i=n(8539),r=n(7073),l=n(8777),o=n(8736),c=n(8072),d=n(5336),m=n(6070);function u(e){const{nextItem:t,prevItem:n}=e;return(0,m.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,m.jsx)(d.A,{...n,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer post"})}),t&&(0,m.jsx)(d.A,{...t,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older post"}),isNext:!0})]})}function h(){const{assets:e,metadata:t}=(0,r.e7)(),{title:n,description:a,date:i,tags:l,authors:o,frontMatter:c}=t,{keywords:d}=c,u=e.image??c.image;return(0,m.jsxs)(s.be,{title:c.title_meta??n,description:a,keywords:d,image:u,children:[(0,m.jsx)("meta",{property:"og:type",content:"article"}),(0,m.jsx)("meta",{property:"article:published_time",content:i}),o.some((e=>e.url))&&(0,m.jsx)("meta",{property:"article:author",content:o.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,m.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var g=n(950);function f(){const e=(0,r.J_)();return(0,m.jsx)(g.A,{children:(0,m.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var x=n(5686),p=n(9465);function v(e){let{sidebar:t,children:n}=e;const{metadata:a,toc:s}=(0,r.e7)(),{nextItem:i,prevItem:c,frontMatter:d}=a,{hide_table_of_contents:h,toc_min_heading_level:g,toc_max_heading_level:f}=d;return(0,m.jsxs)(l.A,{sidebar:t,toc:!h&&s.length>0?(0,m.jsx)(x.A,{toc:s,minHeadingLevel:g,maxHeadingLevel:f}):void 0,children:[(0,m.jsx)(p.A,{metadata:a}),(0,m.jsx)(o.A,{children:n}),(i||c)&&(0,m.jsx)(u,{nextItem:i,prevItem:c})]})}function j(e){const t=e.content;return(0,m.jsx)(r.in,{content:e.content,isBlogPostPage:!0,children:(0,m.jsxs)(s.e3,{className:(0,a.A)(i.G.wrapper.blogPages,i.G.page.blogPostPage),children:[(0,m.jsx)(h,{}),(0,m.jsx)(f,{}),(0,m.jsx)(v,{sidebar:e.sidebar,children:(0,m.jsx)(t,{})})]})})}},6252:(e,t,n)=>{n.d(t,{A:()=>c});n(758);var a=n(3526),s=n(384),i=n(8539),r=n(2683),l=n(6070);function o(e){let{className:t}=e;return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Rc,{}),className:(0,a.A)(t,i.G.common.unlistedBanner),children:(0,l.jsx)(s.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.AE,{}),(0,l.jsx)(o,{...e})]})}},9465:(e,t,n)=>{n.d(t,{A:()=>d});n(758);var a=n(3526),s=n(384),i=n(8539),r=n(2683),l=n(6070);function o(e){let{className:t}=e;return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Yh,{}),className:(0,a.A)(t,i.G.common.draftBanner),children:(0,l.jsx)(s.TT,{})})}var c=n(6252);function d(e){let{metadata:t}=e;const{unlisted:n,frontMatter:a}=t;return(0,l.jsxs)(l.Fragment,{children:[(n||a.unlisted)&&(0,l.jsx)(c.A,{}),a.draft&&(0,l.jsx)(o,{})]})}},5686:(e,t,n)=>{n.d(t,{A:()=>c});n(758);var a=n(3526),s=n(5215);const i={tableOfContents:"tableOfContents_Mig1",docItemContainer:"docItemContainer_sJth"};var r=n(6070);const l="table-of-contents__link toc-highlight",o="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,a.A)(i.tableOfContents,"thin-scrollbar",t),children:(0,r.jsx)(s.A,{...n,linkClassName:l,linkActiveClassName:o})})}},5215:(e,t,n)=>{n.d(t,{A:()=>f});var a=n(758),s=n(9618);function i(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...s}=e;n>=0?t[n].children.push(s):a.push(s)})),a}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function o(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>l(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function c(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.p)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:s,minHeadingLevel:i,maxHeadingLevel:r}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let s=t;s<=n;s+=1)a.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=o(l,{anchorTopOffset:n.current}),d=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(s),e.classList.add(s),t.current=e):e.classList.remove(s)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}var m=n(88),u=n(6070);function h(e){let{toc:t,className:n,linkClassName:a,isChild:s}=e;return t.length?(0,u.jsx)("ul",{className:s?void 0:n,children:t.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:a})]},e.id)))}):null}const g=a.memo(h);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:m,...h}=e;const f=(0,s.p)(),x=c??f.tableOfContents.minHeadingLevel,p=m??f.tableOfContents.maxHeadingLevel,v=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return(0,a.useMemo)((()=>r({toc:i(t),minHeadingLevel:n,maxHeadingLevel:s})),[t,n,s])}({toc:t,minHeadingLevel:x,maxHeadingLevel:p});return d((0,a.useMemo)((()=>{if(l&&o)return{linkClassName:l,linkActiveClassName:o,minHeadingLevel:x,maxHeadingLevel:p}}),[l,o,x,p])),(0,u.jsx)(g,{toc:v,className:n,linkClassName:l,...h})}},384:(e,t,n)=>{n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(758);var a=n(8072),s=n(950),i=n(6070);function r(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(a.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 o(){return(0,i.jsx)(s.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(a.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."})}}}]); \ No newline at end of file diff --git a/assets/js/cd59c184.1f43baeb.js b/assets/js/cd59c184.1f43baeb.js new file mode 100644 index 000000000..b6292a43a --- /dev/null +++ b/assets/js/cd59c184.1f43baeb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9272],{3784:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>u});var n=a(4852),l=a(6070),i=a(8591);const o={title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},r=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const t={p:"p",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.p,{children:"Hey everyone!"}),"\n",(0,l.jsx)(t.p,{children:"We're thrilled to announce that the early access phase of GameVault+ has concluded, and we're officially launching it today! It's been an incredible journey from the inception of GameVault to where we are now, and we couldn't have done it without your amazing support."}),"\n",(0,l.jsx)(t.p,{children:"GameVault+ is our way of saying thank you to our dedicated supporters while also ensuring the sustainability of our platform. For a small monthly fee, you'll gain access to premium features designed to enhance your gaming experience within GameVault. We're starting with features like animated profile pictures, custom themes, and activation of the GameVault Client API, with more exciting additions planned for the future."}),"\n",(0,l.jsx)(t.p,{children:"But our work doesn't stop here. We're committed to refining GameVault+ based on your feedback, as well as addressing key areas of improvement in the platform. This includes exploring partnerships with reputable video game databases to enhance our data offerings and refactoring our client application for optimal performance."}),"\n",(0,l.jsx)(t.p,{children:"And most importantly, we want you, our community, to have a say in the future direction of GameVault. That's why we're opening up the floor for feature suggestions through our Discord channel. Your input will help shape the next big updates to GameVault."}),"\n",(0,l.jsx)(t.p,{children:"Thank you all for your support and enthusiasm. We're excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!"})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(m,{...e})}):m(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>r});var n=a(758);const l={},i=n.createContext(l);function o(e){const t=n.useContext(i);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(l):e.components||l:o(e.components),n.createElement(i.Provider,{value:t},e.children)}},4852:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/04/14/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md","source":"@site/blog/2024-04-14.md","title":"GameVault+ out now","description":"Hey everyone!","date":"2024-04-14T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"DRM-free","permalink":"/blog/tags/drm-free"},{"inline":true,"label":"video games","permalink":"/blog/tags/video-games"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription","permalink":"/blog/tags/subscription"},{"inline":true,"label":"community-driven","permalink":"/blog/tags/community-driven"},{"inline":true,"label":"updates","permalink":"/blog/tags/updates"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"early access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"release","permalink":"/blog/tags/release"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"sustainability","permalink":"/blog/tags/sustainability"},{"inline":true,"label":"partnerships","permalink":"/blog/tags/partnerships"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"development","permalink":"/blog/tags/development"}],"readingTime":1.18,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault+ out now","authors":["alfagun74"],"tags":["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},"unlisted":false,"prevItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"},"nextItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"}}')}}]); \ No newline at end of file diff --git a/assets/js/cd59c184.9ebb86c4.js b/assets/js/cd59c184.9ebb86c4.js deleted file mode 100644 index 4d6537b04..000000000 --- a/assets/js/cd59c184.9ebb86c4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3112],{1634:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var n=t(2676),l=t(8358);const i={title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},o=void 0,r={permalink:"/blog/2024/04/14/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md",source:"@site/blog/2024-04-14.md",title:"GameVault+ out now",description:"Hey everyone!",date:"2024-04-14T00:00:00.000Z",tags:[{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"self-hosted",permalink:"/blog/tags/self-hosted"},{inline:!0,label:"platform",permalink:"/blog/tags/platform"},{inline:!0,label:"DRM-free",permalink:"/blog/tags/drm-free"},{inline:!0,label:"video games",permalink:"/blog/tags/video-games"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameVault+",permalink:"/blog/tags/game-vault"},{inline:!0,label:"subscription",permalink:"/blog/tags/subscription"},{inline:!0,label:"community-driven",permalink:"/blog/tags/community-driven"},{inline:!0,label:"updates",permalink:"/blog/tags/updates"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"},{inline:!0,label:"early access",permalink:"/blog/tags/early-access"},{inline:!0,label:"release",permalink:"/blog/tags/release"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"sustainability",permalink:"/blog/tags/sustainability"},{inline:!0,label:"partnerships",permalink:"/blog/tags/partnerships"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"improvement",permalink:"/blog/tags/improvement"},{inline:!0,label:"development",permalink:"/blog/tags/development"}],readingTime:1.18,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},unlisted:!1,prevItem:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",permalink:"/blog/2024/05/07/"},nextItem:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",permalink:"/blog/2024/04/01/2024-04-01/"}},s={authorsImageUrls:[void 0]},u=[];function m(e){const a={p:"p",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey everyone!"}),"\n",(0,n.jsx)(a.p,{children:"We're thrilled to announce that the early access phase of GameVault+ has concluded, and we're officially launching it today! It's been an incredible journey from the inception of GameVault to where we are now, and we couldn't have done it without your amazing support."}),"\n",(0,n.jsx)(a.p,{children:"GameVault+ is our way of saying thank you to our dedicated supporters while also ensuring the sustainability of our platform. For a small monthly fee, you'll gain access to premium features designed to enhance your gaming experience within GameVault. We're starting with features like animated profile pictures, custom themes, and activation of the GameVault Client API, with more exciting additions planned for the future."}),"\n",(0,n.jsx)(a.p,{children:"But our work doesn't stop here. We're committed to refining GameVault+ based on your feedback, as well as addressing key areas of improvement in the platform. This includes exploring partnerships with reputable video game databases to enhance our data offerings and refactoring our client application for optimal performance."}),"\n",(0,n.jsx)(a.p,{children:"And most importantly, we want you, our community, to have a say in the future direction of GameVault. That's why we're opening up the floor for feature suggestions through our Discord channel. Your input will help shape the next big updates to GameVault."}),"\n",(0,n.jsx)(a.p,{children:"Thank you all for your support and enthusiasm. We're excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!"})]})}function p(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>r,a:()=>o});var n=t(5271);const l={},i=n.createContext(l);function o(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cd781ce1.7f1fa5b9.js b/assets/js/cd781ce1.48e7f549.js similarity index 83% rename from assets/js/cd781ce1.7f1fa5b9.js rename to assets/js/cd781ce1.48e7f549.js index 45ec06746..3359ce2c6 100644 --- a/assets/js/cd781ce1.7f1fa5b9.js +++ b/assets/js/cd781ce1.48e7f549.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9230],{2343:a=>{a.exports=JSON.parse('{"tag":{"label":"voting","permalink":"/blog/tags/voting","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/voting","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1377],{1138:a=>{a.exports=JSON.parse('{"tag":{"label":"voting","permalink":"/blog/tags/voting","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/voting","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/cddec16f.5cd77676.js b/assets/js/cddec16f.5cd77676.js new file mode 100644 index 000000000..49facb22c --- /dev/null +++ b/assets/js/cddec16f.5cd77676.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2275],{5240:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"server-docs/setup/native","title":"Using Native Approach","description":"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.","source":"@site/docs/server-docs/setup/native.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/native","permalink":"/docs/server-docs/setup/native","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/native.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":99,"frontMatter":{"title":"Using Native Approach","sidebar_position":99},"sidebar":"docs","previous":{"title":"Using TrueNAS Scale - Legacy","permalink":"/docs/server-docs/setup/truenas-scale-legacy"},"next":{"title":"Configuration","permalink":"/docs/server-docs/configuration"}}');var i=s(6070),r=s(8591);const a={title:"Using Native Approach",sidebar_position:99},l=void 0,o={},d=[{value:"Prerequisites",id:"prerequisites",level:3},{value:"Step 1: Clone the Source Code",id:"step-1-clone-the-source-code",level:3},{value:"Step 2: Install Dependencies",id:"step-2-install-dependencies",level:3},{value:"Step 3: Set up an .env File",id:"step-3-set-up-an-env-file",level:3},{value:"Step 4: Build and Start the Server",id:"step-4-build-and-start-the-server",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Updating the Server",id:"updating-the-server",level:3}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability."}),"\n",(0,i.jsx)(n.p,{children:"Although we strongly discourage it, if none of the alternative installation methods are suitable for you, GameVault can also be installed directly on your system without using containers. The example provided here uses Debian."}),"\n",(0,i.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://nodejs.org/",children:"Node.js"})," must be installed on your system (check the required version ",(0,i.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/Dockerfile#L1",children:"here"}),")."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.postgresql.org/",children:"PostgreSQL"})," database (or configure SQLITE later on)."]}),"\n",(0,i.jsxs)(n.li,{children:["Install necessary packages: ",(0,i.jsx)(n.a,{href:"https://packages.debian.org/en/sid/p7zip-full",children:(0,i.jsx)(n.code,{children:"p7zip-full"})})," and ",(0,i.jsx)(n.a,{href:"https://packages.debian.org/en/sid/p7zip-rar",children:(0,i.jsx)(n.code,{children:"p7zip-rar"})})," (non-free-repository) (or their equivalents in your distribution)."]}),"\n",(0,i.jsxs)(n.li,{children:["Install the ",(0,i.jsx)(n.a,{href:"https://pnpm.io/",children:"parallel node package manager"}),": ",(0,i.jsx)(n.code,{children:"npm i -g pnpm"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"step-1-clone-the-source-code",children:"Step 1: Clone the Source Code"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ~\ngit clone https://github.com/Phalcode/gamevault-backend.git\ncd gamevault-backend\n"})}),"\n",(0,i.jsx)(n.h3,{id:"step-2-install-dependencies",children:"Step 2: Install Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"Now we need to install all necessary node dependencies."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm install\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Your server files are now in the ",(0,i.jsx)(n.code,{children:"dist/"})," folder."]}),"\n",(0,i.jsx)(n.h3,{id:"step-3-set-up-an-env-file",children:"Step 3: Set up an .env File"}),"\n",(0,i.jsxs)(n.p,{children:["Create a .env file in the ",(0,i.jsx)(n.code,{children:"dist/src/"})," directory and ",(0,i.jsx)(n.a,{href:"/docs/server-docs/configuration",children:"configure your GameVault as desired"})," or set them in your system/VM directly."]}),"\n",(0,i.jsx)(n.p,{children:"Example with SQLITE:"}),"\n",(0,i.jsx)(n.p,{children:"First create the necessary folders or just use existing ones in your config:"}),"\n",(0,i.jsx)(n.p,{children:"For example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ~\nmkdir -p gamevault-db gamevault-media gamevault-games gamevault-logs gamevault-plugins\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ini",children:"#/gamevault-backend/.env\nDB_SYSTEM=SQLITE\nVOLUMES_SQLITEDB=/path/for/database/files\nVOLUMES_FILES=/path/for/gane/files\nVOLUMES_MEDIA=/path/for/media/files\nVOLUMES_LOGS=/path/for/log/files\nVOLUMES_PLUGINS=/path/for/plugin/files\n"})}),"\n",(0,i.jsx)(n.h3,{id:"step-4-build-and-start-the-server",children:"Step 4: Build and Start the Server"}),"\n",(0,i.jsx)(n.p,{children:"To start the server, run:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm start\n"})}),"\n",(0,i.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,i.jsx)(n.p,{children:"You have now successfully set up your GameVault Server."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,i.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,i.jsx)(n.p,{children:"Don't put/change anything except the .env file inside the gamevault-backend folder if you don't know what you're doing."}),"\n",(0,i.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,i.jsx)(n.p,{children:"Press CTRL + C to stop the server."}),"\n",(0,i.jsx)(n.h3,{id:"updating-the-server",children:"Updating the Server"}),"\n",(0,i.jsx)(n.p,{children:"You can update the server by running"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"git pull\n"})}),"\n",(0,i.jsx)(n.p,{children:"inside of your gamevault-backend git repository. It will auto update to the latest version."}),"\n",(0,i.jsx)(n.p,{children:"You can update to a specific version by using:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"git fetch --all --tags --prune\ngit checkout tags/9.0.0\n"})}),"\n",(0,i.jsx)(n.p,{children:"for example."})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>l});var t=s(758);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.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:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cddec16f.9b0e6a28.js b/assets/js/cddec16f.9b0e6a28.js deleted file mode 100644 index ad4fd122c..000000000 --- a/assets/js/cddec16f.9b0e6a28.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5316],{3964:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var t=s(2676),i=s(8358);const r={title:"Using Native Approach",sidebar_position:99},a=void 0,l={id:"server-docs/setup/native",title:"Using Native Approach",description:"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.",source:"@site/docs/server-docs/setup/native.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/native",permalink:"/docs/server-docs/setup/native",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/native.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:99,frontMatter:{title:"Using Native Approach",sidebar_position:99},sidebar:"docs",previous:{title:"Using Synology Container Manager",permalink:"/docs/server-docs/setup/synology-container-manager"},next:{title:"Configuration",permalink:"/docs/server-docs/configuration"}},o={},d=[{value:"Prerequisites",id:"prerequisites",level:3},{value:"Step 1: Clone the Source Code",id:"step-1-clone-the-source-code",level:3},{value:"Step 2: Install Dependencies",id:"step-2-install-dependencies",level:3},{value:"Step 3: Set up an .env File",id:"step-3-set-up-an-env-file",level:3},{value:"Step 4: Build and Start the Server",id:"step-4-build-and-start-the-server",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"Additional Info",id:"additional-info",level:2},{value:"Stopping the Server",id:"stopping-the-server",level:3},{value:"Updating the Server",id:"updating-the-server",level:3}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability."}),"\n",(0,t.jsx)(n.p,{children:"Although we strongly discourage it, if none of the alternative installation methods are suitable for you, GameVault can also be installed directly on your system without using containers. The example provided here uses Debian."}),"\n",(0,t.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://nodejs.org/",children:"Node.js"})," must be installed on your system (check the required version ",(0,t.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-backend/blob/master/Dockerfile#L1",children:"here"}),")."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://www.postgresql.org/",children:"PostgreSQL"})," database (or configure SQLITE later on)."]}),"\n",(0,t.jsxs)(n.li,{children:["Install necessary packages: ",(0,t.jsx)(n.a,{href:"https://packages.debian.org/en/sid/p7zip-full",children:(0,t.jsx)(n.code,{children:"p7zip-full"})})," and ",(0,t.jsx)(n.a,{href:"https://packages.debian.org/en/sid/p7zip-rar",children:(0,t.jsx)(n.code,{children:"p7zip-rar"})})," (non-free-repository) (or their equivalents in your distribution)."]}),"\n",(0,t.jsxs)(n.li,{children:["Install the ",(0,t.jsx)(n.a,{href:"https://pnpm.io/",children:"parallel node package manager"}),": ",(0,t.jsx)(n.code,{children:"npm i -g pnpm"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"step-1-clone-the-source-code",children:"Step 1: Clone the Source Code"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~\ngit clone https://github.com/Phalcode/gamevault-backend.git\ncd gamevault-backend\n"})}),"\n",(0,t.jsx)(n.h3,{id:"step-2-install-dependencies",children:"Step 2: Install Dependencies"}),"\n",(0,t.jsx)(n.p,{children:"Now we need to install all necessary node dependencies."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm install\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Your server files are now in the ",(0,t.jsx)(n.code,{children:"dist/"})," folder."]}),"\n",(0,t.jsx)(n.h3,{id:"step-3-set-up-an-env-file",children:"Step 3: Set up an .env File"}),"\n",(0,t.jsxs)(n.p,{children:["Create a .env file in the ",(0,t.jsx)(n.code,{children:"dist/src/"})," directory and ",(0,t.jsx)(n.a,{href:"/docs/server-docs/configuration",children:"configure your GameVault as desired"})," or set them in your system/VM directly."]}),"\n",(0,t.jsx)(n.p,{children:"Example with SQLITE:"}),"\n",(0,t.jsx)(n.p,{children:"First create the necessary folders or just use existing ones in your config:"}),"\n",(0,t.jsx)(n.p,{children:"For example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~\nmkdir -p gamevault-db gamevault-media gamevault-games gamevault-logs gamevault-plugins\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ini",children:"#/gamevault-backend/.env\nDB_SYSTEM=SQLITE\nVOLUMES_SQLITEDB=/path/for/database/files\nVOLUMES_FILES=/path/for/gane/files\nVOLUMES_MEDIA=/path/for/media/files\nVOLUMES_LOGS=/path/for/log/files\nVOLUMES_PLUGINS=/path/for/plugin/files\n"})}),"\n",(0,t.jsx)(n.h3,{id:"step-4-build-and-start-the-server",children:"Step 4: Build and Start the Server"}),"\n",(0,t.jsx)(n.p,{children:"To start the server, run:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm start\n"})}),"\n",(0,t.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsx)(n.p,{children:"You have now successfully set up your GameVault Server."}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"/docs/server-docs/setup/#what-next",children:"Click here to continue."})}),"\n",(0,t.jsx)(n.h2,{id:"additional-info",children:"Additional Info"}),"\n",(0,t.jsx)(n.p,{children:"Don't put/change anything except the .env file inside the gamevault-backend folder if you don't know what you're doing."}),"\n",(0,t.jsx)(n.h3,{id:"stopping-the-server",children:"Stopping the Server"}),"\n",(0,t.jsx)(n.p,{children:"Press CTRL + C to stop the server."}),"\n",(0,t.jsx)(n.h3,{id:"updating-the-server",children:"Updating the Server"}),"\n",(0,t.jsx)(n.p,{children:"You can update the server by running"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git pull\n"})}),"\n",(0,t.jsx)(n.p,{children:"inside of your gamevault-backend git repository. It will auto update to the latest version."}),"\n",(0,t.jsx)(n.p,{children:"You can update to a specific version by using:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git fetch --all --tags --prune\ngit checkout tags/9.0.0\n"})}),"\n",(0,t.jsx)(n.p,{children:"for example."})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8358:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>a});var t=s(5271);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.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:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cee5390f.9f718f82.js b/assets/js/cee5390f.9f718f82.js new file mode 100644 index 000000000..e84d6cad8 --- /dev/null +++ b/assets/js/cee5390f.9f718f82.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5339],{6775:a=>{a.exports=JSON.parse('{"tag":{"label":"UI Update","permalink":"/blog/tags/ui-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ui-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/cee5390f.f67a1ea1.js b/assets/js/cee5390f.f67a1ea1.js deleted file mode 100644 index d5481e773..000000000 --- a/assets/js/cee5390f.f67a1ea1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[691],{9724:a=>{a.exports=JSON.parse('{"tag":{"label":"UI Update","permalink":"/blog/tags/ui-update","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ui-update","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d527dda4.0a77982f.js b/assets/js/d527dda4.cac907b5.js similarity index 85% rename from assets/js/d527dda4.0a77982f.js rename to assets/js/d527dda4.cac907b5.js index a787610b8..82e1950b0 100644 --- a/assets/js/d527dda4.0a77982f.js +++ b/assets/js/d527dda4.cac907b5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7416],{5239:a=>{a.exports=JSON.parse('{"tag":{"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/coding-chronicle","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4440],{7926:a=>{a.exports=JSON.parse('{"tag":{"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/coding-chronicle","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d53cd084.a3a38eaf.js b/assets/js/d53cd084.a3a38eaf.js new file mode 100644 index 000000000..9e580128e --- /dev/null +++ b/assets/js/d53cd084.a3a38eaf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1504],{6997:a=>{a.exports=JSON.parse('{"tag":{"label":"parental control","permalink":"/blog/tags/parental-control","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/parental-control","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d53cd084.b0b81414.js b/assets/js/d53cd084.b0b81414.js deleted file mode 100644 index cfacda4ef..000000000 --- a/assets/js/d53cd084.b0b81414.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3585],{481:a=>{a.exports=JSON.parse('{"tag":{"label":"parental control","permalink":"/blog/tags/parental-control","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/parental-control","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d5823966.0056e9ed.js b/assets/js/d5823966.0056e9ed.js deleted file mode 100644 index afd5d6f60..000000000 --- a/assets/js/d5823966.0056e9ed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7262],{6572:a=>{a.exports=JSON.parse('{"tag":{"label":"features","permalink":"/blog/tags/features","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/features","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d5823966.67f766a6.js b/assets/js/d5823966.67f766a6.js new file mode 100644 index 000000000..95cdfa164 --- /dev/null +++ b/assets/js/d5823966.67f766a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3088],{628:a=>{a.exports=JSON.parse('{"tag":{"label":"features","permalink":"/blog/tags/features","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/features","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d5dcebd7.b19bddcc.js b/assets/js/d5dcebd7.b19bddcc.js new file mode 100644 index 000000000..af7a6b26f --- /dev/null +++ b/assets/js/d5dcebd7.b19bddcc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6659],{4810:a=>{a.exports=JSON.parse('{"tag":{"label":"new name","permalink":"/blog/tags/new-name","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-name","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d5dcebd7.f25b04b3.js b/assets/js/d5dcebd7.f25b04b3.js deleted file mode 100644 index a9063f814..000000000 --- a/assets/js/d5dcebd7.f25b04b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[187],{678:a=>{a.exports=JSON.parse('{"tag":{"label":"new name","permalink":"/blog/tags/new-name","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/new-name","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d6138fd2.106d7fa0.js b/assets/js/d6138fd2.62ca3aaa.js similarity index 84% rename from assets/js/d6138fd2.106d7fa0.js rename to assets/js/d6138fd2.62ca3aaa.js index 37d531f61..53d08125c 100644 --- a/assets/js/d6138fd2.106d7fa0.js +++ b/assets/js/d6138fd2.62ca3aaa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7471],{4368:e=>{e.exports=JSON.parse('{"tag":{"label":"user engagement","permalink":"/blog/tags/user-engagement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/user-engagement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9329],{5064:e=>{e.exports=JSON.parse('{"tag":{"label":"user engagement","permalink":"/blog/tags/user-engagement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/user-engagement","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d82a1228.49eaf640.js b/assets/js/d82a1228.6c869c2d.js similarity index 84% rename from assets/js/d82a1228.49eaf640.js rename to assets/js/d82a1228.6c869c2d.js index b6ed0bc34..10d08bfb6 100644 --- a/assets/js/d82a1228.49eaf640.js +++ b/assets/js/d82a1228.6c869c2d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5050],{8846:a=>{a.exports=JSON.parse('{"tag":{"label":"early access","permalink":"/blog/tags/early-access","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/early-access","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3867],{6850:a=>{a.exports=JSON.parse('{"tag":{"label":"early access","permalink":"/blog/tags/early-access","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/early-access","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d9341347.89897fd7.js b/assets/js/d9341347.9c7e846f.js similarity index 85% rename from assets/js/d9341347.89897fd7.js rename to assets/js/d9341347.9c7e846f.js index dac71a190..cd56f3e3b 100644 --- a/assets/js/d9341347.89897fd7.js +++ b/assets/js/d9341347.9c7e846f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9490],{7995:t=>{t.exports=JSON.parse('{"tag":{"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/multi-user-authentication","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2680],{9622:t=>{t.exports=JSON.parse('{"tag":{"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/multi-user-authentication","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d9d4e1f1.1cec48e6.js b/assets/js/d9d4e1f1.1cec48e6.js new file mode 100644 index 000000000..16343f08e --- /dev/null +++ b/assets/js/d9d4e1f1.1cec48e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8987],{1384:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>g,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var a=n(8348),o=n(6070),l=n(8591);const r={title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},s=void 0,i={authorsImageUrls:[void 0]},u=[];function m(e){const t={a:"a",p:"p",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hello,"}),"\n",(0,o.jsxs)(t.p,{children:["It's been a while since we caught up here, but if you've been following the action on ",(0,o.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", you're up to speed. Nevertheless, this blog remains your spot for the key updates and announements."]})]})}function g(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var a=n(758);const o={},l=a.createContext(o);function r(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(l.Provider,{value:t},e.children)}},8348:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/11/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md","source":"@site/blog/2023-11-20.md","title":"A Look Back and a Glimpse Forward","description":"Hello,","date":"2023-11-20T00:00:00.000Z","tags":[{"inline":true,"label":"Game Development","permalink":"/blog/tags/game-development"},{"inline":true,"label":"Software Updates","permalink":"/blog/tags/software-updates"},{"inline":true,"label":"Gaming Community","permalink":"/blog/tags/gaming-community"},{"inline":true,"label":"UI Redesign","permalink":"/blog/tags/ui-redesign"},{"inline":true,"label":"Development Milestones","permalink":"/blog/tags/development-milestones"},{"inline":true,"label":"Tech Progress","permalink":"/blog/tags/tech-progress"},{"inline":true,"label":"Future Features","permalink":"/blog/tags/future-features"},{"inline":true,"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey"},{"inline":true,"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle"},{"inline":true,"label":"November Update","permalink":"/blog/tags/november-update"}],"readingTime":2.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Look Back and a Glimpse Forward","authors":["alfagun74"],"tags":["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},"unlisted":false,"prevItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"},"nextItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"}}')}}]); \ No newline at end of file diff --git a/assets/js/d9d4e1f1.ca60091f.js b/assets/js/d9d4e1f1.ca60091f.js deleted file mode 100644 index 2f2a7898f..000000000 --- a/assets/js/d9d4e1f1.ca60091f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5300],{8256:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(2676),o=n(8358);const l={title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},r=void 0,i={permalink:"/blog/2023/11/20/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md",source:"@site/blog/2023-11-20.md",title:"A Look Back and a Glimpse Forward",description:"Hello,",date:"2023-11-20T00:00:00.000Z",tags:[{inline:!0,label:"Game Development",permalink:"/blog/tags/game-development"},{inline:!0,label:"Software Updates",permalink:"/blog/tags/software-updates"},{inline:!0,label:"Gaming Community",permalink:"/blog/tags/gaming-community"},{inline:!0,label:"UI Redesign",permalink:"/blog/tags/ui-redesign"},{inline:!0,label:"Development Milestones",permalink:"/blog/tags/development-milestones"},{inline:!0,label:"Tech Progress",permalink:"/blog/tags/tech-progress"},{inline:!0,label:"Future Features",permalink:"/blog/tags/future-features"},{inline:!0,label:"GameVault Journey",permalink:"/blog/tags/game-vault-journey"},{inline:!0,label:"Coding Chronicle",permalink:"/blog/tags/coding-chronicle"},{inline:!0,label:"November Update",permalink:"/blog/tags/november-update"}],readingTime:2.26,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"A Look Back and a Glimpse Forward",authors:["alfagun74"],tags:["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},unlisted:!1,prevItem:{title:"Join the GameVault Early-Access Program Now!",permalink:"/blog/2023/12/09/"},nextItem:{title:"Please help us prioritize!",permalink:"/blog/2023/07/29/"}},s={authorsImageUrls:[void 0]},u=[];function m(e){const t={a:"a",p:"p",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hello,"}),"\n",(0,a.jsxs)(t.p,{children:["It's been a while since we caught up here, but if you've been following the action on ",(0,a.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),", you're up to speed. Nevertheless, this blog remains your spot for the key updates and announements."]})]})}function g(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var a=n(5271);const o={},l=a.createContext(o);function r(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/daddf69a.ddeb214e.js b/assets/js/daddf69a.0725d0c4.js similarity index 85% rename from assets/js/daddf69a.ddeb214e.js rename to assets/js/daddf69a.0725d0c4.js index 158590a29..34c93ce2a 100644 --- a/assets/js/daddf69a.ddeb214e.js +++ b/assets/js/daddf69a.0725d0c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5548],{3169:a=>{a.exports=JSON.parse('{"tag":{"label":"Gaming Community","permalink":"/blog/tags/gaming-community","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2256],{4674:a=>{a.exports=JSON.parse('{"tag":{"label":"Gaming Community","permalink":"/blog/tags/gaming-community","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/gaming-community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/daf02673.5a456591.js b/assets/js/daf02673.4057a387.js similarity index 83% rename from assets/js/daf02673.5a456591.js rename to assets/js/daf02673.4057a387.js index 5e8cc61ce..6592af9f7 100644 --- a/assets/js/daf02673.5a456591.js +++ b/assets/js/daf02673.4057a387.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3581],{6061:a=>{a.exports=JSON.parse('{"tag":{"label":"public","permalink":"/blog/tags/public","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/public","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8022],{8461:a=>{a.exports=JSON.parse('{"tag":{"label":"public","permalink":"/blog/tags/public","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/public","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/db0b0363.58be98a7.js b/assets/js/db0b0363.58be98a7.js deleted file mode 100644 index e3a62d443..000000000 --- a/assets/js/db0b0363.58be98a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2805],{8513:a=>{a.exports=JSON.parse('{"tag":{"label":"software licensing","permalink":"/blog/tags/software-licensing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-licensing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/db0b0363.fc6187f6.js b/assets/js/db0b0363.fc6187f6.js new file mode 100644 index 000000000..6ea6b5ccf --- /dev/null +++ b/assets/js/db0b0363.fc6187f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9],{5674:a=>{a.exports=JSON.parse('{"tag":{"label":"software licensing","permalink":"/blog/tags/software-licensing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-licensing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/dc8e8e39.1af3101c.js b/assets/js/dc8e8e39.1af3101c.js new file mode 100644 index 000000000..eb1723a90 --- /dev/null +++ b/assets/js/dc8e8e39.1af3101c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[488],{5102:a=>{a.exports=JSON.parse('{"tag":{"label":"community","permalink":"/blog/tags/community","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/dc8e8e39.610e2592.js b/assets/js/dc8e8e39.610e2592.js deleted file mode 100644 index 85b244b06..000000000 --- a/assets/js/dc8e8e39.610e2592.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1736],{2252:a=>{a.exports=JSON.parse('{"tag":{"label":"community","permalink":"/blog/tags/community","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/community","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/dcb9a9e8.91cdfa5f.js b/assets/js/dcb9a9e8.91cdfa5f.js new file mode 100644 index 000000000..b20790920 --- /dev/null +++ b/assets/js/dcb9a9e8.91cdfa5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8190],{4608:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"advanced-usage/linux-client","title":"Running the Client on Linux","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux.","source":"@site/docs/advanced-usage/linux-client.md","sourceDirName":"advanced-usage","slug":"/advanced-usage/linux-client","permalink":"/docs/advanced-usage/linux-client","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/linux-client.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Configuring Fail2Ban for GameVault","permalink":"/docs/advanced-usage/fail2ban-gamevault-guide"},"next":{"title":"Running the Client on Steamdeck","permalink":"/docs/advanced-usage/steamdeck"}}');var s=t(6070),a=t(8591);const l={},o="Running the Client on Linux",d={},c=[{value:"Getting the application",id:"getting-the-application",level:2},{value:"Setting up with Wine",id:"setting-up-with-wine",level:2},{value:"Setting up with Bottles",id:"setting-up-with-bottles",level:2},{value:"Updating the Client",id:"updating-the-client",level:2},{value:"Known issues",id:"known-issues",level:2}];function r(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"running-the-client-on-linux",children:"Running the Client on Linux"})}),"\n",(0,s.jsx)(n.p,{children:"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux."}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Please note that running GameVault on Linux using this method is considered ",(0,s.jsx)(n.strong,{children:"unsupported"})," and ",(0,s.jsx)(n.strong,{children:"unrecommended"}),". It should only be utilized as a last resort when no other options are available."]})}),"\n",(0,s.jsx)(n.h2,{id:"getting-the-application",children:"Getting the application"}),"\n",(0,s.jsxs)(n.p,{children:["To start, you need the Application files. The simplest way to get them is explained ",(0,s.jsx)(n.a,{href:"/docs/client-docs/setup#option-1-obtain-pre-built-artifacts-from-github",children:"here"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"setting-up-with-wine",children:"Setting up with Wine"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Install Wine and winetricks"}),"\n",(0,s.jsxs)(n.li,{children:["Run ",(0,s.jsx)(n.code,{children:"winetricks dotnetdesktop6"})," in a terminal"]}),"\n",(0,s.jsxs)(n.li,{children:["Launch ",(0,s.jsx)(n.code,{children:"gamevault.exe"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"setting-up-with-bottles",children:"Setting up with Bottles"}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"When using Bottles under flatpak, your data will be in the following directory:"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"~/.var/app/com.usebottles.bottles/data/bottles/[YOUR BOTTLE NAME]"})}),(0,s.jsx)(n.p,{children:"Keep that in mind when unpacking games to install them."})]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Install ",(0,s.jsx)(n.a,{href:"https://usebottles.com/",children:"Bottles"})]}),"\n",(0,s.jsxs)(n.li,{children:["Create a new bottle",(0,s.jsx)(n.br,{}),"\n",(0,s.jsx)(n.img,{alt:"Creating a new Bottle",src:t(2618).A+"",width:"672",height:"559"})]}),"\n",(0,s.jsxs)(n.li,{children:["Inside your bottle click ",(0,s.jsx)(n.code,{children:"Dependencies"})," and install ",(0,s.jsx)(n.code,{children:"dotnetcoredesktop6"}),(0,s.jsx)(n.br,{}),"\n",(0,s.jsx)(n.img,{alt:"Configuring the .NET Core Dependency",src:t(7850).A+"",width:"1920",height:"1042"})]}),"\n",(0,s.jsxs)(n.li,{children:["Go back to the main page for your bottle and press ",(0,s.jsx)(n.code,{children:"Run Executable..."})," and select ",(0,s.jsx)(n.code,{children:"gamevault.exe"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updating-the-client",children:"Updating the Client"}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Since there is currently no auto-update functionality available (as mentioned in ",(0,s.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"this link"}),"), it is your responsibility to manually update your GameVault client. To update your client, you will need to repeat the procedure in this documentation."]})}),"\n",(0,s.jsx)(n.h2,{id:"known-issues",children:"Known issues"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Text can look very broken if certain fonts are not installed on your system.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["If you're on Arch Linux, ",(0,s.jsx)(n.a,{href:"https://aur.archlinux.org/packages/ttf-ms-win11-auto",children:"this"})," AUR package fixes the issue."]}),"\n",(0,s.jsxs)(n.li,{children:["If you're on Debian, you could try to use ",(0,s.jsx)(n.a,{href:"https://packages.debian.org/ttf-mscorefonts-installer",children:"this"})," package. (untested)"]}),"\n",(0,s.jsxs)(n.li,{children:["Additionally - you can also try ",(0,s.jsx)(n.a,{href:"https://archive.org/details/windows-11-21h2-complete-font-collection",children:"this"})," and install it to your wine prefix's fonts folder ~/.wine/drive_c/windows/Fonts ; This works on the steamdeck"]}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(r,{...e})}):r(e)}},7850:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/dotnet-394a9ce8159950d1b64fc6831db7a59c.png"},2618:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/make_bottle-0aa58e120e66831b38d8c7cc6584b087.png"},8591:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>o});var i=t(758);const s={},a=i.createContext(s);function l(e){const n=i.useContext(a);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(s):e.components||s:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dcb9a9e8.b7f433a5.js b/assets/js/dcb9a9e8.b7f433a5.js deleted file mode 100644 index 4ec10ec17..000000000 --- a/assets/js/dcb9a9e8.b7f433a5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4758],{2160:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var i=t(2676),s=t(8358);const a={},l="Running the Client on Linux",o={id:"advanced-usage/linux-client",title:"Running the Client on Linux",description:"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux.",source:"@site/docs/advanced-usage/linux-client.md",sourceDirName:"advanced-usage",slug:"/advanced-usage/linux-client",permalink:"/docs/advanced-usage/linux-client",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/linux-client.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{},sidebar:"docs",previous:{title:"Configuring Fail2Ban for GameVault",permalink:"/docs/advanced-usage/fail2ban-gamevault-guide"},next:{title:"Running the Client on Steamdeck",permalink:"/docs/advanced-usage/steamdeck"}},d={},c=[{value:"Getting the application",id:"getting-the-application",level:2},{value:"Setting up with Wine",id:"setting-up-with-wine",level:2},{value:"Setting up with Bottles",id:"setting-up-with-bottles",level:2},{value:"Updating the Client",id:"updating-the-client",level:2},{value:"Known issues",id:"known-issues",level:2}];function r(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"running-the-client-on-linux",children:"Running the Client on Linux"})}),"\n",(0,i.jsx)(n.p,{children:"This page serves as a community-driven guide to assist you in setting up the GameVault client on Linux."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Please note that running GameVault on Linux using this method is considered ",(0,i.jsx)(n.strong,{children:"unsupported"})," and ",(0,i.jsx)(n.strong,{children:"unrecommended"}),". It should only be utilized as a last resort when no other options are available."]})}),"\n",(0,i.jsx)(n.h2,{id:"getting-the-application",children:"Getting the application"}),"\n",(0,i.jsxs)(n.p,{children:["To start, you need the Application files. The simplest way to get them is explained ",(0,i.jsx)(n.a,{href:"/docs/client-docs/setup#option-1-obtain-pre-built-artifacts-from-github",children:"here"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"setting-up-with-wine",children:"Setting up with Wine"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Install Wine and winetricks"}),"\n",(0,i.jsxs)(n.li,{children:["Run ",(0,i.jsx)(n.code,{children:"winetricks dotnetdesktop6"})," in a terminal"]}),"\n",(0,i.jsxs)(n.li,{children:["Launch ",(0,i.jsx)(n.code,{children:"gamevault.exe"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"setting-up-with-bottles",children:"Setting up with Bottles"}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsx)(n.p,{children:"When using Bottles under flatpak, your data will be in the following directory:"}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"~/.var/app/com.usebottles.bottles/data/bottles/[YOUR BOTTLE NAME]"})}),(0,i.jsx)(n.p,{children:"Keep that in mind when unpacking games to install them."})]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Install ",(0,i.jsx)(n.a,{href:"https://usebottles.com/",children:"Bottles"})]}),"\n",(0,i.jsxs)(n.li,{children:["Create a new bottle",(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.img,{alt:"Creating a new Bottle",src:t(9299).Z+"",width:"672",height:"559"})]}),"\n",(0,i.jsxs)(n.li,{children:["Inside your bottle click ",(0,i.jsx)(n.code,{children:"Dependencies"})," and install ",(0,i.jsx)(n.code,{children:"dotnetcoredesktop6"}),(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.img,{alt:"Configuring the .NET Core Dependency",src:t(3211).Z+"",width:"1920",height:"1042"})]}),"\n",(0,i.jsxs)(n.li,{children:["Go back to the main page for your bottle and press ",(0,i.jsx)(n.code,{children:"Run Executable..."})," and select ",(0,i.jsx)(n.code,{children:"gamevault.exe"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updating-the-client",children:"Updating the Client"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Since there is currently no auto-update functionality available (as mentioned in ",(0,i.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"this link"}),"), it is your responsibility to manually update your GameVault client. To update your client, you will need to repeat the procedure in this documentation."]})}),"\n",(0,i.jsx)(n.h2,{id:"known-issues",children:"Known issues"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Text can look very broken if certain fonts are not installed on your system.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["If you're on Arch Linux, ",(0,i.jsx)(n.a,{href:"https://aur.archlinux.org/packages/ttf-ms-win11-auto",children:"this"})," AUR package fixes the issue."]}),"\n",(0,i.jsxs)(n.li,{children:["If you're on Debian, you could try to use ",(0,i.jsx)(n.a,{href:"https://packages.debian.org/ttf-mscorefonts-installer",children:"this"})," package. (untested)"]}),"\n",(0,i.jsxs)(n.li,{children:["Additionally - you can also try ",(0,i.jsx)(n.a,{href:"https://archive.org/details/windows-11-21h2-complete-font-collection",children:"this"})," and install it to your wine prefix's fonts folder ~/.wine/drive_c/windows/Fonts ; This works on the steamdeck"]}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},3211:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/dotnet-394a9ce8159950d1b64fc6831db7a59c.png"},9299:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/make_bottle-0aa58e120e66831b38d8c7cc6584b087.png"},8358:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>l});var i=t(5271);const s={},a=i.createContext(s);function l(e){const n=i.useContext(a);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(s):e.components||s:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dd9b1d9d.cac59609.js b/assets/js/dd9b1d9d.cac59609.js new file mode 100644 index 000000000..0197d1f80 --- /dev/null +++ b/assets/js/dd9b1d9d.cac59609.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1822],{1251:s=>{s.exports=JSON.parse('{"tag":{"label":"success","permalink":"/blog/tags/success","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/success","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/defc3e62.9ac48b07.js b/assets/js/defc3e62.d5c0ecdf.js similarity index 84% rename from assets/js/defc3e62.9ac48b07.js rename to assets/js/defc3e62.d5c0ecdf.js index 08b836755..bd5a565f1 100644 --- a/assets/js/defc3e62.9ac48b07.js +++ b/assets/js/defc3e62.d5c0ecdf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4412],{7917:a=>{a.exports=JSON.parse('{"tag":{"label":"sustainability","permalink":"/blog/tags/sustainability","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/sustainability","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2251],{7761:a=>{a.exports=JSON.parse('{"tag":{"label":"sustainability","permalink":"/blog/tags/sustainability","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/sustainability","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/df8deb2d.883a1740.js b/assets/js/df8deb2d.e9f844a5.js similarity index 85% rename from assets/js/df8deb2d.883a1740.js rename to assets/js/df8deb2d.e9f844a5.js index 863a1f8a5..ee46a4ac0 100644 --- a/assets/js/df8deb2d.883a1740.js +++ b/assets/js/df8deb2d.e9f844a5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8860],{9731:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-milestone","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8530],{8878:a=>{a.exports=JSON.parse('{"tag":{"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/game-vault-milestone","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e07621e3.a0c440aa.js b/assets/js/e07621e3.a0c440aa.js new file mode 100644 index 000000000..1d165a694 --- /dev/null +++ b/assets/js/e07621e3.a0c440aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2220],{2:a=>{a.exports=JSON.parse('{"tag":{"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/love-for-game-vault","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e07621e3.ddae9e66.js b/assets/js/e07621e3.ddae9e66.js deleted file mode 100644 index dd1d34d33..000000000 --- a/assets/js/e07621e3.ddae9e66.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6182],{1865:a=>{a.exports=JSON.parse('{"tag":{"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/love-for-game-vault","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e0a15777.1e8cc06c.js b/assets/js/e0a15777.8c230e7e.js similarity index 85% rename from assets/js/e0a15777.1e8cc06c.js rename to assets/js/e0a15777.8c230e7e.js index 7fd80bb4e..f7418d121 100644 --- a/assets/js/e0a15777.1e8cc06c.js +++ b/assets/js/e0a15777.8c230e7e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9737],{9859:e=>{e.exports=JSON.parse('{"tag":{"label":"revenue generation","permalink":"/blog/tags/revenue-generation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/revenue-generation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4160],{6413:e=>{e.exports=JSON.parse('{"tag":{"label":"revenue generation","permalink":"/blog/tags/revenue-generation","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/revenue-generation","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e0c5798e.308752ac.js b/assets/js/e0c5798e.308752ac.js deleted file mode 100644 index e3756d92a..000000000 --- a/assets/js/e0c5798e.308752ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[339],{8801:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var a=n(2676),o=n(8358);const i={title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},l=void 0,s={permalink:"/blog/2024/03/28/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md",source:"@site/blog/2024-03-28.md",title:"Announcing GameVault+ (coming soon)",description:"Hey Everyone!",date:"2024-03-28T00:00:00.000Z",tags:[{inline:!0,label:"startup",permalink:"/blog/tags/startup"},{inline:!0,label:"software",permalink:"/blog/tags/software"},{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"subscription model",permalink:"/blog/tags/subscription-model"},{inline:!0,label:"development",permalink:"/blog/tags/development"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"}],readingTime:3.725,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},unlisted:!1,prevItem:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",permalink:"/blog/2024/04/01/2024-04-01/"},nextItem:{title:"Join the GameVault Early-Access Program Now!",permalink:"/blog/2023/12/09/"}},r={authorsImageUrls:[void 0]},u=[{value:"GameVault+",id:"gamevault",level:2},{value:"What is GameVault+?",id:"what-is-gamevault",level:2},{value:"So what's next?",id:"so-whats-next",level:2}];function d(e){const t={a:"a",em:"em",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,a.jsxs)(t.p,{children:["It feels like it's been ages since we last caught up regarding the development of ",(0,a.jsx)(t.a,{href:"https://gamevau.lt",children:"GameVault (the self-hostable platform for drm-free videogames)"}),", but trust me, the silence from our end doesn't mean we've been slacking off. In fact,quite the opposite has been happening behind the scenes. "]}),"\n",(0,a.jsx)(t.p,{children:"When my friend and I first launched this application, it was born out of a simple need for a solution to a problem we thought was very particular and only for ourselves. Having a steam-like platform for game files lying on my home server."}),"\n",(0,a.jsx)(t.p,{children:"We never imagined it would resonate with others or find its own place in the market. Frankly, we thought it might end up just another forgotten repository on GitHub, gathering virtual dust with no one paying it any mind."}),"\n",(0,a.jsx)(t.p,{children:"But boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there's quite a demand out there for the exact product we've been building."}),"\n",(0,a.jsxs)(t.p,{children:["We\u2019re a small indie team of two and despite juggling multiple jobs, we've poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we've received some generous donations (",(0,a.jsx)(t.em,{children:"shoutout to our two loyal monthly donors btw \u2013 you know who you are, and we're endlessly grateful!"}),"), it's clear that relying solely on sporadic tips isn't sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families."]}),"\n",(0,a.jsxs)(t.p,{children:["So, it's time for a slight change. We're thrilled to announce the upcoming release of a new version of our client application, complete with an ",(0,a.jsx)(t.strong,{children:"optional"})," subscription model we're calling..."]}),"\n",(0,a.jsx)(t.h2,{id:"gamevault",children:(0,a.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+"})}),"\n",(0,a.jsx)(t.h2,{id:"what-is-gamevault",children:"What is GameVault+?"}),"\n",(0,a.jsx)(t.p,{children:"First, to clear some of the confusion:"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:'No, this is not some shady scammy "We\'re going enterprise" rugpull'}),".\nThe core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is ",(0,a.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction/#what-if-i-cant-afford-gamevault",children:"designed to be easily bypassed if you can't or dont want to afford it."})]}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues/151",children:"It was long planned on our board and well discussed within our community"}),". Think of ",(0,a.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+"}),' as our way of saying "thank you" to our supporters and to motivate them to support us regularly. To be more specific, it\'s us giving back some goodie-features that are not necessarily needed to use GameVault back to our supporters, while they help us keep the lights on here at Phalcode.']}),"\n",(0,a.jsx)(t.p,{children:"With GameVault+, you'll gain access to premium nice-to-have features designed to enhance your GameVault experience, all for a small monthly fee of \u20ac4,99 monthly or \u20ac49.90 anually."}),"\n",(0,a.jsx)(t.p,{children:"Currently, these features include:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Uploading animated profile pictures"}),"\n",(0,a.jsx)(t.li,{children:"Applying Custom Themes"}),"\n",(0,a.jsx)(t.li,{children:"Activation of the GameVault Client API (CLI, URI, and NamedPipe Interfaces Used for client integrations with 3rd party tools like Playnite)"}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"But there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive."}),"\n",(0,a.jsxs)(t.p,{children:["All details and a Q&A are on the ",(0,a.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+ page"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"We'll be rolling out this new product today to our early access users first"})," to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It's an exciting new chapter for us, and we can't wait to have you along for the ride."]}),"\n",(0,a.jsx)(t.h2,{id:"so-whats-next",children:"So what's next?"}),"\n",(0,a.jsx)(t.p,{children:"We will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon."}),"\n",(0,a.jsxs)(t.p,{children:["After that, we will need to urgently find a solution to our heavy reliance on the ",(0,a.jsx)(t.a,{href:"https://discord.com/channels/1100920639667306496/1134496308846137404/1217726870959820861",children:"degrading and unmaintained RAWG Database"}),". We are already in contact for potential partnerships with Video-Game Databases."]}),"\n",(0,a.jsx)(t.p,{children:"Finally, we will need to do some refactoring of our client application's architecture."}),"\n",(0,a.jsxs)(t.p,{children:["But stay tuned because once all of this is done, the Next Big Feature we'll be focusing on will be open for ",(0,a.jsx)(t.strong,{children:"the community to decide"})," in ",(0,a.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"our #polls channel on Discord"}),'. So make sure to join "The Council" to get notified and vote on your most desired feature.']}),"\n",(0,a.jsx)(t.p,{children:"Thank you all for supporting us and looking forward to seeing you all on our next updates!"})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>l});var a=n(5271);const o={},i=a.createContext(o);function l(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0c5798e.3f7cd1d9.js b/assets/js/e0c5798e.3f7cd1d9.js new file mode 100644 index 000000000..87a40da67 --- /dev/null +++ b/assets/js/e0c5798e.3f7cd1d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7125],{1568:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var a=n(3696),o=n(6070),i=n(8591);const l={title:"Announcing GameVault+ (coming soon)",authors:["alfagun74"],tags:["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},s=void 0,r={authorsImageUrls:[void 0]},u=[{value:"GameVault+",id:"gamevault",level:2},{value:"What is GameVault+?",id:"what-is-gamevault",level:2},{value:"So what's next?",id:"so-whats-next",level:2}];function d(e){const t={a:"a",em:"em",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hey Everyone!"}),"\n",(0,o.jsxs)(t.p,{children:["It feels like it's been ages since we last caught up regarding the development of ",(0,o.jsx)(t.a,{href:"https://gamevau.lt",children:"GameVault (the self-hostable platform for drm-free videogames)"}),", but trust me, the silence from our end doesn't mean we've been slacking off. In fact,quite the opposite has been happening behind the scenes. "]}),"\n",(0,o.jsx)(t.p,{children:"When my friend and I first launched this application, it was born out of a simple need for a solution to a problem we thought was very particular and only for ourselves. Having a steam-like platform for game files lying on my home server."}),"\n",(0,o.jsx)(t.p,{children:"We never imagined it would resonate with others or find its own place in the market. Frankly, we thought it might end up just another forgotten repository on GitHub, gathering virtual dust with no one paying it any mind."}),"\n",(0,o.jsx)(t.p,{children:"But boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there's quite a demand out there for the exact product we've been building."}),"\n",(0,o.jsxs)(t.p,{children:["We\u2019re a small indie team of two and despite juggling multiple jobs, we've poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we've received some generous donations (",(0,o.jsx)(t.em,{children:"shoutout to our two loyal monthly donors btw \u2013 you know who you are, and we're endlessly grateful!"}),"), it's clear that relying solely on sporadic tips isn't sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families."]}),"\n",(0,o.jsxs)(t.p,{children:["So, it's time for a slight change. We're thrilled to announce the upcoming release of a new version of our client application, complete with an ",(0,o.jsx)(t.strong,{children:"optional"})," subscription model we're calling..."]}),"\n",(0,o.jsx)(t.h2,{id:"gamevault",children:(0,o.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+"})}),"\n",(0,o.jsx)(t.h2,{id:"what-is-gamevault",children:"What is GameVault+?"}),"\n",(0,o.jsx)(t.p,{children:"First, to clear some of the confusion:"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:'No, this is not some shady scammy "We\'re going enterprise" rugpull'}),".\nThe core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is ",(0,o.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction/#what-if-i-cant-afford-gamevault",children:"designed to be easily bypassed if you can't or dont want to afford it."})]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues/151",children:"It was long planned on our board and well discussed within our community"}),". Think of ",(0,o.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+"}),' as our way of saying "thank you" to our supporters and to motivate them to support us regularly. To be more specific, it\'s us giving back some goodie-features that are not necessarily needed to use GameVault back to our supporters, while they help us keep the lights on here at Phalcode.']}),"\n",(0,o.jsx)(t.p,{children:"With GameVault+, you'll gain access to premium nice-to-have features designed to enhance your GameVault experience, all for a small monthly fee of \u20ac4,99 monthly or \u20ac49.90 anually."}),"\n",(0,o.jsx)(t.p,{children:"Currently, these features include:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Uploading animated profile pictures"}),"\n",(0,o.jsx)(t.li,{children:"Applying Custom Themes"}),"\n",(0,o.jsx)(t.li,{children:"Activation of the GameVault Client API (CLI, URI, and NamedPipe Interfaces Used for client integrations with 3rd party tools like Playnite)"}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"But there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive."}),"\n",(0,o.jsxs)(t.p,{children:["All details and a Q&A are on the ",(0,o.jsx)(t.a,{href:"https://gamevau.lt/docs/gamevault-plus/introduction",children:"GameVault+ page"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"We'll be rolling out this new product today to our early access users first"})," to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It's an exciting new chapter for us, and we can't wait to have you along for the ride."]}),"\n",(0,o.jsx)(t.h2,{id:"so-whats-next",children:"So what's next?"}),"\n",(0,o.jsx)(t.p,{children:"We will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon."}),"\n",(0,o.jsxs)(t.p,{children:["After that, we will need to urgently find a solution to our heavy reliance on the ",(0,o.jsx)(t.a,{href:"https://discord.com/channels/1100920639667306496/1134496308846137404/1217726870959820861",children:"degrading and unmaintained RAWG Database"}),". We are already in contact for potential partnerships with Video-Game Databases."]}),"\n",(0,o.jsx)(t.p,{children:"Finally, we will need to do some refactoring of our client application's architecture."}),"\n",(0,o.jsxs)(t.p,{children:["But stay tuned because once all of this is done, the Next Big Feature we'll be focusing on will be open for ",(0,o.jsx)(t.strong,{children:"the community to decide"})," in ",(0,o.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"our #polls channel on Discord"}),'. So make sure to join "The Council" to get notified and vote on your most desired feature.']}),"\n",(0,o.jsx)(t.p,{children:"Thank you all for supporting us and looking forward to seeing you all on our next updates!"})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>s});var a=n(758);const o={},i=a.createContext(o);function l(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),a.createElement(i.Provider,{value:t},e.children)}},3696:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/03/28/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md","source":"@site/blog/2024-03-28.md","title":"Announcing GameVault+ (coming soon)","description":"Hey Everyone!","date":"2024-03-28T00:00:00.000Z","tags":[{"inline":true,"label":"startup","permalink":"/blog/tags/startup"},{"inline":true,"label":"software","permalink":"/blog/tags/software"},{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription model","permalink":"/blog/tags/subscription-model"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"}],"readingTime":3.725,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Announcing GameVault+ (coming soon)","authors":["alfagun74"],"tags":["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},"unlisted":false,"prevItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"},"nextItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"}}')}}]); \ No newline at end of file diff --git a/assets/js/e0da75fc.c716281e.js b/assets/js/e0da75fc.c716281e.js new file mode 100644 index 000000000..64ccf0e0d --- /dev/null +++ b/assets/js/e0da75fc.c716281e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6328],{4903:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>r});const i=JSON.parse('{"id":"advanced-usage/steamdeck","title":"Running the Client on Steamdeck","description":"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS.","source":"@site/docs/advanced-usage/steamdeck.md","sourceDirName":"advanced-usage","slug":"/advanced-usage/steamdeck","permalink":"/docs/advanced-usage/steamdeck","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/steamdeck.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Running the Client on Linux","permalink":"/docs/advanced-usage/linux-client"},"next":{"title":"Introduction","permalink":"/docs/gamevault-plus/introduction"}}');var s=t(6070),a=t(8591);const o={},d="Running the Client on Steamdeck",l={},r=[{value:"App Setup Guide",id:"app-setup-guide",level:2},{value:"Updating the Client",id:"updating-the-client",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"running-the-client-on-steamdeck",children:"Running the Client on Steamdeck"})}),"\n",(0,s.jsx)(n.p,{children:"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS."}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Please note that running GameVault on Linux using this method is considered ",(0,s.jsx)(n.strong,{children:"unsupported"})," and ",(0,s.jsx)(n.strong,{children:"unrecommended"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"app-setup-guide",children:"App Setup Guide"}),"\n",(0,s.jsxs)(n.p,{children:["To start, you need the Application files. The simplest way to get them is explained ",(0,s.jsx)(n.a,{href:"/docs/client-docs/setup#option-1-obtain-pre-built-artifacts-from-github",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Download the latest version of the GameVault app ",(0,s.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-app/releases",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Download .NET from ",(0,s.jsx)(n.a,{href:"https://download.visualstudio.microsoft.com/download/pr/3136e217-e5b7-4899-9b7e-aa52ecb8b108/d74134edaa75e3300f8692660b9fb7b5/windowsdesktop-runtime-6.0.26-win-x64.exe",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Download fonts from ",(0,s.jsx)(n.a,{href:"https://archive.org/details/windows-11-21h2-complete-font-collection",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Unzip the GameVault application where you want the application to live."}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Where you place the app is where it will install windows portable apps. Make sure you have enough space."})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add ",(0,s.jsx)(n.code,{children:"gamevault.exe"})," to Steam library as a non-steam game (This is important for the proton compdata appid... or so I've been told)."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Change game compatibility properties to use your preferred version of proton."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Change the target of the Non-steam game to the .NET installer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the game via Steam."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Install .NET."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Change the target of the Non-steam game to the ",(0,s.jsx)(n.code,{children:"gamevault.exe"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Find the Compdata folder ",(0,s.jsx)(n.code,{children:"/home/deck/.local/share/steam/steamapps/compatdata/GAMEAPPIDNUMBER/"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Easiest way to find this is to install and run protontricks in the discover store. Mine is 3860686742"})}),"\n",(0,s.jsxs)(n.ol,{start:"12",children:["\n",(0,s.jsxs)(n.li,{children:["Unzip fonts downloaded from archive.org and install to ",(0,s.jsx)(n.code,{children:"/home/deck/.local/share/steam/steamapps/compatdata/GAMEAPPIDNUMBER/pfx/drive_c/windows/Fonts"}),". (specifically Segoe UI)"]}),"\n",(0,s.jsx)(n.li,{children:"Run GameVault via Steam"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updating-the-client",children:"Updating the Client"}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Since there is currently no auto-update functionality available (as mentioned in ",(0,s.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"this link"}),"), it is your responsibility to manually update your GameVault client. To update your client, you will need to repeat the procedure in this documentation."]})})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8591:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>d});var i=t(758);const s={},a=i.createContext(s);function o(e){const n=i.useContext(a);return i.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(s):e.components||s:o(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0da75fc.d480b18e.js b/assets/js/e0da75fc.d480b18e.js deleted file mode 100644 index ecd14ee62..000000000 --- a/assets/js/e0da75fc.d480b18e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2656],{7282:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>r});var i=t(2676),s=t(8358);const a={},o="Running the Client on Steamdeck",d={id:"advanced-usage/steamdeck",title:"Running the Client on Steamdeck",description:"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS.",source:"@site/docs/advanced-usage/steamdeck.md",sourceDirName:"advanced-usage",slug:"/advanced-usage/steamdeck",permalink:"/docs/advanced-usage/steamdeck",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/steamdeck.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{},sidebar:"docs",previous:{title:"Running the Client on Linux",permalink:"/docs/advanced-usage/linux-client"},next:{title:"Introduction",permalink:"/docs/gamevault-plus/introduction"}},l={},r=[{value:"App Setup Guide",id:"app-setup-guide",level:2},{value:"Updating the Client",id:"updating-the-client",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"running-the-client-on-steamdeck",children:"Running the Client on Steamdeck"})}),"\n",(0,i.jsx)(n.p,{children:"This page serves as a community-driven guide to assist you in setting up the GameVault client on SteamOS."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Please note that running GameVault on Linux using this method is considered ",(0,i.jsx)(n.strong,{children:"unsupported"})," and ",(0,i.jsx)(n.strong,{children:"unrecommended"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"app-setup-guide",children:"App Setup Guide"}),"\n",(0,i.jsxs)(n.p,{children:["To start, you need the Application files. The simplest way to get them is explained ",(0,i.jsx)(n.a,{href:"/docs/client-docs/setup#option-1-obtain-pre-built-artifacts-from-github",children:"here"}),"."]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Download the latest version of the GameVault app ",(0,i.jsx)(n.a,{href:"https://github.com/Phalcode/gamevault-app/releases",children:"here"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Download .NET from ",(0,i.jsx)(n.a,{href:"https://download.visualstudio.microsoft.com/download/pr/3136e217-e5b7-4899-9b7e-aa52ecb8b108/d74134edaa75e3300f8692660b9fb7b5/windowsdesktop-runtime-6.0.26-win-x64.exe",children:"here"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Download fonts from ",(0,i.jsx)(n.a,{href:"https://archive.org/details/windows-11-21h2-complete-font-collection",children:"here"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Unzip the GameVault application where you want the application to live."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Where you place the app is where it will install windows portable apps. Make sure you have enough space."})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Add ",(0,i.jsx)(n.code,{children:"gamevault.exe"})," to Steam library as a non-steam game (This is important for the proton compdata appid... or so I've been told)."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Change game compatibility properties to use your preferred version of proton."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Change the target of the Non-steam game to the .NET installer."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run the game via Steam."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Install .NET."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Change the target of the Non-steam game to the ",(0,i.jsx)(n.code,{children:"gamevault.exe"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Find the Compdata folder ",(0,i.jsx)(n.code,{children:"/home/deck/.local/share/steam/steamapps/compatdata/GAMEAPPIDNUMBER/"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Easiest way to find this is to install and run protontricks in the discover store. Mine is 3860686742"})}),"\n",(0,i.jsxs)(n.ol,{start:"12",children:["\n",(0,i.jsxs)(n.li,{children:["Unzip fonts downloaded from archive.org and install to ",(0,i.jsx)(n.code,{children:"/home/deck/.local/share/steam/steamapps/compatdata/GAMEAPPIDNUMBER/pfx/drive_c/windows/Fonts"}),". (specifically Segoe UI)"]}),"\n",(0,i.jsx)(n.li,{children:"Run GameVault via Steam"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updating-the-client",children:"Updating the Client"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Since there is currently no auto-update functionality available (as mentioned in ",(0,i.jsx)(n.a,{href:"/docs/client-docs/updating-client#other-sources",children:"this link"}),"), it is your responsibility to manually update your GameVault client. To update your client, you will need to repeat the procedure in this documentation."]})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8358:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var i=t(5271);const s={},a=i.createContext(s);function o(e){const n=i.useContext(a);return i.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(s):e.components||s:o(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e3409e91.e86d8c6e.js b/assets/js/e3409e91.e86d8c6e.js new file mode 100644 index 000000000..8a0defd65 --- /dev/null +++ b/assets/js/e3409e91.e86d8c6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6231],{210:a=>{a.exports=JSON.parse('{"tag":{"label":"Discord","permalink":"/blog/tags/discord","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e3409e91.eb63e05e.js b/assets/js/e3409e91.eb63e05e.js deleted file mode 100644 index a2e2c3497..000000000 --- a/assets/js/e3409e91.eb63e05e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1180],{3687:a=>{a.exports=JSON.parse('{"tag":{"label":"Discord","permalink":"/blog/tags/discord","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e46b1034.9a2f7372.js b/assets/js/e46b1034.9a2f7372.js deleted file mode 100644 index a1c0e7449..000000000 --- a/assets/js/e46b1034.9a2f7372.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[386],{1940:a=>{a.exports=JSON.parse('{"tag":{"label":"partnerships","permalink":"/blog/tags/partnerships","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/partnerships","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e46b1034.f34d4248.js b/assets/js/e46b1034.f34d4248.js new file mode 100644 index 000000000..78725a8a8 --- /dev/null +++ b/assets/js/e46b1034.f34d4248.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1182],{2382:a=>{a.exports=JSON.parse('{"tag":{"label":"partnerships","permalink":"/blog/tags/partnerships","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/partnerships","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e4878929.194117b7.js b/assets/js/e4878929.194117b7.js new file mode 100644 index 000000000..fb78dd8ca --- /dev/null +++ b/assets/js/e4878929.194117b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7933],{3121:t=>{t.exports=JSON.parse('{"tag":{"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-community-growth","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e4878929.b897a783.js b/assets/js/e4878929.b897a783.js deleted file mode 100644 index 035ec0c31..000000000 --- a/assets/js/e4878929.b897a783.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[765],{1169:t=>{t.exports=JSON.parse('{"tag":{"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-community-growth","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e5c4b825.37ebd851.js b/assets/js/e5c4b825.37ebd851.js deleted file mode 100644 index 66bdb3186..000000000 --- a/assets/js/e5c4b825.37ebd851.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5658],{9564:a=>{a.exports=JSON.parse('{"tag":{"label":"migration finalization","permalink":"/blog/tags/migration-finalization","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/migration-finalization","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e5c4b825.b941335b.js b/assets/js/e5c4b825.b941335b.js new file mode 100644 index 000000000..f41bd613b --- /dev/null +++ b/assets/js/e5c4b825.b941335b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[933],{8003:a=>{a.exports=JSON.parse('{"tag":{"label":"migration finalization","permalink":"/blog/tags/migration-finalization","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/migration-finalization","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e623129a.cdbc5f94.js b/assets/js/e623129a.13650692.js similarity index 84% rename from assets/js/e623129a.cdbc5f94.js rename to assets/js/e623129a.13650692.js index c60bb16b7..6cd8ee8ff 100644 --- a/assets/js/e623129a.cdbc5f94.js +++ b/assets/js/e623129a.13650692.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3251],{5569:e=>{e.exports=JSON.parse('{"tag":{"label":"Future Features","permalink":"/blog/tags/future-features","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/future-features","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9508],{5353:e=>{e.exports=JSON.parse('{"tag":{"label":"Future Features","permalink":"/blog/tags/future-features","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/future-features","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e6a59d41.1d566c42.js b/assets/js/e6a59d41.1d566c42.js deleted file mode 100644 index f737b1b13..000000000 --- a/assets/js/e6a59d41.1d566c42.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[356],{4244:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=n(2676),i=n(8358);const r={sidebar_position:6},a="User Management",o={id:"server-docs/user-management",title:"User Management",description:"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively.",source:"@site/docs/server-docs/user-management.md",sourceDirName:"server-docs",slug:"/server-docs/user-management",permalink:"/docs/server-docs/user-management",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/user-management.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"docs",previous:{title:"Updating Games",permalink:"/docs/server-docs/updating-games"},next:{title:"Game Indexing",permalink:"/docs/server-docs/indexing"}},d={},l=[{value:"Admin User",id:"admin-user",level:2},{value:"Initial Setup",id:"initial-setup",level:3},{value:"Admin Role Recovery",id:"admin-role-recovery",level:2},{value:"Admin Password Recovery",id:"admin-password-recovery",level:2},{value:"User Registration",id:"user-registration",level:2},{value:"User Activation",id:"user-activation",level:2},{value:"User Roles",id:"user-roles",level:2}];function c(e){const t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"user-management",children:"User Management"})}),"\n",(0,s.jsx)(t.p,{children:"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively."}),"\n",(0,s.jsx)(t.h2,{id:"admin-user",children:"Admin User"}),"\n",(0,s.jsx)(t.h3,{id:"initial-setup",children:"Initial Setup"}),"\n",(0,s.jsx)(t.admonition,{type:"warning",children:(0,s.jsx)(t.p,{children:"GameVault does not register the first admin account for you. You will need to do that yourself."})}),"\n",(0,s.jsx)(t.p,{children:"The first registered user on a server is automatically activated and granted admin permissions. You can register it using the GameVault Client Application."}),"\n",(0,s.jsx)(t.h2,{id:"admin-role-recovery",children:"Admin Role Recovery"}),"\n",(0,s.jsxs)(t.p,{children:["If you lost your admin permissions due to misconfiguration, you can fix this by using the ",(0,s.jsx)(t.code,{children:"SERVER_ADMIN_USERNAME"})," environment variable. Simply set this variable to the username of the user you wish to elevate to admin role. Upon server startup, GameVault will automatically grant admin permissions to the specified username provided in this configuration variable."]}),"\n",(0,s.jsx)(t.h2,{id:"admin-password-recovery",children:"Admin Password Recovery"}),"\n",(0,s.jsx)(t.p,{children:"In the event that the server owner gets locked out of the admin user account due to password loss or other reasons, the GameVault Server provides an easy way to recover access."}),"\n",(0,s.jsxs)(t.p,{children:["First, set the ",(0,s.jsx)(t.code,{children:"SERVER_ADMIN_USERNAME"})," environment variable to the username of the admin user you wish to reset the password for.\nThen, set the ",(0,s.jsx)(t.code,{children:"SERVER_ADMIN_PASSWORD"})," environment variable to the desired password for the admin user."]}),"\n",(0,s.jsx)(t.p,{children:"For example:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ini",children:"SERVER_ADMIN_USERNAME=gamevaultfan1\nSERVER_ADMIN_PASSWORD=hunter2\n"})}),"\n",(0,s.jsx)(t.p,{children:"Upon the next startup of the GameVault server, the admin user's password will be updated to the specified password, allowing the user to regain access."}),"\n",(0,s.jsx)(t.h2,{id:"user-registration",children:"User Registration"}),"\n",(0,s.jsx)(t.p,{children:"You have the option to enable or disable new user registration. When tighter control is needed, you can opt to disable public registration."}),"\n",(0,s.jsxs)(t.p,{children:["Simply set the ",(0,s.jsx)(t.code,{children:"SERVER_REGISTRATION_DISABLED"})," environment variable to ",(0,s.jsx)(t.code,{children:"true"})," to easily deactivate the public user registration API in GameVault. This prevents new users from creating accounts and accessing the application."]}),"\n",(0,s.jsx)(t.p,{children:"However, even when public registration is closed, authenticated administrators retain the ability to register new users."}),"\n",(0,s.jsx)(t.h2,{id:"user-activation",children:"User Activation"}),"\n",(0,s.jsx)(t.p,{children:"The activation process is a crucial step to authorize and activate new user accounts. By default, newly registered users are required to be activated by an administrator before they can fully utilize the application."}),"\n",(0,s.jsx)(t.p,{children:"Unactivated users have limited rights, even less than the rights of a guest role user. They are treated as unauthenticated and can not access most APIs.\nAdmins are exempt from activation checks. They can activate new users through the admin panel within the GameVault application."}),"\n",(0,s.jsxs)(t.p,{children:["However, if you wish to bypass the mandatory activation step and allow new users to immediately gain full access to GameVault, you can disable the activation process. Simply set the ",(0,s.jsx)(t.code,{children:"SERVER_ACCOUNT_ACTIVATION_DISABLED"})," environment variable to ",(0,s.jsx)(t.code,{children:"true"}),". This activates users automatically upon registration, removes the activation requirement and grants immediate access to new users."]}),"\n",(0,s.jsx)(t.h2,{id:"user-roles",children:"User Roles"}),"\n",(0,s.jsx)(t.p,{children:"Roles play a crucial role in ensuring the security and proper functioning of the GameVault server. They determine the permissions and access levels granted to users within the application."}),"\n",(0,s.jsx)(t.p,{children:"GameVault implements the following roles:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Role"}),(0,s.jsx)(t.th,{children:"Description"}),(0,s.jsx)(t.th,{children:"Level"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Guest"}),(0,s.jsx)(t.td,{children:"This role allows users to view most content within the application."}),(0,s.jsx)(t.td,{children:"1"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Users (Default)"}),(0,s.jsx)(t.td,{children:"This role includes permissions such as downloading games, creating progresses, and editing the user's own profile."}),(0,s.jsx)(t.td,{children:"2"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Editors"}),(0,s.jsx)(t.td,{children:"Editors have the ability to edit and remap games within the application."}),(0,s.jsx)(t.td,{children:"3"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Admins"}),(0,s.jsx)(t.td,{children:"Admins possess full control over user management and can edit user profiles."}),(0,s.jsx)(t.td,{children:"4"})]})]})]}),"\n",(0,s.jsx)(t.p,{children:"By assigning appropriate roles to users, you can ensure that they have the necessary access and privileges based on their responsibilities."})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>a});var s=n(5271);const i={},r=s.createContext(i);function a(e){const t=s.useContext(r);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(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6a59d41.e5450944.js b/assets/js/e6a59d41.e5450944.js new file mode 100644 index 000000000..e1dc1b8b2 --- /dev/null +++ b/assets/js/e6a59d41.e5450944.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2246],{8893:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"server-docs/user-management","title":"User Management","description":"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively.","source":"@site/docs/server-docs/user-management.md","sourceDirName":"server-docs","slug":"/server-docs/user-management","permalink":"/docs/server-docs/user-management","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/user-management.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":6,"frontMatter":{"sidebar_position":6},"sidebar":"docs","previous":{"title":"Updating Games","permalink":"/docs/server-docs/updating-games"},"next":{"title":"Game Indexing","permalink":"/docs/server-docs/indexing"}}');var i=s(6070),r=s(8591);const a={sidebar_position:6},o="User Management",d={},l=[{value:"Admin User",id:"admin-user",level:2},{value:"Initial Setup",id:"initial-setup",level:3},{value:"Admin Role Recovery",id:"admin-role-recovery",level:2},{value:"Admin Password Recovery",id:"admin-password-recovery",level:2},{value:"User Registration",id:"user-registration",level:2},{value:"User Activation",id:"user-activation",level:2},{value:"User Roles",id:"user-roles",level:2}];function c(e){const t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"user-management",children:"User Management"})}),"\n",(0,i.jsx)(t.p,{children:"This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively."}),"\n",(0,i.jsx)(t.h2,{id:"admin-user",children:"Admin User"}),"\n",(0,i.jsx)(t.h3,{id:"initial-setup",children:"Initial Setup"}),"\n",(0,i.jsx)(t.admonition,{type:"warning",children:(0,i.jsx)(t.p,{children:"GameVault does not register the first admin account for you. You will need to do that yourself."})}),"\n",(0,i.jsx)(t.p,{children:"The first registered user on a server is automatically activated and granted admin permissions. You can register it using the GameVault Client Application."}),"\n",(0,i.jsx)(t.h2,{id:"admin-role-recovery",children:"Admin Role Recovery"}),"\n",(0,i.jsxs)(t.p,{children:["If you lost your admin permissions due to misconfiguration, you can fix this by using the ",(0,i.jsx)(t.code,{children:"SERVER_ADMIN_USERNAME"})," environment variable. Simply set this variable to the username of the user you wish to elevate to admin role. Upon server startup, GameVault will automatically grant admin permissions to the specified username provided in this configuration variable."]}),"\n",(0,i.jsx)(t.h2,{id:"admin-password-recovery",children:"Admin Password Recovery"}),"\n",(0,i.jsx)(t.p,{children:"In the event that the server owner gets locked out of the admin user account due to password loss or other reasons, the GameVault Server provides an easy way to recover access."}),"\n",(0,i.jsxs)(t.p,{children:["First, set the ",(0,i.jsx)(t.code,{children:"SERVER_ADMIN_USERNAME"})," environment variable to the username of the admin user you wish to reset the password for.\nThen, set the ",(0,i.jsx)(t.code,{children:"SERVER_ADMIN_PASSWORD"})," environment variable to the desired password for the admin user."]}),"\n",(0,i.jsx)(t.p,{children:"For example:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ini",children:"SERVER_ADMIN_USERNAME=gamevaultfan1\nSERVER_ADMIN_PASSWORD=hunter2\n"})}),"\n",(0,i.jsx)(t.p,{children:"Upon the next startup of the GameVault server, the admin user's password will be updated to the specified password, allowing the user to regain access."}),"\n",(0,i.jsx)(t.h2,{id:"user-registration",children:"User Registration"}),"\n",(0,i.jsx)(t.p,{children:"You have the option to enable or disable new user registration. When tighter control is needed, you can opt to disable public registration."}),"\n",(0,i.jsxs)(t.p,{children:["Simply set the ",(0,i.jsx)(t.code,{children:"SERVER_REGISTRATION_DISABLED"})," environment variable to ",(0,i.jsx)(t.code,{children:"true"})," to easily deactivate the public user registration API in GameVault. This prevents new users from creating accounts and accessing the application."]}),"\n",(0,i.jsx)(t.p,{children:"However, even when public registration is closed, authenticated administrators retain the ability to register new users."}),"\n",(0,i.jsx)(t.h2,{id:"user-activation",children:"User Activation"}),"\n",(0,i.jsx)(t.p,{children:"The activation process is a crucial step to authorize and activate new user accounts. By default, newly registered users are required to be activated by an administrator before they can fully utilize the application."}),"\n",(0,i.jsx)(t.p,{children:"Unactivated users have limited rights, even less than the rights of a guest role user. They are treated as unauthenticated and can not access most APIs.\nAdmins are exempt from activation checks. They can activate new users through the admin panel within the GameVault application."}),"\n",(0,i.jsxs)(t.p,{children:["However, if you wish to bypass the mandatory activation step and allow new users to immediately gain full access to GameVault, you can disable the activation process. Simply set the ",(0,i.jsx)(t.code,{children:"SERVER_ACCOUNT_ACTIVATION_DISABLED"})," environment variable to ",(0,i.jsx)(t.code,{children:"true"}),". This activates users automatically upon registration, removes the activation requirement and grants immediate access to new users."]}),"\n",(0,i.jsx)(t.h2,{id:"user-roles",children:"User Roles"}),"\n",(0,i.jsx)(t.p,{children:"Roles play a crucial role in ensuring the security and proper functioning of the GameVault server. They determine the permissions and access levels granted to users within the application."}),"\n",(0,i.jsx)(t.p,{children:"GameVault implements the following roles:"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Role"}),(0,i.jsx)(t.th,{children:"Description"}),(0,i.jsx)(t.th,{children:"Level"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Guest"}),(0,i.jsx)(t.td,{children:"This role allows users to view most content within the application."}),(0,i.jsx)(t.td,{children:"1"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Users (Default)"}),(0,i.jsx)(t.td,{children:"This role includes permissions such as downloading games, creating progresses, and editing the user's own profile."}),(0,i.jsx)(t.td,{children:"2"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Editors"}),(0,i.jsx)(t.td,{children:"Editors have the ability to edit and remap games within the application."}),(0,i.jsx)(t.td,{children:"3"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Admins"}),(0,i.jsx)(t.td,{children:"Admins possess full control over user management and can edit user profiles."}),(0,i.jsx)(t.td,{children:"4"})]})]})]}),"\n",(0,i.jsx)(t.p,{children:"By assigning appropriate roles to users, you can ensure that they have the necessary access and privileges based on their responsibilities."})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>o});var n=s(758);const i={},r=n.createContext(i);function a(e){const t=n.useContext(r);return n.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(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e70842e4.d1216a72.js b/assets/js/e70842e4.d1216a72.js new file mode 100644 index 000000000..5c19898e0 --- /dev/null +++ b/assets/js/e70842e4.d1216a72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9830],{5668:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>u});var n=a(4852),l=a(6070),i=a(8591);const r={title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},o=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const t={p:"p",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.p,{children:"Hey everyone!"}),"\n",(0,l.jsx)(t.p,{children:"We're thrilled to announce that the early access phase of GameVault+ has concluded, and we're officially launching it today! It's been an incredible journey from the inception of GameVault to where we are now, and we couldn't have done it without your amazing support."})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(m,{...e})}):m(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>o});var n=a(758);const l={},i=n.createContext(l);function r(e){const t=n.useContext(i);return n.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(l):e.components||l:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},4852:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/04/14/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md","source":"@site/blog/2024-04-14.md","title":"GameVault+ out now","description":"Hey everyone!","date":"2024-04-14T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"DRM-free","permalink":"/blog/tags/drm-free"},{"inline":true,"label":"video games","permalink":"/blog/tags/video-games"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription","permalink":"/blog/tags/subscription"},{"inline":true,"label":"community-driven","permalink":"/blog/tags/community-driven"},{"inline":true,"label":"updates","permalink":"/blog/tags/updates"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"early access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"release","permalink":"/blog/tags/release"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"sustainability","permalink":"/blog/tags/sustainability"},{"inline":true,"label":"partnerships","permalink":"/blog/tags/partnerships"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"development","permalink":"/blog/tags/development"}],"readingTime":1.18,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault+ out now","authors":["alfagun74"],"tags":["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},"unlisted":false,"prevItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"},"nextItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"}}')}}]); \ No newline at end of file diff --git a/assets/js/e70842e4.f0b00acd.js b/assets/js/e70842e4.f0b00acd.js deleted file mode 100644 index 57bc26a2a..000000000 --- a/assets/js/e70842e4.f0b00acd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5912],{4712:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>r,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var t=n(2676),l=n(8358);const i={title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},o=void 0,s={permalink:"/blog/2024/04/14/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md",source:"@site/blog/2024-04-14.md",title:"GameVault+ out now",description:"Hey everyone!",date:"2024-04-14T00:00:00.000Z",tags:[{inline:!0,label:"gaming",permalink:"/blog/tags/gaming"},{inline:!0,label:"self-hosted",permalink:"/blog/tags/self-hosted"},{inline:!0,label:"platform",permalink:"/blog/tags/platform"},{inline:!0,label:"DRM-free",permalink:"/blog/tags/drm-free"},{inline:!0,label:"video games",permalink:"/blog/tags/video-games"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameVault+",permalink:"/blog/tags/game-vault"},{inline:!0,label:"subscription",permalink:"/blog/tags/subscription"},{inline:!0,label:"community-driven",permalink:"/blog/tags/community-driven"},{inline:!0,label:"updates",permalink:"/blog/tags/updates"},{inline:!0,label:"announcement",permalink:"/blog/tags/announcement"},{inline:!0,label:"early access",permalink:"/blog/tags/early-access"},{inline:!0,label:"release",permalink:"/blog/tags/release"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"sustainability",permalink:"/blog/tags/sustainability"},{inline:!0,label:"partnerships",permalink:"/blog/tags/partnerships"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"improvement",permalink:"/blog/tags/improvement"},{inline:!0,label:"development",permalink:"/blog/tags/development"}],readingTime:1.18,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"GameVault+ out now",authors:["alfagun74"],tags:["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},unlisted:!1,prevItem:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",permalink:"/blog/2024/05/07/"},nextItem:{title:"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!",permalink:"/blog/2024/04/01/2024-04-01/"}},r={authorsImageUrls:[void 0]},m=[];function u(e){const a={p:"p",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.p,{children:"Hey everyone!"}),"\n",(0,t.jsx)(a.p,{children:"We're thrilled to announce that the early access phase of GameVault+ has concluded, and we're officially launching it today! It's been an incredible journey from the inception of GameVault to where we are now, and we couldn't have done it without your amazing support."})]})}function g(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>s,a:()=>o});var t=n(5271);const l={},i=t.createContext(l);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e78c2f6e.826f4032.js b/assets/js/e78c2f6e.cc516231.js similarity index 84% rename from assets/js/e78c2f6e.826f4032.js rename to assets/js/e78c2f6e.cc516231.js index 23fb6332e..6d052eb38 100644 --- a/assets/js/e78c2f6e.826f4032.js +++ b/assets/js/e78c2f6e.cc516231.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1545],{2415:e=>{e.exports=JSON.parse('{"tag":{"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/creepy-behavior","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8104],{1853:e=>{e.exports=JSON.parse('{"tag":{"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/creepy-behavior","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e7aa45d5.8a002343.js b/assets/js/e7aa45d5.8a002343.js new file mode 100644 index 000000000..3e9cbea75 --- /dev/null +++ b/assets/js/e7aa45d5.8a002343.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1837],{9294:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>n,toc:()=>u});var n=a(4871),o=a(6070),i=a(8591);const l={title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},r=void 0,s={authorsImageUrls:[void 0]},u=[];function m(e){const t={a:"a",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hello everyone!"}),"\n",(0,o.jsx)(t.p,{children:"We hope you're all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers. Your enthusiasm and dedication to making GameVault even better are truly inspiring to us."}),"\n",(0,o.jsx)(t.p,{children:"As many of you may already know, GameVault is a passion project for us, and while we are mostly convinced by your fantastic ideas, it may take some time for us to implement them. Our team meetings happen in our free time, and although we genuinely want to incorporate your suggestions into our roadmap, we are limited by the time and capacity we can dedicate to the project. Moreover, we want to ensure that the features we develop are refined, polished, and also the most desired in the users' opinions, which adds to the timeline."}),"\n",(0,o.jsxs)(t.p,{children:["We believe that collaboration with our incredible community is the key to success, and that's why we want to introduce you to our Roadmap. It displays all new issues, planned tasks we want to work on, and all the ongoing work in a well-organized Kanban Board. ",(0,o.jsx)(t.a,{href:"https://github.com/orgs/Phalcode/projects/4",children:"You can find it right here."})]}),"\n",(0,o.jsx)(t.p,{children:"To ensure that GameVault's development aligns better with your needs, we kindly request your active participation. By voting on GitHub with a Thumbs Up or a Thumbs Down on new and planned issues, you can help us prioritize them effectively. We value your opinion: What features do you feel are most crucial? What aspects of the platform do you find most bothersome? What issues do you see as unnecessary or bloated? Your input will mainly shape the direction we take."}),"\n",(0,o.jsxs)(t.p,{children:["If you're eager to go the extra mile and actively contribute to shaping GameVault further, we invite you to ",(0,o.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"join our Discord community"}),' and becoming a "Council Member". By becoming a "Council Member" and enabling Poll Notifications under "#Channels & Roles", you will have a direct say in the future of GameVault because you will get notifications about opinion polls we run from time to time.']}),"\n",(0,o.jsx)(t.p,{children:"We cannot stress enough how much we appreciate your involvement in our endeavor to create the ultimate gaming experience for all of you. Your passion and feedback are invaluable, and we are committed to making GameVault the best it can be, together."}),"\n",(0,o.jsx)(t.p,{children:"Thank you for being part of this amazing journey with us!"})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>l,x:()=>r});var n=a(758);const o={},i=n.createContext(o);function l(e){const t=n.useContext(i);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(o):e.components||o:l(e.components),n.createElement(i.Provider,{value:t},e.children)}},4871:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/29/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md","source":"@site/blog/2023-07-29.md","title":"Please help us prioritize!","description":"Hello everyone!","date":"2023-07-29T00:00:00.000Z","tags":[{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"roadmap","permalink":"/blog/tags/roadmap"},{"inline":true,"label":"collaboration","permalink":"/blog/tags/collaboration"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"GitHub","permalink":"/blog/tags/git-hub"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"Kanban Board","permalink":"/blog/tags/kanban-board"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Council Member","permalink":"/blog/tags/council-member"},{"inline":true,"label":"polls","permalink":"/blog/tags/polls"},{"inline":true,"label":"gaming experience","permalink":"/blog/tags/gaming-experience"}],"readingTime":1.995,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Please help us prioritize!","authors":["alfagun74"],"tags":["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},"unlisted":false,"prevItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"},"nextItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"}}')}}]); \ No newline at end of file diff --git a/assets/js/e7aa45d5.9843d9eb.js b/assets/js/e7aa45d5.9843d9eb.js deleted file mode 100644 index 44043053b..000000000 --- a/assets/js/e7aa45d5.9843d9eb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9886],{3581:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var n=t(2676),o=t(8358);const i={title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},l=void 0,r={permalink:"/blog/2023/07/29/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md",source:"@site/blog/2023-07-29.md",title:"Please help us prioritize!",description:"Hello everyone!",date:"2023-07-29T00:00:00.000Z",tags:[{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"development",permalink:"/blog/tags/development"},{inline:!0,label:"roadmap",permalink:"/blog/tags/roadmap"},{inline:!0,label:"collaboration",permalink:"/blog/tags/collaboration"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"GitHub",permalink:"/blog/tags/git-hub"},{inline:!0,label:"voting",permalink:"/blog/tags/voting"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"platform",permalink:"/blog/tags/platform"},{inline:!0,label:"Kanban Board",permalink:"/blog/tags/kanban-board"},{inline:!0,label:"Discord",permalink:"/blog/tags/discord"},{inline:!0,label:"Council Member",permalink:"/blog/tags/council-member"},{inline:!0,label:"polls",permalink:"/blog/tags/polls"},{inline:!0,label:"gaming experience",permalink:"/blog/tags/gaming-experience"}],readingTime:1.995,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Please help us prioritize!",authors:["alfagun74"],tags:["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},unlisted:!1,prevItem:{title:"A Look Back and a Glimpse Forward",permalink:"/blog/2023/11/20/"},nextItem:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",permalink:"/blog/2023/07/24/"}},s={authorsImageUrls:[void 0]},u=[];function m(e){const a={a:"a",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hello everyone!"}),"\n",(0,n.jsx)(a.p,{children:"We hope you're all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers. Your enthusiasm and dedication to making GameVault even better are truly inspiring to us."}),"\n",(0,n.jsx)(a.p,{children:"As many of you may already know, GameVault is a passion project for us, and while we are mostly convinced by your fantastic ideas, it may take some time for us to implement them. Our team meetings happen in our free time, and although we genuinely want to incorporate your suggestions into our roadmap, we are limited by the time and capacity we can dedicate to the project. Moreover, we want to ensure that the features we develop are refined, polished, and also the most desired in the users' opinions, which adds to the timeline."}),"\n",(0,n.jsxs)(a.p,{children:["We believe that collaboration with our incredible community is the key to success, and that's why we want to introduce you to our Roadmap. It displays all new issues, planned tasks we want to work on, and all the ongoing work in a well-organized Kanban Board. ",(0,n.jsx)(a.a,{href:"https://github.com/orgs/Phalcode/projects/4",children:"You can find it right here."})]}),"\n",(0,n.jsx)(a.p,{children:"To ensure that GameVault's development aligns better with your needs, we kindly request your active participation. By voting on GitHub with a Thumbs Up or a Thumbs Down on new and planned issues, you can help us prioritize them effectively. We value your opinion: What features do you feel are most crucial? What aspects of the platform do you find most bothersome? What issues do you see as unnecessary or bloated? Your input will mainly shape the direction we take."}),"\n",(0,n.jsxs)(a.p,{children:["If you're eager to go the extra mile and actively contribute to shaping GameVault further, we invite you to ",(0,n.jsx)(a.a,{href:"https://discord.gg/NEdNen2dSu",children:"join our Discord community"}),' and becoming a "Council Member". By becoming a "Council Member" and enabling Poll Notifications under "#Channels & Roles", you will have a direct say in the future of GameVault because you will get notifications about opinion polls we run from time to time.']}),"\n",(0,n.jsx)(a.p,{children:"We cannot stress enough how much we appreciate your involvement in our endeavor to create the ultimate gaming experience for all of you. Your passion and feedback are invaluable, and we are committed to making GameVault the best it can be, together."}),"\n",(0,n.jsx)(a.p,{children:"Thank you for being part of this amazing journey with us!"})]})}function c(e={}){const{wrapper:a}={...(0,o.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>r,a:()=>l});var n=t(5271);const o={},i=n.createContext(o);function l(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),n.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e935068c.80350e6e.js b/assets/js/e935068c.50671768.js similarity index 84% rename from assets/js/e935068c.80350e6e.js rename to assets/js/e935068c.50671768.js index ebfa6b654..3490f39f0 100644 --- a/assets/js/e935068c.80350e6e.js +++ b/assets/js/e935068c.50671768.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8307],{3419:e=>{e.exports=JSON.parse('{"tag":{"label":"Discord server","permalink":"/blog/tags/discord-server","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-server","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5872],{2953:e=>{e.exports=JSON.parse('{"tag":{"label":"Discord server","permalink":"/blog/tags/discord-server","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/discord-server","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e98ed1e4.63e2958e.js b/assets/js/e98ed1e4.be4c2b71.js similarity index 85% rename from assets/js/e98ed1e4.63e2958e.js rename to assets/js/e98ed1e4.be4c2b71.js index e54bbbfeb..ae806e542 100644 --- a/assets/js/e98ed1e4.63e2958e.js +++ b/assets/js/e98ed1e4.be4c2b71.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3017],{7459:a=>{a.exports=JSON.parse('{"tag":{"label":"name migration progress","permalink":"/blog/tags/name-migration-progress","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/name-migration-progress","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8966],{1534:a=>{a.exports=JSON.parse('{"tag":{"label":"name migration progress","permalink":"/blog/tags/name-migration-progress","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/name-migration-progress","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e9e0f988.10805eba.js b/assets/js/e9e0f988.10805eba.js deleted file mode 100644 index bd9651091..000000000 --- a/assets/js/e9e0f988.10805eba.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[310],{2607:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(2676),s=n(8358);const i={sidebar_position:3},a="Updating the Client",r={id:"client-docs/updating-client",title:"Updating the Client",description:"The process for updating the app depends on the installation source.",source:"@site/docs/client-docs/updating-client.md",sourceDirName:"client-docs",slug:"/client-docs/updating-client",permalink:"/docs/client-docs/updating-client",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/updating-client.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"docs",previous:{title:"How to Use",permalink:"/docs/client-docs/how-to-use"},next:{title:"Data Management",permalink:"/docs/client-docs/data"}},c={},d=[{value:"Microsoft Store",id:"microsoft-store",level:2},{value:"Other Sources",id:"other-sources",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"updating-the-client",children:"Updating the Client"})}),"\n",(0,o.jsx)(t.p,{children:"The process for updating the app depends on the installation source."}),"\n",(0,o.jsx)(t.h2,{id:"microsoft-store",children:"Microsoft Store"}),"\n",(0,o.jsx)(t.p,{children:"If you obtained the app from the Microsoft Store, we're pleased to inform you that our Client app features an automatic update functionality through the Microsoft Store. When you launch the app and observe the spinning logo, it automatically checks for available updates. If a new version is detected, the app prompts you to install it. After the update is installed, the application will close, and you'll need to manually restart it. Once restarted, you'll be using the most recent version."}),"\n",(0,o.jsx)(t.h2,{id:"other-sources",children:"Other Sources"}),"\n",(0,o.jsx)(t.p,{children:"If you acquired the app from a different source, such as by self-compiling, extracting it from the .appxbundle, or downloading the binaries from GitHub, it becomes your responsibility to stay updated with the latest releases and perform the installations."}),"\n",(0,o.jsxs)(t.p,{children:["Be sure to ",(0,o.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"join our Discord community"})," and watch our Github Projects to stay informed about the latest advancements."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(5271);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.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(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e9e0f988.b6a8b434.js b/assets/js/e9e0f988.b6a8b434.js new file mode 100644 index 000000000..d2457e62d --- /dev/null +++ b/assets/js/e9e0f988.b6a8b434.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6929],{4462:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"client-docs/updating-client","title":"Updating the Client","description":"The process for updating the app depends on the installation source.","source":"@site/docs/client-docs/updating-client.md","sourceDirName":"client-docs","slug":"/client-docs/updating-client","permalink":"/docs/client-docs/updating-client","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/updating-client.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"docs","previous":{"title":"How to Use","permalink":"/docs/client-docs/how-to-use"},"next":{"title":"Data Management","permalink":"/docs/client-docs/data"}}');var s=n(6070),i=n(8591);const a={sidebar_position:3},r="Updating the Client",c={},d=[{value:"Microsoft Store",id:"microsoft-store",level:2},{value:"Other Sources",id:"other-sources",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"updating-the-client",children:"Updating the Client"})}),"\n",(0,s.jsx)(t.p,{children:"The process for updating the app depends on the installation source."}),"\n",(0,s.jsx)(t.h2,{id:"microsoft-store",children:"Microsoft Store"}),"\n",(0,s.jsx)(t.p,{children:"If you obtained the app from the Microsoft Store, we're pleased to inform you that our Client app features an automatic update functionality through the Microsoft Store. When you launch the app and observe the spinning logo, it automatically checks for available updates. If a new version is detected, the app prompts you to install it. After the update is installed, the application will close, and you'll need to manually restart it. Once restarted, you'll be using the most recent version."}),"\n",(0,s.jsx)(t.h2,{id:"other-sources",children:"Other Sources"}),"\n",(0,s.jsx)(t.p,{children:"If you acquired the app from a different source, such as by self-compiling, extracting it from the .appxbundle, or downloading the binaries from GitHub, it becomes your responsibility to stay updated with the latest releases and perform the installations."}),"\n",(0,s.jsxs)(t.p,{children:["Be sure to ",(0,s.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"join our Discord community"})," and watch our Github Projects to stay informed about the latest advancements."]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var o=n(758);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.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(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e9e1de17.538584e4.js b/assets/js/e9e1de17.538584e4.js new file mode 100644 index 000000000..57c50d1d2 --- /dev/null +++ b/assets/js/e9e1de17.538584e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7722],{5062:e=>{e.exports=JSON.parse('{"tag":{"label":"software development","permalink":"/blog/tags/software-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/e9e1de17.929612ec.js b/assets/js/e9e1de17.929612ec.js deleted file mode 100644 index 5e4be79b3..000000000 --- a/assets/js/e9e1de17.929612ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9473],{233:e=>{e.exports=JSON.parse('{"tag":{"label":"software development","permalink":"/blog/tags/software-development","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/software-development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/ec46a009.1391d8ed.js b/assets/js/ec46a009.1391d8ed.js new file mode 100644 index 000000000..7002a1301 --- /dev/null +++ b/assets/js/ec46a009.1391d8ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8983],{490:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"gamevault-plus/introduction","title":"Introduction","description":"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features.","source":"@site/docs/gamevault-plus/introduction.md","sourceDirName":"gamevault-plus","slug":"/gamevault-plus/introduction","permalink":"/docs/gamevault-plus/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/introduction.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":1,"frontMatter":{"title":"Introduction","hide_title":true,"sidebar_position":1,"description":"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features."},"sidebar":"docs","previous":{"title":"Running the Client on Steamdeck","permalink":"/docs/advanced-usage/steamdeck"},"next":{"title":"Client Setup","permalink":"/docs/gamevault-plus/client-setup"}}');var i=a(6070),r=a(8591);const o={title:"Introduction",hide_title:!0,sidebar_position:1,description:"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features."},s=void 0,l={},u=[{value:"Introduction",id:"introduction",level:2},{value:"Feature List",id:"feature-list",level:2},{value:"Pricing",id:"pricing",level:2},{value:"Get Started",id:"get-started",level:2},{value:"Questions and Answers",id:"questions-and-answers",level:2},{value:"What is Phalcode?",id:"what-is-phalcode",level:3},{value:"I have trouble with GameVault+ and I need support. How can I contact you?",id:"i-have-trouble-with-gamevault-and-i-need-support-how-can-i-contact-you",level:3},{value:"How do I manage billing and payments?",id:"how-do-i-manage-billing-and-payments",level:3},{value:"What payment methods are accepted for GameVault+ subscriptions?",id:"what-payment-methods-are-accepted-for-gamevault-subscriptions",level:3},{value:"Are there going to be more features added to GameVault+?",id:"are-there-going-to-be-more-features-added-to-gamevault",level:3},{value:"Can GameVault+ be shared with multiple users?",id:"can-gamevault-be-shared-with-multiple-users",level:3},{value:"How many devices can I have in my GameVault+ subscription?",id:"how-many-devices-can-i-have-in-my-gamevault-subscription",level:3},{value:"Can GameVault+ be used offline?",id:"can-gamevault-be-used-offline",level:3},{value:"How does GameVault+ ensure user privacy protection?",id:"how-does-gamevault-ensure-user-privacy-protection",level:3},{value:"Will GameVault+ support more integrations with other software in the future?",id:"will-gamevault-support-more-integrations-with-other-software-in-the-future",level:3},{value:"Can users suggest or vote on new features for GameVault+?",id:"can-users-suggest-or-vote-on-new-features-for-gamevault",level:3},{value:"Which Client Application versions are supported?",id:"which-client-application-versions-are-supported",level:3},{value:"Are commercial licenses available for GameVault+?",id:"are-commercial-licenses-available-for-gamevault",level:3},{value:"What if i cant afford GameVault+?",id:"what-if-i-cant-afford-gamevault",level:3}];function c(e){const t={a:"a",admonition:"admonition",blockquote:"blockquote",br:"br",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{class:"banner",children:[(0,i.jsx)("img",{src:"/img/gamevault-plus.png",alt:"GameVault+ Banner"}),(0,i.jsx)("strong",{children:"GameVault+"})]}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Elevate Your GameVault Experience with Premium Features"}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsxs)(t.p,{children:["Welcome to ",(0,i.jsx)(t.strong,{children:"GameVault+"}),", the premium upgrade subscription designed for enthusiasts seeking an enhanced GameVault experience. Here we are gradually adding a variety of exquisite nice to have features to enrich your time with GameVault while supporting us as developers and keeping this project alive. The subscription is priced affordably and is entirely optional, ensuring that our core product remains freely accessible to all."]}),"\n",(0,i.jsx)(t.h2,{id:"feature-list",children:"Feature List"}),"\n",(0,i.jsx)(t.p,{children:"As of now, we are offering the following features:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"\ud83d\udcf8 Uploading animated profile pictures"}),"\n",(0,i.jsx)(t.li,{children:"\ud83c\udfa8 Custom Themes"}),"\n",(0,i.jsx)(t.li,{children:"\ud83d\udcbb GameVault Client API (Interfaces for integrations like Playnite)"}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"pricing",children:"Pricing"}),"\n",(0,i.jsxs)(t.p,{children:["The GameVault+ subscription is priced affordably at only ",(0,i.jsx)(t.strong,{children:"\u20ac 4.99/month"})," or ",(0,i.jsx)(t.strong,{children:"\u20ac 49.90/year"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"get-started",children:"Get Started"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"https://phalco.de/account/login",children:"Sign up or sign in"})," to your personal Phalcode account"]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://phalco.de/products/gamevault-plus/checkout",children:"Subscribe to a GameVault+ Plan"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/client-setup",children:"Set up your GameVault Client Application"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.strong,{children:"Enjoy premium features while supporting us \ud83e\udd73\ud83d\udc83"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"questions-and-answers",children:"Questions and Answers"}),"\n",(0,i.jsx)(t.h3,{id:"what-is-phalcode",children:"What is Phalcode?"}),"\n",(0,i.jsxs)(t.p,{children:["Phalcode is the small startup company developing GameVault. We are just two friends developing software and based in germany. You can find more information about us on our ",(0,i.jsx)(t.a,{href:"https://phalco.de",children:"website"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"i-have-trouble-with-gamevault-and-i-need-support-how-can-i-contact-you",children:"I have trouble with GameVault+ and I need support. How can I contact you?"}),"\n",(0,i.jsxs)(t.p,{children:["Contact the developers ",(0,i.jsx)(t.strong,{children:"directly"})," on ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," or via our ",(0,i.jsx)(t.a,{href:"mailto:contact@phalco.de",children:"email"}),". Do ",(0,i.jsx)(t.strong,{children:"not"})," use the public discord channels for support regarding your personal GameVault+ subscription."]}),"\n",(0,i.jsx)(t.h3,{id:"how-do-i-manage-billing-and-payments",children:"How do I manage billing and payments?"}),"\n",(0,i.jsxs)(t.p,{children:["GameVault+ uses the Stripe billing system for your convenience. Easily handle your subscription, review billing details, and make changes through ",(0,i.jsx)(t.a,{href:"https://billing.stripe.com/p/login/7sI9B10uP6kj36M000",children:"our Stripe Customer Portal"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"what-payment-methods-are-accepted-for-gamevault-subscriptions",children:"What payment methods are accepted for GameVault+ subscriptions?"}),"\n",(0,i.jsx)(t.p,{children:"We offer several easy ways to pay for your GameVault+ subscription. You can use credit or debit cards, popular digital wallets, various bank redirects or even SEPA direct debit transfers. We want to make it convenient for you to choose how you pay."}),"\n",(0,i.jsx)(t.admonition,{title:"Important: Potential Delays",type:"note",children:(0,i.jsx)(t.p,{children:"Please be aware that if you use Bancontact, iDEAL, SOFORT or SEPA Direct Debit as your payment method, there might be delays in confirming your payment. To get your GameVault+ subscription quickly, we recommend using a payment method that confirms faster."})}),"\n",(0,i.jsx)(t.h3,{id:"are-there-going-to-be-more-features-added-to-gamevault",children:"Are there going to be more features added to GameVault+?"}),"\n",(0,i.jsx)(t.p,{children:"Of course!, You are the people keeping our project alive after all."}),"\n",(0,i.jsx)(t.p,{children:"Expect updates with awesome new GameVault+ content and improvements down thre road. We are committed to enhancing the GameVault+ experience."}),"\n",(0,i.jsx)(t.h3,{id:"can-gamevault-be-shared-with-multiple-users",children:"Can GameVault+ be shared with multiple users?"}),"\n",(0,i.jsx)(t.p,{children:"No, your GameVault+ subscription is designed for personal use only. Please avoid sharing it with anyone else."}),"\n",(0,i.jsx)(t.p,{children:"You can enjoy the benefits of GameVault+ on any GameVault Server you connect to. However, keep in mind that server administrators may choose to disable certain features offered by GameVault+ in their configurations."}),"\n",(0,i.jsx)(t.h3,{id:"how-many-devices-can-i-have-in-my-gamevault-subscription",children:"How many devices can I have in my GameVault+ subscription?"}),"\n",(0,i.jsx)(t.p,{children:"Your subscription isn't restricted to a specific number of active devices at the moment."}),"\n",(0,i.jsx)(t.h3,{id:"can-gamevault-be-used-offline",children:"Can GameVault+ be used offline?"}),"\n",(0,i.jsx)(t.p,{children:"Initially, you'll need an internet connection to download and set up your GameVault+ license."}),"\n",(0,i.jsx)(t.p,{children:"Once that setup is complete, GameVault+ can be accessed offline throughout your current subscription period. For those who prefer offline access, we suggest opting for an annual subscription, as it technically only requires an internet connection once a year."}),"\n",(0,i.jsx)(t.h3,{id:"how-does-gamevault-ensure-user-privacy-protection",children:"How does GameVault+ ensure user privacy protection?"}),"\n",(0,i.jsx)(t.p,{children:"At Phalcode, keeping user privacy safe is our very top priority. We use strong security measures, including encryption, to protect user data. We also follow GDPR rules to make sure we're following privacy laws."}),"\n",(0,i.jsxs)(t.p,{children:["Additionally, all billing and payment info is stored securely on the servers of our billing partner, Stripe, which meets PCI compliance standards. For more details on Stripe's security, you can check it out ",(0,i.jsx)(t.a,{href:"https://docs.stripe.com/security",children:"here"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["You can find all details in our ",(0,i.jsx)(t.a,{href:"https://phalco.de/privacy",children:"privacy policy"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"will-gamevault-support-more-integrations-with-other-software-in-the-future",children:"Will GameVault+ support more integrations with other software in the future?"}),"\n",(0,i.jsx)(t.p,{children:"We hope so. We're actively exploring partnerships and integrations with other gaming platforms and tools to provide a more interconnected gaming experience."}),"\n",(0,i.jsx)(t.h3,{id:"can-users-suggest-or-vote-on-new-features-for-gamevault",children:"Can users suggest or vote on new features for GameVault+?"}),"\n",(0,i.jsxs)(t.p,{children:["Certainly! We encourage user feedback and suggestions. While we may not implement every idea, we value community input in shaping the future of GameVault+. Share your ideas through our feedback channels, primarily on ",(0,i.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues",children:"Github"})," and ",(0,i.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"which-client-application-versions-are-supported",children:"Which Client Application versions are supported?"}),"\n",(0,i.jsx)(t.p,{children:"GameVault+ features are available from the official GameVault Client application version 1.9.0.0 and above. It does not matter if you got it from the Microsoft Store or used an alternative installation option."}),"\n",(0,i.jsx)(t.h3,{id:"are-commercial-licenses-available-for-gamevault",children:"Are commercial licenses available for GameVault+?"}),"\n",(0,i.jsxs)(t.p,{children:["There are, but for commercial use, please ",(0,i.jsx)(t.a,{href:"mailto:contact@phalco.de",children:"contact us directly"})," to discuss an individual licensing agreement.",(0,i.jsx)(t.br,{}),"\n","Personal subscriptions are tailored for individual users, but we're happy to collaborate with businesses for customized solutions and volume licenses."]}),"\n",(0,i.jsx)(t.h3,{id:"what-if-i-cant-afford-gamevault",children:"What if i cant afford GameVault+?"}),"\n",(0,i.jsxs)(t.p,{children:["We totally understand that not everyone can afford GameVault+, and that's fine. From our perspective, you're free to ",(0,i.jsx)(t.em,{children:"tinker"})," your way around the paywall for your personal use. The source code is on ",(0,i.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app",children:"Github"}),". But ",(0,i.jsx)(t.strong,{children:"please"})," avoid pirated versions, as they may contain malware, and also ",(0,i.jsx)(t.strong,{children:"please"})," refrain from sharing your bypass-modifications."]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var n=a(758);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec46a009.b72b84ee.js b/assets/js/ec46a009.b72b84ee.js deleted file mode 100644 index 204094846..000000000 --- a/assets/js/ec46a009.b72b84ee.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9362],{2983:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=a(2676),i=a(8358);const r={title:"Introduction",hide_title:!0,sidebar_position:1,description:"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features."},o=void 0,s={id:"gamevault-plus/introduction",title:"Introduction",description:"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features.",source:"@site/docs/gamevault-plus/introduction.md",sourceDirName:"gamevault-plus",slug:"/gamevault-plus/introduction",permalink:"/docs/gamevault-plus/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/introduction.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:1,frontMatter:{title:"Introduction",hide_title:!0,sidebar_position:1,description:"Upgrade your gaming experience with GameVault+, an affordable premium add-on that brings exclusive nice-to-have features to enhance your GameVault application. Support our development team while enjoying the premium features."},sidebar:"docs",previous:{title:"Running the Client on Steamdeck",permalink:"/docs/advanced-usage/steamdeck"},next:{title:"Client Setup",permalink:"/docs/gamevault-plus/client-setup"}},l={},u=[{value:"Introduction",id:"introduction",level:2},{value:"Feature List",id:"feature-list",level:2},{value:"Pricing",id:"pricing",level:2},{value:"Get Started",id:"get-started",level:2},{value:"Questions and Answers",id:"questions-and-answers",level:2},{value:"What is Phalcode?",id:"what-is-phalcode",level:3},{value:"I have trouble with GameVault+ and I need support. How can I contact you?",id:"i-have-trouble-with-gamevault-and-i-need-support-how-can-i-contact-you",level:3},{value:"How do I manage billing and payments?",id:"how-do-i-manage-billing-and-payments",level:3},{value:"What payment methods are accepted for GameVault+ subscriptions?",id:"what-payment-methods-are-accepted-for-gamevault-subscriptions",level:3},{value:"Are there going to be more features added to GameVault+?",id:"are-there-going-to-be-more-features-added-to-gamevault",level:3},{value:"Can GameVault+ be shared with multiple users?",id:"can-gamevault-be-shared-with-multiple-users",level:3},{value:"How many devices can I have in my GameVault+ subscription?",id:"how-many-devices-can-i-have-in-my-gamevault-subscription",level:3},{value:"Can GameVault+ be used offline?",id:"can-gamevault-be-used-offline",level:3},{value:"How does GameVault+ ensure user privacy protection?",id:"how-does-gamevault-ensure-user-privacy-protection",level:3},{value:"Will GameVault+ support more integrations with other software in the future?",id:"will-gamevault-support-more-integrations-with-other-software-in-the-future",level:3},{value:"Can users suggest or vote on new features for GameVault+?",id:"can-users-suggest-or-vote-on-new-features-for-gamevault",level:3},{value:"Which Client Application versions are supported?",id:"which-client-application-versions-are-supported",level:3},{value:"Are commercial licenses available for GameVault+?",id:"are-commercial-licenses-available-for-gamevault",level:3},{value:"What if i cant afford GameVault+?",id:"what-if-i-cant-afford-gamevault",level:3}];function c(e){const t={a:"a",admonition:"admonition",blockquote:"blockquote",br:"br",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{class:"banner",children:[(0,n.jsx)("img",{src:"/img/gamevault-plus.png",alt:"GameVault+ Banner"}),(0,n.jsx)("strong",{children:"GameVault+"})]}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"Elevate Your GameVault Experience with Premium Features"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsxs)(t.p,{children:["Welcome to ",(0,n.jsx)(t.strong,{children:"GameVault+"}),", the premium upgrade subscription designed for enthusiasts seeking an enhanced GameVault experience. Here we are gradually adding a variety of exquisite nice to have features to enrich your time with GameVault while supporting us as developers and keeping this project alive. The subscription is priced affordably and is entirely optional, ensuring that our core product remains freely accessible to all."]}),"\n",(0,n.jsx)(t.h2,{id:"feature-list",children:"Feature List"}),"\n",(0,n.jsx)(t.p,{children:"As of now, we are offering the following features:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"\ud83d\udcf8 Uploading animated profile pictures"}),"\n",(0,n.jsx)(t.li,{children:"\ud83c\udfa8 Custom Themes"}),"\n",(0,n.jsx)(t.li,{children:"\ud83d\udcbb GameVault Client API (Interfaces for integrations like Playnite)"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"pricing",children:"Pricing"}),"\n",(0,n.jsxs)(t.p,{children:["The GameVault+ subscription is priced affordably at only ",(0,n.jsx)(t.strong,{children:"\u20ac 4.99/month"})," or ",(0,n.jsx)(t.strong,{children:"\u20ac 49.90/year"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"get-started",children:"Get Started"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://phalco.de/account/login",children:"Sign up or sign in"})," to your personal Phalcode account"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://phalco.de/products/gamevault-plus/checkout",children:"Subscribe to a GameVault+ Plan"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"/docs/gamevault-plus/client-setup",children:"Set up your GameVault Client Application"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.strong,{children:"Enjoy premium features while supporting us \ud83e\udd73\ud83d\udc83"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"questions-and-answers",children:"Questions and Answers"}),"\n",(0,n.jsx)(t.h3,{id:"what-is-phalcode",children:"What is Phalcode?"}),"\n",(0,n.jsxs)(t.p,{children:["Phalcode is the small startup company developing GameVault. We are just two friends developing software and based in germany. You can find more information about us on our ",(0,n.jsx)(t.a,{href:"https://phalco.de",children:"website"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"i-have-trouble-with-gamevault-and-i-need-support-how-can-i-contact-you",children:"I have trouble with GameVault+ and I need support. How can I contact you?"}),"\n",(0,n.jsxs)(t.p,{children:["Contact the developers ",(0,n.jsx)(t.strong,{children:"directly"})," on ",(0,n.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"})," or via our ",(0,n.jsx)(t.a,{href:"mailto:contact@phalco.de",children:"email"}),". Do ",(0,n.jsx)(t.strong,{children:"not"})," use the public discord channels for support regarding your personal GameVault+ subscription."]}),"\n",(0,n.jsx)(t.h3,{id:"how-do-i-manage-billing-and-payments",children:"How do I manage billing and payments?"}),"\n",(0,n.jsxs)(t.p,{children:["GameVault+ uses the Stripe billing system for your convenience. Easily handle your subscription, review billing details, and make changes through ",(0,n.jsx)(t.a,{href:"https://billing.stripe.com/p/login/7sI9B10uP6kj36M000",children:"our Stripe Customer Portal"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"what-payment-methods-are-accepted-for-gamevault-subscriptions",children:"What payment methods are accepted for GameVault+ subscriptions?"}),"\n",(0,n.jsx)(t.p,{children:"We offer several easy ways to pay for your GameVault+ subscription. You can use credit or debit cards, popular digital wallets, various bank redirects or even SEPA direct debit transfers. We want to make it convenient for you to choose how you pay."}),"\n",(0,n.jsx)(t.admonition,{title:"Important: Potential Delays",type:"note",children:(0,n.jsx)(t.p,{children:"Please be aware that if you use Bancontact, iDEAL, SOFORT or SEPA Direct Debit as your payment method, there might be delays in confirming your payment. To get your GameVault+ subscription quickly, we recommend using a payment method that confirms faster."})}),"\n",(0,n.jsx)(t.h3,{id:"are-there-going-to-be-more-features-added-to-gamevault",children:"Are there going to be more features added to GameVault+?"}),"\n",(0,n.jsx)(t.p,{children:"Of course!, You are the people keeping our project alive after all."}),"\n",(0,n.jsx)(t.p,{children:"Expect updates with awesome new GameVault+ content and improvements down thre road. We are committed to enhancing the GameVault+ experience."}),"\n",(0,n.jsx)(t.h3,{id:"can-gamevault-be-shared-with-multiple-users",children:"Can GameVault+ be shared with multiple users?"}),"\n",(0,n.jsx)(t.p,{children:"No, your GameVault+ subscription is designed for personal use only. Please avoid sharing it with anyone else."}),"\n",(0,n.jsx)(t.p,{children:"You can enjoy the benefits of GameVault+ on any GameVault Server you connect to. However, keep in mind that server administrators may choose to disable certain features offered by GameVault+ in their configurations."}),"\n",(0,n.jsx)(t.h3,{id:"how-many-devices-can-i-have-in-my-gamevault-subscription",children:"How many devices can I have in my GameVault+ subscription?"}),"\n",(0,n.jsx)(t.p,{children:"Your subscription isn't restricted to a specific number of active devices at the moment."}),"\n",(0,n.jsx)(t.h3,{id:"can-gamevault-be-used-offline",children:"Can GameVault+ be used offline?"}),"\n",(0,n.jsx)(t.p,{children:"Initially, you'll need an internet connection to download and set up your GameVault+ license."}),"\n",(0,n.jsx)(t.p,{children:"Once that setup is complete, GameVault+ can be accessed offline throughout your current subscription period. For those who prefer offline access, we suggest opting for an annual subscription, as it technically only requires an internet connection once a year."}),"\n",(0,n.jsx)(t.h3,{id:"how-does-gamevault-ensure-user-privacy-protection",children:"How does GameVault+ ensure user privacy protection?"}),"\n",(0,n.jsx)(t.p,{children:"At Phalcode, keeping user privacy safe is our very top priority. We use strong security measures, including encryption, to protect user data. We also follow GDPR rules to make sure we're following privacy laws."}),"\n",(0,n.jsxs)(t.p,{children:["Additionally, all billing and payment info is stored securely on the servers of our billing partner, Stripe, which meets PCI compliance standards. For more details on Stripe's security, you can check it out ",(0,n.jsx)(t.a,{href:"https://docs.stripe.com/security",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["You can find all details in our ",(0,n.jsx)(t.a,{href:"https://phalco.de/privacy",children:"privacy policy"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"will-gamevault-support-more-integrations-with-other-software-in-the-future",children:"Will GameVault+ support more integrations with other software in the future?"}),"\n",(0,n.jsx)(t.p,{children:"We hope so. We're actively exploring partnerships and integrations with other gaming platforms and tools to provide a more interconnected gaming experience."}),"\n",(0,n.jsx)(t.h3,{id:"can-users-suggest-or-vote-on-new-features-for-gamevault",children:"Can users suggest or vote on new features for GameVault+?"}),"\n",(0,n.jsxs)(t.p,{children:["Certainly! We encourage user feedback and suggestions. While we may not implement every idea, we value community input in shaping the future of GameVault+. Share your ideas through our feedback channels, primarily on ",(0,n.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app/issues",children:"Github"})," and ",(0,n.jsx)(t.a,{href:"https://discord.gg/NEdNen2dSu",children:"Discord"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"which-client-application-versions-are-supported",children:"Which Client Application versions are supported?"}),"\n",(0,n.jsx)(t.p,{children:"GameVault+ features are available from the official GameVault Client application version 1.9.0.0 and above. It does not matter if you got it from the Microsoft Store or used an alternative installation option."}),"\n",(0,n.jsx)(t.h3,{id:"are-commercial-licenses-available-for-gamevault",children:"Are commercial licenses available for GameVault+?"}),"\n",(0,n.jsxs)(t.p,{children:["There are, but for commercial use, please ",(0,n.jsx)(t.a,{href:"mailto:contact@phalco.de",children:"contact us directly"})," to discuss an individual licensing agreement.",(0,n.jsx)(t.br,{}),"\n","Personal subscriptions are tailored for individual users, but we're happy to collaborate with businesses for customized solutions and volume licenses."]}),"\n",(0,n.jsx)(t.h3,{id:"what-if-i-cant-afford-gamevault",children:"What if i cant afford GameVault+?"}),"\n",(0,n.jsxs)(t.p,{children:["We totally understand that not everyone can afford GameVault+, and that's fine. From our perspective, you're free to ",(0,n.jsx)(t.em,{children:"tinker"})," your way around the paywall for your personal use. The source code is on ",(0,n.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-app",children:"Github"}),". But ",(0,n.jsx)(t.strong,{children:"please"})," avoid pirated versions, as they may contain malware, and also ",(0,n.jsx)(t.strong,{children:"please"})," refrain from sharing your bypass-modifications."]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8358:(e,t,a)=>{a.d(t,{Z:()=>s,a:()=>o});var n=a(5271);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eda4f68b.5e7dc2d2.js b/assets/js/eda4f68b.04e17820.js similarity index 85% rename from assets/js/eda4f68b.5e7dc2d2.js rename to assets/js/eda4f68b.04e17820.js index c6139f81d..ad8f49925 100644 --- a/assets/js/eda4f68b.5e7dc2d2.js +++ b/assets/js/eda4f68b.04e17820.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9424],{4289:a=>{a.exports=JSON.parse('{"tag":{"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ai-generated-names","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7505],{8268:a=>{a.exports=JSON.parse('{"tag":{"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/ai-generated-names","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/ee98c124.5fdca12f.js b/assets/js/ee98c124.5fdca12f.js new file mode 100644 index 000000000..50c30cc21 --- /dev/null +++ b/assets/js/ee98c124.5fdca12f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1764],{4469:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"advanced-usage/fail2ban-gamevault-guide","title":"Configuring Fail2Ban for GameVault","description":"This guide was created and tested by a community member. It hasn\'t been personally tested by our team. We cannot guarantee its effectiveness as we don\'t use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly.","source":"@site/docs/advanced-usage/failt2ban.md","sourceDirName":"advanced-usage","slug":"/advanced-usage/fail2ban-gamevault-guide","permalink":"/docs/advanced-usage/fail2ban-gamevault-guide","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/failt2ban.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{"id":"fail2ban-gamevault-guide","title":"Configuring Fail2Ban for GameVault"},"sidebar":"docs","previous":{"title":"Early Access Program","permalink":"/docs/advanced-usage/early-access-program"},"next":{"title":"Running the Client on Linux","permalink":"/docs/advanced-usage/linux-client"}}');var i=n(6070),l=n(8591);const s={id:"fail2ban-gamevault-guide",title:"Configuring Fail2Ban for GameVault"},r=void 0,o={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Steps",id:"steps",level:2},{value:"1. Enable Log Files and Map a Volume",id:"1-enable-log-files-and-map-a-volume",level:3},{value:"2. Identify Failed Authentication Attempts",id:"2-identify-failed-authentication-attempts",level:3},{value:"3. Create a Fail2Ban Filter",id:"3-create-a-fail2ban-filter",level:3},{value:"4. Configure Fail2Ban Jail",id:"4-configure-fail2ban-jail",level:3},{value:"5. Restart Fail2Ban",id:"5-restart-fail2ban",level:3},{value:"6. Verify Jail Status",id:"6-verify-jail-status",level:3},{value:"Conclusion",id:"conclusion",level:2}];function c(e){const a={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.admonition,{title:"Community-Created Guide",type:"note",children:(0,i.jsx)(a.p,{children:"This guide was created and tested by a community member. It hasn't been personally tested by our team. We cannot guarantee its effectiveness as we don't use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly."})}),"\n",(0,i.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(a.p,{children:"This guide explains how to set up Fail2Ban to safeguard your GameVault application against unauthorized access attempts. Fail2Ban is a tool that scans log files and blocks IP addresses exhibiting malicious behavior through the firewall."}),"\n",(0,i.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(a.ul,{children:["\n",(0,i.jsx)(a.li,{children:"Fail2Ban installed on your host system"}),"\n",(0,i.jsxs)(a.li,{children:["Running GameVault instance as outlined in the ",(0,i.jsx)(a.a,{href:"/docs/server-docs/setup/",children:"server setup documentation"})]}),"\n"]}),"\n",(0,i.jsx)(a.h2,{id:"steps",children:"Steps"}),"\n",(0,i.jsx)(a.h3,{id:"1-enable-log-files-and-map-a-volume",children:"1. Enable Log Files and Map a Volume"}),"\n",(0,i.jsxs)(a.p,{children:["Ensure that log files are enabled and a volume is mapped to the ",(0,i.jsx)(a.code,{children:"/logs"})," folder within the GameVault backend container in your ",(0,i.jsx)(a.code,{children:"docker-compose.yml"})," file:"]}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-yaml",children:"[...]\ngamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n [...]\n - SERVER_LOG_FILES_ENABLED: true # <--- Make sure this is not set to false. (Default was false before v11.0.1)\n volumes:\n [...]\n - /your/logs/folder:/logs # <--- Replace `/your/logs/folder` with the actual path to your log folder.\n[...]\n"})}),"\n",(0,i.jsx)(a.h3,{id:"2-identify-failed-authentication-attempts",children:"2. Identify Failed Authentication Attempts"}),"\n",(0,i.jsx)(a.p,{children:"Failed authentication attempts will appear in the log files in the following format:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"info: \u250f [17/Aug/2023:20:25:47 +0000] Username @ Address - GET /api/v1/users/me -> 401 - 28.231 ms - 112 - 'GameVault/1.3.0'\n"})}),"\n",(0,i.jsx)(a.h3,{id:"3-create-a-fail2ban-filter",children:"3. Create a Fail2Ban Filter"}),"\n",(0,i.jsx)(a.p,{children:"Create a filter file for Fail2Ban by opening a terminal and executing the command:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"sudo nano /etc/fail2ban/filter.d/gamevault-filter.conf\n"})}),"\n",(0,i.jsx)(a.p,{children:"Insert the following content into the file:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"[Definition]\nfailregex = .*<HOST> - GET.*401\n"})}),"\n",(0,i.jsx)(a.p,{children:"Note that this regular expression may require adjustments. You can test it using the command:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"fail2ban-regex /your/logs/folder/gamevault-backend.log /etc/fail2ban/filter.d/gamevault-filter.conf\n"})}),"\n",(0,i.jsx)(a.h3,{id:"4-configure-fail2ban-jail",children:"4. Configure Fail2Ban Jail"}),"\n",(0,i.jsx)(a.p,{children:"Modify the Fail2Ban jail configuration by executing the command:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"sudo nano /etc/fail2ban/jail.local\n"})}),"\n",(0,i.jsx)(a.p,{children:"Add the following block and customize the settings based on your preferences:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-conf",children:"[gamevault]\nenabled = true\nfilter = gamevault-filter\nlogpath = /your/logs/folder/*.log*\nmaxretry = 10\nfindtime = 3600\nbantime = 3600\n"})}),"\n",(0,i.jsx)(a.h3,{id:"5-restart-fail2ban",children:"5. Restart Fail2Ban"}),"\n",(0,i.jsx)(a.p,{children:"To apply the changes, restart the Fail2Ban service:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"sudo systemctl restart fail2ban\n"})}),"\n",(0,i.jsx)(a.h3,{id:"6-verify-jail-status",children:"6. Verify Jail Status"}),"\n",(0,i.jsx)(a.p,{children:"Check the status of the GameVault jail:"}),"\n",(0,i.jsx)(a.pre,{children:(0,i.jsx)(a.code,{className:"language-bash",children:"sudo fail2ban-client status gamevault\n"})}),"\n",(0,i.jsx)(a.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,i.jsxs)(a.p,{children:["By following these steps, you can enhance the security of your GameVault application by utilizing Fail2Ban to block IP addresses attempting unauthorized access. Remember to fine-tune the settings to suit your specific requirements. Keep in mind that the 401 response will be triggered for each unauthenticated request, which can occur frequently and become bothersome, so you may want to increase the ",(0,i.jsx)(a.code,{children:"maxretry"})," value slightly."]}),"\n",(0,i.jsxs)(a.p,{children:["Credit goes to ",(0,i.jsx)(a.a,{href:"https://stackoverflow.com/a/69575369/14570696",children:"this StackOverflow answer"})," and ",(0,i.jsx)(a.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/175",children:"this Github issue"})," for inspiring this guide."]})]})}function u(e={}){const{wrapper:a}={...(0,l.R)(),...e.components};return a?(0,i.jsx)(a,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8591:(e,a,n)=>{n.d(a,{R:()=>s,x:()=>r});var t=n(758);const i={},l=t.createContext(i);function s(e){const a=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),t.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ee98c124.784e4902.js b/assets/js/ee98c124.784e4902.js deleted file mode 100644 index 96efd4ced..000000000 --- a/assets/js/ee98c124.784e4902.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5590],{2380:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>d});var t=n(2676),i=n(8358);const l={id:"fail2ban-gamevault-guide",title:"Configuring Fail2Ban for GameVault"},s=void 0,r={id:"advanced-usage/fail2ban-gamevault-guide",title:"Configuring Fail2Ban for GameVault",description:"This guide was created and tested by a community member. It hasn't been personally tested by our team. We cannot guarantee its effectiveness as we don't use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly.",source:"@site/docs/advanced-usage/failt2ban.md",sourceDirName:"advanced-usage",slug:"/advanced-usage/fail2ban-gamevault-guide",permalink:"/docs/advanced-usage/fail2ban-gamevault-guide",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/advanced-usage/failt2ban.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{id:"fail2ban-gamevault-guide",title:"Configuring Fail2Ban for GameVault"},sidebar:"docs",previous:{title:"Early Access Program",permalink:"/docs/advanced-usage/early-access-program"},next:{title:"Running the Client on Linux",permalink:"/docs/advanced-usage/linux-client"}},o={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Steps",id:"steps",level:2},{value:"1. Enable Log Files and Map a Volume",id:"1-enable-log-files-and-map-a-volume",level:3},{value:"2. Identify Failed Authentication Attempts",id:"2-identify-failed-authentication-attempts",level:3},{value:"3. Create a Fail2Ban Filter",id:"3-create-a-fail2ban-filter",level:3},{value:"4. Configure Fail2Ban Jail",id:"4-configure-fail2ban-jail",level:3},{value:"5. Restart Fail2Ban",id:"5-restart-fail2ban",level:3},{value:"6. Verify Jail Status",id:"6-verify-jail-status",level:3},{value:"Conclusion",id:"conclusion",level:2}];function c(e){const a={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.admonition,{title:"Community-Created Guide",type:"note",children:(0,t.jsx)(a.p,{children:"This guide was created and tested by a community member. It hasn't been personally tested by our team. We cannot guarantee its effectiveness as we don't use fail2ban. Feel free to give it a try. If you find any errors, you can edit the guide accordingly."})}),"\n",(0,t.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(a.p,{children:"This guide explains how to set up Fail2Ban to safeguard your GameVault application against unauthorized access attempts. Fail2Ban is a tool that scans log files and blocks IP addresses exhibiting malicious behavior through the firewall."}),"\n",(0,t.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsx)(a.li,{children:"Fail2Ban installed on your host system"}),"\n",(0,t.jsxs)(a.li,{children:["Running GameVault instance as outlined in the ",(0,t.jsx)(a.a,{href:"/docs/server-docs/setup/",children:"server setup documentation"})]}),"\n"]}),"\n",(0,t.jsx)(a.h2,{id:"steps",children:"Steps"}),"\n",(0,t.jsx)(a.h3,{id:"1-enable-log-files-and-map-a-volume",children:"1. Enable Log Files and Map a Volume"}),"\n",(0,t.jsxs)(a.p,{children:["Ensure that log files are enabled and a volume is mapped to the ",(0,t.jsx)(a.code,{children:"/logs"})," folder within the GameVault backend container in your ",(0,t.jsx)(a.code,{children:"docker-compose.yml"})," file:"]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-yaml",children:"[...]\ngamevault-backend:\n image: phalcode/gamevault-backend:latest\n restart: unless-stopped\n environment:\n [...]\n - SERVER_LOG_FILES_ENABLED: true # <--- Make sure this is not set to false. (Default was false before v11.0.1)\n volumes:\n [...]\n - /your/logs/folder:/logs # <--- Replace `/your/logs/folder` with the actual path to your log folder.\n[...]\n"})}),"\n",(0,t.jsx)(a.h3,{id:"2-identify-failed-authentication-attempts",children:"2. Identify Failed Authentication Attempts"}),"\n",(0,t.jsx)(a.p,{children:"Failed authentication attempts will appear in the log files in the following format:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"info: \u250f [17/Aug/2023:20:25:47 +0000] Username @ Address - GET /api/v1/users/me -> 401 - 28.231 ms - 112 - 'GameVault/1.3.0'\n"})}),"\n",(0,t.jsx)(a.h3,{id:"3-create-a-fail2ban-filter",children:"3. Create a Fail2Ban Filter"}),"\n",(0,t.jsx)(a.p,{children:"Create a filter file for Fail2Ban by opening a terminal and executing the command:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"sudo nano /etc/fail2ban/filter.d/gamevault-filter.conf\n"})}),"\n",(0,t.jsx)(a.p,{children:"Insert the following content into the file:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"[Definition]\nfailregex = .*<HOST> - GET.*401\n"})}),"\n",(0,t.jsx)(a.p,{children:"Note that this regular expression may require adjustments. You can test it using the command:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"fail2ban-regex /your/logs/folder/gamevault-backend.log /etc/fail2ban/filter.d/gamevault-filter.conf\n"})}),"\n",(0,t.jsx)(a.h3,{id:"4-configure-fail2ban-jail",children:"4. Configure Fail2Ban Jail"}),"\n",(0,t.jsx)(a.p,{children:"Modify the Fail2Ban jail configuration by executing the command:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"sudo nano /etc/fail2ban/jail.local\n"})}),"\n",(0,t.jsx)(a.p,{children:"Add the following block and customize the settings based on your preferences:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-conf",children:"[gamevault]\nenabled = true\nfilter = gamevault-filter\nlogpath = /your/logs/folder/*.log*\nmaxretry = 10\nfindtime = 3600\nbantime = 3600\n"})}),"\n",(0,t.jsx)(a.h3,{id:"5-restart-fail2ban",children:"5. Restart Fail2Ban"}),"\n",(0,t.jsx)(a.p,{children:"To apply the changes, restart the Fail2Ban service:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"sudo systemctl restart fail2ban\n"})}),"\n",(0,t.jsx)(a.h3,{id:"6-verify-jail-status",children:"6. Verify Jail Status"}),"\n",(0,t.jsx)(a.p,{children:"Check the status of the GameVault jail:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-bash",children:"sudo fail2ban-client status gamevault\n"})}),"\n",(0,t.jsx)(a.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(a.p,{children:["By following these steps, you can enhance the security of your GameVault application by utilizing Fail2Ban to block IP addresses attempting unauthorized access. Remember to fine-tune the settings to suit your specific requirements. Keep in mind that the 401 response will be triggered for each unauthenticated request, which can occur frequently and become bothersome, so you may want to increase the ",(0,t.jsx)(a.code,{children:"maxretry"})," value slightly."]}),"\n",(0,t.jsxs)(a.p,{children:["Credit goes to ",(0,t.jsx)(a.a,{href:"https://stackoverflow.com/a/69575369/14570696",children:"this StackOverflow answer"})," and ",(0,t.jsx)(a.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/175",children:"this Github issue"})," for inspiring this guide."]})]})}function u(e={}){const{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8358:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>s});var t=n(5271);const i={},l=t.createContext(i);function s(e){const a=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),t.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ef8b811a.d87fafd2.js b/assets/js/ef8b811a.129793ec.js similarity index 87% rename from assets/js/ef8b811a.d87fafd2.js rename to assets/js/ef8b811a.129793ec.js index c1f75baca..e3ecc746e 100644 --- a/assets/js/ef8b811a.d87fafd2.js +++ b/assets/js/ef8b811a.129793ec.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2644],{9441:e=>{e.exports=JSON.parse('{"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null,"count":16},{"name":"Philip Sch\xe4fer","title":"Co-Founder of Phalcode","url":"https://github.com/Yelo420","imageURL":"https://github.com/Yelo420.png","key":"yelo420","page":null,"count":0}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8947],{6600:e=>{e.exports=JSON.parse('{"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null,"count":16},{"name":"Philip Sch\xe4fer","title":"Co-Founder of Phalcode","url":"https://github.com/Yelo420","imageURL":"https://github.com/Yelo420.png","key":"yelo420","page":null,"count":0}]}')}}]); \ No newline at end of file diff --git a/assets/js/f2a7e769.bec83672.js b/assets/js/f2a7e769.6ad9c320.js similarity index 85% rename from assets/js/f2a7e769.bec83672.js rename to assets/js/f2a7e769.6ad9c320.js index 89981b686..6373fb2d1 100644 --- a/assets/js/f2a7e769.bec83672.js +++ b/assets/js/f2a7e769.6ad9c320.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6522],{5714:a=>{a.exports=JSON.parse('{"tag":{"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/sharing-blog-posts","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1200],{9517:a=>{a.exports=JSON.parse('{"tag":{"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/sharing-blog-posts","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f4d4319b.275bbc67.js b/assets/js/f4d4319b.275bbc67.js deleted file mode 100644 index c09c0c2f9..000000000 --- a/assets/js/f4d4319b.275bbc67.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2500],{9550:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var s=t(2676),o=t(8358);const n={sidebar_position:1,id:"toc"},a="Setting up a GameVault Server",i={id:"server-docs/setup/toc",title:"Setting up a GameVault Server",description:"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you.",source:"@site/docs/server-docs/setup/setup.md",sourceDirName:"server-docs/setup",slug:"/server-docs/setup/",permalink:"/docs/server-docs/setup/",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/setup.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:1,frontMatter:{sidebar_position:1,id:"toc"},sidebar:"docs",previous:{title:"Introduction",permalink:"/docs/intro"},next:{title:"Using Docker Compose",permalink:"/docs/server-docs/setup/docker-compose"}},d={},c=[{value:"Supported Methods",id:"supported-methods",level:2},{value:"More Methods",id:"more-methods",level:3},{value:"What Next?",id:"what-next",level:2}];function l(e){const r={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"setting-up-a-gamevault-server",children:"Setting up a GameVault Server"})}),"\n",(0,s.jsx)(r.p,{children:"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you."}),"\n",(0,s.jsxs)(r.p,{children:["If you have any trouble setting up a GameVault server don't give up! There are a lot of helpful people on our ",(0,s.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"})," that can help you."]}),"\n",(0,s.jsx)(r.h2,{id:"supported-methods",children:"Supported Methods"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/docker-compose",children:"Docker Compose"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/caprover",children:"Caprover"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/truenas-scale",children:"TrueNAS Scale"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/unraid",children:"UNRAID"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/synology-container-manager",children:"Synology Container Manager"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/server-docs/setup/native",children:"Native"})}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"more-methods",children:"More Methods"}),"\n",(0,s.jsx)(r.p,{children:"We want to add more setup options to our lineup! Each system has its own way of doing things, and it can take some time and experience to set up new options just right."}),"\n",(0,s.jsxs)(r.p,{children:["We're looking for people who are excited to help out. Since we don't run a GameVault Server on every system, we need your help to add new setup options! If you're interested in joining and setting up options for any system, we'd love to have you contribute to this documentation ",(0,s.jsx)(r.a,{href:"https://github.com/Phalcode/gamevault-docs",children:"on Github"}),". Together, we can make our platform easier for everyone to use."]}),"\n",(0,s.jsx)(r.h2,{id:"what-next",children:"What Next?"}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.strong,{children:"Congratulations! \ud83e\udd73"})}),"\n",(0,s.jsx)(r.p,{children:"You now should have a server up and running. To further set up and start using server, you can follow these steps:"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Configure your server:"})," Customize the server settings to meet your specific needs. Refer to the ",(0,s.jsx)(r.a,{href:"/docs/server-docs/configuration",children:"configuration guide"})," for detailed instructions."]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Add some games:"})," Prepare your game files in the required format for GameVault to identify and install them correctly. Read the ",(0,s.jsx)(r.a,{href:"/docs/server-docs/structure",children:"structure chapter"})," for important information. Once ready, proceed to ",(0,s.jsx)(r.a,{href:"/docs/server-docs/adding-games",children:"add your games"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Create your first user:"})," Set up an admin user account to gain full administrative access to the application. Refer to the ",(0,s.jsx)(r.a,{href:"/docs/server-docs/user-management",children:"user management guide"})," for instructions on setting up the first user."]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Enhance your games with metadata:"})," Connect your server to a metadata source such as IGDB to enrich your games with metadata. Learn how to do this in the ",(0,s.jsx)(r.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"metadata chapter"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"(OPTIONAL) Make your server accessible outside your Local Area Network"}),": If you want to make the application accessible beyond your local network, for instance, for your friends or yourself to connect to it remotely, you'll need to configure an HTTPS reverse proxy and potentially make adjustments to firewall rules. We recommend utilizing ",(0,s.jsx)(r.a,{href:"https://nginxproxymanager.com",children:"NGINX Proxy Manager"})," for this purpose. Numerous guides are available on how to set up a reverse proxy for a Docker container, so we won't cover it in detail in this guide."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Enjoy your new gaming experience with GameVault!"})]})}function u(e={}){const{wrapper:r}={...(0,o.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8358:(e,r,t)=>{t.d(r,{Z:()=>i,a:()=>a});var s=t(5271);const o={},n=s.createContext(o);function a(e){const r=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f4d4319b.ebd7de7e.js b/assets/js/f4d4319b.ebd7de7e.js new file mode 100644 index 000000000..09eb78352 --- /dev/null +++ b/assets/js/f4d4319b.ebd7de7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1784],{749:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"server-docs/setup/toc","title":"Setting up a GameVault Server","description":"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you.","source":"@site/docs/server-docs/setup/setup.md","sourceDirName":"server-docs/setup","slug":"/server-docs/setup/","permalink":"/docs/server-docs/setup/","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/server-docs/setup/setup.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"id":"toc"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/intro"},"next":{"title":"Using Docker Compose","permalink":"/docs/server-docs/setup/docker-compose"}}');var o=t(6070),n=t(8591);const a={sidebar_position:1,id:"toc"},i="Setting up a GameVault Server",d={},c=[{value:"Supported Methods",id:"supported-methods",level:2},{value:"More Methods",id:"more-methods",level:3},{value:"What Next?",id:"what-next",level:2}];function l(e){const r={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"setting-up-a-gamevault-server",children:"Setting up a GameVault Server"})}),"\n",(0,o.jsx)(r.p,{children:"There are multiple ways to set up a GameVault Server. You can choose one from below that suits you."}),"\n",(0,o.jsxs)(r.p,{children:["If you have any trouble setting up a GameVault server don't give up! There are a lot of helpful people on our ",(0,o.jsx)(r.a,{href:"https://discord.gg/NEdNen2dSu",children:"discord"})," that can help you."]}),"\n",(0,o.jsx)(r.h2,{id:"supported-methods",children:"Supported Methods"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/docker-compose",children:"Docker Compose"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/caprover",children:"Caprover"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/truenas-scale-legacy",children:"TrueNAS Scale (prior v24.10)"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/truenas-scale",children:"TrueNAS Scale (since v24.10)"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/unraid",children:"UNRAID"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/synology-container-manager",children:"Synology Container Manager"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.a,{href:"/docs/server-docs/setup/native",children:"Native"})}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"more-methods",children:"More Methods"}),"\n",(0,o.jsx)(r.p,{children:"We want to add more setup options to our lineup! Each system has its own way of doing things, and it can take some time and experience to set up new options just right."}),"\n",(0,o.jsxs)(r.p,{children:["We're looking for people who are excited to help out. Since we don't run a GameVault Server on every system, we need your help to add new setup options! If you're interested in joining and setting up options for any system, we'd love to have you contribute to this documentation ",(0,o.jsx)(r.a,{href:"https://github.com/Phalcode/gamevault-docs",children:"on Github"}),". Together, we can make our platform easier for everyone to use."]}),"\n",(0,o.jsx)(r.h2,{id:"what-next",children:"What Next?"}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.strong,{children:"Congratulations! \ud83e\udd73"})}),"\n",(0,o.jsx)(r.p,{children:"You now should have a server up and running. To further set up and start using server, you can follow these steps:"}),"\n",(0,o.jsxs)(r.ol,{children:["\n",(0,o.jsxs)(r.li,{children:["\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Configure your server:"})," Customize the server settings to meet your specific needs. Refer to the ",(0,o.jsx)(r.a,{href:"/docs/server-docs/configuration",children:"configuration guide"})," for detailed instructions."]}),"\n"]}),"\n",(0,o.jsxs)(r.li,{children:["\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Add some games:"})," Prepare your game files in the required format for GameVault to identify and install them correctly. Read the ",(0,o.jsx)(r.a,{href:"/docs/server-docs/structure",children:"structure chapter"})," for important information. Once ready, proceed to ",(0,o.jsx)(r.a,{href:"/docs/server-docs/adding-games",children:"add your games"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(r.li,{children:["\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Create your first user:"})," Set up an admin user account to gain full administrative access to the application. Refer to the ",(0,o.jsx)(r.a,{href:"/docs/server-docs/user-management",children:"user management guide"})," for instructions on setting up the first user."]}),"\n"]}),"\n",(0,o.jsxs)(r.li,{children:["\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Enhance your games with metadata:"})," Connect your server to a metadata source such as IGDB to enrich your games with metadata. Learn how to do this in the ",(0,o.jsx)(r.a,{href:"/docs/server-docs/metadata-enrichment/metadata",children:"metadata chapter"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(r.li,{children:["\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"(OPTIONAL) Make your server accessible outside your Local Area Network"}),": If you want to make the application accessible beyond your local network, for instance, for your friends or yourself to connect to it remotely, you'll need to configure an HTTPS reverse proxy and potentially make adjustments to firewall rules. We recommend utilizing ",(0,o.jsx)(r.a,{href:"https://nginxproxymanager.com",children:"NGINX Proxy Manager"})," for this purpose. Numerous guides are available on how to set up a reverse proxy for a Docker container, so we won't cover it in detail in this guide."]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:"Enjoy your new gaming experience with GameVault!"})]})}function u(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8591:(e,r,t)=>{t.d(r,{R:()=>a,x:()=>i});var s=t(758);const o={},n=s.createContext(o);function a(e){const r=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f525eb8a.27030d53.js b/assets/js/f525eb8a.27030d53.js new file mode 100644 index 000000000..03a5e1302 --- /dev/null +++ b/assets/js/f525eb8a.27030d53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8787],{9805:a=>{a.exports=JSON.parse('{"tag":{"label":"API","permalink":"/blog/tags/api","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/api","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f525eb8a.c495c5b2.js b/assets/js/f525eb8a.c495c5b2.js deleted file mode 100644 index 005835f54..000000000 --- a/assets/js/f525eb8a.c495c5b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[146],{9591:a=>{a.exports=JSON.parse('{"tag":{"label":"API","permalink":"/blog/tags/api","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/api","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f58fbef8.c7d8d0f3.js b/assets/js/f58fbef8.3001aa86.js similarity index 84% rename from assets/js/f58fbef8.c7d8d0f3.js rename to assets/js/f58fbef8.3001aa86.js index 751e99e82..888b9aac5 100644 --- a/assets/js/f58fbef8.c7d8d0f3.js +++ b/assets/js/f58fbef8.3001aa86.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3066],{6772:a=>{a.exports=JSON.parse('{"tag":{"label":"feedback","permalink":"/blog/tags/feedback","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/feedback","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6071],{2844:a=>{a.exports=JSON.parse('{"tag":{"label":"feedback","permalink":"/blog/tags/feedback","allTagsPath":"/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/feedback","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f5b06269.d4cd8ef2.js b/assets/js/f5b06269.d4cd8ef2.js new file mode 100644 index 000000000..5052257c4 --- /dev/null +++ b/assets/js/f5b06269.d4cd8ef2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[2641],{5205:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"gamevault-plus/themes","title":"Themes","description":"With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","source":"@site/docs/gamevault-plus/themes.md","sourceDirName":"gamevault-plus","slug":"/gamevault-plus/themes","permalink":"/docs/gamevault-plus/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/themes.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"sidebarPosition":3,"frontMatter":{"title":"Themes","sidebar_position":3},"sidebar":"docs","previous":{"title":"Client Setup","permalink":"/docs/gamevault-plus/client-setup"},"next":{"title":"Client APIs","permalink":"/docs/gamevault-plus/client-apis"}}');var l=s(6070),n=s(8591);const o={title:"Themes",sidebar_position:3},i=void 0,h={},c=[{value:"Premium Themes",id:"premium-themes",level:2},{value:"Custom Themes",id:"custom-themes",level:2},{value:"How to Install and Apply a Custom Theme",id:"how-to-install-and-apply-a-custom-theme",level:3},{value:"Creating a Custom Theme",id:"creating-a-custom-theme",level:3},{value:"Template File",id:"template-file",level:4},{value:"Sharing Custom Themes",id:"sharing-custom-themes",level:3}];function r(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(t.p,{children:["With ",(0,l.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"}),", you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience."]}),"\n",(0,l.jsx)(t.h2,{id:"premium-themes",children:"Premium Themes"}),"\n",(0,l.jsx)(t.p,{children:"GameVault+ ships with the following premium themes by default:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:[(0,l.jsx)(t.strong,{children:"Phalcode (Dark)"}),": A dark theme aligned with our Phalcode brand.\n",(0,l.jsx)(t.img,{alt:"Phalcode (Dark)",src:s(3836).A+"",width:"2552",height:"1392"})]}),"\n",(0,l.jsxs)(t.li,{children:[(0,l.jsx)(t.strong,{children:"Phalcode (Light)"}),": A light theme aligned with our Phalcode brand.\n",(0,l.jsx)(t.img,{alt:"Phalcode (Light)",src:s(9750).A+"",width:"2552",height:"1392"})]}),"\n",(0,l.jsxs)(t.li,{children:[(0,l.jsx)(t.strong,{children:"Halloween (Dark)"}),": A Halloween-themed ambiance to set the mood for horror games in autumn.\n",(0,l.jsx)(t.img,{alt:"Halloween (Dark)",src:s(8275).A+"",width:"2552",height:"1392"})]}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"custom-themes",children:"Custom Themes"}),"\n",(0,l.jsx)(t.p,{children:"GameVault+ also offers the flexibility to apply custom themes, allowing users to incorporate designs of their preference."}),"\n",(0,l.jsxs)(t.p,{children:["A public repository of custom themes shared by our community can be found ",(0,l.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"here"}),"."]}),"\n",(0,l.jsx)(t.h3,{id:"how-to-install-and-apply-a-custom-theme",children:"How to Install and Apply a Custom Theme"}),"\n",(0,l.jsx)(t.p,{children:"To install a custom theme, follow these steps:"}),"\n",(0,l.jsxs)(t.ol,{children:["\n",(0,l.jsxs)(t.li,{children:["Place the theme .xaml file into your ",(0,l.jsx)(t.code,{children:"themes"})," folder. Depending on your GameVault installation, the ",(0,l.jsx)(t.code,{children:"themes"})," folder can be located at either ",(0,l.jsx)(t.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\themes"})," or ",(0,l.jsx)(t.code,{children:"%APPDATA%/GameVault/themes"}),"."]}),"\n",(0,l.jsxs)(t.li,{children:["Open ",(0,l.jsx)(t.code,{children:"GameVault Settings"})," and select your newly added theme under ",(0,l.jsx)(t.code,{children:"Application"})," -> ",(0,l.jsx)(t.code,{children:"Themes"}),"."]}),"\n"]}),"\n",(0,l.jsx)(t.h3,{id:"creating-a-custom-theme",children:"Creating a Custom Theme"}),"\n",(0,l.jsxs)(t.p,{children:["Creating a custom theme is straightforward. You can just create a new .xaml file based on our template and save it in the ",(0,l.jsx)(t.code,{children:"themes"})," folder."]}),"\n",(0,l.jsx)(t.h4,{id:"template-file",children:"Template File"}),"\n",(0,l.jsxs)(t.p,{children:["Just copy the latest template from the ",(0,l.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"community themes repository"}),", edit it using a text editor, and save it in the ",(0,l.jsx)(t.code,{children:"themes"})," folder to try it out. Be aware that the hex codes are ARGB syntax and not RGB syntax."]}),"\n",(0,l.jsx)(t.h3,{id:"sharing-custom-themes",children:"Sharing Custom Themes"}),"\n",(0,l.jsxs)(t.p,{children:["You can share your custom themes with the community by creating a pull request to the ",(0,l.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"community themes repository"}),"."]})]})}function m(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(r,{...e})}):r(e)}},8275:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/halloween_dark-063c1fbaad9983d537c5440518ab0637.png"},3836:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/phalcode_dark-fc73dddb830e8427cc5f8b4f31c538df.png"},9750:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/phalcode_light-433333120c068cde6000d4873c096fee.png"},8591:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(758);const l={},n=a.createContext(l);function o(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),a.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f5b06269.e491f127.js b/assets/js/f5b06269.e491f127.js deleted file mode 100644 index 479c2491d..000000000 --- a/assets/js/f5b06269.e491f127.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5565],{9221:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=s(2676),l=s(8358);const n={title:"Themes",sidebar_position:3},o=void 0,i={id:"gamevault-plus/themes",title:"Themes",description:"With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.",source:"@site/docs/gamevault-plus/themes.md",sourceDirName:"gamevault-plus",slug:"/gamevault-plus/themes",permalink:"/docs/gamevault-plus/themes",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/gamevault-plus/themes.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,sidebarPosition:3,frontMatter:{title:"Themes",sidebar_position:3},sidebar:"docs",previous:{title:"Client Setup",permalink:"/docs/gamevault-plus/client-setup"},next:{title:"Client APIs",permalink:"/docs/gamevault-plus/client-apis"}},h={},c=[{value:"Premium Themes",id:"premium-themes",level:2},{value:"Custom Themes",id:"custom-themes",level:2},{value:"How to Install and Apply a Custom Theme",id:"how-to-install-and-apply-a-custom-theme",level:3},{value:"Creating a Custom Theme",id:"creating-a-custom-theme",level:3},{value:"Template File",id:"template-file",level:4},{value:"Sharing Custom Themes",id:"sharing-custom-themes",level:3}];function r(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["With ",(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"}),", you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience."]}),"\n",(0,a.jsx)(t.h2,{id:"premium-themes",children:"Premium Themes"}),"\n",(0,a.jsx)(t.p,{children:"GameVault+ ships with the following premium themes by default:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Phalcode (Dark)"}),": A dark theme aligned with our Phalcode brand.\n",(0,a.jsx)(t.img,{alt:"Phalcode (Dark)",src:s(6076).Z+"",width:"2552",height:"1392"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Phalcode (Light)"}),": A light theme aligned with our Phalcode brand.\n",(0,a.jsx)(t.img,{alt:"Phalcode (Light)",src:s(6274).Z+"",width:"2552",height:"1392"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Halloween (Dark)"}),": A Halloween-themed ambiance to set the mood for horror games in autumn.\n",(0,a.jsx)(t.img,{alt:"Halloween (Dark)",src:s(8322).Z+"",width:"2552",height:"1392"})]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"custom-themes",children:"Custom Themes"}),"\n",(0,a.jsx)(t.p,{children:"GameVault+ also offers the flexibility to apply custom themes, allowing users to incorporate designs of their preference."}),"\n",(0,a.jsxs)(t.p,{children:["A public repository of custom themes shared by our community can be found ",(0,a.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"here"}),"."]}),"\n",(0,a.jsx)(t.h3,{id:"how-to-install-and-apply-a-custom-theme",children:"How to Install and Apply a Custom Theme"}),"\n",(0,a.jsx)(t.p,{children:"To install a custom theme, follow these steps:"}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["Place the theme .xaml file into your ",(0,a.jsx)(t.code,{children:"themes"})," folder. Depending on your GameVault installation, the ",(0,a.jsx)(t.code,{children:"themes"})," folder can be located at either ",(0,a.jsx)(t.code,{children:"%USERPROFILE%\\AppData\\Local\\Packages\\Phalcode.174950BD81C41_dymsgn3qpfjxc\\LocalCache\\Roaming\\GameVault\\themes"})," or ",(0,a.jsx)(t.code,{children:"%APPDATA%/GameVault/themes"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:["Open ",(0,a.jsx)(t.code,{children:"GameVault Settings"})," and select your newly added theme under ",(0,a.jsx)(t.code,{children:"Application"})," -> ",(0,a.jsx)(t.code,{children:"Themes"}),"."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"creating-a-custom-theme",children:"Creating a Custom Theme"}),"\n",(0,a.jsxs)(t.p,{children:["Creating a custom theme is straightforward. You can just create a new .xaml file based on our template and save it in the ",(0,a.jsx)(t.code,{children:"themes"})," folder."]}),"\n",(0,a.jsx)(t.h4,{id:"template-file",children:"Template File"}),"\n",(0,a.jsxs)(t.p,{children:["Just copy the latest template from the ",(0,a.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"community themes repository"}),", edit it using a text editor, and save it in the ",(0,a.jsx)(t.code,{children:"themes"})," folder to try it out. Be aware that the hex codes are ARGB syntax and not RGB syntax."]}),"\n",(0,a.jsx)(t.h3,{id:"sharing-custom-themes",children:"Sharing Custom Themes"}),"\n",(0,a.jsxs)(t.p,{children:["You can share your custom themes with the community by creating a pull request to the ",(0,a.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-community-themes/",children:"community themes repository"}),"."]})]})}function m(e={}){const{wrapper:t}={...(0,l.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(r,{...e})}):r(e)}},8322:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/halloween_dark-063c1fbaad9983d537c5440518ab0637.png"},6076:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/phalcode_dark-fc73dddb830e8427cc5f8b4f31c538df.png"},6274:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/phalcode_light-433333120c068cde6000d4873c096fee.png"},8358:(e,t,s)=>{s.d(t,{Z:()=>i,a:()=>o});var a=s(5271);const l={},n=a.createContext(l);function o(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),a.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f677311a.83dee0e6.js b/assets/js/f677311a.83dee0e6.js new file mode 100644 index 000000000..355d3b323 --- /dev/null +++ b/assets/js/f677311a.83dee0e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7831],{7032:a=>{a.exports=JSON.parse('{"tag":{"label":"inclusivity","permalink":"/blog/tags/inclusivity","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/inclusivity","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f6f174b1.2d97a5ec.js b/assets/js/f6f174b1.bc13e34e.js similarity index 84% rename from assets/js/f6f174b1.2d97a5ec.js rename to assets/js/f6f174b1.bc13e34e.js index ba01f3685..b89edbdff 100644 --- a/assets/js/f6f174b1.2d97a5ec.js +++ b/assets/js/f6f174b1.bc13e34e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[7764],{3540:t=>{t.exports=JSON.parse('{"tag":{"label":"Beta Testing","permalink":"/blog/tags/beta-testing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/beta-testing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1922],{2334:t=>{t.exports=JSON.parse('{"tag":{"label":"Beta Testing","permalink":"/blog/tags/beta-testing","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/beta-testing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/f81c1134.427bb239.js b/assets/js/f81c1134.a226cf0e.js similarity index 99% rename from assets/js/f81c1134.427bb239.js rename to assets/js/f81c1134.a226cf0e.js index f02ccfe5a..b9ea0c04a 100644 --- a/assets/js/f81c1134.427bb239.js +++ b/assets/js/f81c1134.a226cf0e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4031],{4108:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2024/10/20/","metadata":{"permalink":"/blog/2024/10/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md","source":"@site/blog/2024-10-20.md","title":"An update so major, we could have built the product from scratch.","description":"Hello, GameVault Community!","date":"2024-10-20T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Client Update","permalink":"/blog/tags/client-update"},{"inline":true,"label":"Server Update","permalink":"/blog/tags/server-update"},{"inline":true,"label":"metadata framework","permalink":"/blog/tags/metadata-framework"},{"inline":true,"label":"plugin system","permalink":"/blog/tags/plugin-system"},{"inline":true,"label":"parental control","permalink":"/blog/tags/parental-control"},{"inline":true,"label":"age restrictions","permalink":"/blog/tags/age-restrictions"},{"inline":true,"label":"theme","permalink":"/blog/tags/theme"},{"inline":true,"label":"app optimization","permalink":"/blog/tags/app-optimization"},{"inline":true,"label":"analytics","permalink":"/blog/tags/analytics"},{"inline":true,"label":"notes","permalink":"/blog/tags/notes"},{"inline":true,"label":"community management","permalink":"/blog/tags/community-management"}],"readingTime":2.515,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"An update so major, we could have built the product from scratch.","authors":["alfagun74"],"tags":["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},"unlisted":false,"nextItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"}},"content":"**Hello, GameVault Community!**\\n\\nAfter six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: **GameVault Client v1.12** and **GameVault Server v13**! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered. \x3c!-- truncate --\x3e\\n\\n### What\u2019s New?\\n\\nWe\u2019ve introduced some game-changing improvements. First and foremost, we\u2019ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we\u2019ve built something much better: a brand-new **plugin system** on the backend, complete with an official partnership with **IGDB/Twitch**.\\n\\nThe new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata\u2014if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom.\\n\\nWe\u2019ve been rigorously testing this system for 2\u20133 months, running an early access phase for about a month. While we\u2019ve optimized it as much as possible, we ask for your patience if any bugs pop up\u2014mastillke sure to back up before migrating!\\n\\n### Major New Features\\n\\nHere\u2019s a quick rundown of some other incredible additions in this update:\\n\\n- **Parental Controls & Age Restrictions:** Now, families can manage access based on age-appropriate content, giving more control over what\u2019s playable and viewable for children.\\n- **Built-in Media Player:** You can now watch trailers and gameplay videos directly in GameVault.\\n- **UI Overhaul:** We\u2019ve refreshed the Game, Community, and Admin Tabs, along with a redesigned App Bar for a sleeker look.\\n- **Halloween Theme:** Just in time for spooky season! GameVault+ users can enjoy a themed Halloween skin.\\n- **Convenience Features:** We\u2019ve added default arguments and launch/install executables to streamline app functionality.\\n- **Markdown Support:** Both Notes and Server News now support markdown, making formatting a breeze and improving readability.\\n\\n### Critical Update Info\\n\\nBefore updating, please ensure compatibility between clients and servers:\\n\\n- **Client v1.12** is required for servers running **v13 or above**.\\n- Older clients (**before v1.12**) won\u2019t work with server running on **Version 13 or above**.\\n\\nFor a smooth update and a guide on how to use all these new features, check out the detailed [migration instructions](https://github.com/Phalcode/gamevault-backend/blob/master/CHANGELOG.md#1300) in the server changelogs. As always, if you hit any snags, feel free to reach out to us on [Discord](https://discord.gg/NEdNen2dSu).\\n\\n### Support Us\\n\\nIf you\u2019d like to support our development and help us keep most of GameVault\u2019s features free, consider [subscribing to **GameVault+**](https://gamevau.lt/gamevault-plus) or making [a one-time donation](https://phalco.de/support-us). Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all.\\n\\nThank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we\'ve added."},{"id":"/2024/05/07/","metadata":{"permalink":"/blog/2024/05/07/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md","source":"@site/blog/2024-05-07.md","title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","description":"Hey everyone!","date":"2024-05-07T00:00:00.000Z","tags":[{"inline":true,"label":"game","permalink":"/blog/tags/game"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"database","permalink":"/blog/tags/database"},{"inline":true,"label":"videogame","permalink":"/blog/tags/videogame"},{"inline":true,"label":"RAWG","permalink":"/blog/tags/rawg"},{"inline":true,"label":"IGDB","permalink":"/blog/tags/igdb"},{"inline":true,"label":"twitch.tv","permalink":"/blog/tags/twitch-tv"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"partnership","permalink":"/blog/tags/partnership"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"solution","permalink":"/blog/tags/solution"},{"inline":true,"label":"Steam","permalink":"/blog/tags/steam"},{"inline":true,"label":"backend","permalink":"/blog/tags/backend"},{"inline":true,"label":"update","permalink":"/blog/tags/update"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"easter egg","permalink":"/blog/tags/easter-egg"}],"readingTime":2.525,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","authors":["alfagun74"],"tags":["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},"unlisted":false,"prevItem":{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/"},"nextItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"}},"content":"Hey everyone!\\n\\nIn our last post we mentioned the challenges we\'ve been facing with the videogame metadata database we\'ve been using, [rawg.io](https://rawg.io/). Unfortunately, it\'s become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. \x3c!-- truncate --\x3e The situation peaked on May 5th when the service went down completely for a day.\\n\\n## GameVault\'s new metadata provider strategy\\n\\nTo address these issues, we\'re making significant changes to GameVault\'s metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider.\\n\\nWe\'re also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB\'s APIs out of the box.\\n\\nMore details on our plans can be found in this [GitHub ticket](https://github.com/Phalcode/gamevault-backend/issues/258). We also plan to continue supporting the use of your own API keys and other vendors.\\n\\nHowever, as decided in our recent poll, we will be removing all support for RAWG.\\n\\n## Temporary solution: Implementing a RAWG replacement\\n\\nHowever, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we\'re away? To address this concern, [Toylerrr](https://github.com/Toylerrr), one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the `RAWG_API_URL` environmental variable.\\n\\nWe loved the idea and built on it. Introducing [rawg-to-steam-redirect](https://github.com/Phalcode/rawg-to-steam-redirect).\\n\\nThe link above explains how it works and how you can use it today.\\n\\nWhat we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API.\\n\\nWhile `https://api.rawg.io/api` will remain the default `RAWG_API_URL` for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0.\\n\\n## Exciting new features\\n\\nIn addition to these changes, we\'re excited to introduce you to some new features that were recently released:\\n\\n- **\ud83d\udd16 Bookmarking Video Games:** You can now bookmark your favorite games within GameVault.\\n- **\u23ef\ufe0f Download Management:** GameVault now supports pausing, auto-resuming, and resuming downloads.\\n- **\ud83d\udd12 Encrypted Archives:** GameVault now supports password protected archives.\\n\\nWe hope these updates will make your experience with GameVault even better as we move through this transition period.\\n\\n## Supporting GameVault\\n\\nFinally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can\'t find the GameVault+ easter egg though... \ud83d\ude09\\n\\nWith love,\\n\\nPhalcode"},{"id":"/2024/04/14/","metadata":{"permalink":"/blog/2024/04/14/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md","source":"@site/blog/2024-04-14.md","title":"GameVault+ out now","description":"Hey everyone!","date":"2024-04-14T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"DRM-free","permalink":"/blog/tags/drm-free"},{"inline":true,"label":"video games","permalink":"/blog/tags/video-games"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription","permalink":"/blog/tags/subscription"},{"inline":true,"label":"community-driven","permalink":"/blog/tags/community-driven"},{"inline":true,"label":"updates","permalink":"/blog/tags/updates"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"early access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"release","permalink":"/blog/tags/release"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"sustainability","permalink":"/blog/tags/sustainability"},{"inline":true,"label":"partnerships","permalink":"/blog/tags/partnerships"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"development","permalink":"/blog/tags/development"}],"readingTime":1.18,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault+ out now","authors":["alfagun74"],"tags":["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},"unlisted":false,"prevItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"},"nextItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"}},"content":"Hey everyone!\\n\\nWe\'re thrilled to announce that the early access phase of GameVault+ has concluded, and we\'re officially launching it today! It\'s been an incredible journey from the inception of GameVault to where we are now, and we couldn\'t have done it without your amazing support.\x3c!-- truncate --\x3e\\n\\nGameVault+ is our way of saying thank you to our dedicated supporters while also ensuring the sustainability of our platform. For a small monthly fee, you\'ll gain access to premium features designed to enhance your gaming experience within GameVault. We\'re starting with features like animated profile pictures, custom themes, and activation of the GameVault Client API, with more exciting additions planned for the future.\\n\\nBut our work doesn\'t stop here. We\'re committed to refining GameVault+ based on your feedback, as well as addressing key areas of improvement in the platform. This includes exploring partnerships with reputable video game databases to enhance our data offerings and refactoring our client application for optimal performance.\\n\\nAnd most importantly, we want you, our community, to have a say in the future direction of GameVault. That\'s why we\'re opening up the floor for feature suggestions through our Discord channel. Your input will help shape the next big updates to GameVault.\\n\\nThank you all for your support and enthusiasm. We\'re excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!"},{"id":"/2024/04/01/2024-04-01/","metadata":{"permalink":"/blog/2024/04/01/2024-04-01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md","source":"@site/blog/2024-04-01/2024-04-01.md","title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","description":"Hey Everyone!","date":"2024-04-01T00:00:00.000Z","tags":[{"inline":true,"label":"April Fools","permalink":"/blog/tags/april-fools"}],"readingTime":1.605,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","authors":["alfagun74"],"tags":["April Fools"]},"unlisted":false,"prevItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"},"nextItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"}},"content":"Hey Everyone!\\n\\nThe moment you\'ve been waiting for is finally here. We\'ve been working hard on it for months and are thrilled to announce that GameVault Client Application is **now available on Windows Phone 7**, powered by **Microsoft Silverlight**!\x3c!-- truncate --\x3e\\n\\n![Windows Phone](winphone.png)\\n\\nThe Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC.\\n\\nWe understand the excitement and anticipation surrounding this release, and we\'re just as eager as you are to see how this integration will enhance your experience.\\n\\nWith GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you\'re battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips.\\n\\nThanks to the seamless integration with Microsoft Silverlight, navigating through your game library has never been smoother or more intuitive. The Metro Live Tiles add a touch of elegance to the user interface, making it a joy to browse through your collection and discover new games.\\n\\nAnd the best part? This is just the beginning. Our team is already hard at work on further enhancements and features, including the highly anticipated Holodeck edition of GameVault aswell as the new integrated \\"Bird Feeding Timer\\" feature, that automatically warns you when your pets are about to starve.\\n\\nWe\'re incredibly excited to embark on this journey with you and to continue pushing the boundaries of innovation. So what are you waiting for? Head over to the Windows Phone Store and migrate today to start your gaming adventure!\\n\\nHappy gaming... and April Fools!"},{"id":"/2024/03/28/","metadata":{"permalink":"/blog/2024/03/28/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md","source":"@site/blog/2024-03-28.md","title":"Announcing GameVault+ (coming soon)","description":"Hey Everyone!","date":"2024-03-28T00:00:00.000Z","tags":[{"inline":true,"label":"startup","permalink":"/blog/tags/startup"},{"inline":true,"label":"software","permalink":"/blog/tags/software"},{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription model","permalink":"/blog/tags/subscription-model"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"}],"readingTime":3.725,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Announcing GameVault+ (coming soon)","authors":["alfagun74"],"tags":["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},"unlisted":false,"prevItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"},"nextItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"}},"content":"Hey Everyone!\\n\\nIt feels like it\'s been ages since we last caught up regarding the development of [GameVault (the self-hostable platform for drm-free videogames)](https://gamevau.lt), but trust me, the silence from our end doesn\'t mean we\'ve been slacking off. In fact,quite the opposite has been happening behind the scenes. \x3c!-- truncate --\x3e \\n\\nWhen my friend and I first launched this application, it was born out of a simple need for a solution to a problem we thought was very particular and only for ourselves. Having a steam-like platform for game files lying on my home server.\\n\\nWe never imagined it would resonate with others or find its own place in the market. Frankly, we thought it might end up just another forgotten repository on GitHub, gathering virtual dust with no one paying it any mind.\\n\\nBut boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there\'s quite a demand out there for the exact product we\'ve been building.\\n\\nWe\u2019re a small indie team of two and despite juggling multiple jobs, we\'ve poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we\'ve received some generous donations (_shoutout to our two loyal monthly donors btw \u2013 you know who you are, and we\'re endlessly grateful!_), it\'s clear that relying solely on sporadic tips isn\'t sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families.\\n\\nSo, it\'s time for a slight change. We\'re thrilled to announce the upcoming release of a new version of our client application, complete with an **optional** subscription model we\'re calling...\\n\\n## [GameVault+](https://gamevau.lt/docs/gamevault-plus/introduction)\\n\\n## What is GameVault+?\\n\\nFirst, to clear some of the confusion:\\n\\n**No, this is not some shady scammy \\"We\'re going enterprise\\" rugpull**.\\nThe core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is [designed to be easily bypassed if you can\'t or dont want to afford it.](https://gamevau.lt/docs/gamevault-plus/introduction/#what-if-i-cant-afford-gamevault)\\n\\n[It was long planned on our board and well discussed within our community](https://github.com/Phalcode/gamevault-app/issues/151). Think of [GameVault+](https://gamevau.lt/docs/gamevault-plus/introduction) as our way of saying \\"thank you\\" to our supporters and to motivate them to support us regularly. To be more specific, it\'s us giving back some goodie-features that are not necessarily needed to use GameVault back to our supporters, while they help us keep the lights on here at Phalcode.\\n\\nWith GameVault+, you\'ll gain access to premium nice-to-have features designed to enhance your GameVault experience, all for a small monthly fee of \u20ac4,99 monthly or \u20ac49.90 anually.\\n\\nCurrently, these features include:\\n\\n- Uploading animated profile pictures\\n- Applying Custom Themes\\n- Activation of the GameVault Client API (CLI, URI, and NamedPipe Interfaces Used for client integrations with 3rd party tools like Playnite)\\n\\nBut there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive.\\n\\nAll details and a Q&A are on the [GameVault+ page](https://gamevau.lt/docs/gamevault-plus/introduction).\\n\\n**We\'ll be rolling out this new product today to our early access users first** to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It\'s an exciting new chapter for us, and we can\'t wait to have you along for the ride.\\n\\n## So what\'s next?\\n\\nWe will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon.\\n\\nAfter that, we will need to urgently find a solution to our heavy reliance on the [degrading and unmaintained RAWG Database](https://discord.com/channels/1100920639667306496/1134496308846137404/1217726870959820861). We are already in contact for potential partnerships with Video-Game Databases.\\n\\nFinally, we will need to do some refactoring of our client application\'s architecture.\\n\\nBut stay tuned because once all of this is done, the Next Big Feature we\'ll be focusing on will be open for **the community to decide** in [our #polls channel on Discord](https://discord.gg/NEdNen2dSu). So make sure to join \\"The Council\\" to get notified and vote on your most desired feature.\\n\\nThank you all for supporting us and looking forward to seeing you all on our next updates!"},{"id":"/2023/12/09/","metadata":{"permalink":"/blog/2023/12/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md","source":"@site/blog/2023-12-09.md","title":"Join the GameVault Early-Access Program Now!","description":"Hey, Guys!","date":"2023-12-09T00:00:00.000Z","tags":[{"inline":true,"label":"Gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Early Access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"UI Update","permalink":"/blog/tags/ui-update"},{"inline":true,"label":"Beta Testing","permalink":"/blog/tags/beta-testing"},{"inline":true,"label":"Community Feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview"},{"inline":true,"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers"}],"readingTime":1.135,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Join the GameVault Early-Access Program Now!","authors":["alfagun74"],"tags":["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},"unlisted":false,"prevItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"},"nextItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"}},"content":"Hey, Guys!\\n\\nFor the upcoming large UI update of GameVault, we\'re launching a brand new GameVault Early-Access Program, and we want **YOU** to be a part of it!\x3c!-- truncate --\x3e\\n\\n## What\'s the Early-Access Program?\\n\\nEarly-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You\'ll be part of an exclusive group and get a sneak peek into the latest features, but here\'s the deal \u2013 it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else.\\n\\n## How to Join\\n\\n:clipboard: Complete the [Application Form](https://forms.gle/RQvEGfWeUFPBCUaG6) \\n:date: The first early-access phase kicks off on December 17 and lasts for one week.\\n\\n## Prerequisites\\n\\n:speech_balloon: Active participation in the designated Discord channel. \\n:video_game: GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it [here](https://www.microsoft.com/store/apps/9PCKDV76GL75). \\n:rocket: A GameVault Server running the **phalcode/gamevault-backend:early-access** image. (Only run this if you are accepted as a Tester as it could break things!)\\n\\n### Important Note\\n\\n- There are only a limited number of slots in the Early-Access Program. Supporters and Trusted Members are prioritized.\\n- If you\'re accepted and later found not meeting the requirements, you might be removed from future testing and the next applicant on our list gets the opportunity.\\n\\n[Apply here!](https://forms.gle/RQvEGfWeUFPBCUaG6)"},{"id":"/2023/11/20/","metadata":{"permalink":"/blog/2023/11/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md","source":"@site/blog/2023-11-20.md","title":"A Look Back and a Glimpse Forward","description":"Hello,","date":"2023-11-20T00:00:00.000Z","tags":[{"inline":true,"label":"Game Development","permalink":"/blog/tags/game-development"},{"inline":true,"label":"Software Updates","permalink":"/blog/tags/software-updates"},{"inline":true,"label":"Gaming Community","permalink":"/blog/tags/gaming-community"},{"inline":true,"label":"UI Redesign","permalink":"/blog/tags/ui-redesign"},{"inline":true,"label":"Development Milestones","permalink":"/blog/tags/development-milestones"},{"inline":true,"label":"Tech Progress","permalink":"/blog/tags/tech-progress"},{"inline":true,"label":"Future Features","permalink":"/blog/tags/future-features"},{"inline":true,"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey"},{"inline":true,"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle"},{"inline":true,"label":"November Update","permalink":"/blog/tags/november-update"}],"readingTime":2.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Look Back and a Glimpse Forward","authors":["alfagun74"],"tags":["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},"unlisted":false,"prevItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"},"nextItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"}},"content":"Hello,\\n\\nIt\'s been a while since we caught up here, but if you\'ve been following the action on [Discord](https://discord.gg/NEdNen2dSu), you\'re up to speed. Nevertheless, this blog remains your spot for the key updates and announements.\x3c!-- truncate --\x3e\\n\\nLet\'s dive into what\'s been happening with GameVault since release and what\'s on the horizon. We\'ve hit version 9 on the backend and 1.7 on the frontend, showcasing our commitment to continuous improvement.\\n\\nAlongside the usual optimizations and bug fixes, we\'ve been paying a lot of attention to your feature requests and implemented a bunch of them.\\n\\nHere\'s the highlight reel:\\n\\n- Auto Extraction and Installation of Videogames\\n- Uninstalling Games through GameVault\\n- Uploading Images\\n- Support for more Archive Formats\\n- Bandwidth Control Features\\n- Database Backups & Restorations\\n- Crash Reporting\\n- Random Game Finder\\n\\nSo, what\'s cooking now? We asked for your top three desired features recently, and here are the results:\\n\\n1. UI Redesign for the Library and Installations Tab\\n2. Support for ROMS and Emulators\\n3. Support for extra files like Soundtracks, Mods, etc.\\n\\nBy the way, if you want to take part in polls like this in the future aswell, make sure to become a council member on [Discord](https://discord.gg/NEdNen2dSu)!\\n\\nRight now we\'re knee-deep in redesigning the Library, the heart of our application. Big changes are on the way, waving goodbye to the installations tab and ushering in a sleeker UI for Library, Game View, and Game Settings.\\n\\nHere are some sneak peeks and mockups: (still work in progress):\\n\\n1. Library (Mockup)\\n ![Filters](/img/blog/2023-11-19/filters.png)\\n ![Empty States](/img/blog/2023-11-19/emptystates.png)\\n2. Library (current implementation)\\n ![Library](/img/blog/2023-11-19/library.png)\\n3. Game (Mockup)\\n ![Game View](/img/blog/2023-11-19/game.png)\\n4. Game Settings (Mockup)\\n ![Game Settings](/img/blog/2023-11-19/settings.png)\\n\\nRemember, these are teasers. Anything can look different once it ships. There\'s a lot of work left, and we\'re on it. To be technical here: Most of these modern controls require us to rewrite WPF Controls from the core. On the backend, we\'re not slacking either \u2013 tons of end-to-end tests are being written to ensure our app\'s reliability.\\n\\nExcited about the new UI or got something to say? Head over to [Discord](https://discord.gg/NEdNen2dSu) and spill the beans!\\n\\nWe\'re eager to wrap up these tasks and ship the update out to you guys.\\n\\nWe also wanted to mention we\'ve already crossed 2000 GameVault users with a growing engaged [Discord](https://discord.gg/NEdNen2dSu) community of 350 members!\\n\\nAnd your donations help keeping the lights on, though we\'re not rolling in dough just yet. Every penny counts, and we\'re truly grateful. Thanks a lot. \u2764\ufe0f\\n\\nHelp us promote GameVault among fellow self-hosters. Your efforts could inspire a bored developer to join and contribute to our project!\\n\\nStay tuned for the UI update \u2013 we\'ll be back in touch soon.\\n\\nUntil then, happy gaming! \ud83c\udfae"},{"id":"/2023/07/29/","metadata":{"permalink":"/blog/2023/07/29/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md","source":"@site/blog/2023-07-29.md","title":"Please help us prioritize!","description":"Hello everyone!","date":"2023-07-29T00:00:00.000Z","tags":[{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"roadmap","permalink":"/blog/tags/roadmap"},{"inline":true,"label":"collaboration","permalink":"/blog/tags/collaboration"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"GitHub","permalink":"/blog/tags/git-hub"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"Kanban Board","permalink":"/blog/tags/kanban-board"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Council Member","permalink":"/blog/tags/council-member"},{"inline":true,"label":"polls","permalink":"/blog/tags/polls"},{"inline":true,"label":"gaming experience","permalink":"/blog/tags/gaming-experience"}],"readingTime":1.995,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Please help us prioritize!","authors":["alfagun74"],"tags":["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},"unlisted":false,"prevItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"},"nextItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"}},"content":"Hello everyone!\\n\\nWe hope you\'re all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers. \x3c!-- truncate --\x3e Your enthusiasm and dedication to making GameVault even better are truly inspiring to us.\\n\\nAs many of you may already know, GameVault is a passion project for us, and while we are mostly convinced by your fantastic ideas, it may take some time for us to implement them. Our team meetings happen in our free time, and although we genuinely want to incorporate your suggestions into our roadmap, we are limited by the time and capacity we can dedicate to the project. Moreover, we want to ensure that the features we develop are refined, polished, and also the most desired in the users\' opinions, which adds to the timeline.\\n\\nWe believe that collaboration with our incredible community is the key to success, and that\'s why we want to introduce you to our Roadmap. It displays all new issues, planned tasks we want to work on, and all the ongoing work in a well-organized Kanban Board. [You can find it right here.](https://github.com/orgs/Phalcode/projects/4)\\n\\nTo ensure that GameVault\'s development aligns better with your needs, we kindly request your active participation. By voting on GitHub with a Thumbs Up or a Thumbs Down on new and planned issues, you can help us prioritize them effectively. We value your opinion: What features do you feel are most crucial? What aspects of the platform do you find most bothersome? What issues do you see as unnecessary or bloated? Your input will mainly shape the direction we take.\\n\\nIf you\'re eager to go the extra mile and actively contribute to shaping GameVault further, we invite you to [join our Discord community](https://discord.gg/NEdNen2dSu) and becoming a \\"Council Member\\". By becoming a \\"Council Member\\" and enabling Poll Notifications under \\"#Channels & Roles\\", you will have a direct say in the future of GameVault because you will get notifications about opinion polls we run from time to time.\\n\\nWe cannot stress enough how much we appreciate your involvement in our endeavor to create the ultimate gaming experience for all of you. Your passion and feedback are invaluable, and we are committed to making GameVault the best it can be, together.\\n\\nThank you for being part of this amazing journey with us!"},{"id":"/2023/07/24/","metadata":{"permalink":"/blog/2023/07/24/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md","source":"@site/blog/2023-07-24.md","title":"Celebrating 600+ Installations and announcing the upcoming big feature","description":"Hey everyone,","date":"2023-07-24T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone"},{"inline":true,"label":"official installations","permalink":"/blog/tags/official-installations"},{"inline":true,"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth"},{"inline":true,"label":"gratitude","permalink":"/blog/tags/gratitude"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault"},{"inline":true,"label":"upcoming update","permalink":"/blog/tags/upcoming-update"},{"inline":true,"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline"},{"inline":true,"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation"},{"inline":true,"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue"},{"inline":true,"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role"},{"inline":true,"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch"},{"inline":true,"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"support request","permalink":"/blog/tags/support-request"},{"inline":true,"label":"continued support","permalink":"/blog/tags/continued-support"},{"inline":true,"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements"}],"readingTime":2.39,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","authors":["alfagun74"],"tags":["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},"unlisted":false,"prevItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"},"nextItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"}},"content":"Hey everyone,\\n\\nWe\'re excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application. \x3c!-- truncate --\x3e What\'s even more amazing is that around 200 dedicated users, a third of these installations, have joined our [Discord](https://discord.gg/NEdNen2dSu) community to connect, chat, and share their experiences.\\n\\nWe want to express our immense gratitude for your incredible support, feedback, and love for GameVault. Your ongoing encouragement inspires us to push boundaries and enhance your gaming experience. We\'re thrilled to announce that an awesome update is being worked on right now - the highly anticipated release of GameVault\'s Installation Pipeline!\\n\\n#### GameVault\'s Installation Pipeline\\n\\nThe Installation Pipeline is designed to revolutionize how you install and manage your games. It was suggested by members on our [Discord server](https://discord.gg/NEdNen2dSu). We understand the challenges of navigating through different installation processes, especially for family members who may not be tech-savvy. With the Installation Pipeline, our goal is to simplify the entire process and make it user-friendly. Whether you\'re an experienced gamer or not, this update will make installing games easier for you.\\n\\nYou can read the details [here on the GitHub issue](https://github.com/Phalcode/gamevault-app/issues/18).\\n\\nStay tuned for its upcoming release, and to be among the first to try out this awesome feature, make sure to subscribe to the `@Updates` Role on our [Discord server](https://discord.gg/NEdNen2dSu) , if you haven\'t already. We\'ll ping you as soon as it\'s live!\\n\\n#### Join us on Lemmy\\n\\nTo further connect with our amazing community, we\'re excited to announce the launch of our [official Lemmy community](https://lemmy.world/c/phalcode). From now on, we\'ll also regularly share new blog posts there, providing you with more ways to stay informed and engaged. Join the Lemmy forum and become part of the growing GameVault community!\\n\\n#### Share GameVault with Others\\n\\nAs we celebrate this milestone and eagerly anticipate more exciting updates, we invite you to spread the word about GameVault among your friends, family, and gaming or self-hosting communities. Your personal recommendations and referrals have played a significant role in our journey so far, and we believe they\'ll continue to do so in the future.\\n\\nWe want to express our heartfelt appreciation for the feature requests, discussions, and invaluable help on our GitHub. Your support and collaborative efforts help a lot.\\n\\n#### Support Us\\n\\nAs we move forward, we kindly ask for your continued support. GameVault\'s success is currently solely built upon our incredible community, and your encouragement is what fuels us. If you love our app and believe in our vision, please consider supporting us in any way you can. It could even be something simple like a rating on the Microsoft Store. Your backing empowers us to keep our hard work going.\\n\\nWe\'re eagerly looking forward to celebrating more achievements with all of you.\\n\\nStay tuned, stay connected, and let\'s continue this journey together!"},{"id":"/2023/07/20/","metadata":{"permalink":"/blog/2023/07/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md","source":"@site/blog/2023-07-20.md","title":"The Migrations are finally completed","description":"Hey folks,","date":"2023-07-20T00:00:00.000Z","tags":[{"inline":true,"label":"app name migration","permalink":"/blog/tags/app-name-migration"},{"inline":true,"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication"},{"inline":true,"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users"},{"inline":true,"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering"},{"inline":true,"label":"box representation","permalink":"/blog/tags/box-representation"},{"inline":true,"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation"},{"inline":true,"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"The Migrations are finally completed","authors":["alfagun74"],"tags":["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},"unlisted":false,"prevItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"},"nextItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"}},"content":"Hey folks,\\n\\nGreat news. We\'ve successfully migrated our App name in its entirety and will resume advertising as soon as it\'s published on the Microsoft Store. \x3c!-- truncate --\x3e\\n\\nJust a heads up, there might be a surge of new users joining the [Discord](https://discord.gg/NEdNen2dSu) server due to us promoting GameVault across all available platforms now.\\n\\nYou\'re welcome to join in and spread the word about GameVault with your friends, family, social network, or colleagues!\\n\\n**Let\'s decipher the mystery behind the new logo:**\\n![logo](/img/blog/2023-07-19/logo-text-and-image-sbs.png)\\n\\n- The Box represents a Vault with a Keyhole, but it also symbolizes a game dice.\\n- The Keyhole represents a Keyhole, and simultaneously signifies a game piece.\\n\\nDid you find the logo concept creative? Share your thoughts on [discord](https://discord.gg/NEdNen2dSu)!"},{"id":"/2023/07/19/","metadata":{"permalink":"/blog/2023/07/19/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md","source":"@site/blog/2023-07-19.md","title":"Quick Migration Update and new Logo","description":"Hey guys,","date":"2023-07-19T00:00:00.000Z","tags":[{"inline":true,"label":"name migration progress","permalink":"/blog/tags/name-migration-progress"},{"inline":true,"label":"backend application migration","permalink":"/blog/tags/backend-application-migration"},{"inline":true,"label":"documentation migration","permalink":"/blog/tags/documentation-migration"},{"inline":true,"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition"},{"inline":true,"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration"},{"inline":true,"label":"Lemmy community","permalink":"/blog/tags/lemmy-community"},{"inline":true,"label":"Client Application update","permalink":"/blog/tags/client-application-update"},{"inline":true,"label":"testing","permalink":"/blog/tags/testing"},{"inline":true,"label":"new logo","permalink":"/blog/tags/new-logo"},{"inline":true,"label":"speculation","permalink":"/blog/tags/speculation"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"},{"inline":true,"label":"migration finalization","permalink":"/blog/tags/migration-finalization"}],"readingTime":0.965,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Quick Migration Update and new Logo","authors":["alfagun74"],"tags":["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},"unlisted":false,"prevItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"},"nextItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"}},"content":"Hey guys,\\n\\nWe have a brief update on the progress of the name migration.\\n\\nWe\'ve successfully completed the migration of the backend application, which is now accessible as `gamevault-backend`. \x3c!-- truncate --\x3e\\n\\nFurthermore, we\'ve migrated the documentation and acquired this domain gamevau.lt. We\'ve set up redirects for our previous domain and the demo server as well.\\n\\nLastly we migrated our Subreddit to [r/Phalcode](https://reddit.com/r/Phalcode) and opened up a new community on [Lemmy](https://lemmy.world/c/phalcode). All further Updates and discussions regarding GameVault can be found there.\\n\\nWe\'re nearly finished, you might say.\\n\\nThe only remaining task is the Client Application. We\'re actively working on it and currently testing the application on our developer edition. Soon, you\'ll be able to seamlessly update your client with the new name and appearance.\\n\\nIn the meantime, our graphic designer has crafted a fresh logo for our new name, GameVault.\\n\\n![logo](/img/blog/2023-07-19/logo-text-and-image-sbs.png)\\n\\nTo make good use of your time while the migrations are in progress, what do you speculate the new logo represents?\\n\\nShare your theories in gamevaults #chat channel on [discord](https://discord.gg/NEdNen2dSu)! We\'ll reveal the answer and shoutout the winner(s) in the next blog post, once the migration is finalized!\\n\\nUntil then \u270c\ufe0f"},{"id":"/2023/07/15/","metadata":{"permalink":"/blog/2023/07/15/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md","source":"@site/blog/2023-07-15.md","title":"A New Name","description":"Hey everyone,","date":"2023-07-15T00:00:00.000Z","tags":[{"inline":true,"label":"poll results","permalink":"/blog/tags/poll-results"},{"inline":true,"label":"renaming app","permalink":"/blog/tags/renaming-app"},{"inline":true,"label":"community feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"GameStash","permalink":"/blog/tags/game-stash"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameShelf","permalink":"/blog/tags/game-shelf"},{"inline":true,"label":"Harbor","permalink":"/blog/tags/harbor"},{"inline":true,"label":"GameHub","permalink":"/blog/tags/game-hub"},{"inline":true,"label":"market analysis","permalink":"/blog/tags/market-analysis"},{"inline":true,"label":"new name announcement","permalink":"/blog/tags/new-name-announcement"},{"inline":true,"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain"},{"inline":true,"label":"special thanks","permalink":"/blog/tags/special-thanks"},{"inline":true,"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast"},{"inline":true,"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter"},{"inline":true,"label":"transition process","permalink":"/blog/tags/transition-process"}],"readingTime":3.85,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A New Name","authors":["alfagun74"],"tags":["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},"unlisted":false,"prevItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"},"nextItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"}},"content":"Hey everyone,\\n\\nWe are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can\'t wait to share the exciting updates with you.\x3c!-- truncate --\x3e\\n\\nBut first, let\'s dive into the poll results and shed some light on the important facts without further delay:\\n\\n## Summary\\n\\nIn total, 71 people participated in the poll, providing us with valuable data to draw conclusions from. Here\'s a summary of the key findings:\\n\\n- 52.1% of the community voted against using any terms related to piracy in the app. We understand and respect this choice because it would harm our business and attract the wrong users, as we have no affiliation with piracy.\\n\\n- 42.3% of the community voted to recommend the app under a different name but not with its current name. This feedback motivated us to rename the app, confirming that it wasn\'t just a few critics on Reddit. We want to expand our community to include the families, friends, and colleagues of these people. So please, help us spread the word about the name change!\\n\\n- 36.6% of you said you wouldn\'t contribute to our app at all solely because of its name, even if you had the opportunity. We depend on these contributions to grow and improve, so we now encourage you to participate!\\n\\nWithout further ado, here are the top 5 names that emerged as winners in the poll:\\n\\n1. GameStash (38%)\\n2. GameVault (35.2%)\\n3. GameShelf (31%)\\n4. Harbor (29.6%)\\n5. GameHub (28.2%)\\n\\nAs mentioned earlier, we conducted the poll without conducting market analysis beforehand. However, we recognized the significance of making an informed decision for the benefit of the community. Consequently, we proceeded to analyze each name after the poll to ensure the chosen name resonates with our vision.\\n\\nAllow us to share the summarized results of our market analysis:\\n\\n## Market Analysis\\n\\n### 1. GameStash\\n\\nGoogle Search Results: ~33,600 \\nPossible Domains: gamestash.de\\n\\n- There\'s already an app called [GameStash](https://gamestash.app/) that offers similar features to ours.\\n\\n### 2. GameVault\\n\\nGoogle Search Results: ~800,000 \\nPossible Domains: gamevau.lt, game-vault.de\\n\\n- The term \\"GameVault\\" is associated with a popular online casino/gambling application called [GameVault999](https://gamevault999.com/).\\n\\n### 3. GameShelf\\n\\nGoogle Search Results: ~560,000 \\nPossible Domains: gameshelf.de\\n\\n- The name \\"Gameshelf\\" is already used by two existing applications. One is a [Board-Game-Collection Viewer](https://gameshelf.io/), and the other is a [Gaming Backlog](https://gameshelf.dev) app.\\n\\n### 4. Harbor\\n\\nGoogle Search Results: ~393,000,000 \\nPossible Domains: harborapp.de\\n\\n- \\"Harbor\\" is a very common word, making it challenging to find a suitable domain that aligns with our brand identity.\\n\\n- Additionally, there\'s a well-known app called [Harbor on the Market](https://goharbor.io) related to Docker/Kubernetes.\\n\\n### 5. GameHub\\n\\nGoogle Search Results: ~5,690,000\\nPossible Domains: gamehubapp.de\\n\\n- [GameHub](https://github.com/tkashkin/GameHub) is a popular game library manager\\n- it also sounds like a popular adult site \ud83d\ude01\\n\\n## What\'s Next?\\n\\nWe understand your eagerness for a new name, and we are equally committed to distancing ourselves from the old one. Taking into account all the suggested names and feedback, we engaged in extensive internal brainstorming, free from outside influences.\\n\\nWe sought a name that is descriptive, intuitive, and effectively conveys the purpose of our app. Additionally, we aimed for a name that is easily memorable and emphasizes the ownership and control of a self-hosted server, security, and exclusivity.\\n\\nIntroducing our new name: **GameVault** \\nAvailable soon under this domain: [gamevau.lt](https://gamevau.lt)\\n\\nWe have already secured the domain and registered the name wherever possible. The transition process will commence shortly. We are eager to hear your thoughts on the new name. Do you like it?\\n\\n## Special Thanks \u2764\ufe0f\\n\\nWell, as you all know, this was quite a journey to get here, and we wanted to give our special thanks to:\\n\\n- Everybody who gave this project\'s idea a chance, even if the name was kind of weird.\\n\\n- Everybody who made suggestions on our [Discord](https://discord.gg/NEdNen2dSu) server and participated in the discussions.\\n\\n- Everybody who voted.\\n\\n- A special shoutout to @KairuByte on [Discord](https://discord.gg/NEdNen2dSu) for coming up with the name GameVault.\\n\\n- We would also like to extend our gratitude to [The Selfhosted Podcast](https://selfhosted.show/101?t=2731) for discussing our app. (Brent, we are excited to hear your thoughts on the new name from a marketing standpoint \ud83d\ude1c)\\n\\n- Last but not least, thank you to [The Self-Hosted Newsletter](https://selfh.st/newsletter/2023-07-07/) for mentioning our release.\\n\\nThank you all for your continued support!\\n\\nWe will keep you updated as the transition unfolds. In the meantime, head over to our [Discord](https://discord.gg/NEdNen2dSu) channel to celebrate and share your thoughts on the new name.\\n\\nStay tuned!"},{"id":"/2023/07/13/","metadata":{"permalink":"/blog/2023/07/13/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md","source":"@site/blog/2023-07-13.md","title":"A Closer Look at GameVaults \'Source-Available\' Nature","description":"Hey everyone,","date":"2023-07-13T00:00:00.000Z","tags":[{"inline":true,"label":"source-available software","permalink":"/blog/tags/source-available-software"},{"inline":true,"label":"open-source","permalink":"/blog/tags/open-source"},{"inline":true,"label":"transparency","permalink":"/blog/tags/transparency"},{"inline":true,"label":"control","permalink":"/blog/tags/control"},{"inline":true,"label":"software development","permalink":"/blog/tags/software-development"},{"inline":true,"label":"code access","permalink":"/blog/tags/code-access"},{"inline":true,"label":"hybrid model","permalink":"/blog/tags/hybrid-model"},{"inline":true,"label":"software licensing","permalink":"/blog/tags/software-licensing"},{"inline":true,"label":"revenue generation","permalink":"/blog/tags/revenue-generation"},{"inline":true,"label":"user engagement","permalink":"/blog/tags/user-engagement"}],"readingTime":2.57,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","authors":["alfagun74"],"tags":["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},"unlisted":false,"prevItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"},"nextItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"}},"content":"Hey everyone,\\n\\ntoday i want to clarify why GameVault isn\'t considered \\"open-source\\" by definition. \x3c!-- truncate --\x3e\\n\\nYou see, GameVault is what we like to call [\\"source-available\\"](https://wikipedia.org/wiki/Source-available_software) software. This means that our code is open for you to explore and modify, but it doesn\'t fully meet all the criteria of being considered open-source. I want to take a moment to explain what open-source truly means and why we\'ve taken a slightly different approach.\\n\\nAccording to the widely recognized definitions, [\\"open-source\\"](https://wikipedia.org/wiki/Open-source_software) software, as one would think, not only provides access to the source code but also offers certain freedoms to its users. It allows them to use, modify, and distribute the software freely, even for commercial purposes.\\n\\nFor a self-hosted app like GameVault, we believe it\'s crucual to disclose the source code. We want you, our users, to have full transparency and control over the software you use on your servers. We don\'t want you to be unaware of what\'s happening behind the scenes, as is sometimes the case with closed-source applications like Plex, for example.\\n\\nNow, you may be wondering why we didn\'t make GameVault fully open-source. The answer lies in our desire to protect our code from unauthorized use and commercial exploitation. While we absolutely encourage you to copy, modify, and share our code for personal use, we want to prevent others from profiting off our hard work by selling our software without our consent.\\n\\nIt\'s important to acknowledge that maintaining and developing a software project requires resources. While we admire the open-source community and its valuable contributions, sustaining GameVault solely through donations or offering it for free indefinitely is not feasible. For instance, Jellyfin, a popular open-source app developed over a decade, generates only around $13,500 per year (according to their opencollective page). In contrast, Plex, a closed-source alternative, earns a significant $8.5 million annually. Our company\'s main goal is to keep the core functionality of GameVault free, but we also need to explore ways to generate revenue in order to support its future growth and improvement. We are currently considering monetizing additional convenience features for the Client Application in the future, although nothing has been finalized yet.\\n\\nWe genuinely appreciate your understanding. As a small business with just two members, we strive to provide you with a valuable product but cannot continue to do so as volunteers indefinitely. Sustaining losses in the long term would not be sustainable, especially considering our local tax obligations. We have families and commitments that cannot be neglected, and this project is not our primary job. Therefore, please understand that GameVault may not strictly align with the traditional definition of \\"open-source,\\" and we no longer characterize it as such. Our intention is to be transparent and present our perspective. Your understanding, support, and empathy mean a great deal to us.\\n\\nIf you have any thoughts or comments on this topic, we\'d be more than happy to hear from you. Feel free to share your feedback on our [Discord](https://discord.gg/NEdNen2dSu) server. We truly value your input and look forward to engaging with you there.\\n\\n`EDIT: Updated Application Name`"},{"id":"/2023/07/09/","metadata":{"permalink":"/blog/2023/07/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md","source":"@site/blog/2023-07-09.md","title":"Battling Harassment and Trolls in Our App Community","description":"Hey folks,","date":"2023-07-09T00:00:00.000Z","tags":[{"inline":true,"label":"harassment","permalink":"/blog/tags/harassment"},{"inline":true,"label":"blackmail","permalink":"/blog/tags/blackmail"},{"inline":true,"label":"threats","permalink":"/blog/tags/threats"},{"inline":true,"label":"spam","permalink":"/blog/tags/spam"},{"inline":true,"label":"trolls","permalink":"/blog/tags/trolls"},{"inline":true,"label":"negative narratives","permalink":"/blog/tags/negative-narratives"},{"inline":true,"label":"safe environment","permalink":"/blog/tags/safe-environment"},{"inline":true,"label":"racist","permalink":"/blog/tags/racist"},{"inline":true,"label":"developers","permalink":"/blog/tags/developers"},{"inline":true,"label":"public","permalink":"/blog/tags/public"},{"inline":true,"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior"},{"inline":true,"label":"app","permalink":"/blog/tags/app"},{"inline":true,"label":"support","permalink":"/blog/tags/support"},{"inline":true,"label":"financial assistance","permalink":"/blog/tags/financial-assistance"},{"inline":true,"label":"motivation","permalink":"/blog/tags/motivation"},{"inline":true,"label":"GameVault app","permalink":"/blog/tags/game-vault-app"},{"inline":true,"label":"bugs","permalink":"/blog/tags/bugs"},{"inline":true,"label":"feature requests","permalink":"/blog/tags/feature-requests"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"success","permalink":"/blog/tags/success"},{"inline":true,"label":"engagement","permalink":"/blog/tags/engagement"}],"readingTime":1.955,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Battling Harassment and Trolls in Our App Community","authors":["alfagun74"],"tags":["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},"unlisted":false,"prevItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"},"nextItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}},"content":"Hey folks,\\n\\nWe have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us. \x3c!-- truncate --\x3e\\n\\nIt began with spam on our Issue Trackers and [Discord](https://discord.gg/NEdNen2dSu) Server but this situation has escalated to the point where these individuals went so far as to search me up on LinkedIn and threaten to inform my employer with baseless accusations of racism because of trivial reasons like the branch name in our github project being \\"master\\". Moreover, we have received reports that these trolls have extended their actions directly to other members of this server, attempting to spread negative narratives and disrupting the community atmosphere.\\n\\nTo address this issue, we kindly request that you promptly report any encounters with these trolls to both [Discord](https://discord.gg/NEdNen2dSu) and our dedicated team of moderators. By doing so, we can take appropriate measures to handle the situation and maintain a safe environment for all.\\n\\nWe would like to emphasize that we are not racist individuals, but rather developers who decided to share our hard work with the community, hoping to bring joy and utility to everyone. Unfortunately, we did not anticipate encountering such creepy behavior when we made the project public. It has made us question whether it was the right decision to open up our work in the first place.\\n\\nIf you appreciate our efforts and would like to support us and the app, we humbly ask for your financial assistance. Even a small contribution of five bucks on [Kofi](https://ko-fi.com/phalcode) would go a long way in helping us maintain our motivation and dedication. Alternatively, if monetary support isn\'t possible, we would be incredibly grateful if you could share kind words about how the GameVault app has positively impacted your life in the #chat channel. Your encouragement means the world to us. \ud83e\udd70\\n\\nIn addition, we encourage you to continue reporting any bugs you encounter and submitting feature requests in the respective GitHub trackers. With your valuable input, we can continue improving the app and making it even better.\\n\\nRemember, the success of this project relies on your support and engagement. Let\'s stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding."},{"id":"/2023/07/08/","metadata":{"permalink":"/blog/2023/07/08/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md","source":"@site/blog/2023-07-08.md","title":"Choosing a New, Family-Friendly Name for this project!","description":"Hello, everyone!","date":"2023-07-08T00:00:00.000Z","tags":[{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"gaming platform","permalink":"/blog/tags/gaming-platform"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"new name","permalink":"/blog/tags/new-name"},{"inline":true,"label":"family-friendly","permalink":"/blog/tags/family-friendly"},{"inline":true,"label":"poll","permalink":"/blog/tags/poll"},{"inline":true,"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"inclusivity","permalink":"/blog/tags/inclusivity"},{"inline":true,"label":"user participation","permalink":"/blog/tags/user-participation"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"decision-making","permalink":"/blog/tags/decision-making"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"platform values","permalink":"/blog/tags/platform-values"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"future development","permalink":"/blog/tags/future-development"}],"readingTime":1.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Choosing a New, Family-Friendly Name for this project!","authors":["alfagun74"],"tags":["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},"unlisted":false,"prevItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"},"nextItem":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/"}},"content":"Hello, everyone!\\n\\nWe have an important announcement to share about our [source-available](https://en.wikipedia.org/wiki/Source-available_software) gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform\'s values. \x3c!-- truncate --\x3e To make this decision-making process more convenient, we have created a poll with 100 potential names, suggested by you on our [Discord](https://discord.gg/NEdNen2dSu), some of which were generated by AI. Your participation in shaping the future of our platform is greatly appreciated.\\n\\nWe kindly request your support in selecting a new name for our gaming platform. The poll offers a variety of names, and we ask that you choose at least 10 names (10%) that appeal to you. By gathering diverse input and minimizing bias, we aim to create an inclusive and enjoyable experience for all users. We apologize if the current name has caused any discomfort, and we are committed to creating a welcoming environment for gamers.\\n\\nTo cast your votes and contribute to the selection of a new, family-friendly name for our [source-available](https://en.wikipedia.org/wiki/Source-available_software) gaming platform, please click on the link provided at the end of this post. Your voice matters, and together, we can find a name that truly represents our app\'s essence. The results will be announced on this blog around July 15, 2023.\\n\\nWe sincerely appreciate your support and encourage you to stay tuned for updates as we continue to improve our platform based on your valuable feedback.\\n\\nLink to the poll: [https://forms.gle/cYsURG6BqMXcxE3B8](https://forms.gle/cYsURG6BqMXcxE3B8)\\n\\nHappy voting!"},{"id":"/2023/07/01/","metadata":{"permalink":"/blog/2023/07/01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md","source":"@site/blog/2023-07-01.md","title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","description":"Hey Guys,","date":"2023-07-01T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"alternative","permalink":"/blog/tags/alternative"},{"inline":true,"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms"},{"inline":true,"label":"DRM-free games","permalink":"/blog/tags/drm-free-games"},{"inline":true,"label":"file server","permalink":"/blog/tags/file-server"},{"inline":true,"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"RAWG API","permalink":"/blog/tags/rawg-api"},{"inline":true,"label":"health monitoring","permalink":"/blog/tags/health-monitoring"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"Discord server","permalink":"/blog/tags/discord-server"},{"inline":true,"label":"Reddit forum","permalink":"/blog/tags/reddit-forum"},{"inline":true,"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum"}],"readingTime":1.78,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","authors":["alfagun74"],"tags":["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},"unlisted":false,"prevItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}},"content":"Hey Guys,\\n\\nOur team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community. \x3c!-- truncate --\x3e\\n\\nWith GameVault, you can play and track games together with your friends on a shared file server, free from any restrictions that traditional game platforms may impose. We have designed it to work with DRM-free games, providing a unique solution for those who want a more flexible and open approach to gaming. Think of it like Jellyfin, but for Videogames.\\n\\nGameVault offers a self-hosted approach that gives you complete control over your gaming experience. The platform enables you to browse your server\'s game collection, securely download games, launch and play them, and even track your playtimes and progress - regardless of whether the server is offline. Additionally, you can compare stats and play states with other users on the server.\\n\\nOur server features offer automatic indexing of games on the file system into a database, enrichment of games with metadata like tags and genres using RAWG API, multi-user authentication, and configurable logging. We have also implemented health monitoring, full-text search, filters, sorting, pagination, and a fully documented API. The GameVault platform is highly configurable to suit your needs.\\n\\nWe are thrilled that you have found us, and we invite you to try GameVault today. We would be grateful for any contributions, feedback, bug reports, and feature requests you might have. You can also support us by donating using the links provided on our website. If you have any questions or would like to connect with other GameVault users, please join our [Discord](https://discord.gg/NEdNen2dSu), Reddit and Lemmy communities - links to which are available in the footer.\\n\\nWe are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault."}]}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5749],{7735:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2024/10/20/","metadata":{"permalink":"/blog/2024/10/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-10-20.md","source":"@site/blog/2024-10-20.md","title":"An update so major, we could have built the product from scratch.","description":"Hello, GameVault Community!","date":"2024-10-20T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Client Update","permalink":"/blog/tags/client-update"},{"inline":true,"label":"Server Update","permalink":"/blog/tags/server-update"},{"inline":true,"label":"metadata framework","permalink":"/blog/tags/metadata-framework"},{"inline":true,"label":"plugin system","permalink":"/blog/tags/plugin-system"},{"inline":true,"label":"parental control","permalink":"/blog/tags/parental-control"},{"inline":true,"label":"age restrictions","permalink":"/blog/tags/age-restrictions"},{"inline":true,"label":"theme","permalink":"/blog/tags/theme"},{"inline":true,"label":"app optimization","permalink":"/blog/tags/app-optimization"},{"inline":true,"label":"analytics","permalink":"/blog/tags/analytics"},{"inline":true,"label":"notes","permalink":"/blog/tags/notes"},{"inline":true,"label":"community management","permalink":"/blog/tags/community-management"}],"readingTime":2.515,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"An update so major, we could have built the product from scratch.","authors":["alfagun74"],"tags":["GameVault","Client Update","Server Update","metadata framework","plugin system","parental control","age restrictions","theme","app optimization","analytics","notes","community management"]},"unlisted":false,"nextItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"}},"content":"**Hello, GameVault Community!**\\n\\nAfter six months of hard work, we\u2019re beyond excited to unveil our biggest update yet: **GameVault Client v1.12** and **GameVault Server v13**! This release is so massive, it feels like we could\u2019ve built the product from scratch\u2014there\u2019s that much new ground covered. \x3c!-- truncate --\x3e\\n\\n### What\u2019s New?\\n\\nWe\u2019ve introduced some game-changing improvements. First and foremost, we\u2019ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we\u2019ve built something much better: a brand-new **plugin system** on the backend, complete with an official partnership with **IGDB/Twitch**.\\n\\nThe new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata\u2014if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom.\\n\\nWe\u2019ve been rigorously testing this system for 2\u20133 months, running an early access phase for about a month. While we\u2019ve optimized it as much as possible, we ask for your patience if any bugs pop up\u2014mastillke sure to back up before migrating!\\n\\n### Major New Features\\n\\nHere\u2019s a quick rundown of some other incredible additions in this update:\\n\\n- **Parental Controls & Age Restrictions:** Now, families can manage access based on age-appropriate content, giving more control over what\u2019s playable and viewable for children.\\n- **Built-in Media Player:** You can now watch trailers and gameplay videos directly in GameVault.\\n- **UI Overhaul:** We\u2019ve refreshed the Game, Community, and Admin Tabs, along with a redesigned App Bar for a sleeker look.\\n- **Halloween Theme:** Just in time for spooky season! GameVault+ users can enjoy a themed Halloween skin.\\n- **Convenience Features:** We\u2019ve added default arguments and launch/install executables to streamline app functionality.\\n- **Markdown Support:** Both Notes and Server News now support markdown, making formatting a breeze and improving readability.\\n\\n### Critical Update Info\\n\\nBefore updating, please ensure compatibility between clients and servers:\\n\\n- **Client v1.12** is required for servers running **v13 or above**.\\n- Older clients (**before v1.12**) won\u2019t work with server running on **Version 13 or above**.\\n\\nFor a smooth update and a guide on how to use all these new features, check out the detailed [migration instructions](https://github.com/Phalcode/gamevault-backend/blob/master/CHANGELOG.md#1300) in the server changelogs. As always, if you hit any snags, feel free to reach out to us on [Discord](https://discord.gg/NEdNen2dSu).\\n\\n### Support Us\\n\\nIf you\u2019d like to support our development and help us keep most of GameVault\u2019s features free, consider [subscribing to **GameVault+**](https://gamevau.lt/gamevault-plus) or making [a one-time donation](https://phalco.de/support-us). Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all.\\n\\nThank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we\'ve added."},{"id":"/2024/05/07/","metadata":{"permalink":"/blog/2024/05/07/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md","source":"@site/blog/2024-05-07.md","title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","description":"Hey everyone!","date":"2024-05-07T00:00:00.000Z","tags":[{"inline":true,"label":"game","permalink":"/blog/tags/game"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"database","permalink":"/blog/tags/database"},{"inline":true,"label":"videogame","permalink":"/blog/tags/videogame"},{"inline":true,"label":"RAWG","permalink":"/blog/tags/rawg"},{"inline":true,"label":"IGDB","permalink":"/blog/tags/igdb"},{"inline":true,"label":"twitch.tv","permalink":"/blog/tags/twitch-tv"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"partnership","permalink":"/blog/tags/partnership"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"solution","permalink":"/blog/tags/solution"},{"inline":true,"label":"Steam","permalink":"/blog/tags/steam"},{"inline":true,"label":"backend","permalink":"/blog/tags/backend"},{"inline":true,"label":"update","permalink":"/blog/tags/update"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"easter egg","permalink":"/blog/tags/easter-egg"}],"readingTime":2.525,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","authors":["alfagun74"],"tags":["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},"unlisted":false,"prevItem":{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/"},"nextItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"}},"content":"Hey everyone!\\n\\nIn our last post we mentioned the challenges we\'ve been facing with the videogame metadata database we\'ve been using, [rawg.io](https://rawg.io/). Unfortunately, it\'s become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. \x3c!-- truncate --\x3e The situation peaked on May 5th when the service went down completely for a day.\\n\\n## GameVault\'s new metadata provider strategy\\n\\nTo address these issues, we\'re making significant changes to GameVault\'s metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider.\\n\\nWe\'re also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB\'s APIs out of the box.\\n\\nMore details on our plans can be found in this [GitHub ticket](https://github.com/Phalcode/gamevault-backend/issues/258). We also plan to continue supporting the use of your own API keys and other vendors.\\n\\nHowever, as decided in our recent poll, we will be removing all support for RAWG.\\n\\n## Temporary solution: Implementing a RAWG replacement\\n\\nHowever, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we\'re away? To address this concern, [Toylerrr](https://github.com/Toylerrr), one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the `RAWG_API_URL` environmental variable.\\n\\nWe loved the idea and built on it. Introducing [rawg-to-steam-redirect](https://github.com/Phalcode/rawg-to-steam-redirect).\\n\\nThe link above explains how it works and how you can use it today.\\n\\nWhat we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API.\\n\\nWhile `https://api.rawg.io/api` will remain the default `RAWG_API_URL` for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0.\\n\\n## Exciting new features\\n\\nIn addition to these changes, we\'re excited to introduce you to some new features that were recently released:\\n\\n- **\ud83d\udd16 Bookmarking Video Games:** You can now bookmark your favorite games within GameVault.\\n- **\u23ef\ufe0f Download Management:** GameVault now supports pausing, auto-resuming, and resuming downloads.\\n- **\ud83d\udd12 Encrypted Archives:** GameVault now supports password protected archives.\\n\\nWe hope these updates will make your experience with GameVault even better as we move through this transition period.\\n\\n## Supporting GameVault\\n\\nFinally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can\'t find the GameVault+ easter egg though... \ud83d\ude09\\n\\nWith love,\\n\\nPhalcode"},{"id":"/2024/04/14/","metadata":{"permalink":"/blog/2024/04/14/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-14.md","source":"@site/blog/2024-04-14.md","title":"GameVault+ out now","description":"Hey everyone!","date":"2024-04-14T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"DRM-free","permalink":"/blog/tags/drm-free"},{"inline":true,"label":"video games","permalink":"/blog/tags/video-games"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription","permalink":"/blog/tags/subscription"},{"inline":true,"label":"community-driven","permalink":"/blog/tags/community-driven"},{"inline":true,"label":"updates","permalink":"/blog/tags/updates"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"early access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"release","permalink":"/blog/tags/release"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"sustainability","permalink":"/blog/tags/sustainability"},{"inline":true,"label":"partnerships","permalink":"/blog/tags/partnerships"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"development","permalink":"/blog/tags/development"}],"readingTime":1.18,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault+ out now","authors":["alfagun74"],"tags":["gaming","self-hosted","platform","DRM-free","video games","GameVault","GameVault+","subscription","community-driven","updates","announcement","early access","release","features","sustainability","partnerships","Discord","feedback","improvement","development"]},"unlisted":false,"prevItem":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","permalink":"/blog/2024/05/07/"},"nextItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"}},"content":"Hey everyone!\\n\\nWe\'re thrilled to announce that the early access phase of GameVault+ has concluded, and we\'re officially launching it today! It\'s been an incredible journey from the inception of GameVault to where we are now, and we couldn\'t have done it without your amazing support.\x3c!-- truncate --\x3e\\n\\nGameVault+ is our way of saying thank you to our dedicated supporters while also ensuring the sustainability of our platform. For a small monthly fee, you\'ll gain access to premium features designed to enhance your gaming experience within GameVault. We\'re starting with features like animated profile pictures, custom themes, and activation of the GameVault Client API, with more exciting additions planned for the future.\\n\\nBut our work doesn\'t stop here. We\'re committed to refining GameVault+ based on your feedback, as well as addressing key areas of improvement in the platform. This includes exploring partnerships with reputable video game databases to enhance our data offerings and refactoring our client application for optimal performance.\\n\\nAnd most importantly, we want you, our community, to have a say in the future direction of GameVault. That\'s why we\'re opening up the floor for feature suggestions through our Discord channel. Your input will help shape the next big updates to GameVault.\\n\\nThank you all for your support and enthusiasm. We\'re excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!"},{"id":"/2024/04/01/2024-04-01/","metadata":{"permalink":"/blog/2024/04/01/2024-04-01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-04-01/2024-04-01.md","source":"@site/blog/2024-04-01/2024-04-01.md","title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","description":"Hey Everyone!","date":"2024-04-01T00:00:00.000Z","tags":[{"inline":true,"label":"April Fools","permalink":"/blog/tags/april-fools"}],"readingTime":1.605,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","authors":["alfagun74"],"tags":["April Fools"]},"unlisted":false,"prevItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"},"nextItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"}},"content":"Hey Everyone!\\n\\nThe moment you\'ve been waiting for is finally here. We\'ve been working hard on it for months and are thrilled to announce that GameVault Client Application is **now available on Windows Phone 7**, powered by **Microsoft Silverlight**!\x3c!-- truncate --\x3e\\n\\n![Windows Phone](winphone.png)\\n\\nThe Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC.\\n\\nWe understand the excitement and anticipation surrounding this release, and we\'re just as eager as you are to see how this integration will enhance your experience.\\n\\nWith GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you\'re battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips.\\n\\nThanks to the seamless integration with Microsoft Silverlight, navigating through your game library has never been smoother or more intuitive. The Metro Live Tiles add a touch of elegance to the user interface, making it a joy to browse through your collection and discover new games.\\n\\nAnd the best part? This is just the beginning. Our team is already hard at work on further enhancements and features, including the highly anticipated Holodeck edition of GameVault aswell as the new integrated \\"Bird Feeding Timer\\" feature, that automatically warns you when your pets are about to starve.\\n\\nWe\'re incredibly excited to embark on this journey with you and to continue pushing the boundaries of innovation. So what are you waiting for? Head over to the Windows Phone Store and migrate today to start your gaming adventure!\\n\\nHappy gaming... and April Fools!"},{"id":"/2024/03/28/","metadata":{"permalink":"/blog/2024/03/28/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-03-28.md","source":"@site/blog/2024-03-28.md","title":"Announcing GameVault+ (coming soon)","description":"Hey Everyone!","date":"2024-03-28T00:00:00.000Z","tags":[{"inline":true,"label":"startup","permalink":"/blog/tags/startup"},{"inline":true,"label":"software","permalink":"/blog/tags/software"},{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"subscription model","permalink":"/blog/tags/subscription-model"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"}],"readingTime":3.725,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Announcing GameVault+ (coming soon)","authors":["alfagun74"],"tags":["startup","software","gaming","GameVault","subscription model","development","community","announcement"]},"unlisted":false,"prevItem":{"title":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","permalink":"/blog/2024/04/01/2024-04-01/"},"nextItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"}},"content":"Hey Everyone!\\n\\nIt feels like it\'s been ages since we last caught up regarding the development of [GameVault (the self-hostable platform for drm-free videogames)](https://gamevau.lt), but trust me, the silence from our end doesn\'t mean we\'ve been slacking off. In fact,quite the opposite has been happening behind the scenes. \x3c!-- truncate --\x3e \\n\\nWhen my friend and I first launched this application, it was born out of a simple need for a solution to a problem we thought was very particular and only for ourselves. Having a steam-like platform for game files lying on my home server.\\n\\nWe never imagined it would resonate with others or find its own place in the market. Frankly, we thought it might end up just another forgotten repository on GitHub, gathering virtual dust with no one paying it any mind.\\n\\nBut boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there\'s quite a demand out there for the exact product we\'ve been building.\\n\\nWe\u2019re a small indie team of two and despite juggling multiple jobs, we\'ve poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we\'ve received some generous donations (_shoutout to our two loyal monthly donors btw \u2013 you know who you are, and we\'re endlessly grateful!_), it\'s clear that relying solely on sporadic tips isn\'t sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families.\\n\\nSo, it\'s time for a slight change. We\'re thrilled to announce the upcoming release of a new version of our client application, complete with an **optional** subscription model we\'re calling...\\n\\n## [GameVault+](https://gamevau.lt/docs/gamevault-plus/introduction)\\n\\n## What is GameVault+?\\n\\nFirst, to clear some of the confusion:\\n\\n**No, this is not some shady scammy \\"We\'re going enterprise\\" rugpull**.\\nThe core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is [designed to be easily bypassed if you can\'t or dont want to afford it.](https://gamevau.lt/docs/gamevault-plus/introduction/#what-if-i-cant-afford-gamevault)\\n\\n[It was long planned on our board and well discussed within our community](https://github.com/Phalcode/gamevault-app/issues/151). Think of [GameVault+](https://gamevau.lt/docs/gamevault-plus/introduction) as our way of saying \\"thank you\\" to our supporters and to motivate them to support us regularly. To be more specific, it\'s us giving back some goodie-features that are not necessarily needed to use GameVault back to our supporters, while they help us keep the lights on here at Phalcode.\\n\\nWith GameVault+, you\'ll gain access to premium nice-to-have features designed to enhance your GameVault experience, all for a small monthly fee of \u20ac4,99 monthly or \u20ac49.90 anually.\\n\\nCurrently, these features include:\\n\\n- Uploading animated profile pictures\\n- Applying Custom Themes\\n- Activation of the GameVault Client API (CLI, URI, and NamedPipe Interfaces Used for client integrations with 3rd party tools like Playnite)\\n\\nBut there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive.\\n\\nAll details and a Q&A are on the [GameVault+ page](https://gamevau.lt/docs/gamevault-plus/introduction).\\n\\n**We\'ll be rolling out this new product today to our early access users first** to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It\'s an exciting new chapter for us, and we can\'t wait to have you along for the ride.\\n\\n## So what\'s next?\\n\\nWe will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon.\\n\\nAfter that, we will need to urgently find a solution to our heavy reliance on the [degrading and unmaintained RAWG Database](https://discord.com/channels/1100920639667306496/1134496308846137404/1217726870959820861). We are already in contact for potential partnerships with Video-Game Databases.\\n\\nFinally, we will need to do some refactoring of our client application\'s architecture.\\n\\nBut stay tuned because once all of this is done, the Next Big Feature we\'ll be focusing on will be open for **the community to decide** in [our #polls channel on Discord](https://discord.gg/NEdNen2dSu). So make sure to join \\"The Council\\" to get notified and vote on your most desired feature.\\n\\nThank you all for supporting us and looking forward to seeing you all on our next updates!"},{"id":"/2023/12/09/","metadata":{"permalink":"/blog/2023/12/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-12-09.md","source":"@site/blog/2023-12-09.md","title":"Join the GameVault Early-Access Program Now!","description":"Hey, Guys!","date":"2023-12-09T00:00:00.000Z","tags":[{"inline":true,"label":"Gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"Early Access","permalink":"/blog/tags/early-access"},{"inline":true,"label":"UI Update","permalink":"/blog/tags/ui-update"},{"inline":true,"label":"Beta Testing","permalink":"/blog/tags/beta-testing"},{"inline":true,"label":"Community Feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"Exclusive Preview","permalink":"/blog/tags/exclusive-preview"},{"inline":true,"label":"Microsoft Store","permalink":"/blog/tags/microsoft-store"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Gaming Servers","permalink":"/blog/tags/gaming-servers"}],"readingTime":1.135,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Join the GameVault Early-Access Program Now!","authors":["alfagun74"],"tags":["Gaming","GameVault","Early Access","UI Update","Beta Testing","Community Feedback","Exclusive Preview","Microsoft Store","Discord","Gaming Servers"]},"unlisted":false,"prevItem":{"title":"Announcing GameVault+ (coming soon)","permalink":"/blog/2024/03/28/"},"nextItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"}},"content":"Hey, Guys!\\n\\nFor the upcoming large UI update of GameVault, we\'re launching a brand new GameVault Early-Access Program, and we want **YOU** to be a part of it!\x3c!-- truncate --\x3e\\n\\n## What\'s the Early-Access Program?\\n\\nEarly-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You\'ll be part of an exclusive group and get a sneak peek into the latest features, but here\'s the deal \u2013 it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else.\\n\\n## How to Join\\n\\n:clipboard: Complete the [Application Form](https://forms.gle/RQvEGfWeUFPBCUaG6) \\n:date: The first early-access phase kicks off on December 17 and lasts for one week.\\n\\n## Prerequisites\\n\\n:speech_balloon: Active participation in the designated Discord channel. \\n:video_game: GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it [here](https://www.microsoft.com/store/apps/9PCKDV76GL75). \\n:rocket: A GameVault Server running the **phalcode/gamevault-backend:early-access** image. (Only run this if you are accepted as a Tester as it could break things!)\\n\\n### Important Note\\n\\n- There are only a limited number of slots in the Early-Access Program. Supporters and Trusted Members are prioritized.\\n- If you\'re accepted and later found not meeting the requirements, you might be removed from future testing and the next applicant on our list gets the opportunity.\\n\\n[Apply here!](https://forms.gle/RQvEGfWeUFPBCUaG6)"},{"id":"/2023/11/20/","metadata":{"permalink":"/blog/2023/11/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-11-20.md","source":"@site/blog/2023-11-20.md","title":"A Look Back and a Glimpse Forward","description":"Hello,","date":"2023-11-20T00:00:00.000Z","tags":[{"inline":true,"label":"Game Development","permalink":"/blog/tags/game-development"},{"inline":true,"label":"Software Updates","permalink":"/blog/tags/software-updates"},{"inline":true,"label":"Gaming Community","permalink":"/blog/tags/gaming-community"},{"inline":true,"label":"UI Redesign","permalink":"/blog/tags/ui-redesign"},{"inline":true,"label":"Development Milestones","permalink":"/blog/tags/development-milestones"},{"inline":true,"label":"Tech Progress","permalink":"/blog/tags/tech-progress"},{"inline":true,"label":"Future Features","permalink":"/blog/tags/future-features"},{"inline":true,"label":"GameVault Journey","permalink":"/blog/tags/game-vault-journey"},{"inline":true,"label":"Coding Chronicle","permalink":"/blog/tags/coding-chronicle"},{"inline":true,"label":"November Update","permalink":"/blog/tags/november-update"}],"readingTime":2.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Look Back and a Glimpse Forward","authors":["alfagun74"],"tags":["Game Development","Software Updates","Gaming Community","UI Redesign","Development Milestones","Tech Progress","Future Features","GameVault Journey","Coding Chronicle","November Update"]},"unlisted":false,"prevItem":{"title":"Join the GameVault Early-Access Program Now!","permalink":"/blog/2023/12/09/"},"nextItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"}},"content":"Hello,\\n\\nIt\'s been a while since we caught up here, but if you\'ve been following the action on [Discord](https://discord.gg/NEdNen2dSu), you\'re up to speed. Nevertheless, this blog remains your spot for the key updates and announements.\x3c!-- truncate --\x3e\\n\\nLet\'s dive into what\'s been happening with GameVault since release and what\'s on the horizon. We\'ve hit version 9 on the backend and 1.7 on the frontend, showcasing our commitment to continuous improvement.\\n\\nAlongside the usual optimizations and bug fixes, we\'ve been paying a lot of attention to your feature requests and implemented a bunch of them.\\n\\nHere\'s the highlight reel:\\n\\n- Auto Extraction and Installation of Videogames\\n- Uninstalling Games through GameVault\\n- Uploading Images\\n- Support for more Archive Formats\\n- Bandwidth Control Features\\n- Database Backups & Restorations\\n- Crash Reporting\\n- Random Game Finder\\n\\nSo, what\'s cooking now? We asked for your top three desired features recently, and here are the results:\\n\\n1. UI Redesign for the Library and Installations Tab\\n2. Support for ROMS and Emulators\\n3. Support for extra files like Soundtracks, Mods, etc.\\n\\nBy the way, if you want to take part in polls like this in the future aswell, make sure to become a council member on [Discord](https://discord.gg/NEdNen2dSu)!\\n\\nRight now we\'re knee-deep in redesigning the Library, the heart of our application. Big changes are on the way, waving goodbye to the installations tab and ushering in a sleeker UI for Library, Game View, and Game Settings.\\n\\nHere are some sneak peeks and mockups: (still work in progress):\\n\\n1. Library (Mockup)\\n ![Filters](/img/blog/2023-11-19/filters.png)\\n ![Empty States](/img/blog/2023-11-19/emptystates.png)\\n2. Library (current implementation)\\n ![Library](/img/blog/2023-11-19/library.png)\\n3. Game (Mockup)\\n ![Game View](/img/blog/2023-11-19/game.png)\\n4. Game Settings (Mockup)\\n ![Game Settings](/img/blog/2023-11-19/settings.png)\\n\\nRemember, these are teasers. Anything can look different once it ships. There\'s a lot of work left, and we\'re on it. To be technical here: Most of these modern controls require us to rewrite WPF Controls from the core. On the backend, we\'re not slacking either \u2013 tons of end-to-end tests are being written to ensure our app\'s reliability.\\n\\nExcited about the new UI or got something to say? Head over to [Discord](https://discord.gg/NEdNen2dSu) and spill the beans!\\n\\nWe\'re eager to wrap up these tasks and ship the update out to you guys.\\n\\nWe also wanted to mention we\'ve already crossed 2000 GameVault users with a growing engaged [Discord](https://discord.gg/NEdNen2dSu) community of 350 members!\\n\\nAnd your donations help keeping the lights on, though we\'re not rolling in dough just yet. Every penny counts, and we\'re truly grateful. Thanks a lot. \u2764\ufe0f\\n\\nHelp us promote GameVault among fellow self-hosters. Your efforts could inspire a bored developer to join and contribute to our project!\\n\\nStay tuned for the UI update \u2013 we\'ll be back in touch soon.\\n\\nUntil then, happy gaming! \ud83c\udfae"},{"id":"/2023/07/29/","metadata":{"permalink":"/blog/2023/07/29/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-29.md","source":"@site/blog/2023-07-29.md","title":"Please help us prioritize!","description":"Hello everyone!","date":"2023-07-29T00:00:00.000Z","tags":[{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"development","permalink":"/blog/tags/development"},{"inline":true,"label":"roadmap","permalink":"/blog/tags/roadmap"},{"inline":true,"label":"collaboration","permalink":"/blog/tags/collaboration"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"GitHub","permalink":"/blog/tags/git-hub"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"platform","permalink":"/blog/tags/platform"},{"inline":true,"label":"Kanban Board","permalink":"/blog/tags/kanban-board"},{"inline":true,"label":"Discord","permalink":"/blog/tags/discord"},{"inline":true,"label":"Council Member","permalink":"/blog/tags/council-member"},{"inline":true,"label":"polls","permalink":"/blog/tags/polls"},{"inline":true,"label":"gaming experience","permalink":"/blog/tags/gaming-experience"}],"readingTime":1.995,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Please help us prioritize!","authors":["alfagun74"],"tags":["community","GameVault","development","roadmap","collaboration","feedback","GitHub","voting","features","platform","Kanban Board","Discord","Council Member","polls","gaming experience"]},"unlisted":false,"prevItem":{"title":"A Look Back and a Glimpse Forward","permalink":"/blog/2023/11/20/"},"nextItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"}},"content":"Hello everyone!\\n\\nWe hope you\'re all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers. \x3c!-- truncate --\x3e Your enthusiasm and dedication to making GameVault even better are truly inspiring to us.\\n\\nAs many of you may already know, GameVault is a passion project for us, and while we are mostly convinced by your fantastic ideas, it may take some time for us to implement them. Our team meetings happen in our free time, and although we genuinely want to incorporate your suggestions into our roadmap, we are limited by the time and capacity we can dedicate to the project. Moreover, we want to ensure that the features we develop are refined, polished, and also the most desired in the users\' opinions, which adds to the timeline.\\n\\nWe believe that collaboration with our incredible community is the key to success, and that\'s why we want to introduce you to our Roadmap. It displays all new issues, planned tasks we want to work on, and all the ongoing work in a well-organized Kanban Board. [You can find it right here.](https://github.com/orgs/Phalcode/projects/4)\\n\\nTo ensure that GameVault\'s development aligns better with your needs, we kindly request your active participation. By voting on GitHub with a Thumbs Up or a Thumbs Down on new and planned issues, you can help us prioritize them effectively. We value your opinion: What features do you feel are most crucial? What aspects of the platform do you find most bothersome? What issues do you see as unnecessary or bloated? Your input will mainly shape the direction we take.\\n\\nIf you\'re eager to go the extra mile and actively contribute to shaping GameVault further, we invite you to [join our Discord community](https://discord.gg/NEdNen2dSu) and becoming a \\"Council Member\\". By becoming a \\"Council Member\\" and enabling Poll Notifications under \\"#Channels & Roles\\", you will have a direct say in the future of GameVault because you will get notifications about opinion polls we run from time to time.\\n\\nWe cannot stress enough how much we appreciate your involvement in our endeavor to create the ultimate gaming experience for all of you. Your passion and feedback are invaluable, and we are committed to making GameVault the best it can be, together.\\n\\nThank you for being part of this amazing journey with us!"},{"id":"/2023/07/24/","metadata":{"permalink":"/blog/2023/07/24/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md","source":"@site/blog/2023-07-24.md","title":"Celebrating 600+ Installations and announcing the upcoming big feature","description":"Hey everyone,","date":"2023-07-24T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone"},{"inline":true,"label":"official installations","permalink":"/blog/tags/official-installations"},{"inline":true,"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth"},{"inline":true,"label":"gratitude","permalink":"/blog/tags/gratitude"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault"},{"inline":true,"label":"upcoming update","permalink":"/blog/tags/upcoming-update"},{"inline":true,"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline"},{"inline":true,"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation"},{"inline":true,"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue"},{"inline":true,"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role"},{"inline":true,"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch"},{"inline":true,"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"support request","permalink":"/blog/tags/support-request"},{"inline":true,"label":"continued support","permalink":"/blog/tags/continued-support"},{"inline":true,"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements"}],"readingTime":2.39,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","authors":["alfagun74"],"tags":["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},"unlisted":false,"prevItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"},"nextItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"}},"content":"Hey everyone,\\n\\nWe\'re excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application. \x3c!-- truncate --\x3e What\'s even more amazing is that around 200 dedicated users, a third of these installations, have joined our [Discord](https://discord.gg/NEdNen2dSu) community to connect, chat, and share their experiences.\\n\\nWe want to express our immense gratitude for your incredible support, feedback, and love for GameVault. Your ongoing encouragement inspires us to push boundaries and enhance your gaming experience. We\'re thrilled to announce that an awesome update is being worked on right now - the highly anticipated release of GameVault\'s Installation Pipeline!\\n\\n#### GameVault\'s Installation Pipeline\\n\\nThe Installation Pipeline is designed to revolutionize how you install and manage your games. It was suggested by members on our [Discord server](https://discord.gg/NEdNen2dSu). We understand the challenges of navigating through different installation processes, especially for family members who may not be tech-savvy. With the Installation Pipeline, our goal is to simplify the entire process and make it user-friendly. Whether you\'re an experienced gamer or not, this update will make installing games easier for you.\\n\\nYou can read the details [here on the GitHub issue](https://github.com/Phalcode/gamevault-app/issues/18).\\n\\nStay tuned for its upcoming release, and to be among the first to try out this awesome feature, make sure to subscribe to the `@Updates` Role on our [Discord server](https://discord.gg/NEdNen2dSu) , if you haven\'t already. We\'ll ping you as soon as it\'s live!\\n\\n#### Join us on Lemmy\\n\\nTo further connect with our amazing community, we\'re excited to announce the launch of our [official Lemmy community](https://lemmy.world/c/phalcode). From now on, we\'ll also regularly share new blog posts there, providing you with more ways to stay informed and engaged. Join the Lemmy forum and become part of the growing GameVault community!\\n\\n#### Share GameVault with Others\\n\\nAs we celebrate this milestone and eagerly anticipate more exciting updates, we invite you to spread the word about GameVault among your friends, family, and gaming or self-hosting communities. Your personal recommendations and referrals have played a significant role in our journey so far, and we believe they\'ll continue to do so in the future.\\n\\nWe want to express our heartfelt appreciation for the feature requests, discussions, and invaluable help on our GitHub. Your support and collaborative efforts help a lot.\\n\\n#### Support Us\\n\\nAs we move forward, we kindly ask for your continued support. GameVault\'s success is currently solely built upon our incredible community, and your encouragement is what fuels us. If you love our app and believe in our vision, please consider supporting us in any way you can. It could even be something simple like a rating on the Microsoft Store. Your backing empowers us to keep our hard work going.\\n\\nWe\'re eagerly looking forward to celebrating more achievements with all of you.\\n\\nStay tuned, stay connected, and let\'s continue this journey together!"},{"id":"/2023/07/20/","metadata":{"permalink":"/blog/2023/07/20/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-20.md","source":"@site/blog/2023-07-20.md","title":"The Migrations are finally completed","description":"Hey folks,","date":"2023-07-20T00:00:00.000Z","tags":[{"inline":true,"label":"app name migration","permalink":"/blog/tags/app-name-migration"},{"inline":true,"label":"Microsoft Store publication","permalink":"/blog/tags/microsoft-store-publication"},{"inline":true,"label":"surge of new users","permalink":"/blog/tags/surge-of-new-users"},{"inline":true,"label":"Discord server promotion","permalink":"/blog/tags/discord-server-promotion"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"logo deciphering","permalink":"/blog/tags/logo-deciphering"},{"inline":true,"label":"box representation","permalink":"/blog/tags/box-representation"},{"inline":true,"label":"keyhole representation","permalink":"/blog/tags/keyhole-representation"},{"inline":true,"label":"logo concept discussion","permalink":"/blog/tags/logo-concept-discussion"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"The Migrations are finally completed","authors":["alfagun74"],"tags":["app name migration","Microsoft Store publication","surge of new users","Discord server promotion","spreading the word","logo deciphering","box representation","keyhole representation","logo concept discussion","Discord channel"]},"unlisted":false,"prevItem":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","permalink":"/blog/2023/07/24/"},"nextItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"}},"content":"Hey folks,\\n\\nGreat news. We\'ve successfully migrated our App name in its entirety and will resume advertising as soon as it\'s published on the Microsoft Store. \x3c!-- truncate --\x3e\\n\\nJust a heads up, there might be a surge of new users joining the [Discord](https://discord.gg/NEdNen2dSu) server due to us promoting GameVault across all available platforms now.\\n\\nYou\'re welcome to join in and spread the word about GameVault with your friends, family, social network, or colleagues!\\n\\n**Let\'s decipher the mystery behind the new logo:**\\n![logo](/img/blog/2023-07-19/logo-text-and-image-sbs.png)\\n\\n- The Box represents a Vault with a Keyhole, but it also symbolizes a game dice.\\n- The Keyhole represents a Keyhole, and simultaneously signifies a game piece.\\n\\nDid you find the logo concept creative? Share your thoughts on [discord](https://discord.gg/NEdNen2dSu)!"},{"id":"/2023/07/19/","metadata":{"permalink":"/blog/2023/07/19/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-19.md","source":"@site/blog/2023-07-19.md","title":"Quick Migration Update and new Logo","description":"Hey guys,","date":"2023-07-19T00:00:00.000Z","tags":[{"inline":true,"label":"name migration progress","permalink":"/blog/tags/name-migration-progress"},{"inline":true,"label":"backend application migration","permalink":"/blog/tags/backend-application-migration"},{"inline":true,"label":"documentation migration","permalink":"/blog/tags/documentation-migration"},{"inline":true,"label":"domain acquisition","permalink":"/blog/tags/domain-acquisition"},{"inline":true,"label":"Subreddit migration","permalink":"/blog/tags/subreddit-migration"},{"inline":true,"label":"Lemmy community","permalink":"/blog/tags/lemmy-community"},{"inline":true,"label":"Client Application update","permalink":"/blog/tags/client-application-update"},{"inline":true,"label":"testing","permalink":"/blog/tags/testing"},{"inline":true,"label":"new logo","permalink":"/blog/tags/new-logo"},{"inline":true,"label":"speculation","permalink":"/blog/tags/speculation"},{"inline":true,"label":"Discord channel","permalink":"/blog/tags/discord-channel"},{"inline":true,"label":"migration finalization","permalink":"/blog/tags/migration-finalization"}],"readingTime":0.965,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Quick Migration Update and new Logo","authors":["alfagun74"],"tags":["name migration progress","backend application migration","documentation migration","domain acquisition","Subreddit migration","Lemmy community","Client Application update","testing","new logo","speculation","Discord channel","migration finalization"]},"unlisted":false,"prevItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"},"nextItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"}},"content":"Hey guys,\\n\\nWe have a brief update on the progress of the name migration.\\n\\nWe\'ve successfully completed the migration of the backend application, which is now accessible as `gamevault-backend`. \x3c!-- truncate --\x3e\\n\\nFurthermore, we\'ve migrated the documentation and acquired this domain gamevau.lt. We\'ve set up redirects for our previous domain and the demo server as well.\\n\\nLastly we migrated our Subreddit to [r/Phalcode](https://reddit.com/r/Phalcode) and opened up a new community on [Lemmy](https://lemmy.world/c/phalcode). All further Updates and discussions regarding GameVault can be found there.\\n\\nWe\'re nearly finished, you might say.\\n\\nThe only remaining task is the Client Application. We\'re actively working on it and currently testing the application on our developer edition. Soon, you\'ll be able to seamlessly update your client with the new name and appearance.\\n\\nIn the meantime, our graphic designer has crafted a fresh logo for our new name, GameVault.\\n\\n![logo](/img/blog/2023-07-19/logo-text-and-image-sbs.png)\\n\\nTo make good use of your time while the migrations are in progress, what do you speculate the new logo represents?\\n\\nShare your theories in gamevaults #chat channel on [discord](https://discord.gg/NEdNen2dSu)! We\'ll reveal the answer and shoutout the winner(s) in the next blog post, once the migration is finalized!\\n\\nUntil then \u270c\ufe0f"},{"id":"/2023/07/15/","metadata":{"permalink":"/blog/2023/07/15/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-15.md","source":"@site/blog/2023-07-15.md","title":"A New Name","description":"Hey everyone,","date":"2023-07-15T00:00:00.000Z","tags":[{"inline":true,"label":"poll results","permalink":"/blog/tags/poll-results"},{"inline":true,"label":"renaming app","permalink":"/blog/tags/renaming-app"},{"inline":true,"label":"community feedback","permalink":"/blog/tags/community-feedback"},{"inline":true,"label":"GameStash","permalink":"/blog/tags/game-stash"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameShelf","permalink":"/blog/tags/game-shelf"},{"inline":true,"label":"Harbor","permalink":"/blog/tags/harbor"},{"inline":true,"label":"GameHub","permalink":"/blog/tags/game-hub"},{"inline":true,"label":"market analysis","permalink":"/blog/tags/market-analysis"},{"inline":true,"label":"new name announcement","permalink":"/blog/tags/new-name-announcement"},{"inline":true,"label":"GameVault domain","permalink":"/blog/tags/game-vault-domain"},{"inline":true,"label":"special thanks","permalink":"/blog/tags/special-thanks"},{"inline":true,"label":"Selfhosted Podcast","permalink":"/blog/tags/selfhosted-podcast"},{"inline":true,"label":"Self-Hosted Newsletter","permalink":"/blog/tags/self-hosted-newsletter"},{"inline":true,"label":"transition process","permalink":"/blog/tags/transition-process"}],"readingTime":3.85,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A New Name","authors":["alfagun74"],"tags":["poll results","renaming app","community feedback","GameStash","GameVault","GameShelf","Harbor","GameHub","market analysis","new name announcement","GameVault domain","special thanks","Selfhosted Podcast","Self-Hosted Newsletter","transition process"]},"unlisted":false,"prevItem":{"title":"Quick Migration Update and new Logo","permalink":"/blog/2023/07/19/"},"nextItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"}},"content":"Hey everyone,\\n\\nWe are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can\'t wait to share the exciting updates with you.\x3c!-- truncate --\x3e\\n\\nBut first, let\'s dive into the poll results and shed some light on the important facts without further delay:\\n\\n## Summary\\n\\nIn total, 71 people participated in the poll, providing us with valuable data to draw conclusions from. Here\'s a summary of the key findings:\\n\\n- 52.1% of the community voted against using any terms related to piracy in the app. We understand and respect this choice because it would harm our business and attract the wrong users, as we have no affiliation with piracy.\\n\\n- 42.3% of the community voted to recommend the app under a different name but not with its current name. This feedback motivated us to rename the app, confirming that it wasn\'t just a few critics on Reddit. We want to expand our community to include the families, friends, and colleagues of these people. So please, help us spread the word about the name change!\\n\\n- 36.6% of you said you wouldn\'t contribute to our app at all solely because of its name, even if you had the opportunity. We depend on these contributions to grow and improve, so we now encourage you to participate!\\n\\nWithout further ado, here are the top 5 names that emerged as winners in the poll:\\n\\n1. GameStash (38%)\\n2. GameVault (35.2%)\\n3. GameShelf (31%)\\n4. Harbor (29.6%)\\n5. GameHub (28.2%)\\n\\nAs mentioned earlier, we conducted the poll without conducting market analysis beforehand. However, we recognized the significance of making an informed decision for the benefit of the community. Consequently, we proceeded to analyze each name after the poll to ensure the chosen name resonates with our vision.\\n\\nAllow us to share the summarized results of our market analysis:\\n\\n## Market Analysis\\n\\n### 1. GameStash\\n\\nGoogle Search Results: ~33,600 \\nPossible Domains: gamestash.de\\n\\n- There\'s already an app called [GameStash](https://gamestash.app/) that offers similar features to ours.\\n\\n### 2. GameVault\\n\\nGoogle Search Results: ~800,000 \\nPossible Domains: gamevau.lt, game-vault.de\\n\\n- The term \\"GameVault\\" is associated with a popular online casino/gambling application called [GameVault999](https://gamevault999.com/).\\n\\n### 3. GameShelf\\n\\nGoogle Search Results: ~560,000 \\nPossible Domains: gameshelf.de\\n\\n- The name \\"Gameshelf\\" is already used by two existing applications. One is a [Board-Game-Collection Viewer](https://gameshelf.io/), and the other is a [Gaming Backlog](https://gameshelf.dev) app.\\n\\n### 4. Harbor\\n\\nGoogle Search Results: ~393,000,000 \\nPossible Domains: harborapp.de\\n\\n- \\"Harbor\\" is a very common word, making it challenging to find a suitable domain that aligns with our brand identity.\\n\\n- Additionally, there\'s a well-known app called [Harbor on the Market](https://goharbor.io) related to Docker/Kubernetes.\\n\\n### 5. GameHub\\n\\nGoogle Search Results: ~5,690,000\\nPossible Domains: gamehubapp.de\\n\\n- [GameHub](https://github.com/tkashkin/GameHub) is a popular game library manager\\n- it also sounds like a popular adult site \ud83d\ude01\\n\\n## What\'s Next?\\n\\nWe understand your eagerness for a new name, and we are equally committed to distancing ourselves from the old one. Taking into account all the suggested names and feedback, we engaged in extensive internal brainstorming, free from outside influences.\\n\\nWe sought a name that is descriptive, intuitive, and effectively conveys the purpose of our app. Additionally, we aimed for a name that is easily memorable and emphasizes the ownership and control of a self-hosted server, security, and exclusivity.\\n\\nIntroducing our new name: **GameVault** \\nAvailable soon under this domain: [gamevau.lt](https://gamevau.lt)\\n\\nWe have already secured the domain and registered the name wherever possible. The transition process will commence shortly. We are eager to hear your thoughts on the new name. Do you like it?\\n\\n## Special Thanks \u2764\ufe0f\\n\\nWell, as you all know, this was quite a journey to get here, and we wanted to give our special thanks to:\\n\\n- Everybody who gave this project\'s idea a chance, even if the name was kind of weird.\\n\\n- Everybody who made suggestions on our [Discord](https://discord.gg/NEdNen2dSu) server and participated in the discussions.\\n\\n- Everybody who voted.\\n\\n- A special shoutout to @KairuByte on [Discord](https://discord.gg/NEdNen2dSu) for coming up with the name GameVault.\\n\\n- We would also like to extend our gratitude to [The Selfhosted Podcast](https://selfhosted.show/101?t=2731) for discussing our app. (Brent, we are excited to hear your thoughts on the new name from a marketing standpoint \ud83d\ude1c)\\n\\n- Last but not least, thank you to [The Self-Hosted Newsletter](https://selfh.st/newsletter/2023-07-07/) for mentioning our release.\\n\\nThank you all for your continued support!\\n\\nWe will keep you updated as the transition unfolds. In the meantime, head over to our [Discord](https://discord.gg/NEdNen2dSu) channel to celebrate and share your thoughts on the new name.\\n\\nStay tuned!"},{"id":"/2023/07/13/","metadata":{"permalink":"/blog/2023/07/13/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-13.md","source":"@site/blog/2023-07-13.md","title":"A Closer Look at GameVaults \'Source-Available\' Nature","description":"Hey everyone,","date":"2023-07-13T00:00:00.000Z","tags":[{"inline":true,"label":"source-available software","permalink":"/blog/tags/source-available-software"},{"inline":true,"label":"open-source","permalink":"/blog/tags/open-source"},{"inline":true,"label":"transparency","permalink":"/blog/tags/transparency"},{"inline":true,"label":"control","permalink":"/blog/tags/control"},{"inline":true,"label":"software development","permalink":"/blog/tags/software-development"},{"inline":true,"label":"code access","permalink":"/blog/tags/code-access"},{"inline":true,"label":"hybrid model","permalink":"/blog/tags/hybrid-model"},{"inline":true,"label":"software licensing","permalink":"/blog/tags/software-licensing"},{"inline":true,"label":"revenue generation","permalink":"/blog/tags/revenue-generation"},{"inline":true,"label":"user engagement","permalink":"/blog/tags/user-engagement"}],"readingTime":2.57,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","authors":["alfagun74"],"tags":["source-available software","open-source","transparency","control","software development","code access","hybrid model","software licensing","revenue generation","user engagement"]},"unlisted":false,"prevItem":{"title":"A New Name","permalink":"/blog/2023/07/15/"},"nextItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"}},"content":"Hey everyone,\\n\\ntoday i want to clarify why GameVault isn\'t considered \\"open-source\\" by definition. \x3c!-- truncate --\x3e\\n\\nYou see, GameVault is what we like to call [\\"source-available\\"](https://wikipedia.org/wiki/Source-available_software) software. This means that our code is open for you to explore and modify, but it doesn\'t fully meet all the criteria of being considered open-source. I want to take a moment to explain what open-source truly means and why we\'ve taken a slightly different approach.\\n\\nAccording to the widely recognized definitions, [\\"open-source\\"](https://wikipedia.org/wiki/Open-source_software) software, as one would think, not only provides access to the source code but also offers certain freedoms to its users. It allows them to use, modify, and distribute the software freely, even for commercial purposes.\\n\\nFor a self-hosted app like GameVault, we believe it\'s crucual to disclose the source code. We want you, our users, to have full transparency and control over the software you use on your servers. We don\'t want you to be unaware of what\'s happening behind the scenes, as is sometimes the case with closed-source applications like Plex, for example.\\n\\nNow, you may be wondering why we didn\'t make GameVault fully open-source. The answer lies in our desire to protect our code from unauthorized use and commercial exploitation. While we absolutely encourage you to copy, modify, and share our code for personal use, we want to prevent others from profiting off our hard work by selling our software without our consent.\\n\\nIt\'s important to acknowledge that maintaining and developing a software project requires resources. While we admire the open-source community and its valuable contributions, sustaining GameVault solely through donations or offering it for free indefinitely is not feasible. For instance, Jellyfin, a popular open-source app developed over a decade, generates only around $13,500 per year (according to their opencollective page). In contrast, Plex, a closed-source alternative, earns a significant $8.5 million annually. Our company\'s main goal is to keep the core functionality of GameVault free, but we also need to explore ways to generate revenue in order to support its future growth and improvement. We are currently considering monetizing additional convenience features for the Client Application in the future, although nothing has been finalized yet.\\n\\nWe genuinely appreciate your understanding. As a small business with just two members, we strive to provide you with a valuable product but cannot continue to do so as volunteers indefinitely. Sustaining losses in the long term would not be sustainable, especially considering our local tax obligations. We have families and commitments that cannot be neglected, and this project is not our primary job. Therefore, please understand that GameVault may not strictly align with the traditional definition of \\"open-source,\\" and we no longer characterize it as such. Our intention is to be transparent and present our perspective. Your understanding, support, and empathy mean a great deal to us.\\n\\nIf you have any thoughts or comments on this topic, we\'d be more than happy to hear from you. Feel free to share your feedback on our [Discord](https://discord.gg/NEdNen2dSu) server. We truly value your input and look forward to engaging with you there.\\n\\n`EDIT: Updated Application Name`"},{"id":"/2023/07/09/","metadata":{"permalink":"/blog/2023/07/09/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-09.md","source":"@site/blog/2023-07-09.md","title":"Battling Harassment and Trolls in Our App Community","description":"Hey folks,","date":"2023-07-09T00:00:00.000Z","tags":[{"inline":true,"label":"harassment","permalink":"/blog/tags/harassment"},{"inline":true,"label":"blackmail","permalink":"/blog/tags/blackmail"},{"inline":true,"label":"threats","permalink":"/blog/tags/threats"},{"inline":true,"label":"spam","permalink":"/blog/tags/spam"},{"inline":true,"label":"trolls","permalink":"/blog/tags/trolls"},{"inline":true,"label":"negative narratives","permalink":"/blog/tags/negative-narratives"},{"inline":true,"label":"safe environment","permalink":"/blog/tags/safe-environment"},{"inline":true,"label":"racist","permalink":"/blog/tags/racist"},{"inline":true,"label":"developers","permalink":"/blog/tags/developers"},{"inline":true,"label":"public","permalink":"/blog/tags/public"},{"inline":true,"label":"creepy behavior","permalink":"/blog/tags/creepy-behavior"},{"inline":true,"label":"app","permalink":"/blog/tags/app"},{"inline":true,"label":"support","permalink":"/blog/tags/support"},{"inline":true,"label":"financial assistance","permalink":"/blog/tags/financial-assistance"},{"inline":true,"label":"motivation","permalink":"/blog/tags/motivation"},{"inline":true,"label":"GameVault app","permalink":"/blog/tags/game-vault-app"},{"inline":true,"label":"bugs","permalink":"/blog/tags/bugs"},{"inline":true,"label":"feature requests","permalink":"/blog/tags/feature-requests"},{"inline":true,"label":"improvement","permalink":"/blog/tags/improvement"},{"inline":true,"label":"success","permalink":"/blog/tags/success"},{"inline":true,"label":"engagement","permalink":"/blog/tags/engagement"}],"readingTime":1.955,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Battling Harassment and Trolls in Our App Community","authors":["alfagun74"],"tags":["harassment","blackmail","threats","spam","trolls","negative narratives","safe environment","racist","developers","public","creepy behavior","app","support","financial assistance","motivation","GameVault app","bugs","feature requests","improvement","success","engagement"]},"unlisted":false,"prevItem":{"title":"A Closer Look at GameVaults \'Source-Available\' Nature","permalink":"/blog/2023/07/13/"},"nextItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}},"content":"Hey folks,\\n\\nWe have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us. \x3c!-- truncate --\x3e\\n\\nIt began with spam on our Issue Trackers and [Discord](https://discord.gg/NEdNen2dSu) Server but this situation has escalated to the point where these individuals went so far as to search me up on LinkedIn and threaten to inform my employer with baseless accusations of racism because of trivial reasons like the branch name in our github project being \\"master\\". Moreover, we have received reports that these trolls have extended their actions directly to other members of this server, attempting to spread negative narratives and disrupting the community atmosphere.\\n\\nTo address this issue, we kindly request that you promptly report any encounters with these trolls to both [Discord](https://discord.gg/NEdNen2dSu) and our dedicated team of moderators. By doing so, we can take appropriate measures to handle the situation and maintain a safe environment for all.\\n\\nWe would like to emphasize that we are not racist individuals, but rather developers who decided to share our hard work with the community, hoping to bring joy and utility to everyone. Unfortunately, we did not anticipate encountering such creepy behavior when we made the project public. It has made us question whether it was the right decision to open up our work in the first place.\\n\\nIf you appreciate our efforts and would like to support us and the app, we humbly ask for your financial assistance. Even a small contribution of five bucks on [Kofi](https://ko-fi.com/phalcode) would go a long way in helping us maintain our motivation and dedication. Alternatively, if monetary support isn\'t possible, we would be incredibly grateful if you could share kind words about how the GameVault app has positively impacted your life in the #chat channel. Your encouragement means the world to us. \ud83e\udd70\\n\\nIn addition, we encourage you to continue reporting any bugs you encounter and submitting feature requests in the respective GitHub trackers. With your valuable input, we can continue improving the app and making it even better.\\n\\nRemember, the success of this project relies on your support and engagement. Let\'s stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding."},{"id":"/2023/07/08/","metadata":{"permalink":"/blog/2023/07/08/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-08.md","source":"@site/blog/2023-07-08.md","title":"Choosing a New, Family-Friendly Name for this project!","description":"Hello, everyone!","date":"2023-07-08T00:00:00.000Z","tags":[{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"gaming platform","permalink":"/blog/tags/gaming-platform"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"new name","permalink":"/blog/tags/new-name"},{"inline":true,"label":"family-friendly","permalink":"/blog/tags/family-friendly"},{"inline":true,"label":"poll","permalink":"/blog/tags/poll"},{"inline":true,"label":"AI-generated names","permalink":"/blog/tags/ai-generated-names"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"inclusivity","permalink":"/blog/tags/inclusivity"},{"inline":true,"label":"user participation","permalink":"/blog/tags/user-participation"},{"inline":true,"label":"announcement","permalink":"/blog/tags/announcement"},{"inline":true,"label":"decision-making","permalink":"/blog/tags/decision-making"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"platform values","permalink":"/blog/tags/platform-values"},{"inline":true,"label":"voting","permalink":"/blog/tags/voting"},{"inline":true,"label":"future development","permalink":"/blog/tags/future-development"}],"readingTime":1.26,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Choosing a New, Family-Friendly Name for this project!","authors":["alfagun74"],"tags":["source-available","gaming platform","GameVault","new name","family-friendly","poll","AI-generated names","feedback","inclusivity","user participation","announcement","decision-making","community","platform values","voting","future development"]},"unlisted":false,"prevItem":{"title":"Battling Harassment and Trolls in Our App Community","permalink":"/blog/2023/07/09/"},"nextItem":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","permalink":"/blog/2023/07/01/"}},"content":"Hello, everyone!\\n\\nWe have an important announcement to share about our [source-available](https://en.wikipedia.org/wiki/Source-available_software) gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform\'s values. \x3c!-- truncate --\x3e To make this decision-making process more convenient, we have created a poll with 100 potential names, suggested by you on our [Discord](https://discord.gg/NEdNen2dSu), some of which were generated by AI. Your participation in shaping the future of our platform is greatly appreciated.\\n\\nWe kindly request your support in selecting a new name for our gaming platform. The poll offers a variety of names, and we ask that you choose at least 10 names (10%) that appeal to you. By gathering diverse input and minimizing bias, we aim to create an inclusive and enjoyable experience for all users. We apologize if the current name has caused any discomfort, and we are committed to creating a welcoming environment for gamers.\\n\\nTo cast your votes and contribute to the selection of a new, family-friendly name for our [source-available](https://en.wikipedia.org/wiki/Source-available_software) gaming platform, please click on the link provided at the end of this post. Your voice matters, and together, we can find a name that truly represents our app\'s essence. The results will be announced on this blog around July 15, 2023.\\n\\nWe sincerely appreciate your support and encourage you to stay tuned for updates as we continue to improve our platform based on your valuable feedback.\\n\\nLink to the poll: [https://forms.gle/cYsURG6BqMXcxE3B8](https://forms.gle/cYsURG6BqMXcxE3B8)\\n\\nHappy voting!"},{"id":"/2023/07/01/","metadata":{"permalink":"/blog/2023/07/01/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-01.md","source":"@site/blog/2023-07-01.md","title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","description":"Hey Guys,","date":"2023-07-01T00:00:00.000Z","tags":[{"inline":true,"label":"gaming","permalink":"/blog/tags/gaming"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"source-available","permalink":"/blog/tags/source-available"},{"inline":true,"label":"self-hosted","permalink":"/blog/tags/self-hosted"},{"inline":true,"label":"alternative","permalink":"/blog/tags/alternative"},{"inline":true,"label":"cloud-based game platforms","permalink":"/blog/tags/cloud-based-game-platforms"},{"inline":true,"label":"DRM-free games","permalink":"/blog/tags/drm-free-games"},{"inline":true,"label":"file server","permalink":"/blog/tags/file-server"},{"inline":true,"label":"multi-user authentication","permalink":"/blog/tags/multi-user-authentication"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"RAWG API","permalink":"/blog/tags/rawg-api"},{"inline":true,"label":"health monitoring","permalink":"/blog/tags/health-monitoring"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"Discord server","permalink":"/blog/tags/discord-server"},{"inline":true,"label":"Reddit forum","permalink":"/blog/tags/reddit-forum"},{"inline":true,"label":"Lemmy forum","permalink":"/blog/tags/lemmy-forum"}],"readingTime":1.78,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Introducing GameVault \ud83d\ude80 - The self-hosted gaming platform for DRM-free games","authors":["alfagun74"],"tags":["gaming","GameVault","source-available","self-hosted","alternative","cloud-based game platforms","DRM-free games","file server","multi-user authentication","metadata","RAWG API","health monitoring","API","Discord server","Reddit forum","Lemmy forum"]},"unlisted":false,"prevItem":{"title":"Choosing a New, Family-Friendly Name for this project!","permalink":"/blog/2023/07/08/"}},"content":"Hey Guys,\\n\\nOur team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community. \x3c!-- truncate --\x3e\\n\\nWith GameVault, you can play and track games together with your friends on a shared file server, free from any restrictions that traditional game platforms may impose. We have designed it to work with DRM-free games, providing a unique solution for those who want a more flexible and open approach to gaming. Think of it like Jellyfin, but for Videogames.\\n\\nGameVault offers a self-hosted approach that gives you complete control over your gaming experience. The platform enables you to browse your server\'s game collection, securely download games, launch and play them, and even track your playtimes and progress - regardless of whether the server is offline. Additionally, you can compare stats and play states with other users on the server.\\n\\nOur server features offer automatic indexing of games on the file system into a database, enrichment of games with metadata like tags and genres using RAWG API, multi-user authentication, and configurable logging. We have also implemented health monitoring, full-text search, filters, sorting, pagination, and a fully documented API. The GameVault platform is highly configurable to suit your needs.\\n\\nWe are thrilled that you have found us, and we invite you to try GameVault today. We would be grateful for any contributions, feedback, bug reports, and feature requests you might have. You can also support us by donating using the links provided on our website. If you have any questions or would like to connect with other GameVault users, please join our [Discord](https://discord.gg/NEdNen2dSu), Reddit and Lemmy communities - links to which are available in the footer.\\n\\nWe are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault."}]}}')}}]); \ No newline at end of file diff --git a/assets/js/f8aea940.5099beb6.js b/assets/js/f8aea940.5099beb6.js new file mode 100644 index 000000000..e701bc4f4 --- /dev/null +++ b/assets/js/f8aea940.5099beb6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6557],{5238:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"client-docs/themes","title":"Themes","description":"GameVault offers the option to apply different themes to your GameVault client application. With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.","source":"@site/docs/client-docs/themes.md","sourceDirName":"client-docs","slug":"/client-docs/themes","permalink":"/docs/client-docs/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/themes.md","tags":[],"version":"current","lastUpdatedBy":"Alper Alkan","lastUpdatedAt":1732144127000,"frontMatter":{"title":"Themes"},"sidebar":"docs","previous":{"title":"GUI Overview","permalink":"/docs/client-docs/gui"},"next":{"title":"REST API Usage","permalink":"/docs/advanced-usage/rest-api"}}');var i=s(6070),n=s(8591);const o={title:"Themes"},l=void 0,r={},c=[{value:"Free Themes",id:"free-themes",level:2},{value:"Premium Themes",id:"premium-themes",level:2},{value:"Custom Themes",id:"custom-themes",level:2}];function d(e){const t={a:"a",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["GameVault offers the option to apply different themes to your GameVault client application. With ",(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"}),", you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience."]}),"\n",(0,i.jsx)(t.h2,{id:"free-themes",children:"Free Themes"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Default (Dark)"}),": The default GameVault theme, reflecting the 2024 GameVault rebrand with dark tones.\n",(0,i.jsx)(t.img,{alt:"Default (Dark)",src:s(7945).A+"",width:"2552",height:"1392"})]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Default (Light)"}),": An alternative light version of the default GameVault theme, also based on the 2024 GameVault rebrand.\n",(0,i.jsx)(t.img,{alt:"Default (Light)",src:s(5673).A+"",width:"2552",height:"1392"})]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Classic (Dark)"}),": This theme preserves the traditional application colors for users accustomed to the old design.\n",(0,i.jsx)(t.img,{alt:"Classic (Dark)",src:s(9952).A+"",width:"2552",height:"1392"})]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"premium-themes",children:"Premium Themes"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"})," comes with more themes you can choose from. A list of premium themes is available in the ",(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/themes",children:"GameVault+ Themes"})," section of the documentation."]}),"\n",(0,i.jsx)(t.h2,{id:"custom-themes",children:"Custom Themes"}),"\n",(0,i.jsxs)(t.p,{children:["Custom themes are only available for ",(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"})," subscribers. See ",(0,i.jsx)(t.a,{href:"/docs/gamevault-plus/themes",children:"GameVault+ Themes"})," for more information."]})]})}function m(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},9952:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/classic_dark-bec363a5279cb92c28e78e6b03bf9682.png"},7945:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/default_dark-5736b1f79f7b13358172ed71dc831afd.png"},5673:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/default_light-5bc18bd3650cc0d98fb39d46d70c9e2f.png"},8591:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>l});var a=s(758);const i={},n=a.createContext(i);function o(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f8aea940.a76ffdb7.js b/assets/js/f8aea940.a76ffdb7.js deleted file mode 100644 index 1e64c3379..000000000 --- a/assets/js/f8aea940.a76ffdb7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[5961],{5799:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>c});var a=s(2676),i=s(8358);const n={title:"Themes"},o=void 0,l={id:"client-docs/themes",title:"Themes",description:"GameVault offers the option to apply different themes to your GameVault client application. With GameVault+, you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience.",source:"@site/docs/client-docs/themes.md",sourceDirName:"client-docs",slug:"/client-docs/themes",permalink:"/docs/client-docs/themes",draft:!1,unlisted:!1,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/docs/client-docs/themes.md",tags:[],version:"current",lastUpdatedBy:"Alper Alkan",lastUpdatedAt:173010786e4,frontMatter:{title:"Themes"},sidebar:"docs",previous:{title:"GUI Overview",permalink:"/docs/client-docs/gui"},next:{title:"REST API Usage",permalink:"/docs/advanced-usage/rest-api"}},r={},c=[{value:"Free Themes",id:"free-themes",level:2},{value:"Premium Themes",id:"premium-themes",level:2},{value:"Custom Themes",id:"custom-themes",level:2}];function d(e){const t={a:"a",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["GameVault offers the option to apply different themes to your GameVault client application. With ",(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"}),", you gain access to a variety of additional themes and also the ability to apply custom themes, to personalize your experience."]}),"\n",(0,a.jsx)(t.h2,{id:"free-themes",children:"Free Themes"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Default (Dark)"}),": The default GameVault theme, reflecting the 2024 GameVault rebrand with dark tones.\n",(0,a.jsx)(t.img,{alt:"Default (Dark)",src:s(1130).Z+"",width:"2552",height:"1392"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Default (Light)"}),": An alternative light version of the default GameVault theme, also based on the 2024 GameVault rebrand.\n",(0,a.jsx)(t.img,{alt:"Default (Light)",src:s(8428).Z+"",width:"2552",height:"1392"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Classic (Dark)"}),": This theme preserves the traditional application colors for users accustomed to the old design.\n",(0,a.jsx)(t.img,{alt:"Classic (Dark)",src:s(2952).Z+"",width:"2552",height:"1392"})]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"premium-themes",children:"Premium Themes"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"})," comes with more themes you can choose from. A list of premium themes is available in the ",(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/themes",children:"GameVault+ Themes"})," section of the documentation."]}),"\n",(0,a.jsx)(t.h2,{id:"custom-themes",children:"Custom Themes"}),"\n",(0,a.jsxs)(t.p,{children:["Custom themes are only available for ",(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/introduction",children:"GameVault+"})," subscribers. See ",(0,a.jsx)(t.a,{href:"/docs/gamevault-plus/themes",children:"GameVault+ Themes"})," for more information."]})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},2952:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/classic_dark-bec363a5279cb92c28e78e6b03bf9682.png"},1130:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/default_dark-5736b1f79f7b13358172ed71dc831afd.png"},8428:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/default_light-5bc18bd3650cc0d98fb39d46d70c9e2f.png"},8358:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>o});var a=s(5271);const i={},n=a.createContext(i);function o(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f94e70f3.5df7c9c2.js b/assets/js/f94e70f3.266815c0.js similarity index 84% rename from assets/js/f94e70f3.5df7c9c2.js rename to assets/js/f94e70f3.266815c0.js index ecd903031..a435e09c8 100644 --- a/assets/js/f94e70f3.5df7c9c2.js +++ b/assets/js/f94e70f3.266815c0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6609],{7006:e=>{e.exports=JSON.parse('{"tag":{"label":"DRM-free","permalink":"/blog/tags/drm-free","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/drm-free","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9589],{1552:e=>{e.exports=JSON.parse('{"tag":{"label":"DRM-free","permalink":"/blog/tags/drm-free","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/drm-free","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/fb0a08ce.09e72734.js b/assets/js/fb0a08ce.09e72734.js new file mode 100644 index 000000000..af2e9a84a --- /dev/null +++ b/assets/js/fb0a08ce.09e72734.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4034],{6323:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var i=n(1757),a=n(6070),l=n(8591);const o={title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},s=void 0,r={authorsImageUrls:[void 0]},u=[];function g(e){const t={p:"p",...(0,l.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey everyone,"}),"\n",(0,a.jsx)(t.p,{children:"We're excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application."})]})}function m(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(g,{...e})}):g(e)}},8591:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var i=n(758);const a={},l=i.createContext(a);function o(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(l.Provider,{value:t},e.children)}},1757:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/24/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md","source":"@site/blog/2023-07-24.md","title":"Celebrating 600+ Installations and announcing the upcoming big feature","description":"Hey everyone,","date":"2023-07-24T00:00:00.000Z","tags":[{"inline":true,"label":"GameVault milestone","permalink":"/blog/tags/game-vault-milestone"},{"inline":true,"label":"official installations","permalink":"/blog/tags/official-installations"},{"inline":true,"label":"Discord community growth","permalink":"/blog/tags/discord-community-growth"},{"inline":true,"label":"gratitude","permalink":"/blog/tags/gratitude"},{"inline":true,"label":"feedback","permalink":"/blog/tags/feedback"},{"inline":true,"label":"love for GameVault","permalink":"/blog/tags/love-for-game-vault"},{"inline":true,"label":"upcoming update","permalink":"/blog/tags/upcoming-update"},{"inline":true,"label":"Installation Pipeline","permalink":"/blog/tags/installation-pipeline"},{"inline":true,"label":"simplifying game installation","permalink":"/blog/tags/simplifying-game-installation"},{"inline":true,"label":"GitHub issue","permalink":"/blog/tags/git-hub-issue"},{"inline":true,"label":"subscription to Updates role","permalink":"/blog/tags/subscription-to-updates-role"},{"inline":true,"label":"Lemmy community launch","permalink":"/blog/tags/lemmy-community-launch"},{"inline":true,"label":"sharing blog posts","permalink":"/blog/tags/sharing-blog-posts"},{"inline":true,"label":"spreading the word","permalink":"/blog/tags/spreading-the-word"},{"inline":true,"label":"support request","permalink":"/blog/tags/support-request"},{"inline":true,"label":"continued support","permalink":"/blog/tags/continued-support"},{"inline":true,"label":"celebration of achievements","permalink":"/blog/tags/celebration-of-achievements"}],"readingTime":2.39,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Celebrating 600+ Installations and announcing the upcoming big feature","authors":["alfagun74"],"tags":["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},"unlisted":false,"prevItem":{"title":"Please help us prioritize!","permalink":"/blog/2023/07/29/"},"nextItem":{"title":"The Migrations are finally completed","permalink":"/blog/2023/07/20/"}}')}}]); \ No newline at end of file diff --git a/assets/js/fb0a08ce.709e5246.js b/assets/js/fb0a08ce.709e5246.js deleted file mode 100644 index cdb655785..000000000 --- a/assets/js/fb0a08ce.709e5246.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1392],{83:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>u});var a=n(2676),i=n(8358);const l={title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},o=void 0,s={permalink:"/blog/2023/07/24/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2023-07-24.md",source:"@site/blog/2023-07-24.md",title:"Celebrating 600+ Installations and announcing the upcoming big feature",description:"Hey everyone,",date:"2023-07-24T00:00:00.000Z",tags:[{inline:!0,label:"GameVault milestone",permalink:"/blog/tags/game-vault-milestone"},{inline:!0,label:"official installations",permalink:"/blog/tags/official-installations"},{inline:!0,label:"Discord community growth",permalink:"/blog/tags/discord-community-growth"},{inline:!0,label:"gratitude",permalink:"/blog/tags/gratitude"},{inline:!0,label:"feedback",permalink:"/blog/tags/feedback"},{inline:!0,label:"love for GameVault",permalink:"/blog/tags/love-for-game-vault"},{inline:!0,label:"upcoming update",permalink:"/blog/tags/upcoming-update"},{inline:!0,label:"Installation Pipeline",permalink:"/blog/tags/installation-pipeline"},{inline:!0,label:"simplifying game installation",permalink:"/blog/tags/simplifying-game-installation"},{inline:!0,label:"GitHub issue",permalink:"/blog/tags/git-hub-issue"},{inline:!0,label:"subscription to Updates role",permalink:"/blog/tags/subscription-to-updates-role"},{inline:!0,label:"Lemmy community launch",permalink:"/blog/tags/lemmy-community-launch"},{inline:!0,label:"sharing blog posts",permalink:"/blog/tags/sharing-blog-posts"},{inline:!0,label:"spreading the word",permalink:"/blog/tags/spreading-the-word"},{inline:!0,label:"support request",permalink:"/blog/tags/support-request"},{inline:!0,label:"continued support",permalink:"/blog/tags/continued-support"},{inline:!0,label:"celebration of achievements",permalink:"/blog/tags/celebration-of-achievements"}],readingTime:2.39,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Celebrating 600+ Installations and announcing the upcoming big feature",authors:["alfagun74"],tags:["GameVault milestone","official installations","Discord community growth","gratitude","feedback","love for GameVault","upcoming update","Installation Pipeline","simplifying game installation","GitHub issue","subscription to Updates role","Lemmy community launch","sharing blog posts","spreading the word","support request","continued support","celebration of achievements"]},unlisted:!1,prevItem:{title:"Please help us prioritize!",permalink:"/blog/2023/07/29/"},nextItem:{title:"The Migrations are finally completed",permalink:"/blog/2023/07/20/"}},r={authorsImageUrls:[void 0]},u=[];function g(e){const t={p:"p",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Hey everyone,"}),"\n",(0,a.jsx)(t.p,{children:"We're excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application."})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(g,{...e})}):g(e)}},8358:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>o});var a=n(5271);const i={},l=a.createContext(i);function o(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fb0e7a2f.14a490bd.js b/assets/js/fb0e7a2f.14a490bd.js deleted file mode 100644 index f738deada..000000000 --- a/assets/js/fb0e7a2f.14a490bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4893],{7641:a=>{a.exports=JSON.parse('{"tag":{"label":"RAWG","permalink":"/blog/tags/rawg","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/rawg","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3f6275a8.0faaee88.js b/assets/js/fb0e7a2f.daf52fca.js similarity index 50% rename from assets/js/3f6275a8.0faaee88.js rename to assets/js/fb0e7a2f.daf52fca.js index 4d523b2fe..5d37bb761 100644 --- a/assets/js/3f6275a8.0faaee88.js +++ b/assets/js/fb0e7a2f.daf52fca.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[447],{6195:a=>{a.exports=JSON.parse('{"tag":{"label":"bugs","permalink":"/blog/tags/bugs","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/bugs","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[494],{7197:a=>{a.exports=JSON.parse('{"tag":{"label":"RAWG","permalink":"/blog/tags/rawg","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/rawg","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/fbaf179c.289c4e7f.js b/assets/js/fbaf179c.289c4e7f.js deleted file mode 100644 index ba0687908..000000000 --- a/assets/js/fbaf179c.289c4e7f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4760],{3507:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>r,toc:()=>d});var n=t(2676),i=t(8358);const l={title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},o=void 0,r={permalink:"/blog/2024/05/07/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md",source:"@site/blog/2024-05-07.md",title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",description:"Hey everyone!",date:"2024-05-07T00:00:00.000Z",tags:[{inline:!0,label:"game",permalink:"/blog/tags/game"},{inline:!0,label:"metadata",permalink:"/blog/tags/metadata"},{inline:!0,label:"database",permalink:"/blog/tags/database"},{inline:!0,label:"videogame",permalink:"/blog/tags/videogame"},{inline:!0,label:"RAWG",permalink:"/blog/tags/rawg"},{inline:!0,label:"IGDB",permalink:"/blog/tags/igdb"},{inline:!0,label:"twitch.tv",permalink:"/blog/tags/twitch-tv"},{inline:!0,label:"API",permalink:"/blog/tags/api"},{inline:!0,label:"partnership",permalink:"/blog/tags/partnership"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"solution",permalink:"/blog/tags/solution"},{inline:!0,label:"Steam",permalink:"/blog/tags/steam"},{inline:!0,label:"backend",permalink:"/blog/tags/backend"},{inline:!0,label:"update",permalink:"/blog/tags/update"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameVault+",permalink:"/blog/tags/game-vault"},{inline:!0,label:"easter egg",permalink:"/blog/tags/easter-egg"}],readingTime:2.525,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},unlisted:!1,prevItem:{title:"An update so major, we could have built the product from scratch.",permalink:"/blog/2024/10/20/"},nextItem:{title:"GameVault+ out now",permalink:"/blog/2024/04/14/"}},s={authorsImageUrls:[void 0]},d=[{value:"GameVault's new metadata provider strategy",id:"gamevaults-new-metadata-provider-strategy",level:2},{value:"Temporary solution: Implementing a RAWG replacement",id:"temporary-solution-implementing-a-rawg-replacement",level:2},{value:"Exciting new features",id:"exciting-new-features",level:2},{value:"Supporting GameVault",id:"supporting-gamevault",level:2}];function u(e){const a={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey everyone!"}),"\n",(0,n.jsxs)(a.p,{children:["In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, ",(0,n.jsx)(a.a,{href:"https://rawg.io/",children:"rawg.io"}),". Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. The situation peaked on May 5th when the service went down completely for a day."]}),"\n",(0,n.jsx)(a.h2,{id:"gamevaults-new-metadata-provider-strategy",children:"GameVault's new metadata provider strategy"}),"\n",(0,n.jsx)(a.p,{children:"To address these issues, we're making significant changes to GameVault's metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider."}),"\n",(0,n.jsx)(a.p,{children:"We're also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB's APIs out of the box."}),"\n",(0,n.jsxs)(a.p,{children:["More details on our plans can be found in this ",(0,n.jsx)(a.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/258",children:"GitHub ticket"}),". We also plan to continue supporting the use of your own API keys and other vendors."]}),"\n",(0,n.jsx)(a.p,{children:"However, as decided in our recent poll, we will be removing all support for RAWG."}),"\n",(0,n.jsx)(a.h2,{id:"temporary-solution-implementing-a-rawg-replacement",children:"Temporary solution: Implementing a RAWG replacement"}),"\n",(0,n.jsxs)(a.p,{children:["However, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we're away? To address this concern, ",(0,n.jsx)(a.a,{href:"https://github.com/Toylerrr",children:"Toylerrr"}),", one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the ",(0,n.jsx)(a.code,{children:"RAWG_API_URL"})," environmental variable."]}),"\n",(0,n.jsxs)(a.p,{children:["We loved the idea and built on it. Introducing ",(0,n.jsx)(a.a,{href:"https://github.com/Phalcode/rawg-to-steam-redirect",children:"rawg-to-steam-redirect"}),"."]}),"\n",(0,n.jsx)(a.p,{children:"The link above explains how it works and how you can use it today."}),"\n",(0,n.jsx)(a.p,{children:"What we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API."}),"\n",(0,n.jsxs)(a.p,{children:["While ",(0,n.jsx)(a.code,{children:"https://api.rawg.io/api"})," will remain the default ",(0,n.jsx)(a.code,{children:"RAWG_API_URL"})," for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0."]}),"\n",(0,n.jsx)(a.h2,{id:"exciting-new-features",children:"Exciting new features"}),"\n",(0,n.jsx)(a.p,{children:"In addition to these changes, we're excited to introduce you to some new features that were recently released:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"\ud83d\udd16 Bookmarking Video Games:"})," You can now bookmark your favorite games within GameVault."]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"\u23ef\ufe0f Download Management:"})," GameVault now supports pausing, auto-resuming, and resuming downloads."]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"\ud83d\udd12 Encrypted Archives:"})," GameVault now supports password protected archives."]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"We hope these updates will make your experience with GameVault even better as we move through this transition period."}),"\n",(0,n.jsx)(a.h2,{id:"supporting-gamevault",children:"Supporting GameVault"}),"\n",(0,n.jsx)(a.p,{children:"Finally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can't find the GameVault+ easter egg though... \ud83d\ude09"}),"\n",(0,n.jsx)(a.p,{children:"With love,"}),"\n",(0,n.jsx)(a.p,{children:"Phalcode"})]})}function m(e={}){const{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>r,a:()=>o});var n=t(5271);const i={},l=n.createContext(i);function o(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fbaf179c.d5cbd389.js b/assets/js/fbaf179c.d5cbd389.js new file mode 100644 index 000000000..a37514ff7 --- /dev/null +++ b/assets/js/fbaf179c.d5cbd389.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[6490],{9241:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>n,toc:()=>u});var n=a(797),i=a(6070),r=a(8591);const l={title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},o=void 0,s={authorsImageUrls:[void 0]},u=[{value:"GameVault's new metadata provider strategy",id:"gamevaults-new-metadata-provider-strategy",level:2},{value:"Temporary solution: Implementing a RAWG replacement",id:"temporary-solution-implementing-a-rawg-replacement",level:2},{value:"Exciting new features",id:"exciting-new-features",level:2},{value:"Supporting GameVault",id:"supporting-gamevault",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Hey everyone!"}),"\n",(0,i.jsxs)(t.p,{children:["In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, ",(0,i.jsx)(t.a,{href:"https://rawg.io/",children:"rawg.io"}),". Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. The situation peaked on May 5th when the service went down completely for a day."]}),"\n",(0,i.jsx)(t.h2,{id:"gamevaults-new-metadata-provider-strategy",children:"GameVault's new metadata provider strategy"}),"\n",(0,i.jsx)(t.p,{children:"To address these issues, we're making significant changes to GameVault's metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider."}),"\n",(0,i.jsx)(t.p,{children:"We're also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB's APIs out of the box."}),"\n",(0,i.jsxs)(t.p,{children:["More details on our plans can be found in this ",(0,i.jsx)(t.a,{href:"https://github.com/Phalcode/gamevault-backend/issues/258",children:"GitHub ticket"}),". We also plan to continue supporting the use of your own API keys and other vendors."]}),"\n",(0,i.jsx)(t.p,{children:"However, as decided in our recent poll, we will be removing all support for RAWG."}),"\n",(0,i.jsx)(t.h2,{id:"temporary-solution-implementing-a-rawg-replacement",children:"Temporary solution: Implementing a RAWG replacement"}),"\n",(0,i.jsxs)(t.p,{children:["However, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we're away? To address this concern, ",(0,i.jsx)(t.a,{href:"https://github.com/Toylerrr",children:"Toylerrr"}),", one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the ",(0,i.jsx)(t.code,{children:"RAWG_API_URL"})," environmental variable."]}),"\n",(0,i.jsxs)(t.p,{children:["We loved the idea and built on it. Introducing ",(0,i.jsx)(t.a,{href:"https://github.com/Phalcode/rawg-to-steam-redirect",children:"rawg-to-steam-redirect"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"The link above explains how it works and how you can use it today."}),"\n",(0,i.jsx)(t.p,{children:"What we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API."}),"\n",(0,i.jsxs)(t.p,{children:["While ",(0,i.jsx)(t.code,{children:"https://api.rawg.io/api"})," will remain the default ",(0,i.jsx)(t.code,{children:"RAWG_API_URL"})," for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0."]}),"\n",(0,i.jsx)(t.h2,{id:"exciting-new-features",children:"Exciting new features"}),"\n",(0,i.jsx)(t.p,{children:"In addition to these changes, we're excited to introduce you to some new features that were recently released:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\ud83d\udd16 Bookmarking Video Games:"})," You can now bookmark your favorite games within GameVault."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\u23ef\ufe0f Download Management:"})," GameVault now supports pausing, auto-resuming, and resuming downloads."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"\ud83d\udd12 Encrypted Archives:"})," GameVault now supports password protected archives."]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"We hope these updates will make your experience with GameVault even better as we move through this transition period."}),"\n",(0,i.jsx)(t.h2,{id:"supporting-gamevault",children:"Supporting GameVault"}),"\n",(0,i.jsx)(t.p,{children:"Finally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can't find the GameVault+ easter egg though... \ud83d\ude09"}),"\n",(0,i.jsx)(t.p,{children:"With love,"}),"\n",(0,i.jsx)(t.p,{children:"Phalcode"})]})}function m(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>l,x:()=>o});var n=a(758);const i={},r=n.createContext(i);function l(e){const t=n.useContext(r);return n.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(i):e.components||i:l(e.components),n.createElement(r.Provider,{value:t},e.children)}},797:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/05/07/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md","source":"@site/blog/2024-05-07.md","title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","description":"Hey everyone!","date":"2024-05-07T00:00:00.000Z","tags":[{"inline":true,"label":"game","permalink":"/blog/tags/game"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"database","permalink":"/blog/tags/database"},{"inline":true,"label":"videogame","permalink":"/blog/tags/videogame"},{"inline":true,"label":"RAWG","permalink":"/blog/tags/rawg"},{"inline":true,"label":"IGDB","permalink":"/blog/tags/igdb"},{"inline":true,"label":"twitch.tv","permalink":"/blog/tags/twitch-tv"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"partnership","permalink":"/blog/tags/partnership"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"solution","permalink":"/blog/tags/solution"},{"inline":true,"label":"Steam","permalink":"/blog/tags/steam"},{"inline":true,"label":"backend","permalink":"/blog/tags/backend"},{"inline":true,"label":"update","permalink":"/blog/tags/update"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"easter egg","permalink":"/blog/tags/easter-egg"}],"readingTime":2.525,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","authors":["alfagun74"],"tags":["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},"unlisted":false,"prevItem":{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/"},"nextItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"}}')}}]); \ No newline at end of file diff --git a/assets/js/fcad5cc1.fdbd4ec6.js b/assets/js/fcad5cc1.09b6310f.js similarity index 84% rename from assets/js/fcad5cc1.fdbd4ec6.js rename to assets/js/fcad5cc1.09b6310f.js index 5725c78cc..57f3fe5f0 100644 --- a/assets/js/fcad5cc1.fdbd4ec6.js +++ b/assets/js/fcad5cc1.09b6310f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3025],{7280:e=>{e.exports=JSON.parse('{"tag":{"label":"development","permalink":"/blog/tags/development","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9921],{5176:e=>{e.exports=JSON.parse('{"tag":{"label":"development","permalink":"/blog/tags/development","allTagsPath":"/blog/tags","count":3,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/development","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/fe2b2ad8.0b6462ba.js b/assets/js/fe2b2ad8.0b6462ba.js new file mode 100644 index 000000000..db30a3d3b --- /dev/null +++ b/assets/js/fe2b2ad8.0b6462ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1219],{1835:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>u});var n=a(797),l=a(6070),i=a(8591);const r={title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},o=void 0,s={authorsImageUrls:[void 0]},u=[];function g(e){const t={a:"a",p:"p",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.p,{children:"Hey everyone!"}),"\n",(0,l.jsxs)(t.p,{children:["In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, ",(0,l.jsx)(t.a,{href:"https://rawg.io/",children:"rawg.io"}),". Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems."]})]})}function m(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(g,{...e})}):g(e)}},8591:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>o});var n=a(758);const l={},i=n.createContext(l);function r(e){const t=n.useContext(i);return n.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(l):e.components||l:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},797:e=>{e.exports=JSON.parse('{"permalink":"/blog/2024/05/07/","editUrl":"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md","source":"@site/blog/2024-05-07.md","title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","description":"Hey everyone!","date":"2024-05-07T00:00:00.000Z","tags":[{"inline":true,"label":"game","permalink":"/blog/tags/game"},{"inline":true,"label":"metadata","permalink":"/blog/tags/metadata"},{"inline":true,"label":"database","permalink":"/blog/tags/database"},{"inline":true,"label":"videogame","permalink":"/blog/tags/videogame"},{"inline":true,"label":"RAWG","permalink":"/blog/tags/rawg"},{"inline":true,"label":"IGDB","permalink":"/blog/tags/igdb"},{"inline":true,"label":"twitch.tv","permalink":"/blog/tags/twitch-tv"},{"inline":true,"label":"API","permalink":"/blog/tags/api"},{"inline":true,"label":"partnership","permalink":"/blog/tags/partnership"},{"inline":true,"label":"community","permalink":"/blog/tags/community"},{"inline":true,"label":"solution","permalink":"/blog/tags/solution"},{"inline":true,"label":"Steam","permalink":"/blog/tags/steam"},{"inline":true,"label":"backend","permalink":"/blog/tags/backend"},{"inline":true,"label":"update","permalink":"/blog/tags/update"},{"inline":true,"label":"features","permalink":"/blog/tags/features"},{"inline":true,"label":"GameVault","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"GameVault+","permalink":"/blog/tags/game-vault"},{"inline":true,"label":"easter egg","permalink":"/blog/tags/easter-egg"}],"readingTime":2.525,"hasTruncateMarker":true,"authors":[{"name":"Alper Alkan","title":"Co-Founder of Phalcode","url":"https://github.com/Alfagun74","imageURL":"https://github.com/Alfagun74.png","key":"alfagun74","page":null}],"frontMatter":{"title":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","authors":["alfagun74"],"tags":["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},"unlisted":false,"prevItem":{"title":"An update so major, we could have built the product from scratch.","permalink":"/blog/2024/10/20/"},"nextItem":{"title":"GameVault+ out now","permalink":"/blog/2024/04/14/"}}')}}]); \ No newline at end of file diff --git a/assets/js/fe2b2ad8.5be3f56b.js b/assets/js/fe2b2ad8.5be3f56b.js deleted file mode 100644 index 13400e5e3..000000000 --- a/assets/js/fe2b2ad8.5be3f56b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4907],{5216:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>g});var n=t(2676),l=t(8358);const i={title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},o=void 0,r={permalink:"/blog/2024/05/07/",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master/blog/2024-05-07.md",source:"@site/blog/2024-05-07.md",title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",description:"Hey everyone!",date:"2024-05-07T00:00:00.000Z",tags:[{inline:!0,label:"game",permalink:"/blog/tags/game"},{inline:!0,label:"metadata",permalink:"/blog/tags/metadata"},{inline:!0,label:"database",permalink:"/blog/tags/database"},{inline:!0,label:"videogame",permalink:"/blog/tags/videogame"},{inline:!0,label:"RAWG",permalink:"/blog/tags/rawg"},{inline:!0,label:"IGDB",permalink:"/blog/tags/igdb"},{inline:!0,label:"twitch.tv",permalink:"/blog/tags/twitch-tv"},{inline:!0,label:"API",permalink:"/blog/tags/api"},{inline:!0,label:"partnership",permalink:"/blog/tags/partnership"},{inline:!0,label:"community",permalink:"/blog/tags/community"},{inline:!0,label:"solution",permalink:"/blog/tags/solution"},{inline:!0,label:"Steam",permalink:"/blog/tags/steam"},{inline:!0,label:"backend",permalink:"/blog/tags/backend"},{inline:!0,label:"update",permalink:"/blog/tags/update"},{inline:!0,label:"features",permalink:"/blog/tags/features"},{inline:!0,label:"GameVault",permalink:"/blog/tags/game-vault"},{inline:!0,label:"GameVault+",permalink:"/blog/tags/game-vault"},{inline:!0,label:"easter egg",permalink:"/blog/tags/easter-egg"}],readingTime:2.525,hasTruncateMarker:!0,authors:[{name:"Alper Alkan",title:"Co-Founder of Phalcode",url:"https://github.com/Alfagun74",imageURL:"https://github.com/Alfagun74.png",key:"alfagun74",page:null}],frontMatter:{title:"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!",authors:["alfagun74"],tags:["game","metadata","database","videogame","RAWG","IGDB","twitch.tv","API","partnership","community","solution","Steam","backend","update","features","GameVault","GameVault+","easter egg"]},unlisted:!1,prevItem:{title:"An update so major, we could have built the product from scratch.",permalink:"/blog/2024/10/20/"},nextItem:{title:"GameVault+ out now",permalink:"/blog/2024/04/14/"}},s={authorsImageUrls:[void 0]},g=[];function m(e){const a={a:"a",p:"p",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Hey everyone!"}),"\n",(0,n.jsxs)(a.p,{children:["In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, ",(0,n.jsx)(a.a,{href:"https://rawg.io/",children:"rawg.io"}),". Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems."]})]})}function u(e={}){const{wrapper:a}={...(0,l.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},8358:(e,a,t)=>{t.d(a,{Z:()=>r,a:()=>o});var n=t(5271);const l={},i=n.createContext(l);function o(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fee02ac9.5c9a73d8.js b/assets/js/fee02ac9.b9067084.js similarity index 84% rename from assets/js/fee02ac9.5c9a73d8.js rename to assets/js/fee02ac9.b9067084.js index 89fa8880b..ad999803e 100644 --- a/assets/js/fee02ac9.5c9a73d8.js +++ b/assets/js/fee02ac9.b9067084.js @@ -1 +1 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[1720],{2510:e=>{e.exports=JSON.parse('{"tag":{"label":"Council Member","permalink":"/blog/tags/council-member","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/council-member","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[3936],{9898:e=>{e.exports=JSON.parse('{"tag":{"label":"Council Member","permalink":"/blog/tags/council-member","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/council-member","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/ff51e3f1.a42a1c3f.js b/assets/js/ff51e3f1.a42a1c3f.js deleted file mode 100644 index 19a2d692d..000000000 --- a/assets/js/ff51e3f1.a42a1c3f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[9498],{5551:t=>{t.exports=JSON.parse('{"tag":{"label":"support request","permalink":"/blog/tags/support-request","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/support-request","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/ff51e3f1.befcea40.js b/assets/js/ff51e3f1.befcea40.js new file mode 100644 index 000000000..de290176a --- /dev/null +++ b/assets/js/ff51e3f1.befcea40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[4070],{257:t=>{t.exports=JSON.parse('{"tag":{"label":"support request","permalink":"/blog/tags/support-request","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/support-request","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/main.98deba46.js b/assets/js/main.98deba46.js deleted file mode 100644 index a8afb918a..000000000 --- a/assets/js/main.98deba46.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.98deba46.js.LICENSE.txt */ -(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[179],{6573:(e,t,n)=>{var r={"./prism-bash":3209,"./prism-json":1417};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=6573},7297:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(5271);var r=n(4354),o=n.n(r),a=n(6887);const i={"0058b4c6":[()=>n.e(4088).then(n.t.bind(n,6462,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-175.json",6462],"007d2baa":[()=>n.e(6021).then(n.bind(n,4902)),"@site/docs/server-docs/media.md",4902],"009c376a":[()=>n.e(8847).then(n.t.bind(n,9062,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-support-4e8.json",9062],"00dfabf5":[()=>n.e(4956).then(n.t.bind(n,1410,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-223.json",1410],"00fcf151":[()=>n.e(1693).then(n.t.bind(n,912,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-transparency-2c4.json",912],"013bccfd":[()=>n.e(6835).then(n.t.bind(n,8325,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-improvement-e54.json",8325],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,7484)),"@theme/BlogTagsListPage",7484],"01fcf7cb":[()=>n.e(5789).then(n.t.bind(n,8196,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-engagement-408.json",8196],"03919031":[()=>n.e(7951).then(n.t.bind(n,3868,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gratitude-944.json",3868],"04a3aba4":[()=>n.e(2873).then(n.t.bind(n,2896,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-market-analysis-e77.json",2896],"063ffaec":[()=>n.e(9399).then(n.t.bind(n,3875,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-community-launch-0dd.json",3875],"065dfc11":[()=>n.e(2314).then(n.t.bind(n,3114,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-domain-acquisition-75b.json",3114],"0748c3bc":[()=>n.e(6241).then(n.bind(n,3785)),"@site/docs/server-docs/metadata-enrichment/metadata.md",3785],"0766ce7b":[()=>n.e(6987).then(n.t.bind(n,1411,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-update-1f1.json",1411],"077db3c5":[()=>n.e(6807).then(n.t.bind(n,6380,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-client-application-update-423.json",6380],"0a27b0d0":[()=>n.e(9518).then(n.t.bind(n,3170,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-code-access-151.json",3170],"0ad562e6":[()=>n.e(2275).then(n.t.bind(n,6923,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-development-milestones-2fd.json",6923],"0b705c82":[()=>n.e(2510).then(n.bind(n,3476)),"@site/blog/2023-12-09.md",3476],"0bd541ed":[()=>n.e(4023).then(n.bind(n,7434)),"@site/blog/2023-07-19.md?truncated=true",7434],"0bfa7fcc":[()=>n.e(6071).then(n.bind(n,3533)),"@site/blog/2023-07-13.md",3533],"0c6a4732":[()=>n.e(9338).then(n.t.bind(n,1415,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-rawg-api-f4d.json",1415],"0d3164f5":[()=>n.e(4649).then(n.t.bind(n,5918,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-reddit-forum-6ca.json",5918],"0e384e19":[()=>n.e(9671).then(n.bind(n,4816)),"@site/docs/intro.md",4816],"10d38074":[()=>n.e(8823).then(n.t.bind(n,2379,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-0c9.json",2379],"113d89da":[()=>n.e(9099).then(n.t.bind(n,1707,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-spreading-the-word-793.json",1707],"1334883d":[()=>n.e(4895).then(n.t.bind(n,7574,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-safe-environment-fa4.json",7574],"14b6aafb":[()=>n.e(8495).then(n.bind(n,5479)),"@site/docs/server-docs/adding-games.md",5479],"1630eae8":[()=>n.e(1105).then(n.bind(n,943)),"@site/docs/server-docs/setup/truenas-scale.md",943],17896441:[()=>Promise.all([n.e(532),n.e(6493),n.e(7918)]).then(n.bind(n,4863)),"@theme/DocItem",4863],18747338:[()=>n.e(7919).then(n.t.bind(n,6444,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-channel-e8c.json",6444],"18d9fd7d":[()=>n.e(2002).then(n.bind(n,4485)),"@site/docs/server-docs/plugins.md",4485],"193fe191":[()=>n.e(7459).then(n.bind(n,3323)),"@site/docs/server-docs/metadata-enrichment/provider-igdb.md",3323],"19e4f252":[()=>n.e(3488).then(n.t.bind(n,8201,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subreddit-migration-749.json",8201],"1dd5d307":[()=>n.e(9418).then(n.t.bind(n,4759,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-3e5.json",4759],"1e0a1681":[()=>n.e(1420).then(n.bind(n,7547)),"@site/docs/server-docs/setup/synology-container-manager.md",7547],"1ff343c8":[()=>n.e(2980).then(n.t.bind(n,4019,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-simplifying-game-installation-c9f.json",4019],"2024b8b1":[()=>n.e(7596).then(n.bind(n,4169)),"@site/blog/2023-07-29.md?truncated=true",4169],"204759e4":[()=>n.e(2337).then(n.t.bind(n,6577,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-partnership-7e9.json",6577],20661643:[()=>n.e(8953).then(n.t.bind(n,5268,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-tech-progress-c60.json",5268],"2296bbef":[()=>n.e(6623).then(n.t.bind(n,5205,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-hybrid-model-384.json",5205],"23a0eab7":[()=>n.e(5773).then(n.t.bind(n,9169,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-source-available-software-761.json",9169],"24c2f136":[()=>n.e(9584).then(n.t.bind(n,9379,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-box-representation-da0.json",9379],"251cbb95":[()=>n.e(4584).then(n.t.bind(n,111,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-harassment-11d.json",111],"2608b85a":[()=>n.e(5156).then(n.t.bind(n,8964,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-negative-narratives-b3f.json",8964],"264f4708":[()=>n.e(1517).then(n.bind(n,2015)),"@site/docs/advanced-usage/early-access-program.md",2015],"26ca8ce1":[()=>n.e(3518).then(n.t.bind(n,3606,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-community-5b4.json",3606],"2a693baa":[()=>n.e(8521).then(n.t.bind(n,4413,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-control-29f.json",4413],"2aa0a660":[()=>n.e(675).then(n.t.bind(n,9980,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-model-e21.json",9980],"2e008a3a":[()=>n.e(5694).then(n.bind(n,5264)),"@site/blog/2023-07-13.md?truncated=true",5264],"2f44e9f7":[()=>n.e(3357).then(n.t.bind(n,9752,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-server-promotion-03a.json",9752],"357ebdd0":[()=>n.e(69).then(n.t.bind(n,8496,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-user-participation-4a2.json",8496],"36994c47":[()=>n.e(9208).then(n.t.bind(n,4468,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",4468],"36bc9c65":[()=>n.e(6135).then(n.t.bind(n,950,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-client-update-ad5.json",950],"3a2db09e":[()=>n.e(9361).then(n.t.bind(n,7588,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-df9.json",7588],"3ac72a53":[()=>n.e(6152).then(n.t.bind(n,4937,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-forum-09e.json",4937],"3af271b3":[()=>n.e(6072).then(n.t.bind(n,4726,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-upcoming-update-894.json",4726],"3b659bf0":[()=>n.e(6635).then(n.t.bind(n,1069,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-logo-deciphering-a29.json",1069],"3bdf5af6":[()=>n.e(15).then(n.t.bind(n,551,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-notes-dea.json",551],"3f6275a8":[()=>n.e(447).then(n.t.bind(n,6195,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-bugs-30a.json",6195],"3f99d67c":[()=>n.e(1283).then(n.t.bind(n,6250,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-logo-031.json",6250],"3fc2248c":[()=>n.e(8038).then(n.t.bind(n,7029,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-feedback-110.json",7029],"3fc3119e":[()=>n.e(1362).then(n.bind(n,6189)),"@site/blog/2023-12-09.md?truncated=true",6189],"416eca3f":[()=>n.e(4517).then(n.t.bind(n,3949,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-age-restrictions-5d3.json",3949],"41e301a0":[()=>n.e(3712).then(n.t.bind(n,5581,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-trolls-732.json",5581],"435302bb":[()=>n.e(2126).then(n.bind(n,5076)),"@site/docs/client-docs/how-to-use.md",5076],"438c7fa2":[()=>n.e(1601).then(n.bind(n,5729)),"@site/docs/server-docs/server-news.md",5729],"4534f50b":[()=>n.e(7253).then(n.t.bind(n,3695,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-threats-86b.json",3695],"46e7f252":[()=>n.e(9190).then(n.t.bind(n,6312,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-metadata-b2d.json",6312],"47aca6da":[()=>n.e(3465).then(n.bind(n,3692)),"@site/blog/2024-04-01/2024-04-01.md?truncated=true",3692],"4a631206":[()=>n.e(7937).then(n.bind(n,6226)),"@site/docs/server-docs/updating-games.md",6226],"4a6974fe":[()=>n.e(6634).then(n.bind(n,1693)),"@site/blog/2024-04-01/2024-04-01.md",1693],"4d393b3e":[()=>n.e(9155).then(n.bind(n,2197)),"@site/docs/server-docs/backup-and-restore.md",2197],"4e01c0f4":[()=>n.e(3198).then(n.t.bind(n,4615,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-platform-b8a.json",4615],"4efd7f8f":[()=>n.e(9950).then(n.t.bind(n,3665,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-exclusive-preview-10f.json",3665],"4f991444":[()=>n.e(1271).then(n.t.bind(n,774,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-updates-c8d.json",774],"4fb3dfba":[()=>n.e(428).then(n.t.bind(n,6389,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-backend-application-migration-545.json",6389],"4ff7c2f7":[()=>n.e(8565).then(n.t.bind(n,7479,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-hub-801.json",7479],"500e67e3":[()=>n.e(5724).then(n.t.bind(n,4617,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-poll-results-c1e.json",4617],"5046667d":[()=>n.e(4275).then(n.bind(n,1575)),"@site/docs/server-docs/websockets.md",1575],"51e7bf36":[()=>n.e(7146).then(n.bind(n,7520)),"@site/docs/client-docs/data.md",7520],"51fa4cf1":[()=>n.e(5501).then(n.t.bind(n,5318,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-stash-816.json",5318],"524a34e7":[()=>n.e(6953).then(n.t.bind(n,2478,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-harbor-82c.json",2478],"534e7ef5":[()=>n.e(2834).then(n.t.bind(n,2583,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-to-updates-role-792.json",2583],"55dfe132":[()=>n.e(5487).then(n.bind(n,4773)),"@site/blog/2023-11-20.md",4773],"573c7c88":[()=>n.e(8846).then(n.t.bind(n,6983,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-self-hosted-newsletter-6aa.json",6983],"591d17b8":[()=>n.e(8218).then(n.t.bind(n,1880,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microsoft-store-publication-729.json",1880],"5a2f6c5d":[()=>n.e(2158).then(n.t.bind(n,6888,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microsoft-store-736.json",6888],"5a8f8fa9":[()=>n.e(8346).then(n.t.bind(n,7698,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-installation-pipeline-ebc.json",7698],"5ac1a9ec":[()=>n.e(2518).then(n.t.bind(n,139,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-alternative-214.json",139],"5baa483a":[()=>n.e(9006).then(n.t.bind(n,5735,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-speculation-a41.json",5735],"5bbd8cf3":[()=>n.e(8912).then(n.t.bind(n,7288,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-kanban-board-262.json",7288],"5c99339f":[()=>n.e(7283).then(n.t.bind(n,9948,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-backend-c70.json",9948],"5db30e8c":[()=>n.e(7044).then(n.t.bind(n,9692,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-self-hosted-4fa.json",9692],"5e5c84c3":[()=>n.e(8516).then(n.bind(n,2836)),"@site/docs/server-docs/game-types.md",2836],"5e95c892":[()=>n.e(9661).then(n.bind(n,5970)),"@theme/DocsRoot",5970],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5fa82f91":[()=>n.e(4503).then(n.t.bind(n,1722,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-shelf-102.json",1722],"61be0f73":[()=>n.e(452).then(n.bind(n,5931)),"@site/docs/server-docs/structure.md",5931],"621db11d":[()=>Promise.all([n.e(532),n.e(2091),n.e(3940)]).then(n.bind(n,3435)),"@theme/Blog/Pages/BlogAuthorsListPage",3435],"63511f3c":[()=>n.e(5044).then(n.t.bind(n,7337,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-decision-making-c62.json",7337],"63b46e50":[()=>n.e(4819).then(n.t.bind(n,4881,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-health-monitoring-c3c.json",4881],"6535206c":[()=>n.e(3020).then(n.t.bind(n,3480,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-name-migration-54a.json",3480],"66e9ef90":[()=>n.e(786).then(n.t.bind(n,9746,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-analytics-43c.json",9746],"678c8d60":[()=>n.e(4430).then(n.t.bind(n,9939,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-drm-free-games-d6f.json",9939],"6875c492":[()=>Promise.all([n.e(532),n.e(6493),n.e(2091),n.e(8610)]).then(n.bind(n,8078)),"@theme/BlogTagsPostsPage",8078],"6a40fd04":[()=>n.e(5736).then(n.t.bind(n,3599,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-renaming-app-716.json",3599],"6bbbce94":[()=>n.e(2639).then(n.t.bind(n,2976,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-family-friendly-d7c.json",2976],"6e64f266":[()=>n.e(5781).then(n.t.bind(n,8076,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-documentation-migration-461.json",8076],"6ff2a8aa":[()=>n.e(7773).then(n.t.bind(n,1399,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-poll-55a.json",1399],"71f025ea":[()=>n.e(121).then(n.t.bind(n,389,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-driven-c68.json",389],"71f72e4c":[()=>n.e(7523).then(n.t.bind(n,5572,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-updates-66c.json",5572],"73ad9a8e":[()=>n.e(9096).then(n.t.bind(n,136,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-theme-b53.json",136],"7424d9c3":[()=>n.e(9268).then(n.bind(n,2903)),"@site/blog/2023-07-08.md",2903],"7486ddfc":[()=>n.e(8437).then(n.t.bind(n,7734,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-november-update-7a2.json",7734],"7489ed02":[()=>n.e(6515).then(n.bind(n,1173)),"@site/blog/2023-07-01.md?truncated=true",1173],"751a244a":[()=>n.e(9041).then(n.t.bind(n,2108,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-management-84a.json",2108],"7558b7a2":[()=>n.e(4327).then(n.t.bind(n,1416,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-transition-process-04a.json",1416],"7576ca6a":[()=>n.e(3236).then(n.t.bind(n,6467,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-video-games-c79.json",6467],"7754063d":[()=>n.e(3116).then(n.t.bind(n,1552,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-journey-706.json",1552],"77a8abe0":[()=>n.e(9348).then(n.t.bind(n,134,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-continued-support-22f.json",134],"77f7e459":[()=>n.e(5805).then(n.t.bind(n,9919,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-git-hub-issue-e5d.json",9919],"7864c493":[()=>n.e(111).then(n.t.bind(n,2941,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-blackmail-b61.json",2941],"7a0110f5":[()=>n.e(2777).then(n.t.bind(n,330,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-platform-8e2.json",330],"7b99d5ba":[()=>n.e(1383).then(n.bind(n,5538)),"@site/blog/2023-07-09.md?truncated=true",5538],"7c4a7780":[()=>n.e(5074).then(n.t.bind(n,6765,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-experience-d09.json",6765],"7ef69c2b":[()=>n.e(7020).then(n.bind(n,7534)),"@site/blog/2024-10-20.md?truncated=true",7534],80292675:[()=>n.e(6487).then(n.bind(n,6905)),"@site/docs/server-docs/setup/unraid.md",6905],"80404bfe":[()=>n.e(962).then(n.t.bind(n,4600,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-feature-requests-f1b.json",4600],"805ec11d":[()=>n.e(5164).then(n.t.bind(n,3342,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-server-update-54e.json",3342],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"8167ef7e":[()=>n.e(241).then(n.t.bind(n,7497,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-developers-001.json",7497],"82c81335":[()=>n.e(4251).then(n.t.bind(n,8576,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-testing-29d.json",8576],"8577c450":[()=>n.e(2561).then(n.t.bind(n,8283,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-spam-cff.json",8283],"8795eea9":[()=>n.e(1053).then(n.bind(n,8671)),"@site/blog/2023-07-20.md?truncated=true",8671],"87cefd36":[()=>n.e(5240).then(n.t.bind(n,6623,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-cloud-based-game-platforms-ee3.json",6623],"8852925a":[()=>n.e(7964).then(n.t.bind(n,2805,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-name-announcement-577.json",2805],"886fdd87":[()=>n.e(6927).then(n.t.bind(n,2070,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-git-hub-b4b.json",2070],"89db6d1d":[()=>n.e(5855).then(n.bind(n,9402)),"@site/blog/2023-07-15.md?truncated=true",9402],"8a3716b4":[()=>n.e(5059).then(n.t.bind(n,7858,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-metadata-framework-ab4.json",7858],"8a3c85db":[()=>n.e(235).then(n.t.bind(n,6381,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-domain-161.json",6381],"8b8fd5aa":[()=>n.e(1151).then(n.t.bind(n,393,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-polls-463.json",393],"8ba18f4f":[()=>n.e(147).then(n.bind(n,8508)),"@site/docs/server-docs/parental-control.md",8508],"8c4108df":[()=>n.e(4145).then(n.bind(n,9287)),"@site/docs/server-docs/setup/docker-compose.md",9287],"8e064018":[()=>n.e(1691).then(n.t.bind(n,7614,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-celebration-of-achievements-856.json",7614],"8ea09047":[()=>n.e(8644).then(n.t.bind(n,7362,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-page-2-433.json",7362],"8f8e2e78":[()=>n.e(8407).then(n.t.bind(n,5016,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-future-development-ef2.json",5016],"8ff99662":[()=>n.e(8489).then(n.t.bind(n,4233,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-app-80a.json",4233],"9019cc36":[()=>n.e(9565).then(n.bind(n,2716)),"@site/blog/2024-10-20.md",2716],"9046e000":[()=>n.e(2650).then(n.t.bind(n,9205,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-solution-4b2.json",9205],"9147d3af":[()=>n.e(5954).then(n.bind(n,8248)),"@site/blog/2024-03-28.md?truncated=true",8248],"915cb6f7":[()=>n.e(4509).then(n.t.bind(n,5532,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-april-fools-1f0.json",5532],92440753:[()=>n.e(3439).then(n.t.bind(n,8819,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-financial-assistance-4b1.json",8819],"92fb1dcd":[()=>n.e(2908).then(n.t.bind(n,6583,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-roadmap-e35.json",6583],"9404f843":[()=>n.e(4811).then(n.bind(n,7130)),"@site/docs/gamevault-plus/client-apis.md",7130],"9748c478":[()=>n.e(7807).then(n.bind(n,3326)),"@site/blog/2023-07-15.md",3326],"979ccdb6":[()=>n.e(9264).then(n.t.bind(n,4668,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-racist-e34.json",4668],"99d3d5ac":[()=>n.e(5150).then(n.t.bind(n,9782,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-development-d1f.json",9782],"99f2b7e6":[()=>n.e(7546).then(n.t.bind(n,8222,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-twitch-tv-219.json",8222],"9b1663d8":[()=>n.e(6497).then(n.t.bind(n,2022,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-66f.json",2022],"9b95b357":[()=>n.e(2942).then(n.t.bind(n,4133,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-servers-279.json",4133],"9d5a95a9":[()=>n.e(8023).then(n.t.bind(n,1272,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-igdb-8f8.json",1272],"9d86e7fa":[()=>n.e(7508).then(n.t.bind(n,1629,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-announcement-97a.json",1629],"9d9f8394":[()=>n.e(9360).then(n.bind(n,5465)),"@site/docs/troubleshooting.md",5465],"9e4087bc":[()=>n.e(3608).then(n.bind(n,7579)),"@theme/BlogArchivePage",7579],"9e75d8bf":[()=>n.e(8444).then(n.t.bind(n,2611,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-platform-values-e98.json",2611],"9fafd272":[()=>n.e(8666).then(n.t.bind(n,6839,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-50c.json",6839],a1072f2a:[()=>n.e(7650).then(n.bind(n,1674)),"@site/docs/client-docs/gui.md",1674],a1216fa4:[()=>n.e(5662).then(n.bind(n,6746)),"@site/blog/2023-07-24.md",6746],a1f57275:[()=>n.e(5325).then(n.bind(n,2688)),"@site/blog/2023-07-01.md",2688],a3fd4b44:[()=>n.e(9303).then(n.t.bind(n,9921,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-file-server-7d3.json",9921],a67f6c3e:[()=>n.e(2999).then(n.t.bind(n,8758,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-videogame-96d.json",8758],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(6493),n.e(2091),n.e(3089)]).then(n.bind(n,8602)),"@theme/BlogListPage",8602],a6fed517:[()=>n.e(4884).then(n.t.bind(n,3063,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-database-781.json",3063],a7456010:[()=>n.e(5980).then(n.t.bind(n,9365,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",9365],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,2767)),"@theme/DocVersionRoot",2767],a7d982d4:[()=>n.e(4691).then(n.t.bind(n,66,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-e0e.json",66],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,7872)),"@theme/DocRoot",7872],ab6782ba:[()=>n.e(6003).then(n.t.bind(n,3306,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-steam-739.json",3306],aba21aa0:[()=>n.e(3629).then(n.t.bind(n,1765,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",1765],acecf23e:[()=>n.e(7393).then(n.t.bind(n,1838,19)),"~blog/default/blogMetadata-default.json",1838],aeb57253:[()=>n.e(5447).then(n.t.bind(n,4733,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-surge-of-new-users-416.json",4733],b1d7f5b9:[()=>n.e(4039).then(n.bind(n,9490)),"@site/docs/server-docs/indexing.md",9490],b28c3188:[()=>n.e(3559).then(n.bind(n,1234)),"@site/docs/server-docs/configuration.md",1234],b2ade0e8:[()=>n.e(8563).then(n.t.bind(n,1579,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-open-source-bc6.json",1579],b2c9ad8a:[()=>n.e(3680).then(n.t.bind(n,2319,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-optimization-286.json",2319],b4068411:[()=>n.e(8042).then(n.bind(n,176)),"@site/docs/server-docs/setup/caprover.md",176],b493ea72:[()=>n.e(4781).then(n.bind(n,9794)),"@site/blog/2023-07-20.md",9794],b7026fb3:[()=>n.e(752).then(n.bind(n,2660)),"@site/blog/2023-07-09.md",2660],b8ecf3c5:[()=>n.e(9847).then(n.bind(n,6262)),"@site/docs/client-docs/setup.md",6262],ba3af7ad:[()=>n.e(1814).then(n.bind(n,5040)),"@site/blog/2023-07-08.md?truncated=true",5040],ba57e113:[()=>n.e(5948).then(n.bind(n,2826)),"@site/docs/license-contribute.md",2826],bb12dd4d:[()=>n.e(4286).then(n.t.bind(n,1988,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-logo-concept-discussion-9f8.json",1988],bc0aa6af:[()=>n.e(8404).then(n.t.bind(n,3389,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-plugin-system-7eb.json",3389],bcc2422e:[()=>n.e(8704).then(n.t.bind(n,939,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ui-redesign-87d.json",939],bdf26d57:[()=>n.e(4452).then(n.t.bind(n,3806,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-collaboration-ed6.json",3806],c15d9823:[()=>n.e(6642).then(n.t.bind(n,2506,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-bd9.json",2506],c332f8df:[()=>n.e(8258).then(n.bind(n,8314)),"@site/blog/2023-07-19.md",8314],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,7703)),"@site/src/pages/index.js",7703],c71ef62c:[()=>n.e(2328).then(n.t.bind(n,3584,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-keyhole-representation-72c.json",3584],c7bbcbc7:[()=>n.e(2422).then(n.t.bind(n,1360,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-startup-dff.json",1360],c8472403:[()=>n.e(9710).then(n.t.bind(n,4051,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-special-thanks-d94.json",4051],c89c7974:[()=>n.e(5865).then(n.bind(n,433)),"@site/docs/advanced-usage/rest-api.md",433],c8fbe42c:[()=>n.e(8364).then(n.t.bind(n,3131,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-selfhosted-podcast-cda.json",3131],c9618c72:[()=>n.e(1472).then(n.t.bind(n,9311,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-official-installations-22e.json",9311],c9cac9d9:[()=>n.e(6325).then(n.t.bind(n,1305,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-release-6bd.json",1305],c9d2adb2:[()=>n.e(2701).then(n.bind(n,5956)),"@site/docs/gamevault-plus/client-setup.md",5956],ca2d5c98:[()=>n.e(3392).then(n.t.bind(n,9401,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-motivation-041.json",9401],cc0b9cf0:[()=>n.e(6364).then(n.t.bind(n,7587,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-source-available-927.json",7587],cc616304:[()=>n.e(717).then(n.t.bind(n,2453,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-easter-egg-364.json",2453],ccc49370:[()=>Promise.all([n.e(532),n.e(6493),n.e(2091),n.e(6103)]).then(n.bind(n,6509)),"@theme/BlogPostPage",6509],cd59c184:[()=>n.e(3112).then(n.bind(n,1634)),"@site/blog/2024-04-14.md",1634],cd781ce1:[()=>n.e(9230).then(n.t.bind(n,2343,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-voting-6d1.json",2343],cddec16f:[()=>n.e(5316).then(n.bind(n,3964)),"@site/docs/server-docs/setup/native.md",3964],cee5390f:[()=>n.e(691).then(n.t.bind(n,9724,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ui-update-5b0.json",9724],d527dda4:[()=>n.e(7416).then(n.t.bind(n,5239,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-coding-chronicle-d70.json",5239],d53cd084:[()=>n.e(3585).then(n.t.bind(n,481,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-parental-control-493.json",481],d5823966:[()=>n.e(7262).then(n.t.bind(n,6572,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-features-ebb.json",6572],d5dcebd7:[()=>n.e(187).then(n.t.bind(n,678,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-name-7a4.json",678],d6138fd2:[()=>n.e(7471).then(n.t.bind(n,4368,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-user-engagement-9c0.json",4368],d82a1228:[()=>n.e(5050).then(n.t.bind(n,8846,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-early-access-da1.json",8846],d9341347:[()=>n.e(9490).then(n.t.bind(n,7995,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-multi-user-authentication-6f6.json",7995],d9d4e1f1:[()=>n.e(5300).then(n.bind(n,8256)),"@site/blog/2023-11-20.md?truncated=true",8256],daddf69a:[()=>n.e(5548).then(n.t.bind(n,3169,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-community-bc6.json",3169],daf02673:[()=>n.e(3581).then(n.t.bind(n,6061,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-public-cb9.json",6061],db0b0363:[()=>n.e(2805).then(n.t.bind(n,8513,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-licensing-7b3.json",8513],dc8e8e39:[()=>n.e(1736).then(n.t.bind(n,2252,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-623.json",2252],dcb9a9e8:[()=>n.e(4758).then(n.bind(n,2160)),"@site/docs/advanced-usage/linux-client.md",2160],dd9b1d9d:[()=>n.e(3433).then(n.t.bind(n,836,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-success-3d9.json",836],defc3e62:[()=>n.e(4412).then(n.t.bind(n,7917,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-sustainability-369.json",7917],df8deb2d:[()=>n.e(8860).then(n.t.bind(n,9731,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-milestone-4c3.json",9731],e07621e3:[()=>n.e(6182).then(n.t.bind(n,1865,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-love-for-game-vault-828.json",1865],e0a15777:[()=>n.e(9737).then(n.t.bind(n,9859,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-revenue-generation-e31.json",9859],e0c5798e:[()=>n.e(339).then(n.bind(n,8801)),"@site/blog/2024-03-28.md",8801],e0da75fc:[()=>n.e(2656).then(n.bind(n,7282)),"@site/docs/advanced-usage/steamdeck.md",7282],e3409e91:[()=>n.e(1180).then(n.t.bind(n,3687,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-cfa.json",3687],e46b1034:[()=>n.e(386).then(n.t.bind(n,1940,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-partnerships-171.json",1940],e4878929:[()=>n.e(765).then(n.t.bind(n,1169,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-community-growth-95a.json",1169],e5c4b825:[()=>n.e(5658).then(n.t.bind(n,9564,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-migration-finalization-c0b.json",9564],e623129a:[()=>n.e(3251).then(n.t.bind(n,5569,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-future-features-136.json",5569],e6a59d41:[()=>n.e(356).then(n.bind(n,4244)),"@site/docs/server-docs/user-management.md",4244],e70842e4:[()=>n.e(5912).then(n.bind(n,4712)),"@site/blog/2024-04-14.md?truncated=true",4712],e78c2f6e:[()=>n.e(1545).then(n.t.bind(n,2415,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-creepy-behavior-daa.json",2415],e7aa45d5:[()=>n.e(9886).then(n.bind(n,3581)),"@site/blog/2023-07-29.md",3581],e935068c:[()=>n.e(8307).then(n.t.bind(n,3419,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-server-e37.json",3419],e98ed1e4:[()=>n.e(3017).then(n.t.bind(n,7459,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-name-migration-progress-68d.json",7459],e9e0f988:[()=>n.e(310).then(n.bind(n,2607)),"@site/docs/client-docs/updating-client.md",2607],e9e1de17:[()=>n.e(9473).then(n.t.bind(n,233,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-development-c0f.json",233],ec46a009:[()=>n.e(9362).then(n.bind(n,2983)),"@site/docs/gamevault-plus/introduction.md",2983],eda4f68b:[()=>n.e(9424).then(n.t.bind(n,4289,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ai-generated-names-ac1.json",4289],ee98c124:[()=>n.e(5590).then(n.bind(n,2380)),"@site/docs/advanced-usage/failt2ban.md",2380],ef8b811a:[()=>n.e(2644).then(n.t.bind(n,9441,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-authors-790.json",9441],f2a7e769:[()=>n.e(6522).then(n.t.bind(n,5714,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-sharing-blog-posts-3f1.json",5714],f4d4319b:[()=>n.e(2500).then(n.bind(n,9550)),"@site/docs/server-docs/setup/setup.md",9550],f525eb8a:[()=>n.e(146).then(n.t.bind(n,9591,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-api-049.json",9591],f58fbef8:[()=>n.e(3066).then(n.t.bind(n,6772,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-feedback-67f.json",6772],f5b06269:[()=>n.e(5565).then(n.bind(n,9221)),"@site/docs/gamevault-plus/themes.md",9221],f677311a:[()=>n.e(857).then(n.t.bind(n,1823,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-inclusivity-cdf.json",1823],f6f174b1:[()=>n.e(7764).then(n.t.bind(n,3540,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-beta-testing-146.json",3540],f81c1134:[()=>n.e(4031).then(n.t.bind(n,4108,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-archive-f05.json",4108],f8aea940:[()=>n.e(5961).then(n.bind(n,5799)),"@site/docs/client-docs/themes.md",5799],f94e70f3:[()=>n.e(6609).then(n.t.bind(n,7006,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-drm-free-406.json",7006],fb0a08ce:[()=>n.e(1392).then(n.bind(n,83)),"@site/blog/2023-07-24.md?truncated=true",83],fb0e7a2f:[()=>n.e(4893).then(n.t.bind(n,7641,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-rawg-6b2.json",7641],fbaf179c:[()=>n.e(4760).then(n.bind(n,3507)),"@site/blog/2024-05-07.md",3507],fcad5cc1:[()=>n.e(3025).then(n.t.bind(n,7280,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-development-c3c.json",7280],fe2b2ad8:[()=>n.e(4907).then(n.bind(n,5216)),"@site/blog/2024-05-07.md?truncated=true",5216],fee02ac9:[()=>n.e(1720).then(n.t.bind(n,2510,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-council-member-71b.json",2510],ff51e3f1:[()=>n.e(9498).then(n.t.bind(n,5551,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-support-request-58e.json",5551]};var s=n(2676);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.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,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.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,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(7346),u=n(4721);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1649).then(n.bind(n,1649)),modules:["@theme/NotFound"],webpack:()=>[1649],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],g=(0,c.Z)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)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 a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const l=o.__props;return delete o.__props,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(a,{...o,...l,...n})})}})}const p=[{path:"/blog",component:d("/blog","deb"),exact:!0},{path:"/blog/2023/07/01/",component:d("/blog/2023/07/01/","30b"),exact:!0},{path:"/blog/2023/07/08/",component:d("/blog/2023/07/08/","d10"),exact:!0},{path:"/blog/2023/07/09/",component:d("/blog/2023/07/09/","2c2"),exact:!0},{path:"/blog/2023/07/13/",component:d("/blog/2023/07/13/","6e5"),exact:!0},{path:"/blog/2023/07/15/",component:d("/blog/2023/07/15/","b20"),exact:!0},{path:"/blog/2023/07/19/",component:d("/blog/2023/07/19/","8a6"),exact:!0},{path:"/blog/2023/07/20/",component:d("/blog/2023/07/20/","9b6"),exact:!0},{path:"/blog/2023/07/24/",component:d("/blog/2023/07/24/","4f4"),exact:!0},{path:"/blog/2023/07/29/",component:d("/blog/2023/07/29/","44c"),exact:!0},{path:"/blog/2023/11/20/",component:d("/blog/2023/11/20/","3f2"),exact:!0},{path:"/blog/2023/12/09/",component:d("/blog/2023/12/09/","d2c"),exact:!0},{path:"/blog/2024/03/28/",component:d("/blog/2024/03/28/","60b"),exact:!0},{path:"/blog/2024/04/01/2024-04-01/",component:d("/blog/2024/04/01/2024-04-01/","59c"),exact:!0},{path:"/blog/2024/04/14/",component:d("/blog/2024/04/14/","e89"),exact:!0},{path:"/blog/2024/05/07/",component:d("/blog/2024/05/07/","2dc"),exact:!0},{path:"/blog/2024/10/20/",component:d("/blog/2024/10/20/","4e9"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","182"),exact:!0},{path:"/blog/authors",component:d("/blog/authors","0b7"),exact:!0},{path:"/blog/page/2",component:d("/blog/page/2","fd3"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","287"),exact:!0},{path:"/blog/tags/age-restrictions",component:d("/blog/tags/age-restrictions","8da"),exact:!0},{path:"/blog/tags/ai-generated-names",component:d("/blog/tags/ai-generated-names","de1"),exact:!0},{path:"/blog/tags/alternative",component:d("/blog/tags/alternative","0cb"),exact:!0},{path:"/blog/tags/analytics",component:d("/blog/tags/analytics","105"),exact:!0},{path:"/blog/tags/announcement",component:d("/blog/tags/announcement","3ab"),exact:!0},{path:"/blog/tags/api",component:d("/blog/tags/api","d97"),exact:!0},{path:"/blog/tags/app",component:d("/blog/tags/app","f50"),exact:!0},{path:"/blog/tags/app-name-migration",component:d("/blog/tags/app-name-migration","b3d"),exact:!0},{path:"/blog/tags/app-optimization",component:d("/blog/tags/app-optimization","4b7"),exact:!0},{path:"/blog/tags/april-fools",component:d("/blog/tags/april-fools","45b"),exact:!0},{path:"/blog/tags/backend",component:d("/blog/tags/backend","bc5"),exact:!0},{path:"/blog/tags/backend-application-migration",component:d("/blog/tags/backend-application-migration","ea3"),exact:!0},{path:"/blog/tags/beta-testing",component:d("/blog/tags/beta-testing","8e3"),exact:!0},{path:"/blog/tags/blackmail",component:d("/blog/tags/blackmail","2a4"),exact:!0},{path:"/blog/tags/box-representation",component:d("/blog/tags/box-representation","400"),exact:!0},{path:"/blog/tags/bugs",component:d("/blog/tags/bugs","ff5"),exact:!0},{path:"/blog/tags/celebration-of-achievements",component:d("/blog/tags/celebration-of-achievements","f97"),exact:!0},{path:"/blog/tags/client-application-update",component:d("/blog/tags/client-application-update","45e"),exact:!0},{path:"/blog/tags/client-update",component:d("/blog/tags/client-update","d5b"),exact:!0},{path:"/blog/tags/cloud-based-game-platforms",component:d("/blog/tags/cloud-based-game-platforms","a94"),exact:!0},{path:"/blog/tags/code-access",component:d("/blog/tags/code-access","1ef"),exact:!0},{path:"/blog/tags/coding-chronicle",component:d("/blog/tags/coding-chronicle","d18"),exact:!0},{path:"/blog/tags/collaboration",component:d("/blog/tags/collaboration","f74"),exact:!0},{path:"/blog/tags/community",component:d("/blog/tags/community","e39"),exact:!0},{path:"/blog/tags/community-driven",component:d("/blog/tags/community-driven","63b"),exact:!0},{path:"/blog/tags/community-feedback",component:d("/blog/tags/community-feedback","3ee"),exact:!0},{path:"/blog/tags/community-management",component:d("/blog/tags/community-management","93f"),exact:!0},{path:"/blog/tags/continued-support",component:d("/blog/tags/continued-support","afc"),exact:!0},{path:"/blog/tags/control",component:d("/blog/tags/control","04d"),exact:!0},{path:"/blog/tags/council-member",component:d("/blog/tags/council-member","a6a"),exact:!0},{path:"/blog/tags/creepy-behavior",component:d("/blog/tags/creepy-behavior","090"),exact:!0},{path:"/blog/tags/database",component:d("/blog/tags/database","ff5"),exact:!0},{path:"/blog/tags/decision-making",component:d("/blog/tags/decision-making","532"),exact:!0},{path:"/blog/tags/developers",component:d("/blog/tags/developers","487"),exact:!0},{path:"/blog/tags/development",component:d("/blog/tags/development","b27"),exact:!0},{path:"/blog/tags/development-milestones",component:d("/blog/tags/development-milestones","1c9"),exact:!0},{path:"/blog/tags/discord",component:d("/blog/tags/discord","6df"),exact:!0},{path:"/blog/tags/discord-channel",component:d("/blog/tags/discord-channel","b2d"),exact:!0},{path:"/blog/tags/discord-community-growth",component:d("/blog/tags/discord-community-growth","136"),exact:!0},{path:"/blog/tags/discord-server",component:d("/blog/tags/discord-server","e4d"),exact:!0},{path:"/blog/tags/discord-server-promotion",component:d("/blog/tags/discord-server-promotion","f55"),exact:!0},{path:"/blog/tags/documentation-migration",component:d("/blog/tags/documentation-migration","405"),exact:!0},{path:"/blog/tags/domain-acquisition",component:d("/blog/tags/domain-acquisition","e1a"),exact:!0},{path:"/blog/tags/drm-free",component:d("/blog/tags/drm-free","c7e"),exact:!0},{path:"/blog/tags/drm-free-games",component:d("/blog/tags/drm-free-games","6cf"),exact:!0},{path:"/blog/tags/early-access",component:d("/blog/tags/early-access","ed5"),exact:!0},{path:"/blog/tags/easter-egg",component:d("/blog/tags/easter-egg","7c7"),exact:!0},{path:"/blog/tags/engagement",component:d("/blog/tags/engagement","b3b"),exact:!0},{path:"/blog/tags/exclusive-preview",component:d("/blog/tags/exclusive-preview","0fe"),exact:!0},{path:"/blog/tags/family-friendly",component:d("/blog/tags/family-friendly","282"),exact:!0},{path:"/blog/tags/feature-requests",component:d("/blog/tags/feature-requests","61d"),exact:!0},{path:"/blog/tags/features",component:d("/blog/tags/features","3d5"),exact:!0},{path:"/blog/tags/feedback",component:d("/blog/tags/feedback","a81"),exact:!0},{path:"/blog/tags/file-server",component:d("/blog/tags/file-server","f0b"),exact:!0},{path:"/blog/tags/financial-assistance",component:d("/blog/tags/financial-assistance","e64"),exact:!0},{path:"/blog/tags/future-development",component:d("/blog/tags/future-development","db0"),exact:!0},{path:"/blog/tags/future-features",component:d("/blog/tags/future-features","bed"),exact:!0},{path:"/blog/tags/game",component:d("/blog/tags/game","a29"),exact:!0},{path:"/blog/tags/game-development",component:d("/blog/tags/game-development","97c"),exact:!0},{path:"/blog/tags/game-hub",component:d("/blog/tags/game-hub","6c3"),exact:!0},{path:"/blog/tags/game-shelf",component:d("/blog/tags/game-shelf","566"),exact:!0},{path:"/blog/tags/game-stash",component:d("/blog/tags/game-stash","728"),exact:!0},{path:"/blog/tags/game-vault",component:d("/blog/tags/game-vault","39f"),exact:!0},{path:"/blog/tags/game-vault-app",component:d("/blog/tags/game-vault-app","bd6"),exact:!0},{path:"/blog/tags/game-vault-domain",component:d("/blog/tags/game-vault-domain","a5b"),exact:!0},{path:"/blog/tags/game-vault-journey",component:d("/blog/tags/game-vault-journey","52d"),exact:!0},{path:"/blog/tags/game-vault-milestone",component:d("/blog/tags/game-vault-milestone","030"),exact:!0},{path:"/blog/tags/gaming",component:d("/blog/tags/gaming","2b9"),exact:!0},{path:"/blog/tags/gaming-community",component:d("/blog/tags/gaming-community","73c"),exact:!0},{path:"/blog/tags/gaming-experience",component:d("/blog/tags/gaming-experience","f8c"),exact:!0},{path:"/blog/tags/gaming-platform",component:d("/blog/tags/gaming-platform","12f"),exact:!0},{path:"/blog/tags/gaming-servers",component:d("/blog/tags/gaming-servers","e66"),exact:!0},{path:"/blog/tags/git-hub",component:d("/blog/tags/git-hub","590"),exact:!0},{path:"/blog/tags/git-hub-issue",component:d("/blog/tags/git-hub-issue","8a0"),exact:!0},{path:"/blog/tags/gratitude",component:d("/blog/tags/gratitude","1d7"),exact:!0},{path:"/blog/tags/harassment",component:d("/blog/tags/harassment","89d"),exact:!0},{path:"/blog/tags/harbor",component:d("/blog/tags/harbor","a9f"),exact:!0},{path:"/blog/tags/health-monitoring",component:d("/blog/tags/health-monitoring","d88"),exact:!0},{path:"/blog/tags/hybrid-model",component:d("/blog/tags/hybrid-model","038"),exact:!0},{path:"/blog/tags/igdb",component:d("/blog/tags/igdb","6ff"),exact:!0},{path:"/blog/tags/improvement",component:d("/blog/tags/improvement","0af"),exact:!0},{path:"/blog/tags/inclusivity",component:d("/blog/tags/inclusivity","7a0"),exact:!0},{path:"/blog/tags/installation-pipeline",component:d("/blog/tags/installation-pipeline","94b"),exact:!0},{path:"/blog/tags/kanban-board",component:d("/blog/tags/kanban-board","372"),exact:!0},{path:"/blog/tags/keyhole-representation",component:d("/blog/tags/keyhole-representation","ae7"),exact:!0},{path:"/blog/tags/lemmy-community",component:d("/blog/tags/lemmy-community","a2d"),exact:!0},{path:"/blog/tags/lemmy-community-launch",component:d("/blog/tags/lemmy-community-launch","9dd"),exact:!0},{path:"/blog/tags/lemmy-forum",component:d("/blog/tags/lemmy-forum","7bd"),exact:!0},{path:"/blog/tags/logo-concept-discussion",component:d("/blog/tags/logo-concept-discussion","7e7"),exact:!0},{path:"/blog/tags/logo-deciphering",component:d("/blog/tags/logo-deciphering","dc4"),exact:!0},{path:"/blog/tags/love-for-game-vault",component:d("/blog/tags/love-for-game-vault","2f9"),exact:!0},{path:"/blog/tags/market-analysis",component:d("/blog/tags/market-analysis","c1c"),exact:!0},{path:"/blog/tags/metadata",component:d("/blog/tags/metadata","2c9"),exact:!0},{path:"/blog/tags/metadata-framework",component:d("/blog/tags/metadata-framework","bc5"),exact:!0},{path:"/blog/tags/microsoft-store",component:d("/blog/tags/microsoft-store","cc8"),exact:!0},{path:"/blog/tags/microsoft-store-publication",component:d("/blog/tags/microsoft-store-publication","a3d"),exact:!0},{path:"/blog/tags/migration-finalization",component:d("/blog/tags/migration-finalization","138"),exact:!0},{path:"/blog/tags/motivation",component:d("/blog/tags/motivation","8c7"),exact:!0},{path:"/blog/tags/multi-user-authentication",component:d("/blog/tags/multi-user-authentication","3a5"),exact:!0},{path:"/blog/tags/name-migration-progress",component:d("/blog/tags/name-migration-progress","396"),exact:!0},{path:"/blog/tags/negative-narratives",component:d("/blog/tags/negative-narratives","ef7"),exact:!0},{path:"/blog/tags/new-logo",component:d("/blog/tags/new-logo","3d9"),exact:!0},{path:"/blog/tags/new-name",component:d("/blog/tags/new-name","28c"),exact:!0},{path:"/blog/tags/new-name-announcement",component:d("/blog/tags/new-name-announcement","7b6"),exact:!0},{path:"/blog/tags/notes",component:d("/blog/tags/notes","f1b"),exact:!0},{path:"/blog/tags/november-update",component:d("/blog/tags/november-update","a61"),exact:!0},{path:"/blog/tags/official-installations",component:d("/blog/tags/official-installations","733"),exact:!0},{path:"/blog/tags/open-source",component:d("/blog/tags/open-source","6be"),exact:!0},{path:"/blog/tags/parental-control",component:d("/blog/tags/parental-control","65b"),exact:!0},{path:"/blog/tags/partnership",component:d("/blog/tags/partnership","0de"),exact:!0},{path:"/blog/tags/partnerships",component:d("/blog/tags/partnerships","588"),exact:!0},{path:"/blog/tags/platform",component:d("/blog/tags/platform","0bc"),exact:!0},{path:"/blog/tags/platform-values",component:d("/blog/tags/platform-values","376"),exact:!0},{path:"/blog/tags/plugin-system",component:d("/blog/tags/plugin-system","4f9"),exact:!0},{path:"/blog/tags/poll",component:d("/blog/tags/poll","eda"),exact:!0},{path:"/blog/tags/poll-results",component:d("/blog/tags/poll-results","2a9"),exact:!0},{path:"/blog/tags/polls",component:d("/blog/tags/polls","829"),exact:!0},{path:"/blog/tags/public",component:d("/blog/tags/public","f5f"),exact:!0},{path:"/blog/tags/racist",component:d("/blog/tags/racist","2bb"),exact:!0},{path:"/blog/tags/rawg",component:d("/blog/tags/rawg","5ed"),exact:!0},{path:"/blog/tags/rawg-api",component:d("/blog/tags/rawg-api","751"),exact:!0},{path:"/blog/tags/reddit-forum",component:d("/blog/tags/reddit-forum","61e"),exact:!0},{path:"/blog/tags/release",component:d("/blog/tags/release","15f"),exact:!0},{path:"/blog/tags/renaming-app",component:d("/blog/tags/renaming-app","d2c"),exact:!0},{path:"/blog/tags/revenue-generation",component:d("/blog/tags/revenue-generation","68c"),exact:!0},{path:"/blog/tags/roadmap",component:d("/blog/tags/roadmap","e17"),exact:!0},{path:"/blog/tags/safe-environment",component:d("/blog/tags/safe-environment","620"),exact:!0},{path:"/blog/tags/self-hosted",component:d("/blog/tags/self-hosted","19e"),exact:!0},{path:"/blog/tags/self-hosted-newsletter",component:d("/blog/tags/self-hosted-newsletter","b53"),exact:!0},{path:"/blog/tags/selfhosted-podcast",component:d("/blog/tags/selfhosted-podcast","8d7"),exact:!0},{path:"/blog/tags/server-update",component:d("/blog/tags/server-update","7ee"),exact:!0},{path:"/blog/tags/sharing-blog-posts",component:d("/blog/tags/sharing-blog-posts","2e3"),exact:!0},{path:"/blog/tags/simplifying-game-installation",component:d("/blog/tags/simplifying-game-installation","0a0"),exact:!0},{path:"/blog/tags/software",component:d("/blog/tags/software","ed0"),exact:!0},{path:"/blog/tags/software-development",component:d("/blog/tags/software-development","f78"),exact:!0},{path:"/blog/tags/software-licensing",component:d("/blog/tags/software-licensing","6a0"),exact:!0},{path:"/blog/tags/software-updates",component:d("/blog/tags/software-updates","742"),exact:!0},{path:"/blog/tags/solution",component:d("/blog/tags/solution","a71"),exact:!0},{path:"/blog/tags/source-available",component:d("/blog/tags/source-available","501"),exact:!0},{path:"/blog/tags/source-available-software",component:d("/blog/tags/source-available-software","42f"),exact:!0},{path:"/blog/tags/spam",component:d("/blog/tags/spam","99a"),exact:!0},{path:"/blog/tags/special-thanks",component:d("/blog/tags/special-thanks","721"),exact:!0},{path:"/blog/tags/speculation",component:d("/blog/tags/speculation","691"),exact:!0},{path:"/blog/tags/spreading-the-word",component:d("/blog/tags/spreading-the-word","9a5"),exact:!0},{path:"/blog/tags/startup",component:d("/blog/tags/startup","387"),exact:!0},{path:"/blog/tags/steam",component:d("/blog/tags/steam","5cb"),exact:!0},{path:"/blog/tags/subreddit-migration",component:d("/blog/tags/subreddit-migration","bf0"),exact:!0},{path:"/blog/tags/subscription",component:d("/blog/tags/subscription","088"),exact:!0},{path:"/blog/tags/subscription-model",component:d("/blog/tags/subscription-model","7e6"),exact:!0},{path:"/blog/tags/subscription-to-updates-role",component:d("/blog/tags/subscription-to-updates-role","97f"),exact:!0},{path:"/blog/tags/success",component:d("/blog/tags/success","cc5"),exact:!0},{path:"/blog/tags/support",component:d("/blog/tags/support","a33"),exact:!0},{path:"/blog/tags/support-request",component:d("/blog/tags/support-request","99a"),exact:!0},{path:"/blog/tags/surge-of-new-users",component:d("/blog/tags/surge-of-new-users","4ba"),exact:!0},{path:"/blog/tags/sustainability",component:d("/blog/tags/sustainability","5a8"),exact:!0},{path:"/blog/tags/tech-progress",component:d("/blog/tags/tech-progress","1f3"),exact:!0},{path:"/blog/tags/testing",component:d("/blog/tags/testing","ad7"),exact:!0},{path:"/blog/tags/theme",component:d("/blog/tags/theme","6c7"),exact:!0},{path:"/blog/tags/threats",component:d("/blog/tags/threats","3f9"),exact:!0},{path:"/blog/tags/transition-process",component:d("/blog/tags/transition-process","a0e"),exact:!0},{path:"/blog/tags/transparency",component:d("/blog/tags/transparency","7b3"),exact:!0},{path:"/blog/tags/trolls",component:d("/blog/tags/trolls","22a"),exact:!0},{path:"/blog/tags/twitch-tv",component:d("/blog/tags/twitch-tv","c17"),exact:!0},{path:"/blog/tags/ui-redesign",component:d("/blog/tags/ui-redesign","1e3"),exact:!0},{path:"/blog/tags/ui-update",component:d("/blog/tags/ui-update","0da"),exact:!0},{path:"/blog/tags/upcoming-update",component:d("/blog/tags/upcoming-update","f39"),exact:!0},{path:"/blog/tags/update",component:d("/blog/tags/update","fa1"),exact:!0},{path:"/blog/tags/updates",component:d("/blog/tags/updates","125"),exact:!0},{path:"/blog/tags/user-engagement",component:d("/blog/tags/user-engagement","51e"),exact:!0},{path:"/blog/tags/user-participation",component:d("/blog/tags/user-participation","15b"),exact:!0},{path:"/blog/tags/video-games",component:d("/blog/tags/video-games","b8c"),exact:!0},{path:"/blog/tags/videogame",component:d("/blog/tags/videogame","f65"),exact:!0},{path:"/blog/tags/voting",component:d("/blog/tags/voting","f23"),exact:!0},{path:"/docs",component:d("/docs","8eb"),routes:[{path:"/docs",component:d("/docs","824"),routes:[{path:"/docs",component:d("/docs","003"),routes:[{path:"/docs/advanced-usage/early-access-program",component:d("/docs/advanced-usage/early-access-program","1a3"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/fail2ban-gamevault-guide",component:d("/docs/advanced-usage/fail2ban-gamevault-guide","c21"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/linux-client",component:d("/docs/advanced-usage/linux-client","832"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/rest-api",component:d("/docs/advanced-usage/rest-api","68a"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/steamdeck",component:d("/docs/advanced-usage/steamdeck","77f"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/data",component:d("/docs/client-docs/data","9cf"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/gui",component:d("/docs/client-docs/gui","04f"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/how-to-use",component:d("/docs/client-docs/how-to-use","4c0"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/setup",component:d("/docs/client-docs/setup","ff6"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/themes",component:d("/docs/client-docs/themes","804"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/updating-client",component:d("/docs/client-docs/updating-client","9cd"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/client-apis",component:d("/docs/gamevault-plus/client-apis","64c"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/client-setup",component:d("/docs/gamevault-plus/client-setup","51c"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/introduction",component:d("/docs/gamevault-plus/introduction","4dc"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/themes",component:d("/docs/gamevault-plus/themes","373"),exact:!0,sidebar:"docs"},{path:"/docs/intro",component:d("/docs/intro","423"),exact:!0,sidebar:"docs"},{path:"/docs/license-contribute",component:d("/docs/license-contribute","007"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/adding-games",component:d("/docs/server-docs/adding-games","e2d"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/backup-and-restore",component:d("/docs/server-docs/backup-and-restore","dbe"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/configuration",component:d("/docs/server-docs/configuration","d69"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/game-types",component:d("/docs/server-docs/game-types","37b"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/indexing",component:d("/docs/server-docs/indexing","dc2"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/media",component:d("/docs/server-docs/media","309"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/metadata-enrichment/metadata",component:d("/docs/server-docs/metadata-enrichment/metadata","72d"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/metadata-enrichment/provider-igdb",component:d("/docs/server-docs/metadata-enrichment/provider-igdb","29e"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/parental-control",component:d("/docs/server-docs/parental-control","450"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/plugins",component:d("/docs/server-docs/plugins","1b3"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/server-news",component:d("/docs/server-docs/server-news","bc7"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/",component:d("/docs/server-docs/setup/","9a4"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/caprover",component:d("/docs/server-docs/setup/caprover","0fd"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/docker-compose",component:d("/docs/server-docs/setup/docker-compose","d03"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/native",component:d("/docs/server-docs/setup/native","472"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/synology-container-manager",component:d("/docs/server-docs/setup/synology-container-manager","c21"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/truenas-scale",component:d("/docs/server-docs/setup/truenas-scale","97e"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/unraid",component:d("/docs/server-docs/setup/unraid","ec0"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/structure",component:d("/docs/server-docs/structure","ff2"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/updating-games",component:d("/docs/server-docs/updating-games","0d0"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/user-management",component:d("/docs/server-docs/user-management","17a"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/websockets",component:d("/docs/server-docs/websockets","c8c"),exact:!0,sidebar:"docs"},{path:"/docs/troubleshooting",component:d("/docs/troubleshooting","662"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","2e1"),exact:!0},{path:"*",component:d("*")}]},8271:(e,t,n)=>{var r,o;!function(){var a,i,s,l,c,u,d,p,f,g,m,b,h,y,v,_,w,x,S,k,E,O,j,P,C,T,I,A,N,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var o=n[r],a=e[o];if(Array.isArray(a))t[o]=a.slice();else{if("string"!=typeof a&&"number"!=typeof a&&"boolean"!=typeof a)throw new TypeError("clone is not deep and does not support nested objects");t[o]=a}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,o=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var a=0;a<r.length;a++){var i=r[a];i in n.elements&&o.push(i)}return new R.Set(o)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var o=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(o))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,o=[],a=0,i=0;a<=r;a++){var s=a-i;if(n.charAt(a).match(R.tokenizer.separator)||a==r){if(s>0){var l=R.utils.clone(t)||{};l.position=[i,s],l.index=o.length,o.push(new R.Token(n.slice(i,a),l))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],o=[],a=0;a<e.length;a++){var i=r(e[a],a,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var s=0;s<i.length;s++)o.push(i[s]);else o.push(i)}e=o}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,o=Math.floor(r/2),a=this.elements[2*o];r>1&&(a<e&&(t=o),a>e&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:a<e?2*(o+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,o=n.length,a=r.length,i=0,s=0,l=0,c=0;l<o&&c<a;)(i=n[l])<(s=r[c])?l+=2:i>s?c+=2:i==s&&(t+=n[l+1]*r[c+1],l+=2,c+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},s={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(c="[^aeiou][^aeiouy]*")+")?"+(u=(l="[aeiouy]")+"[aeiou]*")+c+"("+u+")?$",p="^("+c+")?"+u+c+u+c,f="^("+c+")?"+l,g=new RegExp("^("+c+")?"+u+c),m=new RegExp(p),b=new RegExp(d),h=new RegExp(f),y=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,_=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,x=/.$/,S=/(at|bl|iz)$/,k=new RegExp("([^aeiouylsz])\\1$"),E=new RegExp("^"+c+l+"[^aeiouwxy]$"),O=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,P=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,C=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,T=/^(.+?)(s|t)(ion)$/,I=/^(.+?)e$/,A=/ll$/,N=new RegExp("^"+c+l+"[^aeiouwxy]$"),L=function(e){var t,n,r,o,a,l,c;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),a=v,(o=y).test(e)?e=e.replace(o,"$1$2"):a.test(e)&&(e=e.replace(a,"$1$2")),a=w,(o=_).test(e)){var u=o.exec(e);(o=g).test(u[1])&&(o=x,e=e.replace(o,""))}else a.test(e)&&(t=(u=a.exec(e))[1],(a=h).test(t)&&(l=k,c=E,(a=S).test(e=t)?e+="e":l.test(e)?(o=x,e=e.replace(o,"")):c.test(e)&&(e+="e")));return(o=O).test(e)&&(e=(t=(u=o.exec(e))[1])+"i"),(o=j).test(e)&&(t=(u=o.exec(e))[1],n=u[2],(o=g).test(t)&&(e=t+i[n])),(o=P).test(e)&&(t=(u=o.exec(e))[1],n=u[2],(o=g).test(t)&&(e=t+s[n])),a=T,(o=C).test(e)?(t=(u=o.exec(e))[1],(o=m).test(t)&&(e=t)):a.test(e)&&(t=(u=a.exec(e))[1]+u[2],(a=m).test(t)&&(e=t)),(o=I).test(e)&&(t=(u=o.exec(e))[1],a=b,l=N,((o=m).test(t)||a.test(t)&&!l.test(t))&&(e=t)),a=m,(o=A).test(e)&&a.test(e)&&(o=x,e=e.replace(o,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var o=r.pop();if(o.str.length>0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}if(0==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}1==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var c,u=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?c=o.node.edges[d]:(c=new R.TokenSet,o.node.edges[d]=c),1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:u+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r<o;r++){var a=e[r],i=r==o-1;if("*"==a)t.edges[a]=t,t.final=i;else{var s=new R.TokenSet;s.final=i,t.edges[a]=s,t=s}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),o=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var a=0;a<o;a++){var i=r[a];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var o=t[r];e=e+o+this.edges[o].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var o=Object.keys(n.qNode.edges),a=o.length,i=Object.keys(n.node.edges),s=i.length,l=0;l<a;l++)for(var c=o[l],u=0;u<s;u++){var d=i[u];if(d==c||"*"==c){var p=n.node.edges[d],f=n.qNode.edges[c],g=p.final&&f.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||g:((m=new R.TokenSet).final=g,n.output.edges[d]=m),r.push({qNode:f,output:m,node:p})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var o=new R.TokenSet,a=e[r];t.edges[a]=o,this.uncheckedNodes.push({parent:t,char:a,child:o}),t=o}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),s=0;s<this.fields.length;s++)r[this.fields[s]]=new R.Vector;e.call(t,t);for(s=0;s<t.clauses.length;s++){var l=t.clauses[s],c=null,u=R.Set.empty;c=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<c.length;d++){var p=c[d];l.term=p;var f=R.TokenSet.fromClause(l),g=this.tokenSet.intersect(f).toArray();if(0===g.length&&l.presence===R.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){a[I=l.fields[m]]=R.Set.empty}break}for(var b=0;b<g.length;b++){var h=g[b],y=this.invertedIndex[h],v=y._index;for(m=0;m<l.fields.length;m++){var _=y[I=l.fields[m]],w=Object.keys(_),x=h+"/"+I,S=new R.Set(w);if(l.presence==R.Query.presence.REQUIRED&&(u=u.union(S),void 0===a[I]&&(a[I]=R.Set.complete)),l.presence!=R.Query.presence.PROHIBITED){if(r[I].upsert(v,l.boost,(function(e,t){return e+t})),!o[x]){for(var k=0;k<w.length;k++){var E,O=w[k],j=new R.FieldRef(O,I),P=_[O];void 0===(E=n[j])?n[j]=new R.MatchData(h,I,P):E.add(h,I,P)}o[x]=!0}}else void 0===i[I]&&(i[I]=R.Set.empty),i[I]=i[I].union(S)}}}if(l.presence===R.Query.presence.REQUIRED)for(m=0;m<l.fields.length;m++){a[I=l.fields[m]]=a[I].intersect(u)}}var C=R.Set.complete,T=R.Set.empty;for(s=0;s<this.fields.length;s++){var I;a[I=this.fields[s]]&&(C=C.intersect(a[I])),i[I]&&(T=T.union(i[I]))}var A=Object.keys(n),N=[],L=Object.create(null);if(t.isNegated()){A=Object.keys(this.fieldVectors);for(s=0;s<A.length;s++){j=A[s];var D=R.FieldRef.fromString(j);n[j]=new R.MatchData}}for(s=0;s<A.length;s++){var F=(D=R.FieldRef.fromString(A[s])).docRef;if(C.contains(F)&&!T.contains(F)){var M,z=this.fieldVectors[D],B=r[D.fieldName].similarity(z);if(void 0!==(M=L[F]))M.score+=B,M.matchData.combine(n[D]);else{var $={ref:F,score:B,matchData:n[D]};L[F]=$,N.push($)}}}return N.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,o=Object.create(null),a=e.invertedIndex,i=new R.TokenSet.Builder,s=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<r.length;l++){var c=(d=r[l])[0],u=d[1];n[c]=new R.Vector(u)}for(l=0;l<a.length;l++){var d,p=(d=a[l])[0],f=d[1];i.insert(p),o[p]=f}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=o,t.tokenSet=i.root,t.pipeline=s,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o<r.length;o++){var a=r[o],i=this._fields[a].extractor,s=this._fields[a].isLiteral??!1,l=i?i(e):e[a],c=s?[l]:this.tokenizer(l,{fields:[a]}),u=s?c:this.pipeline.run(c),d=new R.FieldRef(n,a),p=Object.create(null);this.fieldTermFrequencies[d]=p,this.fieldLengths[d]=0,this.fieldLengths[d]+=u.length;for(var f=0;f<u.length;f++){var g=u[f];if(null==p[g]&&(p[g]=0),p[g]+=1,null==this.invertedIndex[g]){var m=Object.create(null);m._index=this.termIndex,this.termIndex+=1;for(var b=0;b<r.length;b++)m[r[b]]=Object.create(null);this.invertedIndex[g]=m}null==this.invertedIndex[g][a][n]&&(this.invertedIndex[g][a][n]=Object.create(null));for(var h=0;h<this.metadataWhitelist.length;h++){var y=this.metadataWhitelist[h],v=g.metadata[y];null==this.invertedIndex[g][a][n][y]&&(this.invertedIndex[g][a][n][y]=[]),this.invertedIndex[g][a][n][y].push(v)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},o=0;o<t;o++){var a=R.FieldRef.fromString(e[o]),i=a.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[a]}var s=Object.keys(this._fields);for(o=0;o<s.length;o++){var l=s[o];n[l]=n[l]/r[l]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),o=0;o<n;o++){for(var a=R.FieldRef.fromString(t[o]),i=a.fieldName,s=this.fieldLengths[a],l=new R.Vector,c=this.fieldTermFrequencies[a],u=Object.keys(c),d=u.length,p=this._fields[i].boost||1,f=this._documents[a.docRef].boost||1,g=0;g<d;g++){var m,b,h,y=u[g],v=c[y],_=this.invertedIndex[y]._index;void 0===r[y]?(m=R.idf(this.invertedIndex[y],this.documentCount),r[y]=m):m=r[y],b=m*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(s/this.averageFieldLength[i]))+v),b*=p,b*=f,h=Math.round(1e3*b)/1e3,l.insert(_,h)}e[a]=l}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),o=Object.keys(n||{}),a=0;a<o.length;a++){var i=o[a];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],o=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var a=0;a<o.length;a++){var i=o[a],s=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var l=0;l<s.length;l++){var c=s[l];null==this.metadata[r][i][c]?this.metadata[r][i][c]=e.metadata[r][i][c]:this.metadata[r][i][c]=this.metadata[r][i][c].concat(e.metadata[r][i][c])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),o=0;o<r.length;o++){var a=r[o];a in this.metadata[e][t]?this.metadata[e][t][a]=this.metadata[e][t][a].concat(n[a]):this.metadata[e][t][a]=n[a]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},4889:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(5271),o=n(2676);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},9617:(e,t,n)=>{"use strict";var r=n(5271),o=n(8751),a=n(3810),i=n(8594),s=n(6809),l=n(6593);const c=[n(8797),n(361),n(1893),n(4798),n(1925)];var u=n(7297),d=n(3225),p=n(7677),f=n(2676);function g(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(2791),b=n(6172),h=n(285),y=n(9364),v=n(9967),_=n(9897),w=n(8451),x=n(9247),S=n(5678),k=n(8625);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,b.Z)(),r=(0,_.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(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 O(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,b.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,b.Z)(),{pathname:r}=(0,d.TH)();return e+(0,S.Do)((0,h.ZP)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(m.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function j(){const{i18n:{currentLocale:e}}=(0,b.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.h})]}),n&&(0,f.jsx)(v.d,{image:n}),(0,f.jsx)(O,{}),(0,f.jsx)(E,{}),(0,f.jsx)(k.Z,{tag:x.H,locale:e}),(0,f.jsx)(m.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const P=new Map;var C=n(4889),T=n(4500),I=n(2246);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=c.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,I.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("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=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(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)(N,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.AW,{location:t,render:()=>e})})}}const D=R,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(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 = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" 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="${z}" 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('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,b.Z)();return(0,f.jsx)(f.Fragment,{children:!l.Z.canUseDOM&&(0,f.jsx)(m.Z,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,b.Z)(),{pathname:n}=(0,d.TH)();return t&&n===e?(0,f.jsx)($,{}):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,b.Z)(),a=(0,h.ZP)(e),{htmlLang:i,direction:s}=o[r];return(0,f.jsxs)(m.Z,{children:[(0,f.jsx)("html",{lang:i,dir:s}),(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 Q=n(1048),V=n(6594);function Z(){const e=(0,V.Z)();return(0,f.jsx)(m.Z,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const W=(0,p.H)(u.Z);function q(){const e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,p.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.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.TH)());return(0,f.jsx)(D,{location:e,children:W})}function G(){return(0,f.jsx)(Q.Z,{children:(0,f.jsx)(T.M,{children:(0,f.jsxs)(C.t,{children:[(0,f.jsxs)(g,{children:[(0,f.jsx)(H,{}),(0,f.jsx)(j,{}),(0,f.jsx)(U,{}),(0,f.jsx)(q,{})]}),(0,f.jsx)(Z,{})]})})})}var Y=n(6887);const K=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 X=n(7346);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,p.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),L(e))},re=Object.freeze(ne);function oe(e){let{children:t}=e;return"hash"===s.default.future.experimental_router?(0,f.jsx)(i.UT,{children:t}):(0,f.jsx)(i.VK,{children:t})}const ae=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.B6,{children:(0,f.jsx)(oe,{children:(0,f.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ae)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};L(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},4500:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(5271),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"advanced-usage/early-access-program","path":"/docs/advanced-usage/early-access-program","sidebar":"docs"},{"id":"advanced-usage/fail2ban-gamevault-guide","path":"/docs/advanced-usage/fail2ban-gamevault-guide","sidebar":"docs"},{"id":"advanced-usage/linux-client","path":"/docs/advanced-usage/linux-client","sidebar":"docs"},{"id":"advanced-usage/rest-api","path":"/docs/advanced-usage/rest-api","sidebar":"docs"},{"id":"advanced-usage/steamdeck","path":"/docs/advanced-usage/steamdeck","sidebar":"docs"},{"id":"client-docs/data","path":"/docs/client-docs/data","sidebar":"docs"},{"id":"client-docs/gui","path":"/docs/client-docs/gui","sidebar":"docs"},{"id":"client-docs/how-to-use","path":"/docs/client-docs/how-to-use","sidebar":"docs"},{"id":"client-docs/setup","path":"/docs/client-docs/setup","sidebar":"docs"},{"id":"client-docs/themes","path":"/docs/client-docs/themes","sidebar":"docs"},{"id":"client-docs/updating-client","path":"/docs/client-docs/updating-client","sidebar":"docs"},{"id":"gamevault-plus/client-apis","path":"/docs/gamevault-plus/client-apis","sidebar":"docs"},{"id":"gamevault-plus/client-setup","path":"/docs/gamevault-plus/client-setup","sidebar":"docs"},{"id":"gamevault-plus/introduction","path":"/docs/gamevault-plus/introduction","sidebar":"docs"},{"id":"gamevault-plus/themes","path":"/docs/gamevault-plus/themes","sidebar":"docs"},{"id":"intro","path":"/docs/intro","sidebar":"docs"},{"id":"license-contribute","path":"/docs/license-contribute","sidebar":"docs"},{"id":"server-docs/adding-games","path":"/docs/server-docs/adding-games","sidebar":"docs"},{"id":"server-docs/backup-and-restore","path":"/docs/server-docs/backup-and-restore","sidebar":"docs"},{"id":"server-docs/configuration","path":"/docs/server-docs/configuration","sidebar":"docs"},{"id":"server-docs/game-types","path":"/docs/server-docs/game-types","sidebar":"docs"},{"id":"server-docs/indexing","path":"/docs/server-docs/indexing","sidebar":"docs"},{"id":"server-docs/media","path":"/docs/server-docs/media","sidebar":"docs"},{"id":"server-docs/metadata-enrichment/metadata","path":"/docs/server-docs/metadata-enrichment/metadata","sidebar":"docs"},{"id":"server-docs/metadata-enrichment/provider-igdb","path":"/docs/server-docs/metadata-enrichment/provider-igdb","sidebar":"docs"},{"id":"server-docs/parental-control","path":"/docs/server-docs/parental-control","sidebar":"docs"},{"id":"server-docs/plugins","path":"/docs/server-docs/plugins","sidebar":"docs"},{"id":"server-docs/server-news","path":"/docs/server-docs/server-news","sidebar":"docs"},{"id":"server-docs/setup/caprover","path":"/docs/server-docs/setup/caprover","sidebar":"docs"},{"id":"server-docs/setup/docker-compose","path":"/docs/server-docs/setup/docker-compose","sidebar":"docs"},{"id":"server-docs/setup/native","path":"/docs/server-docs/setup/native","sidebar":"docs"},{"id":"server-docs/setup/synology-container-manager","path":"/docs/server-docs/setup/synology-container-manager","sidebar":"docs"},{"id":"server-docs/setup/toc","path":"/docs/server-docs/setup/","sidebar":"docs"},{"id":"server-docs/setup/truenas-scale","path":"/docs/server-docs/setup/truenas-scale","sidebar":"docs"},{"id":"server-docs/setup/unraid","path":"/docs/server-docs/setup/unraid","sidebar":"docs"},{"id":"server-docs/structure","path":"/docs/server-docs/structure","sidebar":"docs"},{"id":"server-docs/updating-games","path":"/docs/server-docs/updating-games","sidebar":"docs"},{"id":"server-docs/user-management","path":"/docs/server-docs/user-management","sidebar":"docs"},{"id":"server-docs/websockets","path":"/docs/server-docs/websockets","sidebar":"docs"},{"id":"troubleshooting","path":"/docs/troubleshooting","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/intro","label":"intro"}}}}],"breadcrumbs":true}},"@cmfcmf/docusaurus-search-local":{"default":{"titleBoost":5,"contentBoost":1,"tagsBoost":3,"parentCategoriesBoost":2,"indexDocSidebarParentCategories":0,"maxSearchResults":8}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.5.2","siteVersion":"1.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.5.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.5.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.5.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.5.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.5.2"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.5.2"},"docusaurus-plugin-image-zoom":{"type":"package","name":"docusaurus-plugin-image-zoom","version":"2.0.0"},"@cmfcmf/docusaurus-search-local":{"type":"package","name":"@cmfcmf/docusaurus-search-local","version":"1.2.0"},"tailwind-plugin":{"type":"local"}}}');var c=n(2676);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(5271),o=n(6593),a=n(2791),i=n(5678),s=n(3557),l=n(4721),c=n(2676);function u(e){let{error:t,tryAgain:n}=e;return(0,c.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,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.BN)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.z,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(m,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.Z,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.Z,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const g=e=>(0,c.jsx)(f,{...e});class m extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.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??g)(e)}return e??null}}},6593:(e,t,n)=>{"use strict";n.d(t,{Z:()=>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}},2791:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(5271);var r=n(3810),o=n(2676);function a(e){return(0,o.jsx)(r.ql,{...e})}},6527:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(5271),o=n(8594),a=n(5678),i=n(6172),s=n(374),l=n(6593),c=n(4167),u=n(285),d=n(2676);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":b,autoAddBaseUrl:h=!0,...y}=e;const{siteConfig:v}=(0,i.Z)(),{trailingSlash:_,baseUrl:w}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,u.Cg)(),k=(0,c.Z)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const O=p||f;const j=(0,s.Z)(O),P=O?.replace("pathname://","");let C=void 0!==P?(T=P,h&&(e=>e.startsWith("/"))(T)?S(T):T):void 0;var T;"hash"===x&&C?.startsWith("./")&&(C=C?.slice(1)),C&&j&&(C=(0,a.Do)(C,{trailingSlash:_,baseUrl:w}));const I=(0,r.useRef)(!1),A=n?o.OL:o.rU,N=l.Z.canUseIntersectionObserver,L=(0,r.useRef)(),R=()=>{I.current||null==C||(window.docusaurus.preload(C),I.current=!0)};(0,r.useEffect)((()=>(!N&&j&&l.Z.canUseDOM&&null!=C&&window.docusaurus.prefetch(C),()=>{N&&L.current&&L.current.disconnect()})),[L,C,N,j]);const D=C?.startsWith("#")??!1,F=!y.target||"_self"===y.target,M=!C||!j||!F||D&&"hash"!==x;b||!D&&M||k.collectLink(C),y.id&&k.collectAnchor(y.id);const z={};return M?(0,d.jsx)("a",{ref:E,href:C,...O&&!j&&{target:"_blank",rel:"noopener noreferrer"},...y,...z}):(0,d.jsx)(A,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{E.current=e,N&&e&&j&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),L.current.observe(e))},to:C,...n&&{isActive:m,activeClassName:g},...z})}const f=r.forwardRef(p)},2922:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(5271),o=n(2676);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(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},4384:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},374:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},285:(e,t,n)=>{"use strict";n.d(t,{Cg:()=>i,ZP:()=>s});var r=n(5271),o=n(6172),a=n(374);function i(){const{siteConfig:e}=(0,o.Z)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,s=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:o=!1,absolute:i=!1}={},router:s}=e;if(!r||r.startsWith("#")||(0,a.b)(r))return r;if("hash"===s)return r.startsWith("/")?`.${r}`:`./${r}`;if(o)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const l=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:s}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},4167:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(5271);n(2676);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},6172:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(5271),o=n(4500);function a(){return(0,r.useContext)(o._)}},3923:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(6172),o=n(4384);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=a(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},6594:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(5271),o=n(4889);function a(){return(0,r.useContext)(o._)}},2246:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(5271);const o=n(6593).Z.canUseDOM?r.useLayoutEffect:r.useEffect},4268:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(5271),o=n(4721);function a(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},7346:(e,t,n)=>{"use strict";n.d(t,{Z:()=>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=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},4721:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(5271),o=n(2676);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},1777:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b,Oh:()=>v});var r=n(5271),o=n(5364),a=n(4384),i=n(9364),s=n(1118),l=n(8274),c=n(2676);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,s.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,s.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,s.WA)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function g(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=g();return(0,c.jsx)(f.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return(0,c.jsx)(m,{children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=h(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function v(){const e=(0,o._r)(),[t]=h();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},684:(e,t,n)=>{"use strict";n.d(t,{J:()=>a,z:()=>i});var r=n(5364),o=n(1777);function a(e,t){return`docs-${e}-${t}`}function i(){const e=(0,r._r)(),t=(0,r.WS)(),n=(0,o.Oh)();return[...Object.keys(e).map((function(r){const o=t?.activePlugin.pluginId===r?t.activeVersion:void 0,i=n[r],s=e[r].versions.find((e=>e.isLast));return a(r,(o??i??s).name)}))]}},1081:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(5271),o=n(8274),a=n(2676);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},4376:(e,t,n)=>{"use strict";n.d(t,{LM:()=>p,MN:()=>E,SN:()=>k,_F:()=>b,f:()=>y,jA:()=>f,lO:()=>w,oz:()=>x,s1:()=>_,vY:()=>S});var r=n(5271),o=n(3225),a=n(7677),i=n(5364),s=n(6422),l=n(2347),c=n(1777),u=n(5219),d=n(1081);function p(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=p(t);if(e)return e}}(e):void 0:e.href}function f(){const{pathname:e}=(0,o.TH)(),t=(0,d.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({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}const g=(e,t)=>void 0!==e&&(0,s.Mg)(e,t),m=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||m(e.items,t))}function h(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>h(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>h(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,s.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,s.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function _(){const e=(0,d.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,c.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,l.jj)([t,n,o].filter(Boolean))),[t,n,o])}function x(e,t){const n=w(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 S(e,t){const n=w(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- ${(0,l.jj)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,u.E)(),i=t.routes,s=i.find((e=>(0,o.LX)(n.pathname,e)));if(!s)return null;const l=s.sidebar,c=l?r.docsSidebars[l]:void 0;return{docElement:(0,a.H)(i),sidebarName:l,sidebarItems:c}}function E(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!p(e)))}},5219:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(5271),o=n(8274),a=n(2676);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},5364:(e,t,n)=>{"use strict";n.d(t,{MN:()=>l.MN,Iw:()=>y,gA:()=>g,WS:()=>m,_r:()=>p,jA:()=>l.jA,Jo:()=>v,z1:()=>u.z,zh:()=>f,J:()=>c.J,yW:()=>h,gB:()=>b});var r=n(3225),o=n(3923);const a=e=>e.versions.find((e=>e.isLast));function i(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.LX)(t,{path:e.path,exact:!1,strict:!1})))}function s(e,t){const n=i(e,t),o=n?.docs.find((e=>!!(0,r.LX)(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):{}}}var l=n(4376),c=n(1777),u=n(684);const d={},p=()=>(0,o.OD)("docusaurus-plugin-content-docs")??d,f=e=>{try{return(0,o.eZ)("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 g(e){void 0===e&&(e={});const t=p(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.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 m(e){void 0===e&&(e={});const t=g(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function b(e){return f(e).versions}function h(e){const t=f(e);return a(t)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return s(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4354:(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 s=n(5271),l=[],c=[];var u=s.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 s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function g(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var g=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function b(){return m||(m=e(g.loader)),m.promise}return l.push(b),"function"==typeof g.webpack&&c.push((function(){if((0,g.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return b()})),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}),m=e(g.loader),r._loadModule()})),b(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return b()};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(g.modules)&&g.modules.forEach((function(t){e.context.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),g.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.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?s.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextType",u),p}function m(e){return g(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(p,e)};var b=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return s.createElement(u.Provider,{value:{report:this.props.report}},s.Children.only(this.props.children))},t}(s.Component);function h(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return h(e)}))}m.Capture=b,m.preloadAll=function(){return new Promise((function(e,t){h(l).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){h(c).then(e,e)}))},e.exports=m},1893:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(9981),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},361:(e,t,n)=>{"use strict";n.r(t);var r=n(739),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(1559),n(6573)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},3221:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(5271);var r=n(4814),o=n(2922),a=n(9364),i=n(6527),s=n(4167);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_BnxJ",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_re8X"};var c=n(2676);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.Z)(),{navbar:{hideOnScroll:p}}=(0,a.L)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.Z)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},2366:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(5271);const r={iconExternalLink:"iconExternalLink_rK98"};var o=n(2676);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},3557:(e,t,n)=>{"use strict";n.d(t,{Z:()=>si});var r=n(5271),o=n(4814),a=n(1048),i=n(9967),s=n(3225),l=n(2922),c=n(4890),u=n(2676);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,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,l.I)({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 m(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var b=n(3509),h=n(8451);const y={skipToContent:"skipToContent_N_FB"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var _=n(9364),w=n(6701);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_xADE"};function k(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_CsLf"};function O(e){const{announcementBar:t}=(0,_.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const j={announcementBar:"announcementBar_wEz5",announcementBarPlaceholder:"announcementBarPlaceholder_e0hD",announcementBarClose:"announcementBarClose_hClt",announcementBarContent:"announcementBarContent_RqlE"};function P(){const{announcementBar:e}=(0,_.L)(),{isActive:t,close:n}=(0,w.n)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:j.announcementBarPlaceholder}),(0,u.jsx)(O,{className:j.announcementBarContent}),a&&(0,u.jsx)(k,{onClick:n,className:j.announcementBarClose})]})}var C=n(8568),T=n(1309);var I=n(8274),A=n(3158);const N=r.createContext(null);function L(e){let{children:t}=e;const n=function(){const e=(0,C.e)(),t=(0,A.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,I.D9)(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,u.jsx)(N.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(N);if(!e)throw new I.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,A.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:R(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(7934),z=n(6594);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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 $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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"})})}const U={toggle:"toggle_Ctpc",toggleButton:"toggleButton_QfJ4",darkToggleIcon:"darkToggleIcon_DyWs",lightToggleIcon:"lightToggleIcon_SP6E",toggleButtonDisabled:"toggleButtonDisabled_hyb0"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Q=r.memo(H),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_ul4N"};function Z(e){let{className:t}=e;const n=(0,_.L)().navbar.style,r=(0,_.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return r?null:(0,u.jsx)(Q,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(698);function q(){return(0,u.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,C.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({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,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(q,{}),(0,u.jsx)(Z,{className:"margin-right--md"}),(0,u.jsx)(G,{})]})}var K=n(6527),X=n(285),J=n(374);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(2366);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.ZP)(r),p=(0,X.ZP)(t),f=(0,X.ZP)(o,{forcePrependBaseUrl:!0}),g=a&&o&&!(0,J.Z)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,g&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(K.Z,{href:l?f:o,...c,...m}):(0,u.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(3955),se=n(6422),le=n(6172);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_x5K8"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!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,u.jsxs)("div",{ref:l,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(va,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.Z)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(va,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var ge=n(9897);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.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 be="iconLanguage_QTLV";var he=n(967);function ye(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function ve(e){return{current:e}}function _e(e){return e!==Object(e)}function we(e,t){if(e===t)return!0;if(_e(e)||_e(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];if(!(o in t))return!1;if(!we(e[o],t[o]))return!1}return!0}var xe=function(){};function Se(e){var t=e.item,n=e.items,r=void 0===n?[]:n;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ee(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ee(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Oe=["items"],je=["items"];function Pe(e){return Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe(e)}function Ce(e){return function(e){if(Array.isArray(e))return Te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Te(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ie(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){Le(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Le(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Pe(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Pe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Pe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Re(e){return e.map((function(e){var t=e.items,n=Ie(e,Oe);return Ne(Ne({},n),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||n.objectIDs})}))}function De(e){var t=function(e){var t=ke((e.version||"").split(".").map(Number),2),n=t[0],r=t[1];return n>=3||2===n&&r>=4||1===n&&r>=10}(e);function n(n,r,o){if(t&&void 0!==o){var a=o[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":a.appId,"X-Algolia-API-Key":a.apiKey};e.apply(void 0,[n].concat(Ce(r),[{headers:i}]))}else e.apply(void 0,[n].concat(Ce(r)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("clickedObjectIDsAfterSearch",Re(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("clickedObjectIDs",Re(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("convertedObjectIDsAfterSearch",Re(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("convertedObjectIDs",Re(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&t.reduce((function(e,t){var n=t.items,r=Ie(t,je);return[].concat(Ce(e),Ce(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r<e.objectIDs.length;r+=t)n.push(Ne(Ne({},e),{},{objectIDs:e.objectIDs.slice(r,r+t)}));return n}(Ne(Ne({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return n("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function Fe(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function Me(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function ze(e){return ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ze(e)}function Be(e){return function(e){if(Array.isArray(e))return $e(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return $e(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $e(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(n),!0).forEach((function(t){Qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ue(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qe(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ze(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ze(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ve="2.6.0",Ze="https://cdn.jsdelivr.net/npm/search-insights@".concat(Ve,"/dist/search-insights.min.js"),We=ye((function(e){var t=e.onItemsChange,n=e.items,r=e.insights,o=e.state;t({insights:r,insightsEvents:Fe({items:n}).map((function(e){return He({eventName:"Items Viewed"},e)})),state:o})}),400);function qe(e){var t=function(e){return He({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.viewedObjectIDs.apply(t,Be(n.map((function(e){return He(He({},e),{},{algoliaSource:Ge(e.algoliaSource,r.context)})}))))},onSelect:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.clickedObjectIDsAfterSearch.apply(t,Be(n.map((function(e){return He(He({},e),{},{algoliaSource:Ge(e.algoliaSource,r.context)})}))))},onActive:xe,__autocomplete_clickAnalytics:!0},e)}(e),n=t.insightsClient,r=t.onItemsChange,o=t.onSelect,a=t.onActive,i=t.__autocomplete_clickAnalytics,s=n;if(n||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(s=t[n]),s||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t[n].queue.push(r)}),t[n].version=Ve,s=t[n],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var n=e.document.createElement("script");n.async=!0,n.src=Ze,n.onerror=function(){console.error(t)},document.body.appendChild(n)}catch(r){console.error(t)}}(t))})),!s)return{};var l=De(s),c=ve([]),u=ye((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(Be(e),Be(t.items))}),[]).filter(Me);we(c.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(c.current=n,n.length>0&&We({onItemsChange:r,items:n,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function c(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:He(He({},i?{clickAnalytics:!0}:{}),e?{userToken:e}:{}),insights:l}})}s("addAlgoliaAgent","insights-plugin"),c(),s("onUserTokenChange",c),s("getUserToken",null,(function(e,t){c(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,a=e.source;Me(t)&&o({state:n,event:r,insights:l,item:t,insightsEvents:[He({eventName:"Item Selected"},Se({item:t,items:a.getItems().filter(Me)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;Me(t)&&a({state:r,event:o,insights:l,item:t,insightsEvents:[He({eventName:"Item Active"},Se({item:t,items:n.getItems().filter(Me)}))]})}))},onStateChange:function(e){var t=e.state;u({state:t})},__autocomplete_pluginOptions:e}}function Ge(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(Be(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],Be(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xe(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ye(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Je(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){Xe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:a}),n({state:o,prevState:i})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}function et(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function tt(e){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tt(e)}function nt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach((function(t){ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==tt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==tt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===tt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function at(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var it=0;function st(){return"autocomplete-".concat(it++)}function lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lt(Object(n),!0).forEach((function(t){ut(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ut(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==dt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===dt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dt(e){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dt(e)}function pt(e){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(e)}function ft(e){return function(e){if(Array.isArray(e))return gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return gt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){ht(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ht(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==pt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==pt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===pt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return bt(bt({debug:!1,openOnFocus:!1,enterKeyHint:void 0,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:void 0,environment:r,shouldPanelOpen:function(e){return at(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:st(),plugins:o,initialState:bt({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(ft(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:xe,onResolve:xe};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=ct(ct({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return et(e)})).then((function(e){return e.map((function(e){return bt(bt({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:bt({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}function _t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_t(Object(n),!0).forEach((function(t){xt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==vt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==vt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===vt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function St(e){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},St(e)}function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(n),!0).forEach((function(t){Ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ot(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==St(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==St(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===St(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jt(e){return function(e){if(Array.isArray(e))return Pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Pt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ct(e){return Boolean(e.execute)}function Tt(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(jt(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Et(Et({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Et(Et({},n),{},{params:Et(Et({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function It(e){var t=e.reduce((function(e,t){if(!Ct(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,a=t.requests,i=e.find((function(e){return Ct(t)&&Ct(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(i){var s;(s=i.items).push.apply(s,jt(a))}else{var l={execute:r,requesterId:o,items:a,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!Ct(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return et(e)}))}function At(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),a=o.map((function(e){return e.items})),i=o[0].transformResponse,s=i?i({results:r=a,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):a;return t.onResolve({source:t,results:a,items:s,state:n.getState()}),Array.isArray(s),s.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:s}}))}function Nt(e,t){var n=t;return{then:function(t,r){return Nt(e.then(Dt(t,n,e),Dt(r,n,e)),n)},catch:function(t){return Nt(e.catch(Dt(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Nt(e.finally(Dt(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Lt(e){return Nt(new Promise((function(t,n){return e(t,n)})),{isCanceled:!1,onCancelList:[]})}function Rt(e){return Nt(e,{isCanceled:!1,onCancelList:[]})}function Dt(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Ft(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,a=0;!1===r;){var i=t.collections[o];if(i===n){r=!0;break}a+=i.items.length,o++}return t.activeItemId-a}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function Mt(e){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mt(e)}Lt.resolve=function(e){return Rt(Promise.resolve(e))},Lt.reject=function(e){return Rt(Promise.reject(e))};var zt=["event","nextState","props","query","refresh","store"];function Bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Bt(Object(n),!0).forEach((function(t){Ut(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ut(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Mt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Mt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Mt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ht(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Qt,Vt,Zt,Wt=null,qt=(Qt=-1,Vt=-1,Zt=void 0,function(e){var t=++Qt;return Promise.resolve(e).then((function(e){return Zt&&t<Vt?Zt:(Vt=t,Zt=e,e)}))});function Gt(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,a=e.query,i=e.refresh,s=e.store,l=Ht(e,zt);Wt&&o.environment.clearTimeout(Wt);var c=l.setCollections,u=l.setIsOpen,d=l.setQuery,p=l.setActiveItemId,f=l.setStatus,g=l.setContext;if(d(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var m,b=s.getState().collections.map((function(e){return $t($t({},e),{},{items:[]})}));f("idle"),c(b),u(null!==(m=r.isOpen)&&void 0!==m?m:o.shouldPanelOpen({state:s.getState()}));var h=Rt(qt(b).then((function(){return Promise.resolve()})));return s.pendingRequests.add(h)}f("loading"),Wt=o.environment.setTimeout((function(){f("stalled")}),o.stallThreshold);var y=Rt(qt(o.getSources($t({query:a,refresh:i,state:s.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems($t({query:a,refresh:i,state:s.getState()},l))).then((function(t){return Tt(t,e.sourceId,s.getState())}))}))).then(It).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));r&&g({algoliaInsightsPlugin:$t($t({},(null===(n=s.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})});return At(t,e,s)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return wt(wt({},e),{},xt({},t.source.sourceId,wt(wt({},t.source),{},{getItems:function(){return et(t.items)}})))}),{}),a=n.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:r}).sourcesBySourceId;return et(n.reshape({sourcesBySourceId:a,sources:Object.values(a),state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:s.getState()})}))})))).then((function(e){var n;f("idle"),c(e);var d=o.shouldPanelOpen({state:s.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!a&&d||d);var p=Ft(s.getState());if(null!==s.getState().activeItemId&&p){var g=p.item,m=p.itemInputValue,b=p.itemUrl,h=p.source;h.onActive($t({event:t,item:g,itemInputValue:m,itemUrl:b,refresh:i,source:h,state:s.getState()},l))}})).finally((function(){f("idle"),Wt&&o.environment.clearTimeout(Wt)}));return s.pendingRequests.add(y)}function Yt(e,t,n){return[e,null==n?void 0:n.sourceId,t].filter(Boolean).join("-").replace(/\s/g,"")}function Kt(e){return Kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kt(e)}var Xt=["event","props","refresh","store"];function Jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function en(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jt(Object(n),!0).forEach((function(t){tn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function tn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Kt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Kt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Kt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var rn=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function on(e){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},on(e)}var an=["props","refresh","store"],sn=["inputElement","formElement","panelElement"],ln=["inputElement"],cn=["inputElement","maxLength"],un=["source"],dn=["item","source"];function pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pn(Object(n),!0).forEach((function(t){gn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==on(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==on(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===on(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function bn(e){var t=e.props,n=e.refresh,r=e.store,o=mn(e,an);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return fn({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},mn(e,sn))},getRootProps:function(e){return fn({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label")},e)},getFormProps:function(e){e.inputElement;return fn({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(fn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(fn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},mn(e,ln))},getLabelProps:function(e){return fn({htmlFor:Yt(t.id,"input"),id:Yt(t.id,"label")},e)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&Gt(fn({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=e||{},l=(s.inputElement,s.maxLength),c=void 0===l?512:l,u=mn(s,cn),d=Ft(r.getState()),p=function(e){return Boolean(e&&e.match(rn))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),f=t.enterKeyHint||(null!=d&&d.itemUrl&&!p?"go":"search");return fn({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?Yt(t.id,"item-".concat(r.getState().activeItemId),null==d?void 0:d.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label"),value:r.getState().completion||r.getState().query,id:Yt(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){Gt(fn({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=nn(e,Xt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=Ft(o.getState()),t=n.environment.document.getElementById(Yt(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},s=function(){var e=Ft(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,s=e.itemUrl,l=e.source;l.onActive(en({event:t,item:n,itemInputValue:i,itemUrl:s,refresh:r,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?Gt(en({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(i,0)})):(o.dispatch(t.key,{}),s(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=Ft(o.getState()),c=l.item,u=l.itemInputValue,d=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),void n.navigator.navigate({itemUrl:d,item:c,state:o.getState()});Gt(en({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:o},a)).then((function(){p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a))}))}}}(fn({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:xe,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},u)},getPanelProps:function(e){return fn({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=mn(n,un);return fn({role:"listbox","aria-labelledby":Yt(t.id,"label"),id:Yt(t.id,"list",r)},o)},getItemProps:function(e){var a=e.item,i=e.source,s=mn(e,dn);return fn({id:Yt(t.id,"item-".concat(a.__autocomplete_id),i),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=Ft(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,s=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(fn({event:e,item:i,itemInputValue:s,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var s=i.getItemInputValue({item:a,state:r.getState()}),l=i.getItemUrl({item:a,state:r.getState()});(l?Promise.resolve():Gt(fn({event:e,nextState:{isOpen:!1},props:t,query:s,refresh:n,store:r},o))).then((function(){i.onSelect(fn({event:e,item:a,itemInputValue:s,itemUrl:l,refresh:n,source:i,state:r.getState()},o))}))}},s)}}}var hn="1.12.2",yn=[{segment:"autocomplete-core",version:hn}];function vn(e){return vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vn(e)}function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==vn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===vn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Sn(e){var t,n,r,o,a=e.plugins,i=e.options,s=null===(t=((null===(n=i.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=s?xn({},s,Object.keys((null===(r=i.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:a.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:wn({"autocomplete-core":Object.keys(i)},l),ua:yn.concat((null===(o=i.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function kn(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=Ft(n))||void 0===t?void 0:t.itemInputValue)||null}function En(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function On(e){return On="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},On(e)}function jn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?jn(Object(n),!0).forEach((function(t){Cn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Cn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==On(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==On(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===On(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Tn=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Pn(Pn({},e),{},{activeItemId:t.payload});case"setQuery":return Pn(Pn({},e),{},{query:t.payload,completion:null});case"setCollections":return Pn(Pn({},e),{},{collections:t.payload});case"setIsOpen":return Pn(Pn({},e),{},{isOpen:t.payload});case"setStatus":return Pn(Pn({},e),{},{status:t.payload});case"setContext":return Pn(Pn({},e),{},{context:Pn(Pn({},e.context),t.payload)});case"ArrowDown":var n=Pn(Pn({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:En(1,e.activeItemId,at(e),t.props.defaultActiveItemId)});return Pn(Pn({},n),{},{completion:kn({state:n})});case"ArrowUp":var r=Pn(Pn({},e),{},{activeItemId:En(-1,e.activeItemId,at(e),t.props.defaultActiveItemId)});return Pn(Pn({},r),{},{completion:kn({state:r})});case"Escape":return e.isOpen?Pn(Pn({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Pn(Pn({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Pn(Pn({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Pn(Pn({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",completion:null,query:""});case"focus":return Pn(Pn({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Pn(Pn({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Pn(Pn({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function In(e){return In="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},In(e)}function An(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?An(Object(n),!0).forEach((function(t){Ln(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):An(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ln(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==In(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==In(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===In(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rn(e){var t=[],n=yt(e,t),r=Je(Tn,n,(function(e){var t,r,a=e.prevState,c=e.state;if(n.onStateChange(Nn({prevState:a,state:c,refresh:i,navigator:n.navigator},o)),!l()&&null!==(t=c.context)&&void 0!==t&&null!==(r=t.algoliaInsightsPlugin)&&void 0!==r&&r.__automaticInsights&&!1!==n.insights){var u=qe({__autocomplete_clickAnalytics:!1});n.plugins.push(u),s([u])}})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return rt(rt({},e),{},{items:et(e.items).map((function(e){return rt(rt({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=bn(Nn({props:n,refresh:i,store:r,navigator:n.navigator},o));function i(){return Gt(Nn({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:i,store:r},o))}function s(e){e.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Nn(Nn({},o),{},{navigator:n.navigator,refresh:i,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))}))}function l(){return n.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))}if(n.insights&&!l()){var c="boolean"==typeof n.insights?{}:n.insights;n.plugins.push(qe(c))}return s(n.plugins),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var a=o.document.createElement("meta"),i=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(r),i.appendChild(a)}),0)}}({metadata:Sn({plugins:n.plugins,options:e}),environment:n.environment}),Nn(Nn({refresh:i,navigator:n.navigator},a),o)}var Dn=function(e,t,n,r){var o;t[0]=0;for(var a=1;a<t.length;a++){var i=t[a++],s=t[a]?(t[0]|=i?1:2,n[t[a++]]):t[++a];3===i?r[0]=s:4===i?r[1]=Object.assign(r[1]||{},s):5===i?(r[1]=r[1]||{})[t[++a]]=s:6===i?r[1][t[++a]]+=s+"":i?(o=e.apply(s,Dn(e,s,n,["",null])),r.push(o),s[0]?t[0]|=2:(t[a-2]=0,t[a]=o)):r.push(s)}return r},Fn=new Map;function Mn(e){var t=Fn.get(this);return t||(t=new Map,Fn.set(this,t)),(t=Dn(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",a="",i=[0],s=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?i.push(0,e,o):3===r&&(e||o)?(i.push(3,e,o),r=2):2===r&&"..."===o&&e?i.push(4,e,0):2===r&&o&&!e?i.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},l=0;l<e.length;l++){l&&(1===r&&s(),s(l));for(var c=0;c<e[l].length;c++)t=e[l][c],1===r?"<"===t?(s(),i=[i],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(s(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(s(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(s(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return s(),i}(e)),t),arguments,[])).length>1?t:t[0]}var zn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},Bn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},$n=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},Un=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Hn(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Qn(e){this._listeners[e.type](e)}function Vn(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||Hn(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Un.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,Qn,r):e.removeEventListener(t,Qn,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Zn(e){return"onChange"===e?"onInput":e}function Wn(e,t){for(var n in t)Vn(e,Zn(n),t[n])}function qn(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Vn(e,Zn(n),t[n])}var Gn=["children"];function Yn(e){return function(e){if(Array.isArray(e))return Kn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Xn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Jn(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=Xn(n,Gn),i=e.document.createElement(t);return Wn(i,a),i.append.apply(i,Yn(o)),i}}function er(e){return er="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},er(e)}var tr=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"];function nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nr(Object(n),!0).forEach((function(t){or(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function or(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==er(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==er(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===er(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ar(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ir=function(e){var t=e.autocompleteScopeApi,n=e.environment,r=(e.classNames,e.getInputProps),o=e.getInputPropsCore,a=e.isDetached,i=e.state,s=ar(e,tr),l=Jn(n)("input",s),c=r(rr({state:i,props:o({inputElement:l}),inputElement:l},t));return Wn(l,rr(rr({},c),{},{onKeyDown:function(e){a&&"Tab"===e.key||c.onKeyDown(e)}})),l};function sr(e){return sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(e)}function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(Object(n),!0).forEach((function(t){ur(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ur(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==sr(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==sr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===sr(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var dr,pr,fr,gr,mr,br,hr,yr={},vr=[],_r=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,wr=Array.isArray;function xr(e,t){for(var n in t)e[n]=t[n];return e}function Sr(e){var t=e.parentNode;t&&t.removeChild(e)}function kr(e,t,n){var r,o,a,i={};for(a in t)"key"==a?r=t[a]:"ref"==a?o=t[a]:i[a]=t[a];if(arguments.length>2&&(i.children=arguments.length>3?dr.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return Er(e,i,r,o,null)}function Er(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++fr:o,__i:-1,__u:0};return null==o&&null!=pr.vnode&&pr.vnode(a),a}function Or(e){return e.children}function jr(e,t){this.props=e,this.context=t}function Pr(e,t){if(null==t)return e.__?Pr(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Pr(e):null}function Cr(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Cr(e)}}function Tr(e){(!e.__d&&(e.__d=!0)&&gr.push(e)&&!Ir.__r++||mr!==pr.debounceRendering)&&((mr=pr.debounceRendering)||br)(Ir)}function Ir(){var e,t,n,r,o,a,i,s,l;for(gr.sort(hr);e=gr.shift();)e.__d&&(t=gr.length,r=void 0,a=(o=(n=e).__v).__e,s=[],l=[],(i=n.__P)&&((r=xr({},o)).__v=o.__v+1,pr.vnode&&pr.vnode(r),Br(i,r,o,n.__n,void 0!==i.ownerSVGElement,32&o.__u?[a]:null,s,null==a?Pr(o):a,!!(32&o.__u),l),r.__.__k[r.__i]=r,$r(s,r,l),r.__e!=a&&Cr(r)),gr.length>t&&gr.sort(hr));Ir.__r=0}function Ar(e,t,n,r,o,a,i,s,l,c,u){var d,p,f,g,m,b=r&&r.__k||vr,h=t.length;for(n.__d=l,Nr(n,t,b),l=n.__d,d=0;d<h;d++)null!=(f=n.__k[d])&&"boolean"!=typeof f&&"function"!=typeof f&&(p=-1===f.__i?yr:b[f.__i]||yr,f.__i=d,Br(e,f,p,o,a,i,s,l,c,u),g=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&Hr(p.ref,null,f),u.push(f.ref,f.__c||g,f)),null==m&&null!=g&&(m=g),65536&f.__u||p.__k===f.__k?l=Lr(f,l,e):"function"==typeof f.type&&void 0!==f.__d?l=f.__d:g&&(l=g.nextSibling),f.__d=void 0,f.__u&=-196609);n.__d=l,n.__e=m}function Nr(e,t,n){var r,o,a,i,s,l=t.length,c=n.length,u=c,d=0;for(e.__k=[],r=0;r<l;r++)null!=(o=e.__k[r]=null==(o=t[r])||"boolean"==typeof o||"function"==typeof o?null:"string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?Er(null,o,null,null,o):wr(o)?Er(Or,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?Er(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,s=Rr(o,n,i=r+d,u),o.__i=s,a=null,-1!==s&&(u--,(a=n[s])&&(a.__u|=131072)),null==a||null===a.__v?(-1==s&&d--,"function"!=typeof o.type&&(o.__u|=65536)):s!==i&&(s===i+1?d++:s>i?u>l-i?d+=s-i:d--:d=s<i&&s==i-1?s-i:0,s!==r+d&&(o.__u|=65536))):(a=n[r])&&null==a.key&&a.__e&&(a.__e==e.__d&&(e.__d=Pr(a)),Qr(a,a,!1),n[r]=null,u--);if(u)for(r=0;r<c;r++)null!=(a=n[r])&&0==(131072&a.__u)&&(a.__e==e.__d&&(e.__d=Pr(a)),Qr(a,a))}function Lr(e,t,n){var r,o;if("function"==typeof e.type){for(r=e.__k,o=0;r&&o<r.length;o++)r[o]&&(r[o].__=e,t=Lr(r[o],t,n));return t}return e.__e!=t&&(n.insertBefore(e.__e,t||null),t=e.__e),t&&t.nextSibling}function Rr(e,t,n,r){var o=e.key,a=e.type,i=n-1,s=n+1,l=t[n];if(null===l||l&&o==l.key&&a===l.type)return n;if(r>(null!=l&&0==(131072&l.__u)?1:0))for(;i>=0||s<t.length;){if(i>=0){if((l=t[i])&&0==(131072&l.__u)&&o==l.key&&a===l.type)return i;i--}if(s<t.length){if((l=t[s])&&0==(131072&l.__u)&&o==l.key&&a===l.type)return s;s++}}return-1}function Dr(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||_r.test(t)?n:n+"px"}function Fr(e,t,n,r,o){var a;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Dr(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Dr(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])a=t!==(t=t.replace(/(PointerCapture)$|Capture$/,"$1")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=Date.now(),e.addEventListener(t,a?zr:Mr,a)):e.removeEventListener(t,a?zr:Mr,a);else{if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&"rowSpan"!==t&&"colSpan"!==t&&"role"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function Mr(e){var t=this.l[e.type+!1];if(e.t){if(e.t<=t.u)return}else e.t=Date.now();return t(pr.event?pr.event(e):e)}function zr(e){return this.l[e.type+!0](pr.event?pr.event(e):e)}function Br(e,t,n,r,o,a,i,s,l,c){var u,d,p,f,g,m,b,h,y,v,_,w,x,S,k,E=t.type;if(void 0!==t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),a=[s=t.__e=n.__e]),(u=pr.__b)&&u(t);e:if("function"==typeof E)try{if(h=t.props,y=(u=E.contextType)&&r[u.__c],v=u?y?y.props.value:u.__:r,n.__c?b=(d=t.__c=n.__c).__=d.__E:("prototype"in E&&E.prototype.render?t.__c=d=new E(h,v):(t.__c=d=new jr(h,v),d.constructor=E,d.render=Vr),y&&y.sub(d),d.props=h,d.state||(d.state={}),d.context=v,d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),null==d.__s&&(d.__s=d.state),null!=E.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=xr({},d.__s)),xr(d.__s,E.getDerivedStateFromProps(h,d.__s))),f=d.props,g=d.state,d.__v=t,p)null==E.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(null==E.getDerivedStateFromProps&&h!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(h,v),!d.__e&&(null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(h,d.__s,v)||t.__v===n.__v)){for(t.__v!==n.__v&&(d.props=h,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&i.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(h,d.__s,v),null!=d.componentDidUpdate&&d.__h.push((function(){d.componentDidUpdate(f,g,m)}))}if(d.context=v,d.props=h,d.__P=e,d.__e=!1,w=pr.__r,x=0,"prototype"in E&&E.prototype.render){for(d.state=d.__s,d.__d=!1,w&&w(t),u=d.render(d.props,d.state,d.context),S=0;S<d._sb.length;S++)d.__h.push(d._sb[S]);d._sb=[]}else do{d.__d=!1,w&&w(t),u=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++x<25);d.state=d.__s,null!=d.getChildContext&&(r=xr(xr({},r),d.getChildContext())),p||null==d.getSnapshotBeforeUpdate||(m=d.getSnapshotBeforeUpdate(f,g)),Ar(e,wr(k=null!=u&&u.type===Or&&null==u.key?u.props.children:u)?k:[k],t,n,r,o,a,i,s,l,c),d.base=t.__e,t.__u&=-161,d.__h.length&&i.push(d),b&&(d.__E=d.__=null)}catch(e){t.__v=null,l||null!=a?(t.__e=s,t.__u|=l?160:32,a[a.indexOf(s)]=null):(t.__e=n.__e,t.__k=n.__k),pr.__e(e,t,n)}else null==a&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Ur(n.__e,t,n,r,o,a,i,l,c);(u=pr.diffed)&&u(t)}function $r(e,t,n){t.__d=void 0;for(var r=0;r<n.length;r++)Hr(n[r],n[++r],n[++r]);pr.__c&&pr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){pr.__e(e,t.__v)}}))}function Ur(e,t,n,r,o,a,i,s,l){var c,u,d,p,f,g,m,b=n.props,h=t.props,y=t.type;if("svg"===y&&(o=!0),null!=a)for(c=0;c<a.length;c++)if((f=a[c])&&"setAttribute"in f==!!y&&(y?f.localName===y:3===f.nodeType)){e=f,a[c]=null;break}if(null==e){if(null===y)return document.createTextNode(h);e=o?document.createElementNS("http://www.w3.org/2000/svg",y):document.createElement(y,h.is&&h),a=null,s=!1}if(null===y)b===h||s&&e.data===h||(e.data=h);else{if(a=a&&dr.call(e.childNodes),b=n.props||yr,!s&&null!=a)for(b={},c=0;c<e.attributes.length;c++)b[(f=e.attributes[c]).name]=f.value;for(c in b)f=b[c],"children"==c||("dangerouslySetInnerHTML"==c?d=f:"key"===c||c in h||Fr(e,c,null,f,o));for(c in h)f=h[c],"children"==c?p=f:"dangerouslySetInnerHTML"==c?u=f:"value"==c?g=f:"checked"==c?m=f:"key"===c||s&&"function"!=typeof f||b[c]===f||Fr(e,c,f,b[c],o);if(u)s||d&&(u.__html===d.__html||u.__html===e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Ar(e,wr(p)?p:[p],t,n,r,o&&"foreignObject"!==y,a,i,a?a[0]:n.__k&&Pr(n,0),s,l),null!=a)for(c=a.length;c--;)null!=a[c]&&Sr(a[c]);s||(c="value",void 0!==g&&(g!==e[c]||"progress"===y&&!g||"option"===y&&g!==b[c])&&Fr(e,c,g,b[c],!1),c="checked",void 0!==m&&m!==e[c]&&Fr(e,c,m,b[c],!1))}return e}function Hr(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){pr.__e(e,n)}}function Qr(e,t,n){var r,o;if(pr.unmount&&pr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hr(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){pr.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Qr(r[o],t,n||"function"!=typeof e.type);n||null==e.__e||Sr(e.__e),e.__=e.__e=e.__d=void 0}function Vr(e,t,n){return this.constructor(e,n)}function Zr(e,t,n){var r,o,a,i;pr.__&&pr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,a=[],i=[],Br(t,e=(!r&&n||t).__k=kr(Or,null,[e]),o||yr,yr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?dr.call(t.childNodes):null,a,!r&&n?n:o?o.__e:t.firstChild,r,i),$r(a,e,i)}function Wr(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}dr=vr.slice,pr={__e:function(e,t,n,r){for(var o,a,i;t=t.__;)if((o=t.__c)&&!o.__)try{if((a=o.constructor)&&null!=a.getDerivedStateFromError&&(o.setState(a.getDerivedStateFromError(e)),i=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),i=o.__d),i)return o.__E=o}catch(t){e=t}throw e}},fr=0,jr.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xr({},this.state),"function"==typeof e&&(e=e(xr({},n),this.props)),e&&xr(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Tr(this))},jr.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Tr(this))},jr.prototype.render=Or,gr=[],br="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,hr=function(e,t){return e.__v.__b-t.__v.__b},Ir.__r=0;var qr="__aa-highlight__",Gr="__/aa-highlight__";function Yr(e){var t=e.highlightedValue.split(qr),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Gr);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Kr(e){return function(e){if(Array.isArray(e))return Xr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Xr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Jr(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=Wr(t,["_highlightResult"].concat(Kr(r),["value"]));return"string"!=typeof o&&(o=Wr(t,r)||""),Yr({highlightedValue:o})}function eo(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},Jr({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}var to={"&":"&","<":"<",">":">",""":'"',"'":"'"},no=new RegExp(/\w/i),ro=/&(amp|quot|lt|gt|#39);/g,oo=RegExp(ro.source);function ao(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,s=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return no.test((o=a.value)&&oo.test(o)?o.replace(ro,(function(e){return to[e]})):o)||s!==i?a.isHighlighted:s}function io(e){return io="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},io(e)}function so(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?so(Object(n),!0).forEach((function(t){co(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):so(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function co(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==io(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==io(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===io(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uo(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return lo(lo({},t),{},{isHighlighted:!ao(e,n)})})):e.map((function(e){return lo(lo({},e),{},{isHighlighted:!1})}))}function po(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,s=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},uo(Jr(r))).map((function(e,n){return e.isHighlighted?t(s,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function fo(e){return function(e){if(Array.isArray(e))return go(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return go(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return go(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function go(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function mo(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=Wr(t,["_snippetResult"].concat(fo(r),["value"]));return"string"!=typeof o&&(o=Wr(t,r)||""),Yr({highlightedValue:o})}function bo(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,s=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},uo(mo(r))).map((function(e,n){return e.isHighlighted?t(s,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function ho(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},mo({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}function yo(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function vo(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}function _o(e){return _o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_o(e)}var wo=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"];function xo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function So(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xo(Object(n),!0).forEach((function(t){ko(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ko(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==_o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_o(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Eo(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Oo={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},jo=function(e,t){var n=e.children;(0,e.render)(n,t)},Po={createElement:kr,Fragment:Or,render:Zr};function Co(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var s=r.getBoundingClientRect();return{top:i,left:s.left,right:o.document.documentElement.clientWidth-(s.left+s.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function To(e){return To="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},To(e)}function Io(){return Io=Object.assign?Object.assign.bind():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},Io.apply(this,arguments)}function Ao(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function No(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ao(Object(n),!0).forEach((function(t){Lo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ao(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Lo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==To(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==To(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===To(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ro=[{segment:"autocomplete-js",version:hn}];function Do(e){return function(e){if(Array.isArray(e))return Fo(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Fo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fo(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Mo(e){return Mo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mo(e)}var zo=function(e){return e&&"object"===Mo(e)&&"[object Object]"===Object.prototype.toString.call(e)};function Bo(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,Do(o)):zo(r)&&zo(o)?e[n]=Bo(r,o):e[n]=o})),e}),{})}function $o(e){return $o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$o(e)}function Uo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ho(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Uo(Object(n),!0).forEach((function(t){Qo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Uo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==$o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==$o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===$o(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Zo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Wo=["components"];function qo(e){return qo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qo(e)}function Go(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Yo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ko(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yo(Object(n),!0).forEach((function(t){Xo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==qo(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==qo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===qo(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jo(e){var t,n=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),r=n.runEffect,o=n.cleanupEffects,a=n.runEffects,i=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),s=i.reactive,l=i.runReactives,c=ve(!1),u=ve(e),d=ve(void 0),p=s((function(){return function(e){var t,n=e.classNames,r=e.container,o=e.getEnvironmentProps,a=e.getFormProps,i=e.getInputProps,s=e.getItemProps,l=e.getLabelProps,c=e.getListProps,u=e.getPanelProps,d=e.getRootProps,p=e.panelContainer,f=e.panelPlacement,g=e.render,m=e.renderNoResults,b=e.renderer,h=e.detachedMediaQuery,y=e.components,v=e.translations,_=Eo(e,wo),w="undefined"!=typeof window?window:{},x=yo(w,r);x.tagName;var S=So(So({},Po),b),k={Highlight:eo(S),ReverseHighlight:po(S),ReverseSnippet:bo(S),Snippet:ho(S)};return{renderer:{classNames:vo(Oo,null!=n?n:{}),container:x,getEnvironmentProps:null!=o?o:function(e){return e.props},getFormProps:null!=a?a:function(e){return e.props},getInputProps:null!=i?i:function(e){return e.props},getItemProps:null!=s?s:function(e){return e.props},getLabelProps:null!=l?l:function(e){return e.props},getListProps:null!=c?c:function(e){return e.props},getPanelProps:null!=u?u:function(e){return e.props},getRootProps:null!=d?d:function(e){return e.props},panelContainer:p?yo(w,p):w.document.body,panelPlacement:null!=f?f:"input-wrapper-width",render:null!=g?g:jo,renderNoResults:m,renderer:S,detachedMediaQuery:null!=h?h:getComputedStyle(w.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:So(So({},k),y),translations:So(So({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",submitButtonTitle:"Submit"}),v)},core:So(So({},_),{},{id:null!==(t=_.id)&&void 0!==t?t:st(),environment:w})}}(u.current)})),f=s((function(){return p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches})),g=s((function(){return Rn(Ko(Ko({},p.value.core),{},{onStateChange:function(e){var t,n,r;c.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=d.current)||void 0===t||t.call(d,e),null===(n=(r=p.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:u.current.shouldPanelOpen||function(e){var t=e.state;if(f.value)return!0;var n=at(t)>0;if(!p.value.core.openOnFocus&&!t.query)return n;var r=Boolean(c.current||p.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Ro,options:e}}))})),m=ve(Ko({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},p.value.core.initialState)),b={getEnvironmentProps:p.value.renderer.getEnvironmentProps,getFormProps:p.value.renderer.getFormProps,getInputProps:p.value.renderer.getInputProps,getItemProps:p.value.renderer.getItemProps,getLabelProps:p.value.renderer.getLabelProps,getListProps:p.value.renderer.getListProps,getPanelProps:p.value.renderer.getPanelProps,getRootProps:p.value.renderer.getRootProps},h={setActiveItemId:g.value.setActiveItemId,setQuery:g.value.setQuery,setCollections:g.value.setCollections,setIsOpen:g.value.setIsOpen,setStatus:g.value.setStatus,setContext:g.value.setContext,refresh:g.value.refresh,navigator:g.value.navigator},y=s((function(){return Mn.bind(p.value.renderer.renderer.createElement)})),v=s((function(){return function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.classNames,o=e.environment,a=e.isDetached,i=e.placeholder,s=void 0===i?"Search":i,l=e.propGetters,c=e.setIsModalOpen,u=e.state,d=e.translations,p=Jn(o),f=l.getRootProps(cr({state:u,props:t.getRootProps({})},n)),g=p("div",cr({class:r.root},f)),m=p("div",{class:r.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),b=p("div",{class:r.detachedOverlay,children:[m],onMouseDown:function(){c(!1),t.setIsOpen(!1)}}),h=l.getLabelProps(cr({state:u,props:t.getLabelProps({})},n)),y=p("button",{class:r.submitButton,type:"submit",title:d.submitButtonTitle,children:[zn({environment:o})]}),v=p("label",cr({class:r.label,children:[y]},h)),_=p("button",{class:r.clearButton,type:"reset",title:d.clearButtonTitle,children:[Bn({environment:o})]}),w=p("div",{class:r.loadingIndicator,children:[$n({environment:o})]}),x=ir({class:r.input,environment:o,state:u,getInputProps:l.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:n,isDetached:a}),S=p("div",{class:r.inputWrapperPrefix,children:[v,w]}),k=p("div",{class:r.inputWrapperSuffix,children:[_]}),E=p("div",{class:r.inputWrapper,children:[x]}),O=l.getFormProps(cr({state:u,props:t.getFormProps({inputElement:x})},n)),j=p("form",cr({class:r.form,children:[S,E,k]},O)),P=l.getPanelProps(cr({state:u,props:t.getPanelProps({})},n)),C=p("div",cr({class:r.panel},P)),T=p("div",{class:r.detachedSearchButtonQuery,textContent:u.query}),I=p("div",{class:r.detachedSearchButtonPlaceholder,hidden:Boolean(u.query),textContent:s});if(a){var A=p("div",{class:r.detachedSearchButtonIcon,children:[zn({environment:o})]}),N=p("button",{type:"button",class:r.detachedSearchButton,onClick:function(){c(!0)},children:[A,I,T]}),L=p("button",{type:"button",class:r.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),c(!1)}}),R=p("div",{class:r.detachedFormContainer,children:[j,L]});m.appendChild(R),g.appendChild(N)}else g.appendChild(j);return{detachedContainer:m,detachedOverlay:b,detachedSearchButtonQuery:T,detachedSearchButtonPlaceholder:I,inputWrapper:E,input:x,root:g,form:j,label:v,submitButton:y,clearButton:_,loadingIndicator:w,panel:C}}({autocomplete:g.value,autocompleteScopeApi:h,classNames:p.value.renderer.classNames,environment:p.value.core.environment,isDetached:f.value,placeholder:p.value.core.placeholder,propGetters:b,setIsModalOpen:S,state:m.current,translations:p.value.renderer.translations})}));function _(){Wn(v.value.panel,{style:f.value?{}:Co({panelPlacement:p.value.renderer.panelPlacement,container:v.value.root,form:v.value.form,environment:p.value.core.environment})})}function w(e){m.current=e;var t={autocomplete:g.value,autocompleteScopeApi:h,classNames:p.value.renderer.classNames,components:p.value.renderer.components,container:p.value.renderer.container,html:y.value,dom:v.value,panelContainer:f.value?v.value.detachedContainer:p.value.renderer.panelContainer,propGetters:b,state:m.current,renderer:p.value.renderer.renderer},n=!at(e)&&!c.current&&p.value.renderer.renderNoResults||p.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,o=e.propGetters,a=e.state;qn(r.root,o.getRootProps(No({state:a,props:t.getRootProps({})},n))),qn(r.input,o.getInputProps(No({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),Wn(r.label,{hidden:"stalled"===a.status}),Wn(r.loadingIndicator,{hidden:"stalled"!==a.status}),Wn(r.clearButton,{hidden:!a.query}),Wn(r.detachedSearchButtonQuery,{textContent:a.query}),Wn(r.detachedSearchButtonPlaceholder,{hidden:Boolean(a.query)})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,o=t.classNames,a=t.html,i=t.dom,s=t.panelContainer,l=t.propGetters,c=t.state,u=t.components,d=t.renderer;if(c.isOpen){s.contains(i.panel)||"loading"===c.status||s.appendChild(i.panel),i.panel.classList.toggle("aa-Panel--stalled","stalled"===c.status);var p=c.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var i=e.source,s=e.items;return d.createElement("section",{key:t,className:o.source,"data-autocomplete-source-id":i.sourceId},i.templates.header&&d.createElement("div",{className:o.sourceHeader},i.templates.header({components:u,createElement:d.createElement,Fragment:d.Fragment,items:s,source:i,state:c,html:a})),i.templates.noResults&&0===s.length?d.createElement("div",{className:o.sourceNoResults},i.templates.noResults({components:u,createElement:d.createElement,Fragment:d.Fragment,source:i,state:c,html:a})):d.createElement("ul",Io({className:o.list},l.getListProps(No({state:c,props:n.getListProps({source:i})},r))),s.map((function(e){var t=n.getItemProps({item:e,source:i});return d.createElement("li",Io({key:t.id,className:o.item},l.getItemProps(No({state:c,props:t},r))),i.templates.item({components:u,createElement:d.createElement,Fragment:d.Fragment,item:e,state:c,html:a}))}))),i.templates.footer&&d.createElement("div",{className:o.sourceFooter},i.templates.footer({components:u,createElement:d.createElement,Fragment:d.Fragment,items:s,source:i,state:c,html:a})))})),f=d.createElement(d.Fragment,null,d.createElement("div",{className:o.panelLayout},p),d.createElement("div",{className:"aa-GradientBottom"})),g=p.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(No(No({children:f,state:c,sections:p,elements:g},d),{},{components:u,html:a},r),i.panel)}else s.contains(i.panel)&&s.removeChild(i.panel)}(n,t)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o();var t,n,r=p.value.renderer,i=r.components,s=Go(r,Wo);u.current=Bo(s,p.value.core,{components:(t=i,n=function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")},Object.entries(t).reduce((function(e,t){var r=Vo(t,2),o=r[0],a=r[1];return n({key:o,value:a})?Ho(Ho({},e),{},Qo({},o,a)):e}),{})),initialState:m.current},e),l(),a(),g.value.refresh().then((function(){w(m.current)}))}function S(e){requestAnimationFrame((function(){var t=p.value.core.environment.document.body.contains(v.value.detachedOverlay);e!==t&&(e?(p.value.core.environment.document.body.appendChild(v.value.detachedOverlay),p.value.core.environment.document.body.classList.add("aa-Detached"),v.value.input.focus()):(p.value.core.environment.document.body.removeChild(v.value.detachedOverlay),p.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return r((function(){var e=g.value.getEnvironmentProps({formElement:v.value.form,panelElement:v.value.panel,inputElement:v.value.input});return Wn(p.value.core.environment,e),function(){Wn(p.value.core.environment,Object.keys(e).reduce((function(e,t){return Ko(Ko({},e),{},Xo({},t,void 0))}),{}))}})),r((function(){var e=f.value?p.value.core.environment.document.body:p.value.renderer.panelContainer,t=f.value?v.value.detachedOverlay:v.value.panel;return f.value&&m.current.isOpen&&S(!0),w(m.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=p.value.renderer.container;return e.appendChild(v.value.root),function(){e.removeChild(v.value.root)}})),r((function(){var e=ye((function(e){w(e.state)}),0);return d.current=function(t){var n=t.state,r=t.prevState;(f.value&&r.isOpen!==n.isOpen&&S(n.isOpen),f.value||!n.isOpen||r.isOpen||_(),n.query!==r.query)&&p.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){d.current=void 0}})),r((function(){var e=ye((function(){var e=f.value;f.value=p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches,e!==f.value?x({}):requestAnimationFrame(_)}),20);return p.value.core.environment.addEventListener("resize",e),function(){p.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!f.value)return function(){};function e(e){v.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=p.value.core.environment.matchMedia(getComputedStyle(p.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(_),function(){}})),Ko(Ko({},h),{},{update:x,destroy:function(){o()}})}var ea=n(2791);const ta=n(8271),na=ta;var ra=n(2e3),oa=n.n(ra);function aa(){const e=(0,s.TH)(),t=(0,s.k6)(),{siteConfig:{baseUrl:n}}=(0,le.Z)(),[o,a]=(0,r.useState)({terms:[],isDocsOrBlog:!1});return(0,r.useEffect)((()=>{if(!e.state?.cmfcmfhighlight||0===e.state.cmfcmfhighlight.terms.length)return;a(e.state.cmfcmfhighlight);const{cmfcmfhighlight:n,...r}=e.state;t.replace({...e,state:r})}),[e.state?.cmfcmfhighlight,t,e]),(0,r.useEffect)((()=>{if(0===o.terms.length)return;const e=o.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(!e)return;const t=new(oa())(e),n={ignoreJoiners:!0};return t.mark(o.terms,n),()=>t.unmark(n)}),[o,n]),null}var ia=n(3923),sa=n(9247);function la(e){let{document:t}=e;const[n,r]=t.sectionRoute.split("#");let o=n;return r&&(o+="#"+r),o}const ca={documents:[],index:na((function(){this.ref("id"),this.field("title"),this.field("content")}))};const ua=()=>{const e=(0,z.Z)(),[t,o]=(0,r.useState)((()=>!!e&&"dark"===document.documentElement.getAttribute("data-theme")));(0,r.useEffect)((()=>{const e=new MutationObserver((()=>{o("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()}),[]);const{siteConfig:{baseUrl:a}}=(0,le.Z)(),{titleBoost:i,contentBoost:c,tagsBoost:u,parentCategoriesBoost:d,indexDocSidebarParentCategories:p,maxSearchResults:f}=(0,ia.eZ)("@cmfcmf/docusaurus-search-local"),g=(0,s.k6)(),{tags:m}=function(){const{i18n:e}=(0,le.Z)(),t=n(5364).z1(),r=[sa.H,...t];return{locale:e.currentLocale,tags:r}}(),b=(0,r.useRef)(m);(0,r.useEffect)((()=>{b.current=m}),[m]);const h=(0,r.useRef)({}),y=async e=>{const t=h.current[e];switch(t?.state){case"ready":return t;case void 0:{const t=[];h.current[e]={state:"loading",callbacks:t};const n=await async function(e,t){{let r;try{const n=await fetch(`${e}search-index-${t}.json`);if(!n.ok)return ca;r=await n.json()}catch(n){return ca}return{documents:r.documents,index:na.Index.load(r.index)}}}(a,e);return t.forEach((e=>e(n))),h.current[e]={state:"ready",...n}}case"loading":return new Promise((e=>{t.callbacks.push(e)}))}},v=(0,l.I)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),_=(0,r.useRef)(null),w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(_.current)return w.current=Jo({container:_.current,placeholder:v,renderer:{createElement:r.createElement,Fragment:r.Fragment,render:he.render},navigator:{navigate(e){let{item:t,itemUrl:n}=e;g.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,l.I)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,l.I)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,l.I)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources(e){let{query:t}=e;return[{sourceId:"search-results",templates:{item(e){let{item:t}=e;const n=la(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:e=>{e.preventDefault(),g.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:()=>r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,l.I)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))},getItemUrl(e){let{item:t}=e;return la(t)},async getItems(){const e=b.current,n=await Promise.all(e.map((e=>y(e)))),r=(e=>ta.tokenizer(e).map((e=>e.str)))(t);return n.flatMap((e=>{let{index:t,documents:n}=e;return t.query((e=>{e.term(r,{fields:["title"],boost:i}),e.term(r,{fields:["title"],boost:i,wildcard:na.Query.wildcard.TRAILING}),e.term(r,{fields:["content"],boost:c}),e.term(r,{fields:["content"],boost:c,wildcard:na.Query.wildcard.TRAILING}),e.term(r,{fields:["tags"],boost:u}),e.term(r,{fields:["tags"],boost:u,wildcard:na.Query.wildcard.TRAILING}),p&&(e.term(r,{fields:["sidebarParentCategories"],boost:d}),e.term(r,{fields:["sidebarParentCategories"],boost:d,wildcard:na.Query.wildcard.TRAILING}))})).slice(0,f).map((e=>({document:n.find((t=>t.id.toString()===e.ref)),score:e.score,terms:r})))})).sort(((e,t)=>t.score-e.score)).slice(0,f)}}]}}),()=>w.current?.destroy()}),[f]),r.createElement(r.Fragment,null,r.createElement(ea.Z,null,r.createElement("body",{"data-theme":t?"dark":"light"})),r.createElement(aa,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:_,"data-tags":m.join(",")})))},da={navbarSearchContainer:"navbarSearchContainer_ZzhW"};function pa(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.Z)(n,da.navbarSearchContainer),children:t})}var fa=n(5364),ga=n(4376);var ma=n(1777);function ba(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find((t=>t.id===e.mainDocId))}(e)}const ha={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,ge.l)(),{search:f,hash:g}=(0,s.TH)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:be}),b]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(pa,{className:n,children:(0,u.jsx)(ua,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,fa.Iw)(r),i=(0,ga.vY)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,fa.Iw)(r),i=(0,ga.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ga.lO)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,fa.Iw)(n),f=(0,fa.gB)(n),{savePreferredVersionName:g}=(0,ma.J)(n),m=[...o,...f.map((function(e){const t=ba(e,p);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...a],b=(0,ga.lO)(n)[0],h=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&m.length>1?void 0:ba(b,p).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:h,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:h,to:y,items:m,isActive:r?()=>!1:void 0})}},ya=ha;function va(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=ya[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function _a(){const e=(0,C.e)(),t=(0,_.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(va,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function wa(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{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 xa(){const e=0===(0,_.L)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(wa,{onClick:()=>t.hide()}),t.content]})}function Sa(){const e=(0,C.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(_a,{}),secondaryMenu:(0,u.jsx)(xa,{})}):null}const ka={navbarHideable:"navbarHideable_XAwL",navbarHidden:"navbarHidden_IdZ3"};function Ea(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function Oa(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,_.L)(),i=(0,C.e)(),{navbarRef:s,isNavbarVisible:d}=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,T.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-a.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((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}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[ka.navbarHideable,!d&&ka.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ea,{onClick:i.toggle}),(0,u.jsx)(Sa,{})]})}var ja=n(5678);const Pa={errorBoundaryError:"errorBoundaryError_yDia",errorBoundaryFallback:"errorBoundaryFallback_ExJr"};function Ca(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{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 Ta(e){let{error:t}=e;const n=(0,ja.BN)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Pa.errorBoundaryError,children:n})}class Ia extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Aa="right";function Na(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function La(){const{toggle:e,shown:t}=(0,C.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({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,u.jsx)(Na,{})})}const Ra={colorModeToggle:"colorModeToggle_z0vY"};function Da(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Ia,{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,u.jsx)(va,{...e})},t)))})}function Fa(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ma(){const e=(0,C.e)(),t=(0,_.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Aa)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(Fa,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(La,{}),(0,u.jsx)(q,{}),(0,u.jsx)(Da,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Da,{items:r}),(0,u.jsx)(Z,{className:Ra.colorModeToggle}),!o&&(0,u.jsx)(pa,{children:(0,u.jsx)(ua,{})})]})})}function za(){return(0,u.jsx)(Oa,{children:(0,u.jsx)(Ma,{})})}function Ba(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.ZP)(n),l=(0,X.ZP)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.Z,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function $a(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ba,{item:t})},t.href??t.to)}function Ua(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)($a,{item:e},t)))})]})}function Ha(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Ua,{column:e},t)))})}function Qa(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Va(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ba,{item:t})}function Za(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Va,{item:e}),t.length!==n+1&&(0,u.jsx)(Qa,{})]},n)))})})}function Wa(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ha,{columns:t}):(0,u.jsx)(Za,{links:t})}var qa=n(4322);const Ga={footerLogoLink:"footerLogoLink_WvA8"};function Ya(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.Cg)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(qa.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Ka(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.Z,{href:t.href,className:Ga.footerLogoLink,target:t.target,children:(0,u.jsx)(Ya,{logo:t})}):(0,u.jsx)(Ya,{logo:t})}function Xa(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ja(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function ei(){const{footer:e}=(0,_.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(Ja,{style:o,links:n&&n.length>0&&(0,u.jsx)(Wa,{links:n}),logo:r&&(0,u.jsx)(Ka,{logo:r}),copyright:t&&(0,u.jsx)(Xa,{copyright:t})})}const ti=r.memo(ei),ni=(0,I.Qc)([M.S,w.p,T.OC,ma.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(A.n2,{children:(0,u.jsx)(C.M,{children:(0,u.jsx)(L,{children:t})})})}]);function ri(e){let{children:t}=e;return(0,u.jsx)(ni,{children:t})}var oi=n(3221);function ai(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(oi.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Ca,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Ta,{error:t})})]})})})}const ii={mainWrapper:"mainWrapper_GHU6"};function si(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,h.t)(),(0,u.jsxs)(ri,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(P,{}),(0,u.jsx)(za,{}),(0,u.jsx)("div",{id:d,className:(0,o.Z)(b.k.wrapper.main,ii.mainWrapper,r),children:(0,u.jsx)(a.Z,{fallback:e=>(0,u.jsx)(ai,{...e}),children:t})}),!n&&(0,u.jsx)(ti,{})]})}},698:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(5271);var r=n(6527),o=n(285),a=n(6172),i=n(9364),s=n(4322),l=n(2676);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.ZP)(t.src),dark:(0,o.ZP)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.ZP)(s?.href||"/"),g=n?"":t,m=s?.alt??g;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},8625:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(5271);var r=n(2791),o=n(2676);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},4322:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(5271),o=n(4814),a=n(6594),i=n(7934);const s={themedComponent:"themedComponent_EL3c","themedComponent--light":"themedComponent--light_qtcQ","themedComponent--dark":"themedComponent--dark_Jjwa"};var l=n(2676);function c(e){let{className:t,children:n}=e;const c=(0,a.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},3955:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>h});var r=n(5271),o=n(6593),a=n(2246),i=n(9276),s=n(2676);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function g(e){if(!o.Z.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function b(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(m,{...n,collapsed:l}):null}function h(e){let{lazy:t,...n}=e;const r=t?b:m;return(0,s.jsx)(r,{...n})}},6701:(e,t,n)=>{"use strict";n.d(t,{n:()=>m,p:()=>g});var r=n(5271),o=n(6594),a=n(1118),i=n(8274),s=n(9364),l=n(2676);const c=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,o.Z)(),[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=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},7934:(e,t,n)=>{"use strict";n.d(t,{I:()=>h,S:()=>b});var r=n(5271),o=n(6593),a=n(8274),i=n(1118),s=n(9364),l=n(2676);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function b(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[o,a]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8568:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>g});var r=n(5271),o=n(3158),a=n(3320),i=n(3225),s=n(8274);function l(e){!function(e){const t=(0,i.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(9364),u=n(2676);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const 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 f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function g(){const e=r.useContext(d);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3158:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(5271),o=n(8274),a=n(2676);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},8451:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(5271);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)}}),[])}},3320:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(5271),o=n(6593);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},3509:(e,t,n)=>{"use strict";n.d(t,{k:()=>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}`},layout:{},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"}}},9276:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2347:(e,t,n)=>{"use strict";function r(e){return Array.from(new Set(e))}function o(e,t){const n={};let r=0;for(const o of e){const e=t(o,r);n[e]??=[],n[e].push(o),r+=1}return n}n.d(t,{jj:()=>r,vM:()=>o})},9967:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(5271),o=n(4814),a=n(2791),i=n(4268),s=n(285),l=n(6172);var c=n(2676);function u(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const u=function(e){const{siteConfig:t}=(0,l.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.Cg)(),p=o?d(o,{absolute:!0}):void 0;return(0,c.jsxs)(a.Z,{children:[t&&(0,c.jsx)("title",{children:u}),t&&(0,c.jsx)("meta",{property:"og:title",content:u}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,o.Z)(i,t);return(0,c.jsxs)(d.Provider,{value:s,children:[(0,c.jsx)(a.Z,{children:(0,c.jsx)("html",{className:s})}),n]})}function f(e){let{children:t}=e;const n=(0,i.Z)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,o.Z)(r,a),children:t})}},8274:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(5271),o=n(2246),a=n(2676);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class l 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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},6422:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(5271),o=n(7297),a=n(6172);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},1309:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>p});var r=n(5271),o=n(6593),a=n(6594),i=(n(2246),n(8274)),s=n(2676);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i.zX)(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.Z)()&&"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?.()}}},9247:(e,t,n)=>{"use strict";n.d(t,{H:()=>r});const r="default"},1118:(e,t,n)=>{"use strict";n.d(t,{WA:()=>c});n(5271);const r=JSON.parse('{"d":"localStorage","u":""}'),o=r.d;function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function i(e){if(void 0===e&&(e=o),"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,s||(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),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){const n=`${e}${r.u}`;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?l:{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),()=>{}}}}}},9897:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(6172),o=n(3225),a=n(5678);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,o.TH)(),c=(0,a.Do)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},4890:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(5271),o=n(3225),a=n(8274);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},9364:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(6172);function o(){return(0,r.Z)().siteConfig.themeConfig}},3790:(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(/[#?]/),s="/"===i||i===r?i:(l=i,c=n,c?o(l):a(l));var l,c;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(3826);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},9725:(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]}},5678:(e,t,n)=>{"use strict";t.BN=t.Do=t.uR=void 0;const r=n(5862);t.uR="__blog-post-container";var o=n(3790);Object.defineProperty(t,"Do",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(3826);var i=n(9725);Object.defineProperty(t,"BN",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},3826:(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}},1925:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(6809),o=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},a=function(e){return"IMG"===e.tagName},i=function(e){return e&&1===e.nodeType},s=function(e){return".svg"===(e.currentSrc||e.src).substr(-4).toLowerCase()},l=function(e){try{return Array.isArray(e)?e.filter(a):function(e){return NodeList.prototype.isPrototypeOf(e)}(e)?[].slice.call(e).filter(a):i(e)?[e].filter(a):"string"==typeof e?[].slice.call(document.querySelectorAll(e)).filter(a):[]}catch(t){throw new TypeError("The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList or an array.\nSee: https://github.com/francoischalifour/medium-zoom")}},c=function(e,t){var n=o({bubbles:!1,cancelable:!1,detail:void 0},t);if("function"==typeof window.CustomEvent)return new CustomEvent(e,n);var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),r};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}");const u=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=window.Promise||function(e){function t(){}e(t,t)},a=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.reduce((function(e,t){return[].concat(e,l(t))}),[]);return r.filter((function(e){return-1===f.indexOf(e)})).forEach((function(e){f.push(e),e.classList.add("medium-zoom-image")})),g.forEach((function(e){var t=e.type,n=e.listener,o=e.options;r.forEach((function(e){e.addEventListener(t,n,o)}))})),_},u=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target,t=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,n=void 0;if(h.container)if(h.container instanceof Object)t=(e=o({},e,h.container)).width-e.left-e.right-2*h.margin,n=e.height-e.top-e.bottom-2*h.margin;else{var r=(i(h.container)?h.container:document.querySelector(h.container)).getBoundingClientRect(),a=r.width,l=r.height,c=r.left,u=r.top;e=o({},e,{width:a,height:l,left:c,top:u})}t=t||e.width-2*h.margin,n=n||e.height-2*h.margin;var d=y.zoomedHd||y.original,p=s(d)?t:d.naturalWidth||t,f=s(d)?n:d.naturalHeight||n,g=d.getBoundingClientRect(),m=g.top,b=g.left,v=g.width,_=g.height,w=Math.min(Math.max(v,p),t)/v,x=Math.min(Math.max(_,f),n)/_,S=Math.min(w,x),k="scale("+S+") translate3d("+((t-v)/2-b+h.margin+e.left)/S+"px, "+((n-_)/2-m+h.margin+e.top)/S+"px, 0)";y.zoomed.style.transform=k,y.zoomedHd&&(y.zoomedHd.style.transform=k)};return new r((function(n){if(e&&-1===f.indexOf(e))n(_);else{if(y.zoomed)n(_);else{if(e)y.original=e;else{if(!(f.length>0))return void n(_);var r=f;y.original=r[0]}if(y.original.dispatchEvent(c("medium-zoom:open",{detail:{zoom:_}})),b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,m=!0,y.zoomed=function(e){var t=e.getBoundingClientRect(),n=t.top,r=t.left,o=t.width,a=t.height,i=e.cloneNode(),s=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,l=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return i.removeAttribute("id"),i.style.position="absolute",i.style.top=n+s+"px",i.style.left=r+l+"px",i.style.width=o+"px",i.style.height=a+"px",i.style.transform="",i}(y.original),document.body.appendChild(v),h.template){var o=i(h.template)?h.template:document.querySelector(h.template);y.template=document.createElement("div"),y.template.appendChild(o.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&"PICTURE"===y.original.parentElement.tagName&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",d),y.zoomed.addEventListener("transitionend",(function e(){m=!1,y.zoomed.removeEventListener("transitionend",e),y.original.dispatchEvent(c("medium-zoom:opened",{detail:{zoom:_}})),n(_)})),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(a),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,t()};var a=setInterval((function(){y.zoomedHd.complete&&(clearInterval(a),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),t())}),10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var s=y.zoomedHd.addEventListener("load",(function(){y.zoomedHd.removeEventListener("load",s),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),t()}))}else t()}}}))},d=function(){return new r((function(e){if(!m&&y.original){m=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(c("medium-zoom:close",{detail:{zoom:_}})),y.zoomed.addEventListener("transitionend",(function t(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(v),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),m=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(c("medium-zoom:closed",{detail:{zoom:_}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,e(_)}))}else e(_)}))},p=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target;return y.original?d():u({target:e})},f=[],g=[],m=!1,b=0,h=n,y={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?h=t:(t||"string"==typeof t)&&a(t);var v=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.background=e,t}((h=o({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},h)).background);document.addEventListener("click",(function(e){var t=e.target;t!==v?-1!==f.indexOf(t)&&p({target:t}):d()})),document.addEventListener("keyup",(function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||d()})),document.addEventListener("scroll",(function(){if(!m&&y.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(b-e)>h.scrollOffset&&setTimeout(d,150)}})),window.addEventListener("resize",d);var _={open:u,close:d,toggle:p,update:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(v.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=o({},h.container,e.container)),e.template){var n=i(e.template)?e.template:document.querySelector(e.template);t.template=n}return h=o({},h,t),f.forEach((function(e){e.dispatchEvent(c("medium-zoom:update",{detail:{zoom:_}}))})),_},clone:function(){return e(o({},h,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}))},attach:a,detach:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];y.zoomed&&d();var r=t.length>0?t.reduce((function(e,t){return[].concat(e,l(t))}),[]):f;return r.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(c("medium-zoom:detach",{detail:{zoom:_}}))})),f=f.filter((function(e){return-1===r.indexOf(e)})),_},on:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return f.forEach((function(r){r.addEventListener("medium-zoom:"+e,t,n)})),g.push({type:"medium-zoom:"+e,listener:t,options:n}),_},off:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return f.forEach((function(r){r.removeEventListener("medium-zoom:"+e,t,n)})),g=g.filter((function(n){return!(n.type==="medium-zoom:"+e&&n.listener.toString()===t.toString())})),_},getOptions:function(){return h},getImages:function(){return f},getZoomedImage:function(){return y.original}};return _},{themeConfig:d}=r.default;function p(e){var t,n;return document.querySelector('html[data-theme="dark"]')?(null===(t=e.background)||void 0===t?void 0:t.dark)||"rgb(50, 50, 50)":(null===(n=e.background)||void 0===n?void 0:n.light)||"rgb(255, 255, 255)"}const f=function(){if("undefined"==typeof window)return null;let e;const{zoom:t}=d,{selector:n=".markdown img",config:r={}}=t||{};if(!t)return null;r.background=p(t);var o=new MutationObserver((function(){e&&e.update({background:p(t)})}));const a=document.querySelector("html");return o.observe(a,{attributes:!0,attributeFilter:["data-theme"]}),setTimeout((()=>{e&&e.detach(),e=u(n,r)}),1e3),{onRouteUpdate(){setTimeout((()=>{e&&e.detach(),e=u(n,r)}),1e3)}}}()},4047:(e,t,n)=>{"use strict";n.d(t,{lX:()=>_,q_:()=>O,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(6920);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("/")||[],s=e&&o(e),l=t&&o(t),c=s||l;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}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(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var s=n(8624);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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.Z)({},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(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}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 g(){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 m=!("undefined"==typeof window||!window.document||!window.document.createElement);function b(e,t){t(window.confirm(e))}var h="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),m||(0,s.Z)(!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,c=i.forceRefresh,_=void 0!==c&&c,w=i.getUserConfirmation,x=void 0===w?b:w,S=i.keyLength,k=void 0===S?6:S,E=e.basename?d(l(e.basename)):"";function O(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return E&&(a=u(a,E)),f(a,r,n)}function j(){return Math.random().toString(36).substr(2,k)}var P=g();function C(e){(0,r.Z)($,e),$.length=n.length,P.notifyListeners($.location,$.action)}function T(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(O(e.state))}function I(){N(O(v()))}var A=!1;function N(e){if(A)A=!1,C();else{P.confirmTransitionTo(e,"POP",x,(function(t){t?C({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(A=!0,F(o))}(e)}))}}var L=O(v()),R=[L.key];function D(e){return E+p(e)}function F(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(h,T),a&&window.addEventListener(y,I)):0===M&&(window.removeEventListener(h,T),a&&window.removeEventListener(y,I))}var B=!1;var $={length:n.length,action:"POP",location:L,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,j(),$.location);P.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),_)window.location.href=t;else{var l=R.indexOf($.location.key),c=R.slice(0,l+1);c.push(a.key),R=c,C({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,j(),$.location);P.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),_)window.location.replace(t);else{var l=R.indexOf($.location.key);-1!==l&&(R[l]=a.key),C({action:r,location:a})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=P.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=P.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var w="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function k(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(S(window.location.href)+"#"+e)}function O(e){void 0===e&&(e={}),m||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?b:o,i=n.hashType,c=void 0===i?"slash":i,h=e.basename?d(l(e.basename)):"",y=x[c],v=y.encodePath,_=y.decodePath;function O(){var e=_(k());return h&&(e=u(e,h)),f(e)}var j=g();function P(e){(0,r.Z)(B,e),B.length=t.length,j.notifyListeners(B.location,B.action)}var C=!1,T=null;function I(){var e,t,n=k(),r=v(n);if(n!==r)E(r);else{var o=O(),i=B.location;if(!C&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(T===p(o))return;T=null,function(e){if(C)C=!1,P();else{var t="POP";j.confirmTransitionTo(e,t,a,(function(n){n?P({action:t,location:e}):function(e){var t=B.location,n=R.lastIndexOf(p(t));-1===n&&(n=0);var r=R.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(C=!0,D(o))}(e)}))}}(o)}}var A=k(),N=v(A);A!==N&&E(N);var L=O(),R=[p(L)];function D(e){t.go(e)}var F=0;function M(e){1===(F+=e)&&1===e?window.addEventListener(w,I):0===F&&window.removeEventListener(w,I)}var z=!1;var B={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(h+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);j.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(h+t);if(k()!==o){T=t,function(e){window.location.hash=e}(o);var a=R.lastIndexOf(p(B.location)),i=R.slice(0,a+1);i.push(t),R=i,P({action:n,location:r})}else P()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);j.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(h+t);k()!==o&&(T=t,E(o));var a=R.indexOf(p(B.location));-1!==a&&(R[a]=t),P({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=j.setPrompt(e);return z||(M(1),z=!0),function(){return z&&(z=!1,M(-1)),t()}},listen:function(e){var t=j.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function j(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=g();function d(e){(0,r.Z)(_,e),_.length=_.entries.length,u.notifyListeners(_.location,_.action)}function m(){return Math.random().toString(36).substr(2,c)}var b=j(s,0,a.length-1),h=a.map((function(e){return f(e,void 0,"string"==typeof e?m():e.key||m())})),y=p;function v(e){var t=j(_.index+e,0,_.entries.length-1),r=_.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var _={length:h.length,action:"POP",location:h[b],index:b,entries:h,createHref:y,push:function(e,t){var r="PUSH",o=f(e,t,m(),_.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=_.index+1,n=_.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,m(),_.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(_.entries[_.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=_.index+e;return t>=0&&t<_.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return _}},2535:(e,t,n)=>{"use strict";var r=n(6237),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},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),b=0;b<i.length;++b){var h=i[b];if(!(a[h]||r&&r[h]||m&&m[h]||s&&s[h])){var y=p(n,h);try{c(t,h,y)}catch(v){}}}}return t}},3670:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},901:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2e3:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=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},o=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,l=0;i=Array.prototype.slice.call(i);var c=function(){--s<=0&&a(l)};s||c(),i.forEach((function(t){e.matches(t,o.exclude)?c():o.onIframeReady(t,(function(e){n(t)&&(l++,r(e)),c()}),c)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],l=[],c=void 0,u=void 0,d=function(){var e=a.getIteratorNode(i);return u=e.prevNode,c=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(c,u,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return l.push(e)}),r)})),l.push(c);l.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var l=e.nodes[s+1];if(void 0===l||l.start>t){if(!r(i.node))return!1;var c=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=a.wrapRangeInTextNode(i.node,c,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var l=1;l<i;l++)s+=o[l].length;t=a.wrapRangeInTextNode(t,s,s+o[i].length),r(t.previousSibling),e.lastIndex=0}})),o()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[i];){var l=s.index;if(0!==i)for(var c=1;c<i;c++)l+=s[c].length;var u=l+s[i].length;a.wrapRangeInMappedTextNode(t,l,u,(function(e){return n(s[i],e)}),(function(t,n){e.lastIndex=n,r(t)}))}o()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes((function(a){var i=a.value.length;e.forEach((function(e,r){var s=o.checkWhitespaceRanges(e,i,a.value),l=s.start,c=s.end;s.valid&&o.wrapRangeInMappedTextNode(a,l,c,(function(n){return t(n,e,a.value.substring(l,c),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,o="wrapMatches",a=function(e){r++,n.opt.each(e)};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),a,(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",a=this.getSeparatedKeywords("string"==typeof e?[e]:e),i=a.keywords,s=a.length,l=this.opt.caseSensitive?"":"i",c=function e(t){var a=new RegExp(n.createRegExp(t),"gm"+l),c=0;n.log('Searching with expression "'+a+'"'),n[o](a,1,(function(e,o){return n.opt.filter(o,t,r,c)}),(function(e){c++,r++,n.opt.each(e)}),(function(){0===c&&n.opt.noMatch(t),i[s-1]===t?n.opt.done(r):e(i[i.indexOf(t)+1])}))};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===s?this.opt.done(r):c(i[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,(function(e,t,r,o){return n.opt.filter(e,t,r,o)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=o.matches(e,n),a=t.matchesExclude(e);return!r||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),a}();function i(e){var t=this,n=new a(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}return i}()},8797:(e,t,n)=>{"use strict";n.r(t)},4798:(e,t,n)=>{"use strict";n.r(t)},9981: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),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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 c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(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)},7720:(e,t,n)=>{var r=n(901);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var g=e[i],m=n[2],b=n[3],h=n[4],y=n[5],v=n[6],_=n[7];s&&(r.push(s),s="");var w=null!=m&&null!=g&&g!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,k=n[2]||u,E=h||y;r.push({name:b||a++,prefix:m||"",delimiter:k,optional:S,repeat:x,partial:w,asterisk:!!_,pattern:E?c(E):_?".*":"[^"+l(k)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(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+")$",d(t)));return function(t,o){for(var a="",s=t||{},l=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var g=l(n.delimiter||"/"),m=i.slice(-g.length)===g;return o||(i=(m?i.slice(0,-g.length):i)+"(?:"+g+"(?=$))?"),i+=a?"$":o&&m?"":"(?="+g+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(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 u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},3209:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},1417:()=>{Prism.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"}},Prism.languages.webmanifest=Prism.languages.json},1559:()=>{!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,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=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(s){for(var l=0;l<s.length&&!(o>=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++o;var m=p.substring(0,g),b=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),h=p.substring(g+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(b),h&&y.push.apply(y,i([h])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},4049:(e,t,n)=>{"use strict";var r=n(6257);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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}},507:(e,t,n)=>{e.exports=n(4049)()},6257:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6521:(e,t,n)=>{"use strict";var r=n(5271),o=n(7537);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,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("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={},g={};function m(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 b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new m(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){b[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var h=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var o=b.hasOwnProperty(t)?b[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(g,e)||!d.call(f,e)&&(p.test(e)?g[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(h,y);b[t]=new m(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(h,y);b[t]=new m(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(h,y);b[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var _=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),O=Symbol.for("react.provider"),j=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),A=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var N=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var L=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=L&&e[L]||e["@@iterator"])?e:null}var D,F=Object.assign;function M(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("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 E:return"Profiler";case k:return"StrictMode";case C:return"Suspense";case T:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case j:return(e.displayName||"Context")+".Consumer";case O:return(e._context.displayName||"Context")+".Provider";case P:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case I:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case A:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function H(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===k?"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 Q(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function V(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Z(e){e._valueTracker||(e._valueTracker=function(e){var t=V(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=V(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 G(e,t){var n=t.checked;return F({},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=Q(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 K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=Q(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,Q(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=""+Q(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 F({},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:Q(n)}}function ae(e,t){var n=Q(t.value),r=Q(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 se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.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 ue(e,t)}))}:ue);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},ge=["Webkit","ms","Moz","O"];function me(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 be(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var he=F({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 ye(e,t){if(t){if(he[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 _e=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,ke=null;function Ee(e){if(e=_o(e)){if("function"!=typeof xe)throw Error(a(280));var t=e.stateNode;t&&(t=xo(t),xe(e.stateNode,e.type,t))}}function Oe(e){Se?ke?ke.push(e):ke=[e]:Se=e}function je(){if(Se){var e=Se,t=ke;if(ke=Se=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Pe(e,t){return e(t)}function Ce(){}var Te=!1;function Ie(e,t,n){if(Te)return e(t,n);Te=!0;try{return Pe(e,t,n)}finally{Te=!1,(null!==Se||null!==ke)&&(Ce(),je())}}function Ae(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 Ne=!1;if(u)try{var Le={};Object.defineProperty(Le,"passive",{get:function(){Ne=!0}}),window.addEventListener("test",Le,Le),window.removeEventListener("test",Le,Le)}catch(ue){Ne=!1}function Re(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var De=!1,Fe=null,Me=!1,ze=null,Be={onError:function(e){De=!0,Fe=e}};function $e(e,t,n,r,o,a,i,s,l){De=!1,Fe=null,Re.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function He(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 Qe(e){if(Ue(e)!==e)throw Error(a(188))}function Ve(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 Qe(o),e;if(i===r)return Qe(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)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))?Ze(e):null}function Ze(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ze(e);if(null!==t)return t;e=e.sibling}return null}var We=o.unstable_scheduleCallback,qe=o.unstable_cancelCallback,Ge=o.unstable_shouldYield,Ye=o.unstable_requestPaint,Ke=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-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=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 s=i&~o;0!==s?r=dt(s):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&&0!=(4194240&a)))return t;if(0!=(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 gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ht(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(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 _t(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var wt,xt,St,kt,Et,Ot=!1,jt=[],Pt=null,Ct=null,Tt=null,It=new Map,At=new Map,Nt=[],Lt="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 Rt(e,t){switch(e){case"focusin":case"focusout":Pt=null;break;case"dragenter":case"dragleave":Ct=null;break;case"mouseover":case"mouseout":Tt=null;break;case"pointerover":case"pointerout":It.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":At.delete(t.pointerId)}}function Dt(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=_o(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Ft(e){var t=vo(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=He(n)))return e.blockedOn=t,void Et(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 Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Gt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=_o(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);_e=r,n.target.dispatchEvent(r),_e=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ot=!1,null!==Pt&&Mt(Pt)&&(Pt=null),null!==Ct&&Mt(Ct)&&(Ct=null),null!==Tt&&Mt(Tt)&&(Tt=null),It.forEach(zt),At.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ot||(Ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<jt.length){$t(jt[0],e);for(var n=1;n<jt.length;n++){var r=jt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pt&&$t(Pt,e),null!==Ct&&$t(Ct,e),null!==Tt&&$t(Tt,e),It.forEach(t),At.forEach(t),n=0;n<Nt.length;n++)(r=Nt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Nt.length&&null===(n=Nt[0]).blockedOn;)Ft(n),null===n.blockedOn&&Nt.shift()}var Ht=_.ReactCurrentBatchConfig,Qt=!0;function Vt(e,t,n,r){var o=vt,a=Ht.transition;Ht.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=o,Ht.transition=a}}function Zt(e,t,n,r){var o=vt,a=Ht.transition;Ht.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=o,Ht.transition=a}}function Wt(e,t,n,r){if(Qt){var o=Gt(e,t,n,r);if(null===o)Qr(e,t,r,qt,n),Rt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Pt=Dt(Pt,e,t,n,r,o),!0;case"dragenter":return Ct=Dt(Ct,e,t,n,r,o),!0;case"mouseover":return Tt=Dt(Tt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return It.set(a,Dt(It.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,At.set(a,Dt(At.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<Lt.indexOf(e)){for(;null!==o;){var a=_o(o);if(null!==a&&wt(a),null===(a=Gt(e,t,n,r))&&Qr(e,t,r,qt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Qr(e,t,r,null,n)}}var qt=null;function Gt(e,t,n,r){if(qt=null,null!==(e=vo(e=we(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=He(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 Kt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,o="value"in Kt?Kt.value:Kt.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 F(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,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=F({},cn,{view:0,detail:0}),pn=on(dn),fn=F({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,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!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=on(fn),mn=on(F({},fn,{dataTransfer:0})),bn=on(F({},dn,{relatedTarget:0})),hn=on(F({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=F({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=on(yn),_n=on(F({},cn,{data:0})),wn={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 kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function En(){return kn}var On=F({},dn,{key:function(e){if(e.key){var t=wn[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:En,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}}),jn=on(On),Pn=on(F({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Cn=on(F({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),Tn=on(F({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=F({},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}),An=on(In),Nn=[9,13,27,32],Ln=u&&"CompositionEvent"in window,Rn=null;u&&"documentMode"in document&&(Rn=document.documentMode);var Dn=u&&"TextEvent"in window&&!Rn,Fn=u&&(!Ln||Rn&&8<Rn&&11>=Rn),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.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 Hn={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 Qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Oe(r),0<(t=Zr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Wn=null;function qn(e){Mr(e,0)}function Gn(e){if(W(wo(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(u){var Xn;if(u){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;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Zn&&(Zn.detachEvent("onpropertychange",nr),Wn=Zn=null)}function nr(e){if("value"===e.propertyName&&Gn(Wn)){var t=[];Vn(t,Wn,e,we(e)),Ie(qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Zn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Gn(Wn)}function ar(e,t){if("click"===e)return Gn(t)}function ir(e,t){if("input"===e||"change"===e)return Gn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(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)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(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=cr(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 gr(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=ur(n,a);var i=ur(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 mr=u&&"documentMode"in document&&11>=document.documentMode,br=null,hr=null,yr=null,vr=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==br||br!==q(r)||("selectionStart"in(r=br)&&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},yr&&lr(yr,r)||(yr=r,0<(r=Zr(hr,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},Sr={},kr={};function Er(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 kr)return Sr[e]=n[t];return e}u&&(kr=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 Or=Er("animationend"),jr=Er("animationiteration"),Pr=Er("animationstart"),Cr=Er("transitionend"),Tr=new Map,Ir="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 Ar(e,t){Tr.set(e,t),l(t,[e])}for(var Nr=0;Nr<Ir.length;Nr++){var Lr=Ir[Nr];Ar(Lr.toLowerCase(),"on"+(Lr[0].toUpperCase()+Lr.slice(1)))}Ar(Or,"onAnimationEnd"),Ar(jr,"onAnimationIteration"),Ar(Pr,"onAnimationStart"),Ar("dblclick","onDoubleClick"),Ar("focusin","onFocus"),Ar("focusout","onBlur"),Ar(Cr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="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(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Fr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if($e.apply(this,arguments),De){if(!De)throw Error(a(198));var u=Fe;De=!1,Fe=null,Me||(Me=!0,ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=0!=(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 s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Fr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Fr(o,s,c),a=l}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zr(e,t){var n=t[bo];void 0===n&&(n=t[bo]=new Set);var r=e+"__bubble";n.has(r)||(Hr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),Hr(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&&(Dr.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 Hr(e,t,n,r){switch(Yt(t)){case 1:var o=Vt;break;case 4:o=Zt;break;default:o=Wt}n=o.bind(null,t,n,e),o=void 0,!Ne||"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 Qr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=vo(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Ie((function(){var r=a,o=we(n),i=[];e:{var s=Tr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=jn;break;case"focusin":c="focus",l=bn;break;case"focusout":c="blur",l=bn;break;case"beforeblur":case"afterblur":l=bn;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":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Cn;break;case Or:case jr:case Pr:l=hn;break;case Cr:l=Tn;break;case"scroll":l=pn;break;case"wheel":l=An;break;case"copy":case"cut":case"paste":l=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Pn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,g=r;null!==g;){var m=(f=g).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Ae(g,p))&&u.push(Vr(g,m,f)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===_e||!(c=n.relatedTarget||n.fromElement)||!vo(c)&&!c[mo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?vo(c):null)&&(c!==(d=Ue(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,m="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=Pn,m="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:wo(l),f=null==c?s:wo(c),(s=new u(m,g+"leave",l,n,o)).target=d,s.relatedTarget=f,m=null,vo(o)===r&&((u=new u(p,g+"enter",c,n,o)).target=f,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(p=c,g=0,f=u=l;f;f=Wr(f))g++;for(f=0,m=p;m;m=Wr(m))f++;for(;0<g-f;)u=Wr(u),g--;for(;0<f-g;)p=Wr(p),f--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=Wr(u),p=Wr(p)}u=null}else u=null;null!==l&&qr(i,s,l,u,!1),null!==c&&null!==d&&qr(i,d,c,u,!0)}if("select"===(l=(s=r?wo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var b=Yn;else if(Qn(s))if(Kn)b=ir;else{b=or;var h=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(b=ar);switch(b&&(b=b(e,r))?Vn(i,b,n,o):(h&&h(e,s,r),"focusout"===e&&(h=s._wrapperState)&&h.controlled&&"number"===s.type&&ee(s,"number",s.value)),h=r?wo(r):window,e){case"focusin":(Qn(h)||"true"===h.contentEditable)&&(br=h,hr=r,yr=null);break;case"focusout":yr=hr=br=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,_r(i,n,o);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":_r(i,n,o)}var y;if(Ln)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&&(Fn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Kt=o)?Kt.value:Kt.textContent,Un=!0)),0<(h=Zr(r,v)).length&&(v=new _n(v,e,null,n,o),i.push({event:v,listeners:h}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Dn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!Ln&&Bn(e,t)?(e=en(),Jt=Xt=Kt=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 Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Zr(r,"onBeforeInput")).length&&(o=new _n("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=y))}Mr(i,t)}))}function Vr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Zr(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=Ae(e,n))&&r.unshift(Vr(e,a,o)),null!=(a=Ae(e,t))&&r.push(Vr(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 s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Ae(n,a))&&i.unshift(Vr(n,l,s)):o||null!=(l=Ae(n,a))&&i.push(Vr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Gr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Kr(e){return("string"==typeof e?e:""+e).replace(Gr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Kr(t),Kr(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(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(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 co(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 uo(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,go="__reactProps$"+po,mo="__reactContainer$"+po,bo="__reactEvents$"+po,ho="__reactListeners$"+po,yo="__reactHandles$"+po;function vo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[mo]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function _o(e){return!(e=e[fo]||e[mo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function xo(e){return e[go]||null}var So=[],ko=-1;function Eo(e){return{current:e}}function Oo(e){0>ko||(e.current=So[ko],So[ko]=null,ko--)}function jo(e,t){ko++,So[ko]=e.current,e.current=t}var Po={},Co=Eo(Po),To=Eo(!1),Io=Po;function Ao(e,t){var n=e.type.contextTypes;if(!n)return Po;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 No(e){return null!=(e=e.childContextTypes)}function Lo(){Oo(To),Oo(Co)}function Ro(e,t,n){if(Co.current!==Po)throw Error(a(168));jo(Co,t),jo(To,n)}function Do(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,H(e)||"Unknown",o));return F({},n,r)}function Fo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Po,Io=Co.current,jo(Co,e),jo(To,To.current),!0}function Mo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Do(e,t,Io),r.__reactInternalMemoizedMergedChildContext=e,Oo(To),Oo(Co),jo(Co,e)):Oo(To),jo(To,n)}var zo=null,Bo=!1,$o=!1;function Uo(e){null===zo?zo=[e]:zo.push(e)}function Ho(){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,Ho),o}finally{vt=t,$o=!1}}return null}var Qo=[],Vo=0,Zo=null,Wo=0,qo=[],Go=0,Yo=null,Ko=1,Xo="";function Jo(e,t){Qo[Vo++]=Wo,Qo[Vo++]=Zo,Zo=e,Wo=t}function ea(e,t,n){qo[Go++]=Ko,qo[Go++]=Xo,qo[Go++]=Yo,Yo=e;var r=Ko;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,Ko=1<<32-it(t)+o|n<<o|r,Xo=a+e}else Ko=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===Zo;)Zo=Qo[--Vo],Qo[Vo]=null,Wo=Qo[--Vo],Qo[Vo]=null;for(;e===Yo;)Yo=qo[--Go],qo[Go]=null,Xo=qo[--Go],qo[Go]=null,Ko=qo[--Go],qo[Go]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Ic(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 la(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=co(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:Ko,overflow:Xo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Ic(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function ua(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(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(ca(e))throw fa(),Error(a(418));for(;t;)sa(e,t),t=co(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=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=co(e.nextSibling)}function ga(){oa=ra=null,aa=!1}function ma(e){null===ia?ia=[e]:ia.push(e)}var ba=_.ReactCurrentBatchConfig;function ha(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 ya(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 _a(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=Nc(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 s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(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===A&&va(a)===t.type)?((r=o(t,n.props)).ref=ha(e,t,n),r.return=e,r):((r=Lc(n.type,n.key,n.props,null,e.mode,r)).ref=ha(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Mc(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=Rc(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=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Lc(t.type,t.key,t.props,null,e.mode,n)).ref=ha(e,null,t),n.return=e,n;case x:return(t=Mc(t,e.mode,n)).return=e,t;case A:return p(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Rc(t,e.mode,n,null)).return=e,t;ya(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:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?c(e,t,n,r):null;case x:return n.key===o?u(e,t,n,r):null;case A:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||R(n))return null!==o?null:d(e,t,n,r,null);ya(e,n)}return null}function g(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case w:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case A:return g(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||R(r))return d(t,e=e.get(n)||null,r,o,null);ya(t,r)}return null}function m(o,a,s,l){for(var c=null,u=null,d=a,m=a=0,b=null;null!==d&&m<s.length;m++){d.index>m?(b=d,d=null):b=d.sibling;var h=f(o,d,s[m],l);if(null===h){null===d&&(d=b);break}e&&d&&null===h.alternate&&t(o,d),a=i(h,a,m),null===u?c=h:u.sibling=h,u=h,d=b}if(m===s.length)return n(o,d),aa&&Jo(o,m),c;if(null===d){for(;m<s.length;m++)null!==(d=p(o,s[m],l))&&(a=i(d,a,m),null===u?c=d:u.sibling=d,u=d);return aa&&Jo(o,m),c}for(d=r(o,d);m<s.length;m++)null!==(b=g(d,o,m,s[m],l))&&(e&&null!==b.alternate&&d.delete(null===b.key?m:b.key),a=i(b,a,m),null===u?c=b:u.sibling=b,u=b);return e&&d.forEach((function(e){return t(o,e)})),aa&&Jo(o,m),c}function b(o,s,l,c){var u=R(l);if("function"!=typeof u)throw Error(a(150));if(null==(l=u.call(l)))throw Error(a(151));for(var d=u=null,m=s,b=s=0,h=null,y=l.next();null!==m&&!y.done;b++,y=l.next()){m.index>b?(h=m,m=null):h=m.sibling;var v=f(o,m,y.value,c);if(null===v){null===m&&(m=h);break}e&&m&&null===v.alternate&&t(o,m),s=i(v,s,b),null===d?u=v:d.sibling=v,d=v,m=h}if(y.done)return n(o,m),aa&&Jo(o,b),u;if(null===m){for(;!y.done;b++,y=l.next())null!==(y=p(o,y.value,c))&&(s=i(y,s,b),null===d?u=y:d.sibling=y,d=y);return aa&&Jo(o,b),u}for(m=r(o,m);!y.done;b++,y=l.next())null!==(y=g(m,o,b,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?b:y.key),s=i(y,s,b),null===d?u=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(o,e)})),aa&&Jo(o,b),u}return function e(r,a,i,l){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 w:e:{for(var c=i.key,u=a;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===A&&va(c)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=ha(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((a=Rc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Lc(i.type,i.key,i.props,null,r.mode,l)).ref=ha(r,a,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==a;){if(a.key===u){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=Mc(i,r.mode,l)).return=r,r=a}return s(r);case A:return e(r,a,(u=i._init)(i._payload),l)}if(te(i))return m(r,a,i,l);if(R(i))return b(r,a,i,l);ya(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=Fc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var wa=_a(!0),xa=_a(!1),Sa=Eo(null),ka=null,Ea=null,Oa=null;function ja(){Oa=Ea=ka=null}function Pa(e){var t=Sa.current;Oo(Sa),e._currentValue=t}function Ca(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 Ta(e,t){ka=e,Oa=Ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(vs=!0),e.firstContext=null)}function Ia(e){var t=e._currentValue;if(Oa!==e)if(e={context:e,memoizedValue:t,next:null},null===Ea){if(null===ka)throw Error(a(308));Ea=e,ka.dependencies={lanes:0,firstContext:e}}else Ea=Ea.next=e;return t}var Aa=null;function Na(e){null===Aa?Aa=[e]:Aa.push(e)}function La(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Na(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ra(e,r)}function Ra(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 Da=!1;function Fa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(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,0!=(2&Pl)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ra(e,n)}return null===(o=r.interleaved)?(t.next=t,Na(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ra(e,n)}function $a(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(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 Ha(e,t,n,r){var o=e.updateQueue;Da=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==a){var d=o.baseState;for(i=0,u=c=l=null,s=a;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(g=m.payload)){d=g.call(f,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p="function"==typeof(g=m.payload)?g.call(f,d,p):g))break e;d=F({},d,p);break e;case 2:Da=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(p=s).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Dl|=i,e.lanes=i,e.memoizedState=d}}function Qa(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 Va={},Za=Eo(Va),Wa=Eo(Va),qa=Eo(Va);function Ga(e){if(e===Va)throw Error(a(174));return e}function Ya(e,t){switch(jo(qa,t),jo(Wa,e),jo(Za,Va),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Oo(Za),jo(Za,t)}function Ka(){Oo(Za),Oo(Wa),Oo(qa)}function Xa(e){Ga(qa.current);var t=Ga(Za.current),n=le(t,e.type);t!==n&&(jo(Wa,e),jo(Za,n))}function Ja(e){Wa.current===e&&(Oo(Za),Oo(Wa))}var ei=Eo(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(0!=(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=_.ReactCurrentDispatcher,ai=_.ReactCurrentBatchConfig,ii=0,si=null,li=null,ci=null,ui=!1,di=!1,pi=0,fi=0;function gi(){throw Error(a(321))}function mi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function bi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Ji:es,e=n(r,o),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(a(301));i+=1,ci=li=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(di)}if(oi.current=Xi,t=null!==li&&null!==li.next,ii=0,ci=li=si=null,ui=!1,t)throw Error(a(300));return e}function hi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ci?si.memoizedState=ci=e:ci=ci.next=e,ci}function vi(){if(null===li){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=li.next;var t=null===ci?si.memoizedState:ci.next;if(null!==t)ci=t,li=e;else{if(null===e)throw Error(a(310));e={memoizedState:(li=e).memoizedState,baseState:li.baseState,baseQueue:li.baseQueue,queue:li.queue,next:null},null===ci?si.memoizedState=ci=e:ci=ci.next=e}return ci}function _i(e,t){return"function"==typeof t?t(e):t}function wi(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=li,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((ii&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,si.lanes|=d,Dl|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(vs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Dl|=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 s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(vs=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function ki(e,t){var n=si,r=vi(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,vs=!0),r=r.queue,Di(ji.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ci&&1&ci.memoizedState.tag){if(n.flags|=2048,Ii(9,Oi.bind(null,n,r,o,t),void 0,null),null===Cl)throw Error(a(349));0!=(30&ii)||Ei(n,t,o)}return o}function Ei(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Pi(t)&&Ci(e)}function ji(e,t,n){return n((function(){Pi(t)&&Ci(e)}))}function Pi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Ci(e){var t=Ra(e,1);null!==t&&nc(t,e,1,-1)}function Ti(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:_i,lastRenderedState:e},t.queue=e,e=e.dispatch=qi.bind(null,si,e),[t.memoizedState,e]}function Ii(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.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 Ai(){return vi().memoizedState}function Ni(e,t,n,r){var o=yi();si.flags|=e,o.memoizedState=Ii(1|t,n,void 0,void 0===r?null:r)}function Li(e,t,n,r){var o=vi();r=void 0===r?null:r;var a=void 0;if(null!==li){var i=li.memoizedState;if(a=i.destroy,null!==r&&mi(r,i.deps))return void(o.memoizedState=Ii(t,n,a,r))}si.flags|=e,o.memoizedState=Ii(1|t,n,a,r)}function Ri(e,t){return Ni(8390656,8,e,t)}function Di(e,t){return Li(2048,8,e,t)}function Fi(e,t){return Li(4,2,e,t)}function Mi(e,t){return Li(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,Li(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&&mi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Hi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&mi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Qi(e,t,n){return 0==(21&ii)?(e.baseState&&(e.baseState=!1,vs=!0),e.memoizedState=n):(sr(n,t)||(n=mt(),si.lanes|=n,Dl|=n,e.baseState=!0),t)}function Vi(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 Zi(){return vi().memoizedState}function Wi(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Gi(e))Yi(t,n);else if(null!==(n=La(e,t,n,r))){nc(n,e,r,ec()),Ki(n,t,r)}}function qi(e,t,n){var r=tc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Gi(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,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Na(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=La(e,t,o,r))&&(nc(n,e,r,o=ec()),Ki(n,t,r))}}function Gi(e){var t=e.alternate;return e===si||null!==t&&t===si}function Yi(e,t){di=ui=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ki(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Xi={readContext:Ia,useCallback:gi,useContext:gi,useEffect:gi,useImperativeHandle:gi,useInsertionEffect:gi,useLayoutEffect:gi,useMemo:gi,useReducer:gi,useRef:gi,useState:gi,useDebugValue:gi,useDeferredValue:gi,useTransition:gi,useMutableSource:gi,useSyncExternalStore:gi,useId:gi,unstable_isNewReconciler:!1},Ji={readContext:Ia,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Ia,useEffect:Ri,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ni(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ni(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ni(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();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,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Ti,useDebugValue:$i,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Ti(!1),t=e[0];return e=Vi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=yi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Cl)throw Error(a(349));0!=(30&ii)||Ei(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ri(ji.bind(null,r,i,e),[e]),r.flags|=2048,Ii(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=Cl.identifierPrefix;if(aa){var n=Xo;t=":"+t+"R"+(n=(Ko&~(1<<32-it(Ko)-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},es={readContext:Ia,useCallback:Ui,useContext:Ia,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Fi,useLayoutEffect:Mi,useMemo:Hi,useReducer:wi,useRef:Ai,useState:function(){return wi(_i)},useDebugValue:$i,useDeferredValue:function(e){return Qi(vi(),li.memoizedState,e)},useTransition:function(){return[wi(_i)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:ki,useId:Zi,unstable_isNewReconciler:!1},ts={readContext:Ia,useCallback:Ui,useContext:Ia,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Fi,useLayoutEffect:Mi,useMemo:Hi,useReducer:xi,useRef:Ai,useState:function(){return xi(_i)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===li?t.memoizedState=e:Qi(t,li.memoizedState,e)},useTransition:function(){return[xi(_i)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:ki,useId:Zi,unstable_isNewReconciler:!1};function ns(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rs(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var os={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=za(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nc(t,e,o,r),$a(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=za(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nc(t,e,o,r),$a(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=za(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Ba(e,o,r))&&(nc(t,e,r,n),$a(t,e,r))}};function as(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(o,a))}function is(e,t,n){var r=!1,o=Po,a=t.contextType;return"object"==typeof a&&null!==a?a=Ia(a):(o=No(t)?Io:Co.current,a=(r=null!=(r=t.contextTypes))?Ao(e,o):Po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(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&&os.enqueueReplaceState(t,t.state,null)}function ls(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Fa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Ia(a):(a=No(t)?Io:Co.current,o.context=Ao(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(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&&os.enqueueReplaceState(o,o.state,null),Ha(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function cs(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 us(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ds(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ps="function"==typeof WeakMap?WeakMap:Map;function fs(e,t,n){(n=za(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ql||(Ql=!0,Vl=r),ds(0,t)},n}function gs(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(){ds(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){ds(0,t),"function"!=typeof r&&(null===Zl?Zl=new Set([this]):Zl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function ms(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;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=Ec.bind(null,e,t,n),t.then(e,e))}function bs(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 hs(e,t,n,r,o){return 0==(1&e.mode)?(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):(e.flags|=65536,e.lanes=o,e)}var ys=_.ReactCurrentOwner,vs=!1;function _s(e,t,n,r){t.child=null===e?xa(t,null,n,r):wa(t,e.child,n,r)}function ws(e,t,n,r,o){n=n.render;var a=t.ref;return Ta(t,o),r=bi(e,t,n,r,a,o),n=hi(),null===e||vs?(aa&&n&&ta(t),t.flags|=1,_s(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Qs(e,t,o))}function xs(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Ac(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Lc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ss(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Qs(e,t,o)}return t.flags|=1,(e=Nc(a,r)).ref=t.ref,e.return=t,t.child=e}function Ss(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(vs=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,Qs(e,t,o);0!=(131072&e.flags)&&(vs=!0)}}return Os(e,t,n,r,o)}function ks(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},jo(Nl,Al),Al|=n;else{if(0==(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,jo(Nl,Al),Al|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,jo(Nl,Al),Al|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,jo(Nl,Al),Al|=r;return _s(e,t,o,n),t.child}function Es(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Os(e,t,n,r,o){var a=No(n)?Io:Co.current;return a=Ao(t,a),Ta(t,o),n=bi(e,t,n,r,a,o),r=hi(),null===e||vs?(aa&&r&&ta(t),t.flags|=1,_s(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Qs(e,t,o))}function js(e,t,n,r,o){if(No(n)){var a=!0;Fo(t)}else a=!1;if(Ta(t,o),null===t.stateNode)Hs(e,t),is(t,n,r),ls(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Ia(c):c=Ao(t,c=No(n)?Io:Co.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ss(t,i,r,c),Da=!1;var p=t.memoizedState;i.state=p,Ha(t,r,i,o),l=t.memoizedState,s!==r||p!==l||To.current||Da?("function"==typeof u&&(rs(t,n,u,r),l=t.memoizedState),(s=Da||as(t,n,s,r,p,l,c))?(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=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ma(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ns(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Ia(l):l=Ao(t,l=No(n)?Io:Co.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&ss(t,i,r,l),Da=!1,p=t.memoizedState,i.state=p,Ha(t,r,i,o);var g=t.memoizedState;s!==d||p!==g||To.current||Da?("function"==typeof f&&(rs(t,n,f,r),g=t.memoizedState),(c=Da||as(t,n,c,r,p,g,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,g,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,g,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),i.props=r,i.state=g,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ps(e,t,n,r,a,o)}function Ps(e,t,n,r,o,a){Es(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Mo(t,n,!1),Qs(e,t,a);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=wa(t,e.child,null,a),t.child=wa(t,null,s,a)):_s(e,t,s,a),t.memoizedState=r.state,o&&Mo(t,n,!0),t.child}function Cs(e){var t=e.stateNode;t.pendingContext?Ro(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ro(0,t.context,!1),Ya(e,t.containerInfo)}function Ts(e,t,n,r,o){return ga(),ma(o),t.flags|=256,_s(e,t,n,r),t.child}var Is,As,Ns,Ls,Rs={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),jo(ei,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&o)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Dc(l,o,0,null),e=Rc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(n),t.memoizedState=Rs,e):Ms(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=us(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Dc({mode:"visible",children:r.children},o,0,null),(i=Rc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&wa(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=Rs,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=us(i=Error(a(419)),r,void 0))}if(l=0!=(s&e.childLanes),vs||l){if(null!==(r=Cl)){switch(s&-s){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|s))?0:o)&&o!==i.retryLane&&(i.retryLane=o,Ra(e,o),nc(r,e,o,-1))}return mc(),zs(e,t,s,r=us(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=jc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(qo[Go++]=Ko,qo[Go++]=Xo,qo[Go++]=Yo,Ko=e.id,Xo=e.overflow,Yo=t),t=Ms(t,r.children),t.flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&l)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Nc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Nc(r,s):(s=Rc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Ds(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Rs,o}return e=(s=e.child).sibling,o=Nc(s,{mode:"visible",children:o.children}),0==(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 Ms(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&ma(r),wa(t,e.child,null,n),(e=Ms(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ca(e.return,t,n)}function $s(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 Us(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(_s(e,t,r.children,n),0!=(2&(r=ei.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bs(e,n,t);else if(19===e.tag)Bs(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(jo(ei,r),0==(1&t.mode))t.memoizedState=null;else 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),$s(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}$s(t,!0,n,null,a);break;case"together":$s(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Qs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=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=Nc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Vs(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 Zs(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 Ws(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 Zs(t),null;case 1:case 17:return No(t.type)&&Lo(),Zs(t),null;case 3:return r=t.stateNode,Ka(),Oo(To),Oo(Co),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&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(ic(ia),ia=null))),As(e,t),Zs(t),null;case 5:Ja(t);var o=Ga(qa.current);if(n=t.type,null!==e&&null!=t.stateNode)Ns(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 Zs(t),null}if(e=Ga(Za.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[go]=i,e=0!=(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<Rr.length;o++)zr(Rr[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 l in ye(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&zr("scroll",r)}switch(n){case"input":Z(r),J(r,i,!0);break;case"textarea":Z(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{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[fo]=t,e[go]=r,Is(e,t,!1,!1),t.stateNode=e;e:{switch(l=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<Rr.length;o++)zr(Rr[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=G(e,r),zr("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=F({},r,{value:void 0}),zr("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),zr("invalid",e)}for(i in ye(n,o),c=o)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?be(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&zr("scroll",e):null!=u&&v(e,i,u,l))}switch(n){case"input":Z(e),J(e,r,!1);break;case"textarea":Z(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(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 Zs(t),null;case 6:if(e&&null!=t.stateNode)Ls(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=Ga(qa.current),Ga(Za.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,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Zs(t),null;case 13:if(Oo(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))fa(),ga(),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 ga(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Zs(t),i=!1}else null!==ia&&(ic(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&ei.current)?0===Ll&&(Ll=3):mc())),null!==t.updateQueue&&(t.flags|=4),Zs(t),null);case 4:return Ka(),As(e,t),null===e&&Ur(t.stateNode.containerInfo),Zs(t),null;case 10:return Pa(t.type._context),Zs(t),null;case 19:if(Oo(ei),null===(i=t.memoizedState))return Zs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Vs(i,!1);else{if(0!==Ll||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ti(e))){for(t.flags|=128,Vs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=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=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return jo(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ke()>Ul&&(t.flags|=128,r=!0,Vs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Vs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return Zs(t),null}else 2*Ke()-i.renderingStartTime>Ul&&1073741824!==n&&(t.flags|=128,r=!0,Vs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=ei.current,jo(ei,r?1&n|2:1&n),t):(Zs(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Al)&&(Zs(t),6&t.subtreeFlags&&(t.flags|=8192)):Zs(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function qs(e,t){switch(na(t),t.tag){case 1:return No(t.type)&&Lo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ka(),Oo(To),Oo(Co),ri(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Ja(t),null;case 13:if(Oo(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ga()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Oo(ei),null;case 4:return Ka(),null;case 10:return Pa(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Is=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}},As=function(){},Ns=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ga(Za.current);var a,i=null;switch(n){case"input":o=G(e,o),r=G(e,r),i=[];break;case"select":o=F({},o,{value:void 0}),r=F({},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(u in ye(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var l=o[u];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Ls=function(e,t,n,r){n!==r&&(t.flags|=4)};var Gs=!1,Ys=!1,Ks="function"==typeof WeakSet?WeakSet:Set,Xs=null;function Js(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){kc(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){kc(e,t,r)}}var tl=!1;function nl(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&&el(t,n,a)}o=o.next}while(o!==r)}}function rl(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 ol(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 al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[go],delete t[bo],delete t[ho],delete t[yo])),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 il(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||il(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 ll(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(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(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(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var ul=null,dl=!1;function pl(e,t,n){for(n=n.child;null!==n;)fl(e,t,n),n=n.sibling}function fl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(s){}switch(n.tag){case 5:Ys||Js(n,t);case 6:var r=ul,o=dl;ul=null,pl(e,t,n),dl=o,null!==(ul=r)&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Ut(e)):lo(ul,n.stateNode));break;case 4:r=ul,o=dl,ul=n.stateNode.containerInfo,dl=!0,pl(e,t,n),ul=r,dl=o;break;case 0:case 11:case 14:case 15:if(!Ys&&(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&&(0!=(2&a)||0!=(4&a))&&el(n,t,i),o=o.next}while(o!==r)}pl(e,t,n);break;case 1:if(!Ys&&(Js(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){kc(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,pl(e,t,n),Ys=r):pl(e,t,n);break;default:pl(e,t,n)}}function gl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Ks),t.forEach((function(t){var r=Pc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ml(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,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,dl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,dl=!0;break e}l=l.return}if(null===ul)throw Error(a(160));fl(i,s,o),ul=null,dl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(u){kc(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ml(t,e),hl(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(b){kc(e,e.return,b)}try{nl(5,e,e.return)}catch(b){kc(e,e.return,b)}}break;case 1:ml(t,e),hl(e),512&r&&null!==n&&Js(n,n.return);break;case 5:if(ml(t,e),hl(e),512&r&&null!==n&&Js(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(b){kc(e,e.return,b)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&K(o,i),ve(l,s);var u=ve(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?be(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):v(o,d,p,u)}switch(l){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 g=i.value;null!=g?ne(o,!!i.multiple,g,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[go]=i}catch(b){kc(e,e.return,b)}}break;case 6:if(ml(t,e),hl(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(b){kc(e,e.return,b)}}break;case 3:if(ml(t,e),hl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(b){kc(e,e.return,b)}break;case 4:default:ml(t,e),hl(e);break;case 13:ml(t,e),hl(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||($l=Ke())),4&r&&gl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,ml(t,e),Ys=u):ml(t,e),hl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Xs=e,d=e.child;null!==d;){for(p=Xs=d;null!==Xs;){switch(g=(f=Xs).child,f.tag){case 0:case 11:case 14:case 15:nl(4,f,f.return);break;case 1:Js(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){r=f,n=f.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(b){kc(r,n,b)}}break;case 5:Js(f,f.return);break;case 22:if(null!==f.memoizedState){wl(p);continue}}null!==g?(g.return=f,Xs=g):wl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(b){kc(e,e.return,b)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(b){kc(e,e.return,b)}}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:ml(t,e),hl(e),4&r&&gl(e);case 21:}}function hl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(il(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),cl(e,sl(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ll(e,sl(e),i);break;default:throw Error(a(161))}}catch(s){kc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yl(e,t,n){Xs=e,vl(e,t,n)}function vl(e,t,n){for(var r=0!=(1&e.mode);null!==Xs;){var o=Xs,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Gs;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Ys;s=Gs;var c=Ys;if(Gs=i,(Ys=l)&&!c)for(Xs=o;null!==Xs;)l=(i=Xs).child,22===i.tag&&null!==i.memoizedState?xl(o):null!==l?(l.return=i,Xs=l):xl(o);for(;null!==a;)Xs=a,vl(a,t,n),a=a.sibling;Xs=o,Gs=s,Ys=c}_l(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Xs=a):_l(e)}}function _l(e){for(;null!==Xs;){var t=Xs;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ys||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Qa(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Qa(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.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 u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(a(163))}Ys||512&t.flags&&ol(t)}catch(f){kc(t,t.return,f)}}if(t===e){Xs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xs=n;break}Xs=t.return}}function wl(e){for(;null!==Xs;){var t=Xs;if(t===e){Xs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xs=n;break}Xs=t.return}}function xl(e){for(;null!==Xs;){var t=Xs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(l){kc(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(l){kc(t,o,l)}}var a=t.return;try{ol(t)}catch(l){kc(t,a,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){kc(t,i,l)}}}catch(l){kc(t,t.return,l)}if(t===e){Xs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Xs=s;break}Xs=t.return}}var Sl,kl=Math.ceil,El=_.ReactCurrentDispatcher,Ol=_.ReactCurrentOwner,jl=_.ReactCurrentBatchConfig,Pl=0,Cl=null,Tl=null,Il=0,Al=0,Nl=Eo(0),Ll=0,Rl=null,Dl=0,Fl=0,Ml=0,zl=null,Bl=null,$l=0,Ul=1/0,Hl=null,Ql=!1,Vl=null,Zl=null,Wl=!1,ql=null,Gl=0,Yl=0,Kl=null,Xl=-1,Jl=0;function ec(){return 0!=(6&Pl)?Ke():-1!==Xl?Xl:Xl=Ke()}function tc(e){return 0==(1&e.mode)?1:0!=(2&Pl)&&0!==Il?Il&-Il:null!==ba.transition?(0===Jl&&(Jl=mt()),Jl):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function nc(e,t,n,r){if(50<Yl)throw Yl=0,Kl=null,Error(a(185));ht(e,n,r),0!=(2&Pl)&&e===Cl||(e===Cl&&(0==(2&Pl)&&(Fl|=n),4===Ll&&sc(e,Il)),rc(e,r),1===n&&0===Pl&&0==(1&t.mode)&&(Ul=Ke()+500,Bo&&Ho()))}function rc(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),s=1<<i,l=o[i];-1===l?0!=(s&n)&&0==(s&r)||(o[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=pt(e,e===Cl?Il: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)}(lc.bind(null,e)):Uo(lc.bind(null,e)),io((function(){0==(6&Pl)&&Ho()})),n=null;else{switch(_t(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Cc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Xl=-1,Jl=0,0!=(6&Pl))throw Error(a(327));var n=e.callbackNode;if(xc()&&e.callbackNode!==n)return null;var r=pt(e,e===Cl?Il:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var o=Pl;Pl|=2;var i=gc();for(Cl===e&&Il===t||(Hl=null,Ul=Ke()+500,pc(e,t));;)try{yc();break}catch(l){fc(e,l)}ja(),El.current=i,Pl=o,null!==Tl?t=0:(Cl=null,Il=0,t=Ll)}if(0!==t){if(2===t&&(0!==(o=gt(e))&&(r=o,t=ac(e,o))),1===t)throw n=Rl,pc(e,0),sc(e,r),rc(e,Ke()),n;if(6===t)sc(e,r);else{if(o=e.current.alternate,0==(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(!sr(a(),o))return!1}catch(s){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)&&(2===(t=bc(e,r))&&(0!==(i=gt(e))&&(r=i,t=ac(e,i))),1===t))throw n=Rl,pc(e,0),sc(e,r),rc(e,Ke()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:wc(e,Bl,Hl);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=$l+500-Ke())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(wc.bind(null,e,Bl,Hl),t);break}wc(e,Bl,Hl);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kl(r/1960))-r)){e.timeoutHandle=ro(wc.bind(null,e,Bl,Hl),r);break}wc(e,Bl,Hl);break;default:throw Error(a(329))}}}return rc(e,Ke()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=Bl,Bl=n,null!==t&&ic(t)),e}function ic(e){null===Bl?Bl=e:Bl.push.apply(Bl,e)}function sc(e,t){for(t&=~Ml,t&=~Fl,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 lc(e){if(0!=(6&Pl))throw Error(a(327));xc();var t=pt(e,0);if(0==(1&t))return rc(e,Ke()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Rl,pc(e,0),sc(e,t),rc(e,Ke()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wc(e,Bl,Hl),rc(e,Ke()),null}function cc(e,t){var n=Pl;Pl|=1;try{return e(t)}finally{0===(Pl=n)&&(Ul=Ke()+500,Bo&&Ho())}}function uc(e){null!==ql&&0===ql.tag&&0==(6&Pl)&&xc();var t=Pl;Pl|=1;var n=jl.transition,r=vt;try{if(jl.transition=null,vt=1,e)return e()}finally{vt=r,jl.transition=n,0==(6&(Pl=t))&&Ho()}}function dc(){Al=Nl.current,Oo(Nl)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Tl)for(n=Tl.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Lo();break;case 3:Ka(),Oo(To),Oo(Co),ri();break;case 5:Ja(r);break;case 4:Ka();break;case 13:case 19:Oo(ei);break;case 10:Pa(r.type._context);break;case 22:case 23:dc()}n=n.return}if(Cl=e,Tl=e=Nc(e.current,null),Il=Al=t,Ll=0,Rl=null,Ml=Fl=Dl=0,Bl=zl=null,null!==Aa){for(t=0;t<Aa.length;t++)if(null!==(r=(n=Aa[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}Aa=null}return e}function fc(e,t){for(;;){var n=Tl;try{if(ja(),oi.current=Xi,ui){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ui=!1}if(ii=0,ci=li=si=null,di=!1,pi=0,Ol.current=null,null===n||null===n.return){Ll=1,Rl=t,Tl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Il,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(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 g=bs(s);if(null!==g){g.flags&=-257,hs(g,s,l,0,t),1&g.mode&&ms(i,u,t),c=u;var m=(t=g).updateQueue;if(null===m){var b=new Set;b.add(c),t.updateQueue=b}else m.add(c);break e}if(0==(1&t)){ms(i,u,t),mc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var h=bs(s);if(null!==h){0==(65536&h.flags)&&(h.flags|=256),hs(h,s,l,0,t),ma(cs(c,l));break e}}i=c=cs(c,l),4!==Ll&&(Ll=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,fs(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Zl||!Zl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,gs(i,l,t));break e}}i=i.return}while(null!==i)}_c(n)}catch(_){t=_,Tl===n&&null!==n&&(Tl=n=n.return);continue}break}}function gc(){var e=El.current;return El.current=Xi,null===e?Xi:e}function mc(){0!==Ll&&3!==Ll&&2!==Ll||(Ll=4),null===Cl||0==(268435455&Dl)&&0==(268435455&Fl)||sc(Cl,Il)}function bc(e,t){var n=Pl;Pl|=2;var r=gc();for(Cl===e&&Il===t||(Hl=null,pc(e,t));;)try{hc();break}catch(o){fc(e,o)}if(ja(),Pl=n,El.current=r,null!==Tl)throw Error(a(261));return Cl=null,Il=0,Ll}function hc(){for(;null!==Tl;)vc(Tl)}function yc(){for(;null!==Tl&&!Ge();)vc(Tl)}function vc(e){var t=Sl(e.alternate,e,Al);e.memoizedProps=e.pendingProps,null===t?_c(e):Tl=t,Ol.current=null}function _c(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Ws(n,t,Al)))return void(Tl=n)}else{if(null!==(n=qs(n,t)))return n.flags&=32767,void(Tl=n);if(null===e)return Ll=6,void(Tl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Tl=t);Tl=t=e}while(null!==t);0===Ll&&(Ll=5)}function wc(e,t,n){var r=vt,o=jl.transition;try{jl.transition=null,vt=1,function(e,t,n,r){do{xc()}while(null!==ql);if(0!=(6&Pl))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===Cl&&(Tl=Cl=null,Il=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Wl||(Wl=!0,Cc(tt,(function(){return xc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=jl.transition,jl.transition=null;var s=vt;vt=1;var l=Pl;Pl|=4,Ol.current=null,function(e,t){if(eo=Qt,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(w){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var g;p!==n||0!==o&&3!==p.nodeType||(l=s+o),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)f=p,p=g;for(;;){if(p===e)break t;if(f===n&&++u===o&&(l=s),f===i&&++d===r&&(c=s),null!==(g=p.nextSibling))break;f=(p=f).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Qt=!1,Xs=t;null!==Xs;)if(e=(t=Xs).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Xs=e;else for(;null!==Xs;){t=Xs;try{var m=t.alternate;if(0!=(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!==m){var b=m.memoizedProps,h=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?b:ns(t.type,b),h);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var _=t.stateNode.containerInfo;1===_.nodeType?_.textContent="":9===_.nodeType&&_.documentElement&&_.removeChild(_.documentElement);break;default:throw Error(a(163))}}catch(w){kc(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Xs=e;break}Xs=t.return}m=tl,tl=!1}(e,n),bl(n,e),gr(to),Qt=!!eo,to=eo=null,e.current=n,yl(n,e,o),Ye(),Pl=l,vt=s,jl.transition=i}else e.current=n;if(Wl&&(Wl=!1,ql=e,Gl=o),i=e.pendingLanes,0===i&&(Zl=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),rc(e,Ke()),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(Ql)throw Ql=!1,e=Vl,Vl=null,e;0!=(1&Gl)&&0!==e.tag&&xc(),i=e.pendingLanes,0!=(1&i)?e===Kl?Yl++:(Yl=0,Kl=e):Yl=0,Ho()}(e,t,n,r)}finally{jl.transition=o,vt=r}return null}function xc(){if(null!==ql){var e=_t(Gl),t=jl.transition,n=vt;try{if(jl.transition=null,vt=16>e?16:e,null===ql)var r=!1;else{if(e=ql,ql=null,Gl=0,0!=(6&Pl))throw Error(a(331));var o=Pl;for(Pl|=4,Xs=e.current;null!==Xs;){var i=Xs,s=i.child;if(0!=(16&Xs.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Xs=u;null!==Xs;){var d=Xs;switch(d.tag){case 0:case 11:case 15:nl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xs=p;else for(;null!==Xs;){var f=(d=Xs).sibling,g=d.return;if(al(d),d===u){Xs=null;break}if(null!==f){f.return=g,Xs=f;break}Xs=g}}}var m=i.alternate;if(null!==m){var b=m.child;if(null!==b){m.child=null;do{var h=b.sibling;b.sibling=null,b=h}while(null!==b)}}Xs=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Xs=s;else e:for(;null!==Xs;){if(0!=(2048&(i=Xs).flags))switch(i.tag){case 0:case 11:case 15:nl(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Xs=y;break e}Xs=i.return}}var v=e.current;for(Xs=v;null!==Xs;){var _=(s=Xs).child;if(0!=(2064&s.subtreeFlags)&&null!==_)_.return=s,Xs=_;else e:for(s=v;null!==Xs;){if(0!=(2048&(l=Xs).flags))try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(x){kc(l,l.return,x)}if(l===s){Xs=null;break e}var w=l.sibling;if(null!==w){w.return=l.return,Xs=w;break e}Xs=l.return}}if(Pl=o,Ho(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(x){}r=!0}return r}finally{vt=n,jl.transition=t}}return!1}function Sc(e,t,n){e=Ba(e,t=fs(0,t=cs(n,t),1),1),t=ec(),null!==e&&(ht(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)Sc(e,e,n);else for(;null!==t;){if(3===t.tag){Sc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Zl||!Zl.has(r))){t=Ba(t,e=gs(t,e=cs(n,e),1),1),e=ec(),null!==t&&(ht(t,1,e),rc(t,e));break}}t=t.return}}function Ec(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Cl===e&&(Il&n)===n&&(4===Ll||3===Ll&&(130023424&Il)===Il&&500>Ke()-$l?pc(e,0):Ml|=n),rc(e,t)}function Oc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=ec();null!==(e=Ra(e,t))&&(ht(e,t,n),rc(e,n))}function jc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Oc(e,n)}function Pc(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),Oc(e,n)}function Cc(e,t){return We(e,t)}function Tc(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 Ic(e,t,n,r){return new Tc(e,t,n,r)}function Ac(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nc(e,t){var n=e.alternate;return null===n?((n=Ic(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 Lc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Ac(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Rc(n.children,o,i,t);case k:s=8,o|=8;break;case E:return(e=Ic(12,n,t,2|o)).elementType=E,e.lanes=i,e;case C:return(e=Ic(13,n,t,o)).elementType=C,e.lanes=i,e;case T:return(e=Ic(19,n,t,o)).elementType=T,e.lanes=i,e;case N:return Dc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case O:s=10;break e;case j:s=9;break e;case P:s=11;break e;case I:s=14;break e;case A:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Ic(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Rc(e,t,n,r){return(e=Ic(7,e,r,t)).lanes=n,e}function Dc(e,t,n,r){return(e=Ic(22,e,r,t)).elementType=N,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Ic(6,e,null,t)).lanes=n,e}function Mc(e,t,n){return(t=Ic(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(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=bt(0),this.expirationTimes=bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=bt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Bc(e,t,n,r,o,a,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Ic(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fa(a),e}function $c(e){if(!e)return Po;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(No(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(No(n))return Do(e,n,t)}return t}function Uc(e,t,n,r,o,a,i,s,l){return(e=Bc(n,r,!0,e,0,a,0,s,l)).context=$c(null),n=e.current,(a=za(r=ec(),o=tc(n))).callback=null!=t?t:null,Ba(n,a,o),e.current.lanes=o,ht(e,o,r),rc(e,r),e}function Hc(e,t,n,r){var o=t.current,a=ec(),i=tc(o);return n=$c(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))&&(nc(e,o,i,a),$a(e,o,i)),i}function Qc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Zc(e,t){Vc(e,t),(e=e.alternate)&&Vc(e,t)}Sl=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||To.current)vs=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return vs=!1,function(e,t,n){switch(t.tag){case 3:Cs(t),ga();break;case 5:Xa(t);break;case 1:No(t.type)&&Fo(t);break;case 4:Ya(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;jo(Sa,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(jo(ei,1&ei.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(jo(ei,1&ei.current),null!==(e=Qs(e,t,n))?e.sibling:null);jo(ei,1&ei.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Us(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),jo(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,ks(e,t,n)}return Qs(e,t,n)}(e,t,n);vs=0!=(131072&e.flags)}else vs=!1,aa&&0!=(1048576&t.flags)&&ea(t,Wo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var o=Ao(t,Co.current);Ta(t,n),o=bi(null,t,r,e,o,n);var i=hi();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,No(r)?(i=!0,Fo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Fa(t),o.updater=os,t.stateNode=o,o._reactInternals=t,ls(t,r,e,n),t=Ps(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),_s(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Ac(e)?1:0;if(null!=e){if((e=e.$$typeof)===P)return 11;if(e===I)return 14}return 2}(r),e=ns(r,e),o){case 0:t=Os(null,t,r,e,n);break e;case 1:t=js(null,t,r,e,n);break e;case 11:t=ws(null,t,r,e,n);break e;case 14:t=xs(null,t,r,ns(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Os(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,js(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(Cs(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Ma(e,t),Ha(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ts(e,t,r,n,o=cs(Error(a(423)),t));break e}if(r!==o){t=Ts(e,t,r,n,o=cs(Error(a(424)),t));break e}for(oa=co(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(ga(),r===o){t=Qs(e,t,n);break e}_s(e,t,r,n)}t=t.child}return t;case 5:return Xa(t),null===e&&ua(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Es(e,t),_s(e,t,s,n),t.child;case 6:return null===e&&ua(t),null;case 13:return Fs(e,t,n);case 4:return Ya(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=wa(t,null,r,n):_s(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ws(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return _s(e,t,t.pendingProps,n),t.child;case 8:case 12:return _s(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,jo(Sa,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!To.current){t=Qs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=za(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Ca(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ca(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}_s(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ta(t,n),r=r(o=Ia(o)),t.flags|=1,_s(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),xs(e,t,r,o=ns(r.type,o),n);case 15:return Ss(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ns(r,o),Hs(e,t),t.tag=1,No(r)?(e=!0,Fo(t)):e=!1,Ta(t,n),is(t,r,o),ls(t,r,o,n),Ps(null,t,r,!0,e,n);case 19:return Us(e,t,n);case 22:return ks(e,t,n)}throw Error(a(156,t.tag))};var Wc="function"==typeof reportError?reportError:function(e){console.error(e)};function qc(e){this._internalRoot=e}function Gc(e){this._internalRoot=e}function Yc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Kc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xc(){}function Jc(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Qc(i);s.call(e)}}Hc(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=Qc(i);a.call(e)}}var i=Uc(t,r,e,0,null,!1,0,"",Xc);return e._reactRootContainer=i,e[mo]=i.current,Ur(8===e.nodeType?e.parentNode:e),uc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Qc(l);s.call(e)}}var l=Bc(e,0,!1,null,0,!1,0,"",Xc);return e._reactRootContainer=l,e[mo]=l.current,Ur(8===e.nodeType?e.parentNode:e),uc((function(){Hc(t,l,n,r)})),l}(n,t,e,o,r);return Qc(i)}Gc.prototype.render=qc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Hc(e,t,null,null)},Gc.prototype.unmount=qc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Hc(null,e,null,null)})),t[mo]=null}},Gc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nt.length&&0!==t&&t<Nt[n].priority;n++);Nt.splice(n,0,e),0===n&&Ft(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),rc(t,Ke()),0==(6&Pl)&&(Ul=Ke()+500,Ho()))}break;case 13:uc((function(){var t=Ra(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),Zc(e,1)}},xt=function(e){if(13===e.tag){var t=Ra(e,134217728);if(null!==t)nc(t,e,134217728,ec());Zc(e,134217728)}},St=function(e){if(13===e.tag){var t=tc(e),n=Ra(e,t);if(null!==n)nc(n,e,t,ec());Zc(e,t)}},kt=function(){return vt},Et=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)}},Pe=cc,Ce=uc;var eu={usingClientEntryPoint:!1,Events:[_o,wo,xo,Oe,je,cc]},tu={findFiberByHostInstance:vo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nu={bundleType:tu.bundleType,version:tu.version,rendererPackageName:tu.rendererPackageName,rendererConfig:tu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ve(e))?null:e.stateNode},findFiberByHostInstance:tu.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 ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{ot=ru.inject(nu),at=ru}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yc(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(!Yc(e))throw Error(a(299));var n=!1,r="",o=Wc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Bc(e,1,!1,null,0,n,0,r,o),e[mo]=t.current,Ur(8===e.nodeType?e.parentNode:e),new qc(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=Ve(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Kc(t))throw Error(a(200));return Jc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Wc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Uc(t,null,e,1,null!=n?n:null,o,0,i,s),e[mo]=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 Gc(t)},t.render=function(e,t,n){if(!Kc(t))throw Error(a(200));return Jc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Kc(e))throw Error(a(40));return!!e._reactRootContainer&&(uc((function(){Jc(null,null,e,!1,(function(){e._reactRootContainer=null,e[mo]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Kc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Jc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},8751:(e,t,n)=>{"use strict";var r=n(967);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},967:(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(6521)},5154: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 s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!a(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!a(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])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((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!a(e[c[l]],i[c[l]]))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}}},3810:(e,t,n)=>{"use strict";n.d(t,{B6:()=>V,ql:()=>J});var r=n(5271),o=n(507),a=n.n(o),i=n(5154),s=n.n(i),l=n(3670),c=n.n(l),u=n(631),d=n.n(u);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,g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(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 b={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},h={rel:["amphtml","canonical","alternate"]},y={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"]},_=Object.keys(b).map((function(e){return b[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(w).reduce((function(e,t){return e[w[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},k=function(e){var t=S(e,b.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},E=function(e){return S(e,"onChangeClientState")||function(){}},O=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)}),{})},j=function(e,t){return t.filter((function(e){return void 0!==e[b.BASE]})).map((function(e){return e[b.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}),[])},P=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 s=a[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],l=p({},r[s],o[s]);r[s]=l}return e}),[]).reverse()},C=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},T=function(e){return Array.isArray(e)?e.join(""):e},I=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}},A=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[b.NOSCRIPT,b.SCRIPT,b.STYLE],L=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,"'")},R=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}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},F=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=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},M=function(e,t,n){switch(e){case b.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(b.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=R(n),a=T(t);return o?"<"+e+' data-rh="true" '+o+">"+L(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return F(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+'="'+L(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===N.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,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var g=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=I(e.metaTags,v),a=I(t,h),i=I(n,y);return{priorityMethods:{toComponent:function(){return[].concat(F(b.META,o.priority),F(b.LINK,a.priority),F(b.SCRIPT,i.priority))},toString:function(){return M(b.META,o.priority,r)+" "+M(b.LINK,a.priority,r)+" "+M(b.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=g.priorityMethods,u=g.linkTags,d=g.metaTags,p=g.scriptTags}return{priority:f,base:M(b.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",o,r),link:M(b.LINK,u,r),meta:M(b.META,d,r),noscript:M(b.NOSCRIPT,a,r),script:M(b.SCRIPT,p,r),style:M(b.STYLE,i,r),title:M(b.TITLE,{title:l,titleAttributes:c},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({}),H=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),Q="undefined"!=typeof document,V=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);V.canUseDOM=Q,V.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},V.defaultProps={context:{}},V.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(b.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),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===o.indexOf(l)&&o.push(l);var u=a.indexOf(l);-1!==u&&a.splice(u,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,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;W(b.BODY,e.bodyAttributes),W(b.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=T(e)),W(b.TITLE,t)}(u,d);var p={baseTag:Z(b.BASE,n),linkTags:Z(b.LINK,o),metaTags:Z(b.META,a),noscriptTags:Z(b.NOSCRIPT,i),scriptTags:Z(b.SCRIPT,l),styleTags:Z(b.STYLE,c)},f={},g={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(g[e]=p[e].oldTags)})),t&&t(),s(e,f,g)},G=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:j(["href"],e),bodyAttributes:O("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:O("htmlAttributes",e),linkTags:P(b.LINK,["rel","href"],e),metaTags:P(b.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:P(b.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:P(b.SCRIPT,["src","innerHTML"],e),styleTags:P(b.STYLE,["cssText"],e),title:k(e),titleAttributes:O("titleAttributes",e),prioritizeSeoTags:C(e,"prioritizeSeoTags")});V.canUseDOM?(t=a,G&&cancelAnimationFrame(G),t.defer?G=requestAnimationFrame((function(){q(t,(function(){G=null}))})):(q(t),G=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:H.isRequired},Y.displayName="HelmetDispatcher";var K=["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!s()(A(this.props,"helmetData"),A(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case b.SCRIPT:case b.NOSCRIPT:return{innerHTML:t};case b.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 b.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case b.BODY:return p({},o,{bodyAttributes:p({},a)});case b.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 c()(_.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 "+_.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!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=m(r,K),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,a),l){case b.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case b.LINK:case b.META:case b.NOSCRIPT:case b.SCRIPT:case b.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(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"},198:(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,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=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,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case b:case m:case l:return e;default:return t}}case o:return t}}}function x(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=b,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||w(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===b},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===_||e.$$typeof===h)},t.typeOf=w},6237:(e,t,n)=>{"use strict";e.exports=n(198)},7677:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(3225),o=n(6920),a=n(5271);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},8594:(e,t,n)=>{"use strict";n.d(t,{OL:()=>_,UT:()=>d,VK:()=>u,rU:()=>h});var r=n(3225),o=n(2666),a=n(5271),i=n(4047),s=n(6920),l=n(3804),c=n(8624),u=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.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{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.q_)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{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.ob)(e,null,null,t):e},g=function(e){return e},m=a.forwardRef;void 0===m&&(m=g);var b=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=g!==m&&t||n,a.createElement("a",u)}));var h=m((function(e,t){var n=e.component,o=void 0===n?b:n,u=e.replace,d=e.to,h=e.innerRef,y=(0,l.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=f(p(d,e.location),e.location),l=r?n.createHref(r):"",b=(0,s.Z)({},y,{href:l,navigate:function(){var t=p(d,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(u||r?n.replace:n.push)(t)}});return g!==m?b.ref=t||h:b.innerRef=h,a.createElement(o,b)}))})),y=function(e){return e},v=a.forwardRef;void 0===v&&(v=y);var _=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,d=e.activeStyle,g=e.className,m=e.exact,b=e.isActive,_=e.location,w=e.sensitive,x=e.strict,S=e.style,k=e.to,E=e.innerRef,O=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=_||e.location,i=f(p(k,n),n),l=i.pathname,j=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),P=j?(0,r.LX)(n.pathname,{path:j,exact:m,sensitive:w,strict:x}):null,C=!!(b?b(P,n):P),T="function"==typeof g?g(C):g,I="function"==typeof S?S(C):S;C&&(T=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(" ")}(T,u),I=(0,s.Z)({},I,d));var A=(0,s.Z)({"aria-current":C&&o||null,className:T,style:I,to:i},O);return y!==v?A.ref=t||E:A.innerRef=E,a.createElement(h,A)}))}))},3225:(e,t,n)=>{"use strict";n.d(t,{AW:()=>k,F0:()=>v,LX:()=>S,TH:()=>N,k6:()=>A,rs:()=>T,s6:()=>y});var r=n(2666),o=n(5271),a=n(507),i=n.n(a),s=n(4047),l=n(8624),c=n(6920),u=n(7720),d=n.n(u),p=(n(6237),n(3804)),f=(n(2535),1073741823),g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return g[e]=(g[e]||0)+1}()+"__",l=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.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=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);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=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.Z)(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[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].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 c.contextTypes=((a={})[s]=i().object,a),{Provider:l,Consumer:c}},b=function(e){var t=m();return t.displayName=e,t},h=b("Router-History"),y=b("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.Z)(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(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var _={},w=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,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;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=_[n]||(_[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return x<w&&(r[e]=a,x++),a}(n,{end:a,strict:s,sensitive:c}),o=r.regexp,i=r.keys,l=o.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var k=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!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,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(y.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function O(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function j(e){return"string"==typeof e?e:(0,s.Ep)(e)}function P(e){return function(){(0,l.Z)(!1)}}function C(){}o.Component;var T=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!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,c.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var I=o.useContext;function A(){return I(h)}function N(){return I(y).location}},8193:(e,t,n)=>{"use strict";var r=n(5271),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.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:c,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},7596:(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"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function h(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}h.prototype.isReactComponent={},h.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")},h.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=h.prototype;var _=v.prototype=new y;_.constructor=v,m(_,h.prototype),_.isPureReactComponent=!0;var w=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!k.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:S.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var j=/\/+/g;function P(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 C(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+P(l,0):a,w(i)?(o="",null!=e&&(o=e.replace(j,"$&/")+"/"),C(i,t,o,"",(function(e){return e}))):null!=i&&(O(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||l&&l.key===i.key?"":(""+i.key).replace(j,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",w(e))for(var c=0;c<e.length;c++){var u=a+P(s=e[c],c);l+=C(s,t,o,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=C(s=s.value,t,o,u=a+P(s,c++),i);else if("object"===s)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 l}function T(e,t,n){if(null==e)return e;var r=[],o=0;return C(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function I(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 A={current:null},N={transition:null},L={ReactCurrentDispatcher:A,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};function R(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:T,forEach:function(e,t,n){T(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(e,(function(e){return e}))||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=h,t.Fragment=o,t.Profiler=i,t.PureComponent=v,t.StrictMode=a,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L,t.act=R,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=m({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=O,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=R,t.useCallback=function(e,t){return A.current.useCallback(e,t)},t.useContext=function(e){return A.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return A.current.useDeferredValue(e)},t.useEffect=function(e,t){return A.current.useEffect(e,t)},t.useId=function(){return A.current.useId()},t.useImperativeHandle=function(e,t,n){return A.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return A.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return A.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return A.current.useMemo(e,t)},t.useReducer=function(e,t,n){return A.current.useReducer(e,t,n)},t.useRef=function(e){return A.current.useRef(e)},t.useState=function(e){return A.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return A.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return A.current.useTransition()},t.version="18.3.1"},5271:(e,t,n)=>{"use strict";e.exports=n(7596)},2676:(e,t,n)=>{"use strict";e.exports=n(8193)},8088:(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 s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,n))c<o&&0>a(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}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 s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,g=!1,m=!1,b=!1,h="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function _(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function w(e){if(b=!1,_(e),!m)if(null!==r(c))m=!0,N(x);else{var t=r(u);null!==t&&L(w,t.startTime-e)}}function x(e,n){m=!1,b&&(b=!1,y(O),O=-1),g=!0;var a=f;try{for(_(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!C());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&o(c),_(n)}else o(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&L(w,d.startTime-n),l=!1}return l}finally{p=null,f=a,g=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,k=!1,E=null,O=-1,j=5,P=-1;function C(){return!(t.unstable_now()-P<j)}function T(){if(null!==E){var e=t.unstable_now();P=e;var n=!0;try{n=E(!0,e)}finally{n?S():(k=!1,E=null)}}else k=!1}if("function"==typeof v)S=function(){v(T)};else if("undefined"!=typeof MessageChannel){var I=new MessageChannel,A=I.port2;I.port1.onmessage=T,S=function(){A.postMessage(null)}}else S=function(){h(T,0)};function N(e){E=e,k||(k=!0,S())}function L(e,n){O=h((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(){m||g||(m=!0,N(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"):j=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},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 s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(u,e),null===r(c)&&e===r(u)&&(b?(y(O),O=-1):b=!0,L(w,a-i))):(e.sortIndex=s,n(c,e),m||g||(m=!0,N(x))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},7537:(e,t,n)=>{"use strict";e.exports=n(8088)},631: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 s=Object.prototype.hasOwnProperty.bind(t),l=0;l<a.length;l++){var c=a[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"GameVault",tagline:"the self-hosted gaming platform for drm-free games",favicon:"img/logo.png",url:"https://gamevau.lt",baseUrl:"/",organizationName:"Phalcode",projectName:"gamevault-docs",onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},plugins:[["@docusaurus/plugin-client-redirects",{fromExtensions:["html","htm"],redirects:[{from:"/gamevault-plus",to:"/docs/gamevault-plus/introduction"},{from:"/license",to:"/docs/license-contribute"}]}],"/home/runner/work/gamevault-docs/gamevault-docs/node_modules/.pnpm/docusaurus-plugin-image-zoom@2.0.0_@docusaurus+theme-classic@3.5.2_@types+react@18.2.45_react_6zaxrksshcrr2kvhptvh3gewqe/node_modules/docusaurus-plugin-image-zoom/lib/index.js","/home/runner/work/gamevault-docs/gamevault-docs/node_modules/.pnpm/@cmfcmf+docusaurus-search-local@1.2.0_@docusaurus+core@3.5.2_@docusaurus+types@3.5.2_react-do_ebqvlsi7hqfuk5gfydy2ivw3ca/node_modules/@cmfcmf/docusaurus-search-local/lib/server/index.js",null],presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateAuthor:!0,showLastUpdateTime:!0,sidebarPath:"/home/runner/work/gamevault-docs/gamevault-docs/sidebars.js",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master"},blog:{showReadingTime:!0,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master",blogSidebarCount:"ALL"},theme:{customCss:"/home/runner/work/gamevault-docs/gamevault-docs/src/css/custom.css"}}]],themeConfig:{navbar:{logo:{alt:"GameVault",src:"img/logo.png"},title:"GameVault",items:[{type:"docSidebar",sidebarId:"docs",position:"left",label:"Documentation"},{to:"/blog",label:"Blog",position:"left"},{label:"GameVault+",to:"/docs/gamevault-plus/introduction",position:"left"},{label:"GitHub",href:"https://github.com/phalcode",position:"right"},{label:"Discord",href:"https://discord.gg/NEdNen2dSu",position:"right"},{label:"Support us",href:"https://gamevau.lt/docs/intro#support",position:"right"}],hideOnScroll:!1},footer:{logo:{src:"img/phalcode_bright.png",srcDark:"img/phalcode_dark.png",height:"30vh",href:"https://phalco.de"},links:[{title:"Shortcuts",items:[{label:"Introduction",to:"/docs/intro"},{label:"Blog",to:"/blog"},{label:"Server Setup",to:"/docs/server-docs/setup"},{label:"Troubleshooting",to:"/docs/troubleshooting"}]},{title:"Development",items:[{label:"Roadmap",href:"https://github.com/orgs/Phalcode/projects/4"},{label:"Repositories",href:"https://github.com/orgs/Phalcode/repositories?q=gamevault"}]},{title:"Socials",items:[{label:"Reddit",href:"https://reddit.com/r/Phalcode"},{label:"Lemmy",href:"https://lemmy.world/c/phalcode"},{label:"Discord",href:"https://discord.gg/NEdNen2dSu"}]},{title:"Support us",items:[{label:"Get GameVault+",href:"/docs/gamevault-plus/introduction"},{label:"GitHub Sponsors",href:"https://github.com/sponsors/Phalcode"},{href:"https://ko-fi.com/phalcode",label:"Ko-Fi"},{href:"https://liberapay.com/phalcode",label:"Liberapay"},{href:"https://www.paypal.me/phalcode",label:"PayPal"}]},{title:"Legals",items:[{label:"License",href:"/docs/license-contribute"},{label:"Legal Notice",href:"https://phalco.de/legal"},{label:"Privacy Policy",href:"https://phalco.de/privacy"},{label:"Terms of Service",href:"https://phalco.de/tos"}]}],copyright:'Copyright \xa9 2024 <a href="https://phalco.de">Phalcode</a> - All Rights Reserved',style:"light"},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:["bash","json"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},zoom:{selector:".zoomable,img:not(nav img):not(footer img):not(.nozoom):not([alt~='ko-fi']):not([alt~='GameVault'])",config:{background:{light:"#e2e1ef",dark:"#171528"}}},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},6920:(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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},2666:(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,{Z:()=>o})},3804:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},4814:(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,{Z:()=>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}},739:(e,t,n)=>{"use strict";n.d(t,{p1:()=>j,y$:()=>ne});var r,o,a,i,s,l,c,u=n(5271),d=n(4814),p=Object.create,f=Object.defineProperty,g=Object.defineProperties,m=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,w=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={}))_.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))w.call(t,n)&&x(e,n,t[n]);return e},k=(e,t)=>g(e,b(t)),E=(e,t)=>{var n={};for(var r in e)_.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n},O=(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 s in a)if(a.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var l=t[s],c=r.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,n,s,a)):(a[i(l)]=!0,e(l,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 s;return l(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,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var g=0;g<f.length;++g){if(d&&d.cause==p+","+g)return;var m=f[g],b=m.inside,h=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var _=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,_+"g")}for(var w=m.pattern||m,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var k=x.value;if(t.length>e.length)return;if(!(k instanceof o)){var E,O=1;if(y){if(!(E=a(w,S,e,h))||E.index>=e.length)break;var j=E.index,P=E.index+E[0].length,C=S;for(C+=x.value.length;j>=C;)C+=(x=x.next).value.length;if(S=C-=x.value.length,x.value instanceof o)continue;for(var T=x;T!==t.tail&&(C<P||"string"==typeof T.value);T=T.next)O++,C+=T.value.length;O--,k=e.slice(S,C),E.index-=S}else if(!(E=a(w,0,k,h)))continue;j=E.index;var I=E[0],A=k.slice(0,j),N=k.slice(j+I.length),L=S+k.length;d&&L>d.reach&&(d.reach=L);var R=x.prev;if(A&&(R=l(t,R,A),S+=A.length),c(t,R,O),x=l(t,R,new o(p,b?r.tokenize(I,b):I,v,I)),N&&l(t,x,N),O>1){var D={cause:p+","+g,reach:L};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){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 l(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 c(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 s="";for(var l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[h(r)[0]])((o={exports:{}}).exports,o),o.exports}),j=((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 h(t))_.call(e,o)||o===n||f(e,o,{get:()=>t[o],enumerable:!(r=m(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(O());j.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]},j.languages.markup.tag.inside["attr-value"].inside.entity=j.languages.markup.entity,j.languages.markup.doctype.inside["internal-subset"].inside=j.languages.markup,j.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(j.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:j.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:j.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},j.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(j.languages.markup.tag,"addAttribute",{value:function(e,t){j.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:j.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),j.languages.html=j.languages.markup,j.languages.mathml=j.languages.markup,j.languages.svg=j.languages.markup,j.languages.xml=j.languages.extend("markup",{}),j.languages.ssml=j.languages.xml,j.languages.atom=j.languages.xml,j.languages.rss=j.languages.xml,a=j,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},l="(?:[^\\\\-]|"+(s=/\\(?: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+")",l=RegExp(l+"-"+l),c={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:l,inside:{escape:s,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:s}},"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":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:s,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},j.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:/[{}[\];(),.:]/},j.languages.javascript=j.languages.extend("clike",{"class-name":[j.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}|\?\?=?|\?\.?|[~:]/}),j.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,j.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:j.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:j.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:j.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:j.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:j.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),j.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:j.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"}}),j.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),j.languages.markup&&(j.languages.markup.tag.addInlined("script","javascript"),j.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")),j.languages.js=j.languages.javascript,j.languages.actionscript=j.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:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),j.languages.actionscript["class-name"].alias="function",delete j.languages.actionscript.parameter,delete j.languages.actionscript["literal-property"],j.languages.markup&&j.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:j.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}(j),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 s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(j),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"))}(j),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})}(j),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}(j),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 c,u=e.languages[n];u?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)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(j),j.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:j.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+/},j.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"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<o.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=o.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(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],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&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)}})),j.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 s(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 l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var a=0;a<n.length;a++){if(c>=d.length)return;var i,l,p,f,g,m,b,h=n[a];"string"==typeof h||"string"==typeof h.content?(i=d[c],-1!==(b=(m="string"==typeof h?h:h.content).indexOf(i))&&(++c,l=m.substring(0,b),g=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(g,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,g),f=m.substring(b+i.length),g=[],l&&g.push(l),g.push(p),f&&(t(m=[f]),g.push.apply(g,m)),"string"==typeof h?(n.splice.apply(n,[a,1].concat(g)),a+=g.length-1):h.content=g)):(b=h.content,Array.isArray(b)?t(b):t([b]))}}(l),new e.Token(i,l,"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 c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,s,c=n[r];"string"!=typeof c&&(a=c.content,Array.isArray(a)?"template-string"===c.type?(c=a[1],3===a.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(a[1]=l(i,s,c))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(j),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}(j),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)}(j),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})}(j),j.languages.n4js=j.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/}),j.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),j.languages.n4jsd=j.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]*/}}(j),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===s(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:s(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=s(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=s(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 s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(j),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}(j),j.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:/[{}[\]();,.:\\]/},j.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=j.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}(j),j.languages.c=j.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|[?:~]|[-+*/%&|^!=<>]=?/}),j.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),j.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},j.languages.c.string],char:j.languages.c.char,comment:j.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:j.languages.c}}}}),j.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 j.languages.c.boolean,j.languages.objectivec=j.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 j.languages.objectivec["class-name"],j.languages.objc=j.languages.objectivec,j.languages.reason=j.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/}),j.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 j.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}(j),j.languages.go=j.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/}),j.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete j.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"])}(j),j.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:/[{}[\];(),.:]/},j.languages.python["string-interpolation"].inside.interpolation.inside.rest=j.languages.python,j.languages.py=j.languages.python,j.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"}},j.languages.webmanifest=j.languages.json;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>P,duotoneDark:()=>C,duotoneLight:()=>T,github:()=>I,gruvboxMaterialDark:()=>q,gruvboxMaterialLight:()=>G,jettwaveDark:()=>Q,jettwaveLight:()=>V,nightOwl:()=>A,nightOwlLight:()=>N,oceanicNext:()=>D,okaidia:()=>F,oneDark:()=>Z,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>H});var P={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)"}}]},C={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"}}]},T={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"}}]},I={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"}}]},A={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)"}}]},N={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)"}}]},L="#c5a5c5",R="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:L}},{types:["attr-value"],style:{color:R}},{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:R}},{types:["punctuation"],style:{color:R}},{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:L}},{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}}]},F={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"}}]},M={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)"}}]},H={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)"}}]},Q={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"}}]},V={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"}}]},Z={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"}}]},G={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=(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=k(S({},n),{backgroundColor:void 0}),r},K=/\r\n|\r|\n/,X=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)},J=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},ee=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,c=t[i];const u=n[i][a];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=J(c,u.type),u.alias&&(c=J(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(K),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)X(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return X(s),l},te=({children:e,language:t,code:n,theme:r,prism:o})=>{const a=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,u.useState)(Y(t,e)),o=(0,u.useRef)(),a=(0,u.useRef)();return(0,u.useEffect)((()=>{t===o.current&&e===a.current||(o.current=t,a.current=e,r(Y(t,e)))}),[e,t]),n})(a,r),s=(e=>(0,u.useCallback)((t=>{var n=t,{className:r,style:o,line:a}=n,i=E(n,["className","style","line"]);const s=k(S({},i),{className:(0,d.Z)("token-line",r)});return"object"==typeof e&&"plain"in e&&(s.style=e.plain),"object"==typeof o&&(s.style=S(S({},s.style||{}),o)),s}),[e]))(i),l=(e=>{const t=(0,u.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,u.useCallback)((e=>{var n=e,{token:r,className:o,style:a}=n,i=E(n,["token","className","style"]);const s=k(S({},i),{className:(0,d.Z)("token",...r.types,o),children:r.content,style:t(r)});return null!=a&&(s.style=S(S({},s.style||{}),a)),s}),[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>{const o=(0,u.useRef)(e);return(0,u.useMemo)((()=>{if(null==n)return ee([t]);const e={code:t,grammar:n,language:r,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),ee(e.tokens)}),[t,n,r])})({prism:o,language:a,code:n,grammar:o.languages[a]});return e({tokens:c,className:`prism-code language-${a}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:l})},ne=e=>(0,u.createElement)(te,k(S({},e),{prism:e.prism||j,theme:e.theme||U,code:e.code,language:e.language}))},8624:(e,t,n)=>{"use strict";n.d(t,{Z:()=>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)}}},5862:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>L,__assign:()=>a,__asyncDelegator:()=>E,__asyncGenerator:()=>k,__asyncValues:()=>O,__await:()=>S,__awaiter:()=>g,__classPrivateFieldGet:()=>I,__classPrivateFieldIn:()=>N,__classPrivateFieldSet:()=>A,__createBinding:()=>b,__decorate:()=>s,__disposeResources:()=>D,__esDecorate:()=>c,__exportStar:()=>h,__extends:()=>o,__generator:()=>m,__importDefault:()=>T,__importStar:()=>C,__makeTemplateObject:()=>j,__metadata:()=>f,__param:()=>l,__propKey:()=>d,__read:()=>v,__rest:()=>i,__runInitializers:()=>u,__setFunctionName:()=>p,__spread:()=>_,__spreadArray:()=>x,__spreadArrays:()=>w,__values:()=>y,default:()=>F});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 s(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 s=e.length-1;s>=0;s--)(o=e[s])&&(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 l(e,t){return function(n,r){t(n,r,e)}}function c(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 s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),p=!1,f=n.length-1;f>=0;f--){var g={};for(var m in r)g[m]="access"===m?{}:r[m];for(var m in r.access)g.access[m]=r.access[m];g.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var b=(0,n[f])("accessor"===l?{get:d.get,set:d.set}:d[c],g);if("accessor"===l){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(s=i(b.get))&&(d.get=s),(s=i(b.set))&&(d.set=s),(s=i(b.init))&&o.unshift(s)}else(s=i(b))&&("field"===l?o.unshift(s):d[c]=s)}u&&Object.defineProperty(u,r.name,d),p=!0}function u(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 g(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(l){s=[6,l],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var b=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 h(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||b(t,e,n)}function y(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(s){o={error:s}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function _(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function w(){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,s=a.length;i<s;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 k(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r={},i("next"),i("throw"),i("return",(function(e){return function(t){return Promise.resolve(t).then(e,c)}})),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||s(e,t)}))},t&&(r[e]=t(r[e])))}function s(e,t){try{(n=o[e](t)).value instanceof S?Promise.resolve(n.value.v).then(l,c):u(a[0][2],n)}catch(r){u(a[0][3],r)}var n}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function E(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 O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(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 j(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var P=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function C(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&b(t,e,n);return P(t,e),t}function T(e){return e&&e.__esModule?e:{default:e}}function I(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 A(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 N(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 L(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 R="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 D(e){function t(t){e.error=e.hasError?new R(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var o=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(o).then(n,(function(e){return t(e),n()}))}catch(a){t(a)}}if(e.hasError)throw e.error}()}const F={__extends:o,__assign:a,__rest:i,__decorate:s,__param:l,__metadata:f,__awaiter:g,__generator:m,__createBinding:b,__exportStar:h,__values:y,__read:v,__spread:_,__spreadArrays:w,__spreadArray:x,__await:S,__asyncGenerator:k,__asyncDelegator:E,__asyncValues:O,__makeTemplateObject:j,__importStar:C,__importDefault:T,__classPrivateFieldGet:I,__classPrivateFieldSet:A,__classPrivateFieldIn:N,__addDisposableResource:L,__disposeResources:D}},7529:e=>{"use strict";e.exports=JSON.parse('{"cmfcmf/d-s-l.searchBar.placeholder":"Search...","cmfcmf/d-s-l.searchBar.noResults":"No results found.","cmfcmf/d-s-l.searchBar.clearButtonTitle":"Clear","cmfcmf/d-s-l.searchBar.detachedCancelButtonText":"Cancel","cmfcmf/d-s-l.searchBar.submitButtonTitle":"Submit"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/blog-deb":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"},{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"47aca6da"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"d9d4e1f1"},{"content":"2024b8b1"},{"content":"fb0a08ce"},{"content":"8795eea9"}],"__props":"c15d9823"},"/blog/2023/07/01/-30b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"a1f57275"},"/blog/2023/07/08/-d10":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"7424d9c3"},"/blog/2023/07/09/-2c2":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"b7026fb3"},"/blog/2023/07/13/-6e5":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"0bfa7fcc"},"/blog/2023/07/15/-b20":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"9748c478"},"/blog/2023/07/19/-8a6":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"c332f8df"},"/blog/2023/07/20/-9b6":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"b493ea72"},"/blog/2023/07/24/-4f4":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"a1216fa4"},"/blog/2023/07/29/-44c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e7aa45d5"},"/blog/2023/11/20/-3f2":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"55dfe132"},"/blog/2023/12/09/-d2c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"0b705c82"},"/blog/2024/03/28/-60b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e0c5798e"},"/blog/2024/04/01/2024-04-01/-59c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"4a6974fe"},"/blog/2024/04/14/-e89":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"cd59c184"},"/blog/2024/05/07/-2dc":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"fbaf179c"},"/blog/2024/10/20/-4e9":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"9019cc36"},"/blog/archive-182":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"f81c1134"},"/blog/authors-0b7":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"ef8b811a"},"/blog/page/2-fd3":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"},{"content":"89db6d1d"},{"content":"2e008a3a"},{"content":"7b99d5ba"},{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"8ea09047"},"/blog/tags-287":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"3a2db09e"},"/blog/tags/age-restrictions-8da":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"416eca3f"},"/blog/tags/ai-generated-names-de1":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"eda4f68b"},"/blog/tags/alternative-0cb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"5ac1a9ec"},"/blog/tags/analytics-105":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"66e9ef90"},"/blog/tags/announcement-3ab":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"ba3af7ad"}],"__props":"9d86e7fa"},"/blog/tags/api-d97":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"7489ed02"}],"__props":"f525eb8a"},"/blog/tags/app-f50":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"10d38074"},"/blog/tags/app-name-migration-b3d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"6535206c"},"/blog/tags/app-optimization-4b7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"b2c9ad8a"},"/blog/tags/april-fools-45b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"47aca6da"}],"__props":"915cb6f7"},"/blog/tags/backend-bc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"5c99339f"},"/blog/tags/backend-application-migration-ea3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"4fb3dfba"},"/blog/tags/beta-testing-8e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"f6f174b1"},"/blog/tags/blackmail-2a4":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"7864c493"},"/blog/tags/box-representation-400":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"24c2f136"},"/blog/tags/bugs-ff5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"3f6275a8"},"/blog/tags/celebration-of-achievements-f97":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"8e064018"},"/blog/tags/client-application-update-45e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"077db3c5"},"/blog/tags/client-update-d5b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"36bc9c65"},"/blog/tags/cloud-based-game-platforms-a94":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"87cefd36"},"/blog/tags/code-access-1ef":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"0a27b0d0"},"/blog/tags/coding-chronicle-d18":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"d527dda4"},"/blog/tags/collaboration-f74":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"bdf26d57"},"/blog/tags/community-e39":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"9147d3af"},{"content":"2024b8b1"},{"content":"ba3af7ad"}],"__props":"dc8e8e39"},"/blog/tags/community-driven-63b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"71f025ea"},"/blog/tags/community-feedback-3ee":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"},{"content":"89db6d1d"}],"__props":"3fc2248c"},"/blog/tags/community-management-93f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"751a244a"},"/blog/tags/continued-support-afc":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"77a8abe0"},"/blog/tags/control-04d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"2a693baa"},"/blog/tags/council-member-a6a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"fee02ac9"},"/blog/tags/creepy-behavior-090":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"e78c2f6e"},"/blog/tags/database-ff5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"a6fed517"},"/blog/tags/decision-making-532":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"63511f3c"},"/blog/tags/developers-487":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8167ef7e"},"/blog/tags/development-b27":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"2024b8b1"}],"__props":"fcad5cc1"},"/blog/tags/development-milestones-1c9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"0ad562e6"},"/blog/tags/discord-6df":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"3fc3119e"},{"content":"2024b8b1"}],"__props":"e3409e91"},"/blog/tags/discord-channel-b2d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"},{"content":"0bd541ed"}],"__props":"18747338"},"/blog/tags/discord-community-growth-136":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"e4878929"},"/blog/tags/discord-server-e4d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"e935068c"},"/blog/tags/discord-server-promotion-f55":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"2f44e9f7"},"/blog/tags/documentation-migration-405":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"6e64f266"},"/blog/tags/domain-acquisition-e1a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"065dfc11"},"/blog/tags/drm-free-c7e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"f94e70f3"},"/blog/tags/drm-free-games-6cf":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"678c8d60"},"/blog/tags/early-access-ed5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"3fc3119e"}],"__props":"d82a1228"},"/blog/tags/easter-egg-7c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"cc616304"},"/blog/tags/engagement-b3b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"01fcf7cb"},"/blog/tags/exclusive-preview-0fe":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"4efd7f8f"},"/blog/tags/family-friendly-282":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"6bbbce94"},"/blog/tags/feature-requests-61d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"80404bfe"},"/blog/tags/features-3d5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"2024b8b1"}],"__props":"d5823966"},"/blog/tags/feedback-a81":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"2024b8b1"},{"content":"fb0a08ce"},{"content":"ba3af7ad"}],"__props":"f58fbef8"},"/blog/tags/file-server-f0b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"a3fd4b44"},"/blog/tags/financial-assistance-e64":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"92440753"},"/blog/tags/future-development-db0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"8f8e2e78"},"/blog/tags/future-features-bed":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"e623129a"},"/blog/tags/game-a29":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"1dd5d307"},"/blog/tags/game-development-97c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"99d3d5ac"},"/blog/tags/game-hub-6c3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"4ff7c2f7"},"/blog/tags/game-shelf-566":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"5fa82f91"},"/blog/tags/game-stash-728":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"51fa4cf1"},"/blog/tags/game-vault-39f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"},{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"2024b8b1"},{"content":"89db6d1d"},{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"9fafd272"},"/blog/tags/game-vault-app-bd6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8ff99662"},"/blog/tags/game-vault-domain-a5b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"8a3c85db"},"/blog/tags/game-vault-journey-52d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"7754063d"},"/blog/tags/game-vault-milestone-030":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"df8deb2d"},"/blog/tags/gaming-2b9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"7489ed02"}],"__props":"9b1663d8"},"/blog/tags/gaming-community-73c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"daddf69a"},"/blog/tags/gaming-experience-f8c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"7c4a7780"},"/blog/tags/gaming-platform-12f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"7a0110f5"},"/blog/tags/gaming-servers-e66":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"9b95b357"},"/blog/tags/git-hub-590":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"886fdd87"},"/blog/tags/git-hub-issue-8a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"77f7e459"},"/blog/tags/gratitude-1d7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"03919031"},"/blog/tags/harassment-89d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"251cbb95"},"/blog/tags/harbor-a9f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"524a34e7"},"/blog/tags/health-monitoring-d88":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"63b46e50"},"/blog/tags/hybrid-model-038":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"2296bbef"},"/blog/tags/igdb-6ff":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"9d5a95a9"},"/blog/tags/improvement-0af":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"7b99d5ba"}],"__props":"013bccfd"},"/blog/tags/inclusivity-7a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"f677311a"},"/blog/tags/installation-pipeline-94b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"5a8f8fa9"},"/blog/tags/kanban-board-372":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"5bbd8cf3"},"/blog/tags/keyhole-representation-ae7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"c71ef62c"},"/blog/tags/lemmy-community-a2d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"26ca8ce1"},"/blog/tags/lemmy-community-launch-9dd":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"063ffaec"},"/blog/tags/lemmy-forum-7bd":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"3ac72a53"},"/blog/tags/logo-concept-discussion-7e7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"bb12dd4d"},"/blog/tags/logo-deciphering-dc4":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"3b659bf0"},"/blog/tags/love-for-game-vault-2f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"e07621e3"},"/blog/tags/market-analysis-c1c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"04a3aba4"},"/blog/tags/metadata-2c9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"7489ed02"}],"__props":"46e7f252"},"/blog/tags/metadata-framework-bc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"8a3716b4"},"/blog/tags/microsoft-store-cc8":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"5a2f6c5d"},"/blog/tags/microsoft-store-publication-a3d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"591d17b8"},"/blog/tags/migration-finalization-138":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"e5c4b825"},"/blog/tags/motivation-8c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"ca2d5c98"},"/blog/tags/multi-user-authentication-3a5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"d9341347"},"/blog/tags/name-migration-progress-396":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"e98ed1e4"},"/blog/tags/negative-narratives-ef7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"2608b85a"},"/blog/tags/new-logo-3d9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"3f99d67c"},"/blog/tags/new-name-28c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"d5dcebd7"},"/blog/tags/new-name-announcement-7b6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"8852925a"},"/blog/tags/notes-f1b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"3bdf5af6"},"/blog/tags/november-update-a61":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"7486ddfc"},"/blog/tags/official-installations-733":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"c9618c72"},"/blog/tags/open-source-6be":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"b2ade0e8"},"/blog/tags/parental-control-65b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"d53cd084"},"/blog/tags/partnership-0de":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"204759e4"},"/blog/tags/partnerships-588":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"e46b1034"},"/blog/tags/platform-0bc":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"2024b8b1"}],"__props":"4e01c0f4"},"/blog/tags/platform-values-376":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"9e75d8bf"},"/blog/tags/plugin-system-4f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"bc0aa6af"},"/blog/tags/poll-eda":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"6ff2a8aa"},"/blog/tags/poll-results-2a9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"500e67e3"},"/blog/tags/polls-829":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"8b8fd5aa"},"/blog/tags/public-f5f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"daf02673"},"/blog/tags/racist-2bb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"979ccdb6"},"/blog/tags/rawg-5ed":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"fb0e7a2f"},"/blog/tags/rawg-api-751":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"0c6a4732"},"/blog/tags/reddit-forum-61e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"0d3164f5"},"/blog/tags/release-15f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"c9cac9d9"},"/blog/tags/renaming-app-d2c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"6a40fd04"},"/blog/tags/revenue-generation-68c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"e0a15777"},"/blog/tags/roadmap-e17":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"92fb1dcd"},"/blog/tags/safe-environment-620":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"1334883d"},"/blog/tags/self-hosted-19e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"7489ed02"}],"__props":"5db30e8c"},"/blog/tags/self-hosted-newsletter-b53":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"573c7c88"},"/blog/tags/selfhosted-podcast-8d7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"c8fbe42c"},"/blog/tags/server-update-7ee":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"805ec11d"},"/blog/tags/sharing-blog-posts-2e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"f2a7e769"},"/blog/tags/simplifying-game-installation-0a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"1ff343c8"},"/blog/tags/software-ed0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"a7d982d4"},"/blog/tags/software-development-f78":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"e9e1de17"},"/blog/tags/software-licensing-6a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"db0b0363"},"/blog/tags/software-updates-742":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"4f991444"},"/blog/tags/solution-a71":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"9046e000"},"/blog/tags/source-available-501":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"cc0b9cf0"},"/blog/tags/source-available-software-42f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"23a0eab7"},"/blog/tags/spam-99a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8577c450"},"/blog/tags/special-thanks-721":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"c8472403"},"/blog/tags/speculation-691":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"5baa483a"},"/blog/tags/spreading-the-word-9a5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"},{"content":"8795eea9"}],"__props":"113d89da"},"/blog/tags/startup-387":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"c7bbcbc7"},"/blog/tags/steam-5cb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"ab6782ba"},"/blog/tags/subreddit-migration-bf0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"19e4f252"},"/blog/tags/subscription-088":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"00dfabf5"},"/blog/tags/subscription-model-7e6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"2aa0a660"},"/blog/tags/subscription-to-updates-role-97f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"534e7ef5"},"/blog/tags/success-cc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"dd9b1d9d"},"/blog/tags/support-a33":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"009c376a"},"/blog/tags/support-request-99a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"ff51e3f1"},"/blog/tags/surge-of-new-users-4ba":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"aeb57253"},"/blog/tags/sustainability-5a8":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"defc3e62"},"/blog/tags/tech-progress-1f3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"20661643"},"/blog/tags/testing-ad7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"82c81335"},"/blog/tags/theme-6c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"73ad9a8e"},"/blog/tags/threats-3f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"4534f50b"},"/blog/tags/transition-process-a0e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"7558b7a2"},"/blog/tags/transparency-7b3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"00fcf151"},"/blog/tags/trolls-22a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"41e301a0"},"/blog/tags/twitch-tv-c17":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"99f2b7e6"},"/blog/tags/ui-redesign-1e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"bcc2422e"},"/blog/tags/ui-update-0da":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"cee5390f"},"/blog/tags/upcoming-update-f39":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"3af271b3"},"/blog/tags/update-fa1":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"0766ce7b"},"/blog/tags/updates-125":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"71f72e4c"},"/blog/tags/user-engagement-51e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"d6138fd2"},"/blog/tags/user-participation-15b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"357ebdd0"},"/blog/tags/video-games-b8c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"7576ca6a"},"/blog/tags/videogame-f65":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"a67f6c3e"},"/blog/tags/voting-f23":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"},{"content":"ba3af7ad"}],"__props":"cd781ce1"},"/docs-8eb":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/docs-824":{"__comp":"a7bd4aaa","__props":"0058b4c6"},"/docs-003":{"__comp":"a94703ab"},"/docs/advanced-usage/early-access-program-1a3":{"__comp":"17896441","content":"264f4708"},"/docs/advanced-usage/fail2ban-gamevault-guide-c21":{"__comp":"17896441","content":"ee98c124"},"/docs/advanced-usage/linux-client-832":{"__comp":"17896441","content":"dcb9a9e8"},"/docs/advanced-usage/rest-api-68a":{"__comp":"17896441","content":"c89c7974"},"/docs/advanced-usage/steamdeck-77f":{"__comp":"17896441","content":"e0da75fc"},"/docs/client-docs/data-9cf":{"__comp":"17896441","content":"51e7bf36"},"/docs/client-docs/gui-04f":{"__comp":"17896441","content":"a1072f2a"},"/docs/client-docs/how-to-use-4c0":{"__comp":"17896441","content":"435302bb"},"/docs/client-docs/setup-ff6":{"__comp":"17896441","content":"b8ecf3c5"},"/docs/client-docs/themes-804":{"__comp":"17896441","content":"f8aea940"},"/docs/client-docs/updating-client-9cd":{"__comp":"17896441","content":"e9e0f988"},"/docs/gamevault-plus/client-apis-64c":{"__comp":"17896441","content":"9404f843"},"/docs/gamevault-plus/client-setup-51c":{"__comp":"17896441","content":"c9d2adb2"},"/docs/gamevault-plus/introduction-4dc":{"__comp":"17896441","content":"ec46a009"},"/docs/gamevault-plus/themes-373":{"__comp":"17896441","content":"f5b06269"},"/docs/intro-423":{"__comp":"17896441","content":"0e384e19"},"/docs/license-contribute-007":{"__comp":"17896441","content":"ba57e113"},"/docs/server-docs/adding-games-e2d":{"__comp":"17896441","content":"14b6aafb"},"/docs/server-docs/backup-and-restore-dbe":{"__comp":"17896441","content":"4d393b3e"},"/docs/server-docs/configuration-d69":{"__comp":"17896441","content":"b28c3188"},"/docs/server-docs/game-types-37b":{"__comp":"17896441","content":"5e5c84c3"},"/docs/server-docs/indexing-dc2":{"__comp":"17896441","content":"b1d7f5b9"},"/docs/server-docs/media-309":{"__comp":"17896441","content":"007d2baa"},"/docs/server-docs/metadata-enrichment/metadata-72d":{"__comp":"17896441","content":"0748c3bc"},"/docs/server-docs/metadata-enrichment/provider-igdb-29e":{"__comp":"17896441","content":"193fe191"},"/docs/server-docs/parental-control-450":{"__comp":"17896441","content":"8ba18f4f"},"/docs/server-docs/plugins-1b3":{"__comp":"17896441","content":"18d9fd7d"},"/docs/server-docs/server-news-bc7":{"__comp":"17896441","content":"438c7fa2"},"/docs/server-docs/setup/-9a4":{"__comp":"17896441","content":"f4d4319b"},"/docs/server-docs/setup/caprover-0fd":{"__comp":"17896441","content":"b4068411"},"/docs/server-docs/setup/docker-compose-d03":{"__comp":"17896441","content":"8c4108df"},"/docs/server-docs/setup/native-472":{"__comp":"17896441","content":"cddec16f"},"/docs/server-docs/setup/synology-container-manager-c21":{"__comp":"17896441","content":"1e0a1681"},"/docs/server-docs/setup/truenas-scale-97e":{"__comp":"17896441","content":"1630eae8"},"/docs/server-docs/setup/unraid-ec0":{"__comp":"17896441","content":"80292675"},"/docs/server-docs/structure-ff2":{"__comp":"17896441","content":"61be0f73"},"/docs/server-docs/updating-games-0d0":{"__comp":"17896441","content":"4a631206"},"/docs/server-docs/user-management-17a":{"__comp":"17896441","content":"e6a59d41"},"/docs/server-docs/websockets-c8c":{"__comp":"17896441","content":"5046667d"},"/docs/troubleshooting-662":{"__comp":"17896441","content":"9d9f8394"},"/-2e1":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=9617,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.dc29ecc1.js b/assets/js/main.dc29ecc1.js new file mode 100644 index 000000000..f59156e1e --- /dev/null +++ b/assets/js/main.dc29ecc1.js @@ -0,0 +1,2 @@ +/*! For license information please see main.dc29ecc1.js.LICENSE.txt */ +(self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[]).push([[8792],{8104:(e,t,n)=>{var r={"./prism-bash":8520,"./prism-json":8228};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=8104},1151:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(758);var r=n(3485),o=n.n(r),a=n(4054);const i={"0058b4c6":[()=>n.e(849).then(n.t.bind(n,6164,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-175.json",6164],"007d2baa":[()=>n.e(5112).then(n.bind(n,3434)),"@site/docs/server-docs/media.md",3434],"009c376a":[()=>n.e(1122).then(n.t.bind(n,2516,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-support-4e8.json",2516],"00dfabf5":[()=>n.e(2079).then(n.t.bind(n,4632,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-223.json",4632],"00fcf151":[()=>n.e(315).then(n.t.bind(n,9771,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-transparency-2c4.json",9771],"013bccfd":[()=>n.e(7145).then(n.t.bind(n,8928,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-improvement-e54.json",8928],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,5735)),"@theme/BlogTagsListPage",5735],"01fcf7cb":[()=>n.e(9809).then(n.t.bind(n,9887,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-engagement-408.json",9887],"03919031":[()=>n.e(9161).then(n.t.bind(n,1854,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gratitude-944.json",1854],"04a3aba4":[()=>n.e(753).then(n.t.bind(n,8150,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-market-analysis-e77.json",8150],"063ffaec":[()=>n.e(5173).then(n.t.bind(n,1940,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-community-launch-0dd.json",1940],"065dfc11":[()=>n.e(4469).then(n.t.bind(n,4820,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-domain-acquisition-75b.json",4820],"0748c3bc":[()=>n.e(5723).then(n.bind(n,6786)),"@site/docs/server-docs/metadata-enrichment/metadata.md",6786],"0766ce7b":[()=>n.e(5455).then(n.t.bind(n,6563,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-update-1f1.json",6563],"077db3c5":[()=>n.e(1028).then(n.t.bind(n,4819,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-client-application-update-423.json",4819],"0a27b0d0":[()=>n.e(3537).then(n.t.bind(n,6529,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-code-access-151.json",6529],"0ad562e6":[()=>n.e(3362).then(n.t.bind(n,2079,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-development-milestones-2fd.json",2079],"0b705c82":[()=>n.e(9030).then(n.bind(n,8410)),"@site/blog/2023-12-09.md",8410],"0bd541ed":[()=>n.e(2230).then(n.bind(n,6263)),"@site/blog/2023-07-19.md?truncated=true",6263],"0bfa7fcc":[()=>n.e(1199).then(n.bind(n,7223)),"@site/blog/2023-07-13.md",7223],"0c6a4732":[()=>n.e(1415).then(n.t.bind(n,1784,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-rawg-api-f4d.json",1784],"0d3164f5":[()=>n.e(2278).then(n.t.bind(n,9758,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-reddit-forum-6ca.json",9758],"0e384e19":[()=>n.e(3976).then(n.bind(n,6187)),"@site/docs/intro.md",6187],"10d38074":[()=>n.e(5662).then(n.t.bind(n,7465,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-0c9.json",7465],"113d89da":[()=>n.e(1340).then(n.t.bind(n,6855,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-spreading-the-word-793.json",6855],"1334883d":[()=>n.e(6039).then(n.t.bind(n,3850,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-safe-environment-fa4.json",3850],"14b6aafb":[()=>n.e(3290).then(n.bind(n,7544)),"@site/docs/server-docs/adding-games.md",7544],"1630eae8":[()=>n.e(2858).then(n.bind(n,3731)),"@site/docs/server-docs/setup/truenas-scale.md",3731],17896441:[()=>Promise.all([n.e(1869),n.e(349),n.e(8401)]).then(n.bind(n,87)),"@theme/DocItem",87],18747338:[()=>n.e(9470).then(n.t.bind(n,4434,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-channel-e8c.json",4434],"18d9fd7d":[()=>n.e(3158).then(n.bind(n,884)),"@site/docs/server-docs/plugins.md",884],"193fe191":[()=>n.e(2386).then(n.bind(n,4956)),"@site/docs/server-docs/metadata-enrichment/provider-igdb.md",4956],"19e4f252":[()=>n.e(843).then(n.t.bind(n,8227,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subreddit-migration-749.json",8227],"1dd5d307":[()=>n.e(5033).then(n.t.bind(n,8853,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-3e5.json",8853],"1e0a1681":[()=>n.e(8532).then(n.bind(n,1788)),"@site/docs/server-docs/setup/synology-container-manager.md",1788],"1ff343c8":[()=>n.e(4581).then(n.t.bind(n,9385,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-simplifying-game-installation-c9f.json",9385],"2024b8b1":[()=>n.e(9738).then(n.bind(n,9666)),"@site/blog/2023-07-29.md?truncated=true",9666],"204759e4":[()=>n.e(9951).then(n.t.bind(n,5545,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-partnership-7e9.json",5545],20661643:[()=>n.e(6467).then(n.t.bind(n,3557,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-tech-progress-c60.json",3557],"2296bbef":[()=>n.e(7619).then(n.t.bind(n,9323,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-hybrid-model-384.json",9323],"23a0eab7":[()=>n.e(7614).then(n.t.bind(n,5697,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-source-available-software-761.json",5697],"24c2f136":[()=>n.e(1718).then(n.t.bind(n,1544,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-box-representation-da0.json",1544],"251cbb95":[()=>n.e(5450).then(n.t.bind(n,1942,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-harassment-11d.json",1942],"2608b85a":[()=>n.e(2691).then(n.t.bind(n,9508,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-negative-narratives-b3f.json",9508],"264f4708":[()=>n.e(7706).then(n.bind(n,5677)),"@site/docs/advanced-usage/early-access-program.md",5677],"26ca8ce1":[()=>n.e(7554).then(n.t.bind(n,1159,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-community-5b4.json",1159],"2a693baa":[()=>n.e(5810).then(n.t.bind(n,9001,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-control-29f.json",9001],"2aa0a660":[()=>n.e(7e3).then(n.t.bind(n,6143,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-model-e21.json",6143],"2e008a3a":[()=>n.e(4769).then(n.bind(n,2857)),"@site/blog/2023-07-13.md?truncated=true",2857],"2f44e9f7":[()=>n.e(7652).then(n.t.bind(n,3840,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-server-promotion-03a.json",3840],"357ebdd0":[()=>n.e(5289).then(n.t.bind(n,9792,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-user-participation-4a2.json",9792],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"36bc9c65":[()=>n.e(14).then(n.t.bind(n,1049,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-client-update-ad5.json",1049],"3a2db09e":[()=>n.e(8121).then(n.t.bind(n,8070,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-df9.json",8070],"3ac72a53":[()=>n.e(4674).then(n.t.bind(n,8832,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-lemmy-forum-09e.json",8832],"3af271b3":[()=>n.e(6030).then(n.t.bind(n,6955,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-upcoming-update-894.json",6955],"3b659bf0":[()=>n.e(3388).then(n.t.bind(n,3724,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-logo-deciphering-a29.json",3724],"3bdf5af6":[()=>n.e(9316).then(n.t.bind(n,5941,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-notes-dea.json",5941],"3f6275a8":[()=>n.e(5759).then(n.t.bind(n,1657,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-bugs-30a.json",1657],"3f99d67c":[()=>n.e(2690).then(n.t.bind(n,5374,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-logo-031.json",5374],"3fc2248c":[()=>n.e(2762).then(n.t.bind(n,293,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-feedback-110.json",293],"3fc3119e":[()=>n.e(3470).then(n.bind(n,1214)),"@site/blog/2023-12-09.md?truncated=true",1214],"416eca3f":[()=>n.e(8130).then(n.t.bind(n,9059,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-age-restrictions-5d3.json",9059],"41e301a0":[()=>n.e(8160).then(n.t.bind(n,9976,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-trolls-732.json",9976],"435302bb":[()=>n.e(2298).then(n.bind(n,7164)),"@site/docs/client-docs/how-to-use.md",7164],"438c7fa2":[()=>n.e(8733).then(n.bind(n,1834)),"@site/docs/server-docs/server-news.md",1834],"4534f50b":[()=>n.e(2206).then(n.t.bind(n,2268,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-threats-86b.json",2268],"46e7f252":[()=>n.e(9724).then(n.t.bind(n,5469,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-metadata-b2d.json",5469],"47aca6da":[()=>n.e(6484).then(n.bind(n,4564)),"@site/blog/2024-04-01/2024-04-01.md?truncated=true",4564],"4a631206":[()=>n.e(6188).then(n.bind(n,8066)),"@site/docs/server-docs/updating-games.md",8066],"4a6974fe":[()=>n.e(6175).then(n.bind(n,5256)),"@site/blog/2024-04-01/2024-04-01.md",5256],"4d393b3e":[()=>n.e(7624).then(n.bind(n,6745)),"@site/docs/server-docs/backup-and-restore.md",6745],"4e01c0f4":[()=>n.e(4308).then(n.t.bind(n,2406,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-platform-b8a.json",2406],"4efd7f8f":[()=>n.e(5877).then(n.t.bind(n,1086,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-exclusive-preview-10f.json",1086],"4f991444":[()=>n.e(3580).then(n.t.bind(n,2155,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-updates-c8d.json",2155],"4fb3dfba":[()=>n.e(8001).then(n.t.bind(n,9420,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-backend-application-migration-545.json",9420],"4ff7c2f7":[()=>n.e(5246).then(n.t.bind(n,4536,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-hub-801.json",4536],"500e67e3":[()=>n.e(3360).then(n.t.bind(n,4641,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-poll-results-c1e.json",4641],"5046667d":[()=>n.e(6395).then(n.bind(n,347)),"@site/docs/server-docs/websockets.md",347],"51e7bf36":[()=>n.e(1334).then(n.bind(n,7458)),"@site/docs/client-docs/data.md",7458],"51fa4cf1":[()=>n.e(9734).then(n.t.bind(n,3525,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-stash-816.json",3525],"524a34e7":[()=>n.e(5138).then(n.t.bind(n,2265,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-harbor-82c.json",2265],"534e7ef5":[()=>n.e(625).then(n.t.bind(n,6287,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-subscription-to-updates-role-792.json",6287],"55dfe132":[()=>n.e(3314).then(n.bind(n,9292)),"@site/blog/2023-11-20.md",9292],"573c7c88":[()=>n.e(3903).then(n.t.bind(n,8626,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-self-hosted-newsletter-6aa.json",8626],"591d17b8":[()=>n.e(4028).then(n.t.bind(n,4669,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microsoft-store-publication-729.json",4669],"5a2f6c5d":[()=>n.e(811).then(n.t.bind(n,2566,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microsoft-store-736.json",2566],"5a8f8fa9":[()=>n.e(4983).then(n.t.bind(n,2067,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-installation-pipeline-ebc.json",2067],"5ac1a9ec":[()=>n.e(1267).then(n.t.bind(n,7790,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-alternative-214.json",7790],"5b1700d1":[()=>n.e(7903).then(n.bind(n,9642)),"@site/docs/server-docs/setup/truenas-scale-legacy.md",9642],"5baa483a":[()=>n.e(2888).then(n.t.bind(n,8961,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-speculation-a41.json",8961],"5bbd8cf3":[()=>n.e(894).then(n.t.bind(n,996,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-kanban-board-262.json",996],"5c99339f":[()=>n.e(3294).then(n.t.bind(n,5248,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-backend-c70.json",5248],"5db30e8c":[()=>n.e(1767).then(n.t.bind(n,9613,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-self-hosted-4fa.json",9613],"5e5c84c3":[()=>n.e(6051).then(n.bind(n,2031)),"@site/docs/server-docs/game-types.md",2031],"5e95c892":[()=>n.e(9647).then(n.bind(n,5979)),"@theme/DocsRoot",5979],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5fa82f91":[()=>n.e(4939).then(n.t.bind(n,4194,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-shelf-102.json",4194],"61be0f73":[()=>n.e(3555).then(n.bind(n,3749)),"@site/docs/server-docs/structure.md",3749],"621db11d":[()=>Promise.all([n.e(1869),n.e(3990),n.e(4212)]).then(n.bind(n,2336)),"@theme/Blog/Pages/BlogAuthorsListPage",2336],"63511f3c":[()=>n.e(2671).then(n.t.bind(n,6735,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-decision-making-c62.json",6735],"63b46e50":[()=>n.e(3328).then(n.t.bind(n,4062,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-health-monitoring-c3c.json",4062],"6535206c":[()=>n.e(295).then(n.t.bind(n,7140,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-name-migration-54a.json",7140],"66e9ef90":[()=>n.e(791).then(n.t.bind(n,2744,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-analytics-43c.json",2744],"678c8d60":[()=>n.e(9751).then(n.t.bind(n,7364,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-drm-free-games-d6f.json",7364],"6875c492":[()=>Promise.all([n.e(1869),n.e(349),n.e(3990),n.e(4813)]).then(n.bind(n,7711)),"@theme/BlogTagsPostsPage",7711],"6a40fd04":[()=>n.e(6590).then(n.t.bind(n,8993,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-renaming-app-716.json",8993],"6bbbce94":[()=>n.e(9636).then(n.t.bind(n,3127,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-family-friendly-d7c.json",3127],"6e64f266":[()=>n.e(902).then(n.t.bind(n,6508,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-documentation-migration-461.json",6508],"6ff2a8aa":[()=>n.e(1474).then(n.t.bind(n,1624,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-poll-55a.json",1624],"71f025ea":[()=>n.e(2124).then(n.t.bind(n,6381,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-driven-c68.json",6381],"71f72e4c":[()=>n.e(8106).then(n.t.bind(n,4681,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-updates-66c.json",4681],"73ad9a8e":[()=>n.e(3629).then(n.t.bind(n,2533,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-theme-b53.json",2533],"7424d9c3":[()=>n.e(7703).then(n.bind(n,6731)),"@site/blog/2023-07-08.md",6731],"7486ddfc":[()=>n.e(6053).then(n.t.bind(n,460,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-november-update-7a2.json",460],"7489ed02":[()=>n.e(8354).then(n.bind(n,4440)),"@site/blog/2023-07-01.md?truncated=true",4440],"751a244a":[()=>n.e(9514).then(n.t.bind(n,584,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-management-84a.json",584],"7558b7a2":[()=>n.e(7400).then(n.t.bind(n,2016,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-transition-process-04a.json",2016],"7576ca6a":[()=>n.e(135).then(n.t.bind(n,4970,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-video-games-c79.json",4970],"7754063d":[()=>n.e(8341).then(n.t.bind(n,7565,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-journey-706.json",7565],"77a8abe0":[()=>n.e(4404).then(n.t.bind(n,3021,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-continued-support-22f.json",3021],"77f7e459":[()=>n.e(3973).then(n.t.bind(n,9912,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-git-hub-issue-e5d.json",9912],"7864c493":[()=>n.e(7457).then(n.t.bind(n,2565,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-blackmail-b61.json",2565],"7a0110f5":[()=>n.e(7530).then(n.t.bind(n,9714,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-platform-8e2.json",9714],"7b99d5ba":[()=>n.e(5572).then(n.bind(n,2592)),"@site/blog/2023-07-09.md?truncated=true",2592],"7c4a7780":[()=>n.e(6410).then(n.t.bind(n,4965,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-experience-d09.json",4965],"7ef69c2b":[()=>n.e(6755).then(n.bind(n,9988)),"@site/blog/2024-10-20.md?truncated=true",9988],80292675:[()=>n.e(3716).then(n.bind(n,8656)),"@site/docs/server-docs/setup/unraid.md",8656],"80404bfe":[()=>n.e(3134).then(n.t.bind(n,9894,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-feature-requests-f1b.json",9894],"805ec11d":[()=>n.e(4974).then(n.t.bind(n,6913,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-server-update-54e.json",6913],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"8167ef7e":[()=>n.e(6142).then(n.t.bind(n,7988,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-developers-001.json",7988],"82c81335":[()=>n.e(1584).then(n.t.bind(n,8417,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-testing-29d.json",8417],"8577c450":[()=>n.e(3354).then(n.t.bind(n,1944,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-spam-cff.json",1944],"8795eea9":[()=>n.e(3154).then(n.bind(n,791)),"@site/blog/2023-07-20.md?truncated=true",791],"87cefd36":[()=>n.e(7601).then(n.t.bind(n,7498,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-cloud-based-game-platforms-ee3.json",7498],"8852925a":[()=>n.e(8793).then(n.t.bind(n,5033,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-name-announcement-577.json",5033],"886fdd87":[()=>n.e(8896).then(n.t.bind(n,1976,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-git-hub-b4b.json",1976],"89db6d1d":[()=>n.e(925).then(n.bind(n,539)),"@site/blog/2023-07-15.md?truncated=true",539],"8a3716b4":[()=>n.e(3503).then(n.t.bind(n,4453,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-metadata-framework-ab4.json",4453],"8a3c85db":[()=>n.e(8611).then(n.t.bind(n,3658,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-domain-161.json",3658],"8b8fd5aa":[()=>n.e(1172).then(n.t.bind(n,8707,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-polls-463.json",8707],"8ba18f4f":[()=>n.e(5735).then(n.bind(n,9696)),"@site/docs/server-docs/parental-control.md",9696],"8c4108df":[()=>n.e(179).then(n.bind(n,8794)),"@site/docs/server-docs/setup/docker-compose.md",8794],"8e064018":[()=>n.e(3163).then(n.t.bind(n,8232,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-celebration-of-achievements-856.json",8232],"8ea09047":[()=>n.e(9385).then(n.t.bind(n,600,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-page-2-433.json",600],"8f8e2e78":[()=>n.e(1142).then(n.t.bind(n,2884,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-future-development-ef2.json",2884],"8ff99662":[()=>n.e(6355).then(n.t.bind(n,4466,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-app-80a.json",4466],"9019cc36":[()=>n.e(8095).then(n.bind(n,8216)),"@site/blog/2024-10-20.md",8216],"9046e000":[()=>n.e(6013).then(n.t.bind(n,6231,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-solution-4b2.json",6231],"9147d3af":[()=>n.e(1840).then(n.bind(n,8396)),"@site/blog/2024-03-28.md?truncated=true",8396],"915cb6f7":[()=>n.e(384).then(n.t.bind(n,9547,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-april-fools-1f0.json",9547],92440753:[()=>n.e(2873).then(n.t.bind(n,4787,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-financial-assistance-4b1.json",4787],"92fb1dcd":[()=>n.e(9552).then(n.t.bind(n,6129,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-roadmap-e35.json",6129],"9404f843":[()=>n.e(5849).then(n.bind(n,340)),"@site/docs/gamevault-plus/client-apis.md",340],"9748c478":[()=>n.e(3911).then(n.bind(n,8169)),"@site/blog/2023-07-15.md",8169],"979ccdb6":[()=>n.e(2082).then(n.t.bind(n,4846,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-racist-e34.json",4846],"99d3d5ac":[()=>n.e(9931).then(n.t.bind(n,5845,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-development-d1f.json",5845],"99f2b7e6":[()=>n.e(4309).then(n.t.bind(n,5318,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-twitch-tv-219.json",5318],"9b1663d8":[()=>n.e(8446).then(n.t.bind(n,8819,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-66f.json",8819],"9b95b357":[()=>n.e(8069).then(n.t.bind(n,8642,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-servers-279.json",8642],"9d5a95a9":[()=>n.e(7782).then(n.t.bind(n,8324,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-igdb-8f8.json",8324],"9d86e7fa":[()=>n.e(4129).then(n.t.bind(n,1136,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-announcement-97a.json",1136],"9d9f8394":[()=>n.e(9013).then(n.bind(n,3303)),"@site/docs/troubleshooting.md",3303],"9e4087bc":[()=>n.e(2711).then(n.bind(n,4597)),"@theme/BlogArchivePage",4597],"9e75d8bf":[()=>n.e(6569).then(n.t.bind(n,324,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-platform-values-e98.json",324],"9fafd272":[()=>n.e(9482).then(n.t.bind(n,3917,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-50c.json",3917],a1072f2a:[()=>n.e(4365).then(n.bind(n,8136)),"@site/docs/client-docs/gui.md",8136],a1216fa4:[()=>n.e(8457).then(n.bind(n,81)),"@site/blog/2023-07-24.md",81],a1f57275:[()=>n.e(2333).then(n.bind(n,2348)),"@site/blog/2023-07-01.md",2348],a3fd4b44:[()=>n.e(11).then(n.t.bind(n,4080,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-file-server-7d3.json",4080],a67f6c3e:[()=>n.e(2652).then(n.t.bind(n,5054,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-videogame-96d.json",5054],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(349),n.e(3990),n.e(7643)]).then(n.bind(n,4939)),"@theme/BlogListPage",4939],a6fed517:[()=>n.e(7672).then(n.t.bind(n,5219,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-database-781.json",5219],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,7278)),"@theme/DocVersionRoot",7278],a7d982d4:[()=>n.e(7268).then(n.t.bind(n,6713,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-e0e.json",6713],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,4590)),"@theme/DocRoot",4590],ab6782ba:[()=>n.e(4146).then(n.t.bind(n,9535,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-steam-739.json",9535],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],aeb57253:[()=>n.e(885).then(n.t.bind(n,9253,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-surge-of-new-users-416.json",9253],b1d7f5b9:[()=>n.e(1387).then(n.bind(n,9091)),"@site/docs/server-docs/indexing.md",9091],b28c3188:[()=>n.e(3468).then(n.bind(n,6266)),"@site/docs/server-docs/configuration.md",6266],b2ade0e8:[()=>n.e(6216).then(n.t.bind(n,391,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-open-source-bc6.json",391],b2c9ad8a:[()=>n.e(5541).then(n.t.bind(n,2523,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-app-optimization-286.json",2523],b4068411:[()=>n.e(7881).then(n.bind(n,763)),"@site/docs/server-docs/setup/caprover.md",763],b493ea72:[()=>n.e(5124).then(n.bind(n,165)),"@site/blog/2023-07-20.md",165],b7026fb3:[()=>n.e(8033).then(n.bind(n,1620)),"@site/blog/2023-07-09.md",1620],b8ecf3c5:[()=>n.e(7508).then(n.bind(n,1289)),"@site/docs/client-docs/setup.md",1289],ba3af7ad:[()=>n.e(9378).then(n.bind(n,5085)),"@site/blog/2023-07-08.md?truncated=true",5085],ba57e113:[()=>n.e(7766).then(n.bind(n,2746)),"@site/docs/license-contribute.md",2746],bb12dd4d:[()=>n.e(5774).then(n.t.bind(n,5990,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-logo-concept-discussion-9f8.json",5990],bc0aa6af:[()=>n.e(9155).then(n.t.bind(n,5251,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-plugin-system-7eb.json",5251],bcc2422e:[()=>n.e(1312).then(n.t.bind(n,6299,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ui-redesign-87d.json",6299],bdf26d57:[()=>n.e(671).then(n.t.bind(n,2166,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-collaboration-ed6.json",2166],c15d9823:[()=>n.e(8146).then(n.t.bind(n,9328,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-bd9.json",9328],c332f8df:[()=>n.e(482).then(n.bind(n,7861)),"@site/blog/2023-07-19.md",7861],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,7933)),"@site/src/pages/index.js",7933],c71ef62c:[()=>n.e(8790).then(n.t.bind(n,1187,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-keyhole-representation-72c.json",1187],c7bbcbc7:[()=>n.e(6260).then(n.t.bind(n,2227,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-startup-dff.json",2227],c8472403:[()=>n.e(2932).then(n.t.bind(n,3926,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-special-thanks-d94.json",3926],c89c7974:[()=>n.e(9267).then(n.bind(n,2830)),"@site/docs/advanced-usage/rest-api.md",2830],c8fbe42c:[()=>n.e(9748).then(n.t.bind(n,4022,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-selfhosted-podcast-cda.json",4022],c9618c72:[()=>n.e(9484).then(n.t.bind(n,3718,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-official-installations-22e.json",3718],c9cac9d9:[()=>n.e(4918).then(n.t.bind(n,371,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-release-6bd.json",371],c9d2adb2:[()=>n.e(3506).then(n.bind(n,9829)),"@site/docs/gamevault-plus/client-setup.md",9829],ca2d5c98:[()=>n.e(9218).then(n.t.bind(n,7527,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-motivation-041.json",7527],cc0b9cf0:[()=>n.e(4605).then(n.t.bind(n,8043,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-source-available-927.json",8043],cc616304:[()=>n.e(2419).then(n.t.bind(n,5029,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-easter-egg-364.json",5029],ccc49370:[()=>Promise.all([n.e(1869),n.e(349),n.e(3990),n.e(3249)]).then(n.bind(n,261)),"@theme/BlogPostPage",261],cd59c184:[()=>n.e(9272).then(n.bind(n,3784)),"@site/blog/2024-04-14.md",3784],cd781ce1:[()=>n.e(1377).then(n.t.bind(n,1138,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-voting-6d1.json",1138],cddec16f:[()=>n.e(2275).then(n.bind(n,5240)),"@site/docs/server-docs/setup/native.md",5240],cee5390f:[()=>n.e(5339).then(n.t.bind(n,6775,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ui-update-5b0.json",6775],d527dda4:[()=>n.e(4440).then(n.t.bind(n,7926,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-coding-chronicle-d70.json",7926],d53cd084:[()=>n.e(1504).then(n.t.bind(n,6997,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-parental-control-493.json",6997],d5823966:[()=>n.e(3088).then(n.t.bind(n,628,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-features-ebb.json",628],d5dcebd7:[()=>n.e(6659).then(n.t.bind(n,4810,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-new-name-7a4.json",4810],d6138fd2:[()=>n.e(9329).then(n.t.bind(n,5064,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-user-engagement-9c0.json",5064],d82a1228:[()=>n.e(3867).then(n.t.bind(n,6850,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-early-access-da1.json",6850],d9341347:[()=>n.e(2680).then(n.t.bind(n,9622,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-multi-user-authentication-6f6.json",9622],d9d4e1f1:[()=>n.e(8987).then(n.bind(n,1384)),"@site/blog/2023-11-20.md?truncated=true",1384],daddf69a:[()=>n.e(2256).then(n.t.bind(n,4674,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-gaming-community-bc6.json",4674],daf02673:[()=>n.e(8022).then(n.t.bind(n,8461,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-public-cb9.json",8461],db0b0363:[()=>n.e(9).then(n.t.bind(n,5674,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-licensing-7b3.json",5674],dc8e8e39:[()=>n.e(488).then(n.t.bind(n,5102,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-community-623.json",5102],dcb9a9e8:[()=>n.e(8190).then(n.bind(n,4608)),"@site/docs/advanced-usage/linux-client.md",4608],dd9b1d9d:[()=>n.e(1822).then(n.t.bind(n,1251,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-success-3d9.json",1251],defc3e62:[()=>n.e(2251).then(n.t.bind(n,7761,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-sustainability-369.json",7761],df8deb2d:[()=>n.e(8530).then(n.t.bind(n,8878,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-game-vault-milestone-4c3.json",8878],e07621e3:[()=>n.e(2220).then(n.t.bind(n,2,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-love-for-game-vault-828.json",2],e0a15777:[()=>n.e(4160).then(n.t.bind(n,6413,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-revenue-generation-e31.json",6413],e0c5798e:[()=>n.e(7125).then(n.bind(n,1568)),"@site/blog/2024-03-28.md",1568],e0da75fc:[()=>n.e(6328).then(n.bind(n,4903)),"@site/docs/advanced-usage/steamdeck.md",4903],e3409e91:[()=>n.e(6231).then(n.t.bind(n,210,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-cfa.json",210],e46b1034:[()=>n.e(1182).then(n.t.bind(n,2382,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-partnerships-171.json",2382],e4878929:[()=>n.e(7933).then(n.t.bind(n,3121,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-community-growth-95a.json",3121],e5c4b825:[()=>n.e(933).then(n.t.bind(n,8003,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-migration-finalization-c0b.json",8003],e623129a:[()=>n.e(9508).then(n.t.bind(n,5353,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-future-features-136.json",5353],e6a59d41:[()=>n.e(2246).then(n.bind(n,8893)),"@site/docs/server-docs/user-management.md",8893],e70842e4:[()=>n.e(9830).then(n.bind(n,5668)),"@site/blog/2024-04-14.md?truncated=true",5668],e78c2f6e:[()=>n.e(8104).then(n.t.bind(n,1853,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-creepy-behavior-daa.json",1853],e7aa45d5:[()=>n.e(1837).then(n.bind(n,9294)),"@site/blog/2023-07-29.md",9294],e935068c:[()=>n.e(5872).then(n.t.bind(n,2953,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-discord-server-e37.json",2953],e98ed1e4:[()=>n.e(8966).then(n.t.bind(n,1534,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-name-migration-progress-68d.json",1534],e9e0f988:[()=>n.e(6929).then(n.bind(n,4462)),"@site/docs/client-docs/updating-client.md",4462],e9e1de17:[()=>n.e(7722).then(n.t.bind(n,5062,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-software-development-c0f.json",5062],ec46a009:[()=>n.e(8983).then(n.bind(n,490)),"@site/docs/gamevault-plus/introduction.md",490],eda4f68b:[()=>n.e(7505).then(n.t.bind(n,8268,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ai-generated-names-ac1.json",8268],ee98c124:[()=>n.e(1764).then(n.bind(n,4469)),"@site/docs/advanced-usage/failt2ban.md",4469],ef8b811a:[()=>n.e(8947).then(n.t.bind(n,6600,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-authors-790.json",6600],f2a7e769:[()=>n.e(1200).then(n.t.bind(n,9517,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-sharing-blog-posts-3f1.json",9517],f4d4319b:[()=>n.e(1784).then(n.bind(n,749)),"@site/docs/server-docs/setup/setup.md",749],f525eb8a:[()=>n.e(8787).then(n.t.bind(n,9805,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-api-049.json",9805],f58fbef8:[()=>n.e(6071).then(n.t.bind(n,2844,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-feedback-67f.json",2844],f5b06269:[()=>n.e(2641).then(n.bind(n,5205)),"@site/docs/gamevault-plus/themes.md",5205],f677311a:[()=>n.e(7831).then(n.t.bind(n,7032,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-inclusivity-cdf.json",7032],f6f174b1:[()=>n.e(1922).then(n.t.bind(n,2334,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-beta-testing-146.json",2334],f81c1134:[()=>n.e(5749).then(n.t.bind(n,7735,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-archive-f05.json",7735],f8aea940:[()=>n.e(6557).then(n.bind(n,5238)),"@site/docs/client-docs/themes.md",5238],f94e70f3:[()=>n.e(9589).then(n.t.bind(n,1552,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-drm-free-406.json",1552],fb0a08ce:[()=>n.e(4034).then(n.bind(n,6323)),"@site/blog/2023-07-24.md?truncated=true",6323],fb0e7a2f:[()=>n.e(494).then(n.t.bind(n,7197,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-rawg-6b2.json",7197],fbaf179c:[()=>n.e(6490).then(n.bind(n,9241)),"@site/blog/2024-05-07.md",9241],fcad5cc1:[()=>n.e(9921).then(n.t.bind(n,5176,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-development-c3c.json",5176],fe2b2ad8:[()=>n.e(1219).then(n.bind(n,1835)),"@site/blog/2024-05-07.md?truncated=true",1835],fee02ac9:[()=>n.e(3936).then(n.t.bind(n,9898,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-council-member-71b.json",9898],ff51e3f1:[()=>n.e(4070).then(n.t.bind(n,257,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-support-request-58e.json",257]};var s=n(6070);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.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,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.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,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(5743),u=n(5612);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2731).then(n.bind(n,2731)),modules:["@theme/NotFound"],webpack:()=>[2731],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],g=(0,c.A)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)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 a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const l=o.__props;return delete o.__props,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...l,...n})})}})}const p=[{path:"/blog",component:d("/blog","deb"),exact:!0},{path:"/blog/2023/07/01/",component:d("/blog/2023/07/01/","30b"),exact:!0},{path:"/blog/2023/07/08/",component:d("/blog/2023/07/08/","d10"),exact:!0},{path:"/blog/2023/07/09/",component:d("/blog/2023/07/09/","2c2"),exact:!0},{path:"/blog/2023/07/13/",component:d("/blog/2023/07/13/","6e5"),exact:!0},{path:"/blog/2023/07/15/",component:d("/blog/2023/07/15/","b20"),exact:!0},{path:"/blog/2023/07/19/",component:d("/blog/2023/07/19/","8a6"),exact:!0},{path:"/blog/2023/07/20/",component:d("/blog/2023/07/20/","9b6"),exact:!0},{path:"/blog/2023/07/24/",component:d("/blog/2023/07/24/","4f4"),exact:!0},{path:"/blog/2023/07/29/",component:d("/blog/2023/07/29/","44c"),exact:!0},{path:"/blog/2023/11/20/",component:d("/blog/2023/11/20/","3f2"),exact:!0},{path:"/blog/2023/12/09/",component:d("/blog/2023/12/09/","d2c"),exact:!0},{path:"/blog/2024/03/28/",component:d("/blog/2024/03/28/","60b"),exact:!0},{path:"/blog/2024/04/01/2024-04-01/",component:d("/blog/2024/04/01/2024-04-01/","59c"),exact:!0},{path:"/blog/2024/04/14/",component:d("/blog/2024/04/14/","e89"),exact:!0},{path:"/blog/2024/05/07/",component:d("/blog/2024/05/07/","2dc"),exact:!0},{path:"/blog/2024/10/20/",component:d("/blog/2024/10/20/","4e9"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","182"),exact:!0},{path:"/blog/authors",component:d("/blog/authors","0b7"),exact:!0},{path:"/blog/page/2",component:d("/blog/page/2","fd3"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","287"),exact:!0},{path:"/blog/tags/age-restrictions",component:d("/blog/tags/age-restrictions","8da"),exact:!0},{path:"/blog/tags/ai-generated-names",component:d("/blog/tags/ai-generated-names","de1"),exact:!0},{path:"/blog/tags/alternative",component:d("/blog/tags/alternative","0cb"),exact:!0},{path:"/blog/tags/analytics",component:d("/blog/tags/analytics","105"),exact:!0},{path:"/blog/tags/announcement",component:d("/blog/tags/announcement","3ab"),exact:!0},{path:"/blog/tags/api",component:d("/blog/tags/api","d97"),exact:!0},{path:"/blog/tags/app",component:d("/blog/tags/app","f50"),exact:!0},{path:"/blog/tags/app-name-migration",component:d("/blog/tags/app-name-migration","b3d"),exact:!0},{path:"/blog/tags/app-optimization",component:d("/blog/tags/app-optimization","4b7"),exact:!0},{path:"/blog/tags/april-fools",component:d("/blog/tags/april-fools","45b"),exact:!0},{path:"/blog/tags/backend",component:d("/blog/tags/backend","bc5"),exact:!0},{path:"/blog/tags/backend-application-migration",component:d("/blog/tags/backend-application-migration","ea3"),exact:!0},{path:"/blog/tags/beta-testing",component:d("/blog/tags/beta-testing","8e3"),exact:!0},{path:"/blog/tags/blackmail",component:d("/blog/tags/blackmail","2a4"),exact:!0},{path:"/blog/tags/box-representation",component:d("/blog/tags/box-representation","400"),exact:!0},{path:"/blog/tags/bugs",component:d("/blog/tags/bugs","ff5"),exact:!0},{path:"/blog/tags/celebration-of-achievements",component:d("/blog/tags/celebration-of-achievements","f97"),exact:!0},{path:"/blog/tags/client-application-update",component:d("/blog/tags/client-application-update","45e"),exact:!0},{path:"/blog/tags/client-update",component:d("/blog/tags/client-update","d5b"),exact:!0},{path:"/blog/tags/cloud-based-game-platforms",component:d("/blog/tags/cloud-based-game-platforms","a94"),exact:!0},{path:"/blog/tags/code-access",component:d("/blog/tags/code-access","1ef"),exact:!0},{path:"/blog/tags/coding-chronicle",component:d("/blog/tags/coding-chronicle","d18"),exact:!0},{path:"/blog/tags/collaboration",component:d("/blog/tags/collaboration","f74"),exact:!0},{path:"/blog/tags/community",component:d("/blog/tags/community","e39"),exact:!0},{path:"/blog/tags/community-driven",component:d("/blog/tags/community-driven","63b"),exact:!0},{path:"/blog/tags/community-feedback",component:d("/blog/tags/community-feedback","3ee"),exact:!0},{path:"/blog/tags/community-management",component:d("/blog/tags/community-management","93f"),exact:!0},{path:"/blog/tags/continued-support",component:d("/blog/tags/continued-support","afc"),exact:!0},{path:"/blog/tags/control",component:d("/blog/tags/control","04d"),exact:!0},{path:"/blog/tags/council-member",component:d("/blog/tags/council-member","a6a"),exact:!0},{path:"/blog/tags/creepy-behavior",component:d("/blog/tags/creepy-behavior","090"),exact:!0},{path:"/blog/tags/database",component:d("/blog/tags/database","ff5"),exact:!0},{path:"/blog/tags/decision-making",component:d("/blog/tags/decision-making","532"),exact:!0},{path:"/blog/tags/developers",component:d("/blog/tags/developers","487"),exact:!0},{path:"/blog/tags/development",component:d("/blog/tags/development","b27"),exact:!0},{path:"/blog/tags/development-milestones",component:d("/blog/tags/development-milestones","1c9"),exact:!0},{path:"/blog/tags/discord",component:d("/blog/tags/discord","6df"),exact:!0},{path:"/blog/tags/discord-channel",component:d("/blog/tags/discord-channel","b2d"),exact:!0},{path:"/blog/tags/discord-community-growth",component:d("/blog/tags/discord-community-growth","136"),exact:!0},{path:"/blog/tags/discord-server",component:d("/blog/tags/discord-server","e4d"),exact:!0},{path:"/blog/tags/discord-server-promotion",component:d("/blog/tags/discord-server-promotion","f55"),exact:!0},{path:"/blog/tags/documentation-migration",component:d("/blog/tags/documentation-migration","405"),exact:!0},{path:"/blog/tags/domain-acquisition",component:d("/blog/tags/domain-acquisition","e1a"),exact:!0},{path:"/blog/tags/drm-free",component:d("/blog/tags/drm-free","c7e"),exact:!0},{path:"/blog/tags/drm-free-games",component:d("/blog/tags/drm-free-games","6cf"),exact:!0},{path:"/blog/tags/early-access",component:d("/blog/tags/early-access","ed5"),exact:!0},{path:"/blog/tags/easter-egg",component:d("/blog/tags/easter-egg","7c7"),exact:!0},{path:"/blog/tags/engagement",component:d("/blog/tags/engagement","b3b"),exact:!0},{path:"/blog/tags/exclusive-preview",component:d("/blog/tags/exclusive-preview","0fe"),exact:!0},{path:"/blog/tags/family-friendly",component:d("/blog/tags/family-friendly","282"),exact:!0},{path:"/blog/tags/feature-requests",component:d("/blog/tags/feature-requests","61d"),exact:!0},{path:"/blog/tags/features",component:d("/blog/tags/features","3d5"),exact:!0},{path:"/blog/tags/feedback",component:d("/blog/tags/feedback","a81"),exact:!0},{path:"/blog/tags/file-server",component:d("/blog/tags/file-server","f0b"),exact:!0},{path:"/blog/tags/financial-assistance",component:d("/blog/tags/financial-assistance","e64"),exact:!0},{path:"/blog/tags/future-development",component:d("/blog/tags/future-development","db0"),exact:!0},{path:"/blog/tags/future-features",component:d("/blog/tags/future-features","bed"),exact:!0},{path:"/blog/tags/game",component:d("/blog/tags/game","a29"),exact:!0},{path:"/blog/tags/game-development",component:d("/blog/tags/game-development","97c"),exact:!0},{path:"/blog/tags/game-hub",component:d("/blog/tags/game-hub","6c3"),exact:!0},{path:"/blog/tags/game-shelf",component:d("/blog/tags/game-shelf","566"),exact:!0},{path:"/blog/tags/game-stash",component:d("/blog/tags/game-stash","728"),exact:!0},{path:"/blog/tags/game-vault",component:d("/blog/tags/game-vault","39f"),exact:!0},{path:"/blog/tags/game-vault-app",component:d("/blog/tags/game-vault-app","bd6"),exact:!0},{path:"/blog/tags/game-vault-domain",component:d("/blog/tags/game-vault-domain","a5b"),exact:!0},{path:"/blog/tags/game-vault-journey",component:d("/blog/tags/game-vault-journey","52d"),exact:!0},{path:"/blog/tags/game-vault-milestone",component:d("/blog/tags/game-vault-milestone","030"),exact:!0},{path:"/blog/tags/gaming",component:d("/blog/tags/gaming","2b9"),exact:!0},{path:"/blog/tags/gaming-community",component:d("/blog/tags/gaming-community","73c"),exact:!0},{path:"/blog/tags/gaming-experience",component:d("/blog/tags/gaming-experience","f8c"),exact:!0},{path:"/blog/tags/gaming-platform",component:d("/blog/tags/gaming-platform","12f"),exact:!0},{path:"/blog/tags/gaming-servers",component:d("/blog/tags/gaming-servers","e66"),exact:!0},{path:"/blog/tags/git-hub",component:d("/blog/tags/git-hub","590"),exact:!0},{path:"/blog/tags/git-hub-issue",component:d("/blog/tags/git-hub-issue","8a0"),exact:!0},{path:"/blog/tags/gratitude",component:d("/blog/tags/gratitude","1d7"),exact:!0},{path:"/blog/tags/harassment",component:d("/blog/tags/harassment","89d"),exact:!0},{path:"/blog/tags/harbor",component:d("/blog/tags/harbor","a9f"),exact:!0},{path:"/blog/tags/health-monitoring",component:d("/blog/tags/health-monitoring","d88"),exact:!0},{path:"/blog/tags/hybrid-model",component:d("/blog/tags/hybrid-model","038"),exact:!0},{path:"/blog/tags/igdb",component:d("/blog/tags/igdb","6ff"),exact:!0},{path:"/blog/tags/improvement",component:d("/blog/tags/improvement","0af"),exact:!0},{path:"/blog/tags/inclusivity",component:d("/blog/tags/inclusivity","7a0"),exact:!0},{path:"/blog/tags/installation-pipeline",component:d("/blog/tags/installation-pipeline","94b"),exact:!0},{path:"/blog/tags/kanban-board",component:d("/blog/tags/kanban-board","372"),exact:!0},{path:"/blog/tags/keyhole-representation",component:d("/blog/tags/keyhole-representation","ae7"),exact:!0},{path:"/blog/tags/lemmy-community",component:d("/blog/tags/lemmy-community","a2d"),exact:!0},{path:"/blog/tags/lemmy-community-launch",component:d("/blog/tags/lemmy-community-launch","9dd"),exact:!0},{path:"/blog/tags/lemmy-forum",component:d("/blog/tags/lemmy-forum","7bd"),exact:!0},{path:"/blog/tags/logo-concept-discussion",component:d("/blog/tags/logo-concept-discussion","7e7"),exact:!0},{path:"/blog/tags/logo-deciphering",component:d("/blog/tags/logo-deciphering","dc4"),exact:!0},{path:"/blog/tags/love-for-game-vault",component:d("/blog/tags/love-for-game-vault","2f9"),exact:!0},{path:"/blog/tags/market-analysis",component:d("/blog/tags/market-analysis","c1c"),exact:!0},{path:"/blog/tags/metadata",component:d("/blog/tags/metadata","2c9"),exact:!0},{path:"/blog/tags/metadata-framework",component:d("/blog/tags/metadata-framework","bc5"),exact:!0},{path:"/blog/tags/microsoft-store",component:d("/blog/tags/microsoft-store","cc8"),exact:!0},{path:"/blog/tags/microsoft-store-publication",component:d("/blog/tags/microsoft-store-publication","a3d"),exact:!0},{path:"/blog/tags/migration-finalization",component:d("/blog/tags/migration-finalization","138"),exact:!0},{path:"/blog/tags/motivation",component:d("/blog/tags/motivation","8c7"),exact:!0},{path:"/blog/tags/multi-user-authentication",component:d("/blog/tags/multi-user-authentication","3a5"),exact:!0},{path:"/blog/tags/name-migration-progress",component:d("/blog/tags/name-migration-progress","396"),exact:!0},{path:"/blog/tags/negative-narratives",component:d("/blog/tags/negative-narratives","ef7"),exact:!0},{path:"/blog/tags/new-logo",component:d("/blog/tags/new-logo","3d9"),exact:!0},{path:"/blog/tags/new-name",component:d("/blog/tags/new-name","28c"),exact:!0},{path:"/blog/tags/new-name-announcement",component:d("/blog/tags/new-name-announcement","7b6"),exact:!0},{path:"/blog/tags/notes",component:d("/blog/tags/notes","f1b"),exact:!0},{path:"/blog/tags/november-update",component:d("/blog/tags/november-update","a61"),exact:!0},{path:"/blog/tags/official-installations",component:d("/blog/tags/official-installations","733"),exact:!0},{path:"/blog/tags/open-source",component:d("/blog/tags/open-source","6be"),exact:!0},{path:"/blog/tags/parental-control",component:d("/blog/tags/parental-control","65b"),exact:!0},{path:"/blog/tags/partnership",component:d("/blog/tags/partnership","0de"),exact:!0},{path:"/blog/tags/partnerships",component:d("/blog/tags/partnerships","588"),exact:!0},{path:"/blog/tags/platform",component:d("/blog/tags/platform","0bc"),exact:!0},{path:"/blog/tags/platform-values",component:d("/blog/tags/platform-values","376"),exact:!0},{path:"/blog/tags/plugin-system",component:d("/blog/tags/plugin-system","4f9"),exact:!0},{path:"/blog/tags/poll",component:d("/blog/tags/poll","eda"),exact:!0},{path:"/blog/tags/poll-results",component:d("/blog/tags/poll-results","2a9"),exact:!0},{path:"/blog/tags/polls",component:d("/blog/tags/polls","829"),exact:!0},{path:"/blog/tags/public",component:d("/blog/tags/public","f5f"),exact:!0},{path:"/blog/tags/racist",component:d("/blog/tags/racist","2bb"),exact:!0},{path:"/blog/tags/rawg",component:d("/blog/tags/rawg","5ed"),exact:!0},{path:"/blog/tags/rawg-api",component:d("/blog/tags/rawg-api","751"),exact:!0},{path:"/blog/tags/reddit-forum",component:d("/blog/tags/reddit-forum","61e"),exact:!0},{path:"/blog/tags/release",component:d("/blog/tags/release","15f"),exact:!0},{path:"/blog/tags/renaming-app",component:d("/blog/tags/renaming-app","d2c"),exact:!0},{path:"/blog/tags/revenue-generation",component:d("/blog/tags/revenue-generation","68c"),exact:!0},{path:"/blog/tags/roadmap",component:d("/blog/tags/roadmap","e17"),exact:!0},{path:"/blog/tags/safe-environment",component:d("/blog/tags/safe-environment","620"),exact:!0},{path:"/blog/tags/self-hosted",component:d("/blog/tags/self-hosted","19e"),exact:!0},{path:"/blog/tags/self-hosted-newsletter",component:d("/blog/tags/self-hosted-newsletter","b53"),exact:!0},{path:"/blog/tags/selfhosted-podcast",component:d("/blog/tags/selfhosted-podcast","8d7"),exact:!0},{path:"/blog/tags/server-update",component:d("/blog/tags/server-update","7ee"),exact:!0},{path:"/blog/tags/sharing-blog-posts",component:d("/blog/tags/sharing-blog-posts","2e3"),exact:!0},{path:"/blog/tags/simplifying-game-installation",component:d("/blog/tags/simplifying-game-installation","0a0"),exact:!0},{path:"/blog/tags/software",component:d("/blog/tags/software","ed0"),exact:!0},{path:"/blog/tags/software-development",component:d("/blog/tags/software-development","f78"),exact:!0},{path:"/blog/tags/software-licensing",component:d("/blog/tags/software-licensing","6a0"),exact:!0},{path:"/blog/tags/software-updates",component:d("/blog/tags/software-updates","742"),exact:!0},{path:"/blog/tags/solution",component:d("/blog/tags/solution","a71"),exact:!0},{path:"/blog/tags/source-available",component:d("/blog/tags/source-available","501"),exact:!0},{path:"/blog/tags/source-available-software",component:d("/blog/tags/source-available-software","42f"),exact:!0},{path:"/blog/tags/spam",component:d("/blog/tags/spam","99a"),exact:!0},{path:"/blog/tags/special-thanks",component:d("/blog/tags/special-thanks","721"),exact:!0},{path:"/blog/tags/speculation",component:d("/blog/tags/speculation","691"),exact:!0},{path:"/blog/tags/spreading-the-word",component:d("/blog/tags/spreading-the-word","9a5"),exact:!0},{path:"/blog/tags/startup",component:d("/blog/tags/startup","387"),exact:!0},{path:"/blog/tags/steam",component:d("/blog/tags/steam","5cb"),exact:!0},{path:"/blog/tags/subreddit-migration",component:d("/blog/tags/subreddit-migration","bf0"),exact:!0},{path:"/blog/tags/subscription",component:d("/blog/tags/subscription","088"),exact:!0},{path:"/blog/tags/subscription-model",component:d("/blog/tags/subscription-model","7e6"),exact:!0},{path:"/blog/tags/subscription-to-updates-role",component:d("/blog/tags/subscription-to-updates-role","97f"),exact:!0},{path:"/blog/tags/success",component:d("/blog/tags/success","cc5"),exact:!0},{path:"/blog/tags/support",component:d("/blog/tags/support","a33"),exact:!0},{path:"/blog/tags/support-request",component:d("/blog/tags/support-request","99a"),exact:!0},{path:"/blog/tags/surge-of-new-users",component:d("/blog/tags/surge-of-new-users","4ba"),exact:!0},{path:"/blog/tags/sustainability",component:d("/blog/tags/sustainability","5a8"),exact:!0},{path:"/blog/tags/tech-progress",component:d("/blog/tags/tech-progress","1f3"),exact:!0},{path:"/blog/tags/testing",component:d("/blog/tags/testing","ad7"),exact:!0},{path:"/blog/tags/theme",component:d("/blog/tags/theme","6c7"),exact:!0},{path:"/blog/tags/threats",component:d("/blog/tags/threats","3f9"),exact:!0},{path:"/blog/tags/transition-process",component:d("/blog/tags/transition-process","a0e"),exact:!0},{path:"/blog/tags/transparency",component:d("/blog/tags/transparency","7b3"),exact:!0},{path:"/blog/tags/trolls",component:d("/blog/tags/trolls","22a"),exact:!0},{path:"/blog/tags/twitch-tv",component:d("/blog/tags/twitch-tv","c17"),exact:!0},{path:"/blog/tags/ui-redesign",component:d("/blog/tags/ui-redesign","1e3"),exact:!0},{path:"/blog/tags/ui-update",component:d("/blog/tags/ui-update","0da"),exact:!0},{path:"/blog/tags/upcoming-update",component:d("/blog/tags/upcoming-update","f39"),exact:!0},{path:"/blog/tags/update",component:d("/blog/tags/update","fa1"),exact:!0},{path:"/blog/tags/updates",component:d("/blog/tags/updates","125"),exact:!0},{path:"/blog/tags/user-engagement",component:d("/blog/tags/user-engagement","51e"),exact:!0},{path:"/blog/tags/user-participation",component:d("/blog/tags/user-participation","15b"),exact:!0},{path:"/blog/tags/video-games",component:d("/blog/tags/video-games","b8c"),exact:!0},{path:"/blog/tags/videogame",component:d("/blog/tags/videogame","f65"),exact:!0},{path:"/blog/tags/voting",component:d("/blog/tags/voting","f23"),exact:!0},{path:"/docs",component:d("/docs","6d2"),routes:[{path:"/docs",component:d("/docs","ee7"),routes:[{path:"/docs",component:d("/docs","ad9"),routes:[{path:"/docs/advanced-usage/early-access-program",component:d("/docs/advanced-usage/early-access-program","8ae"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/fail2ban-gamevault-guide",component:d("/docs/advanced-usage/fail2ban-gamevault-guide","8b9"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/linux-client",component:d("/docs/advanced-usage/linux-client","71a"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/rest-api",component:d("/docs/advanced-usage/rest-api","c5a"),exact:!0,sidebar:"docs"},{path:"/docs/advanced-usage/steamdeck",component:d("/docs/advanced-usage/steamdeck","03e"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/data",component:d("/docs/client-docs/data","840"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/gui",component:d("/docs/client-docs/gui","e4a"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/how-to-use",component:d("/docs/client-docs/how-to-use","db9"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/setup",component:d("/docs/client-docs/setup","0c3"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/themes",component:d("/docs/client-docs/themes","e4c"),exact:!0,sidebar:"docs"},{path:"/docs/client-docs/updating-client",component:d("/docs/client-docs/updating-client","82b"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/client-apis",component:d("/docs/gamevault-plus/client-apis","0d7"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/client-setup",component:d("/docs/gamevault-plus/client-setup","7b9"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/introduction",component:d("/docs/gamevault-plus/introduction","442"),exact:!0,sidebar:"docs"},{path:"/docs/gamevault-plus/themes",component:d("/docs/gamevault-plus/themes","727"),exact:!0,sidebar:"docs"},{path:"/docs/intro",component:d("/docs/intro","ee2"),exact:!0,sidebar:"docs"},{path:"/docs/license-contribute",component:d("/docs/license-contribute","f9d"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/adding-games",component:d("/docs/server-docs/adding-games","3c5"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/backup-and-restore",component:d("/docs/server-docs/backup-and-restore","a7c"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/configuration",component:d("/docs/server-docs/configuration","5a1"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/game-types",component:d("/docs/server-docs/game-types","45a"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/indexing",component:d("/docs/server-docs/indexing","87c"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/media",component:d("/docs/server-docs/media","f31"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/metadata-enrichment/metadata",component:d("/docs/server-docs/metadata-enrichment/metadata","d00"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/metadata-enrichment/provider-igdb",component:d("/docs/server-docs/metadata-enrichment/provider-igdb","9f3"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/parental-control",component:d("/docs/server-docs/parental-control","c42"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/plugins",component:d("/docs/server-docs/plugins","44a"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/server-news",component:d("/docs/server-docs/server-news","dce"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/",component:d("/docs/server-docs/setup/","3dd"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/caprover",component:d("/docs/server-docs/setup/caprover","9dc"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/docker-compose",component:d("/docs/server-docs/setup/docker-compose","272"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/native",component:d("/docs/server-docs/setup/native","29e"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/synology-container-manager",component:d("/docs/server-docs/setup/synology-container-manager","621"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/truenas-scale",component:d("/docs/server-docs/setup/truenas-scale","d3f"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/truenas-scale-legacy",component:d("/docs/server-docs/setup/truenas-scale-legacy","a61"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/setup/unraid",component:d("/docs/server-docs/setup/unraid","5d9"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/structure",component:d("/docs/server-docs/structure","3e8"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/updating-games",component:d("/docs/server-docs/updating-games","59b"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/user-management",component:d("/docs/server-docs/user-management","38a"),exact:!0,sidebar:"docs"},{path:"/docs/server-docs/websockets",component:d("/docs/server-docs/websockets","b63"),exact:!0,sidebar:"docs"},{path:"/docs/troubleshooting",component:d("/docs/troubleshooting","84f"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","2e1"),exact:!0},{path:"*",component:d("*")}]},622:(e,t,n)=>{var r,o;!function(){var a,i,s,l,c,u,d,p,f,g,m,b,h,y,v,_,w,x,S,k,E,O,j,P,C,A,T,I,N,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var o=n[r],a=e[o];if(Array.isArray(a))t[o]=a.slice();else{if("string"!=typeof a&&"number"!=typeof a&&"boolean"!=typeof a)throw new TypeError("clone is not deep and does not support nested objects");t[o]=a}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,o=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var a=0;a<r.length;a++){var i=r[a];i in n.elements&&o.push(i)}return new R.Set(o)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var o=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(o))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,o=[],a=0,i=0;a<=r;a++){var s=a-i;if(n.charAt(a).match(R.tokenizer.separator)||a==r){if(s>0){var l=R.utils.clone(t)||{};l.position=[i,s],l.index=o.length,o.push(new R.Token(n.slice(i,a),l))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],o=[],a=0;a<e.length;a++){var i=r(e[a],a,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var s=0;s<i.length;s++)o.push(i[s]);else o.push(i)}e=o}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,o=Math.floor(r/2),a=this.elements[2*o];r>1&&(a<e&&(t=o),a>e&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:a<e?2*(o+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,o=n.length,a=r.length,i=0,s=0,l=0,c=0;l<o&&c<a;)(i=n[l])<(s=r[c])?l+=2:i>s?c+=2:i==s&&(t+=n[l+1]*r[c+1],l+=2,c+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},s={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(c="[^aeiou][^aeiouy]*")+")?"+(u=(l="[aeiouy]")+"[aeiou]*")+c+"("+u+")?$",p="^("+c+")?"+u+c+u+c,f="^("+c+")?"+l,g=new RegExp("^("+c+")?"+u+c),m=new RegExp(p),b=new RegExp(d),h=new RegExp(f),y=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,_=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,x=/.$/,S=/(at|bl|iz)$/,k=new RegExp("([^aeiouylsz])\\1$"),E=new RegExp("^"+c+l+"[^aeiouwxy]$"),O=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,P=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,C=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,A=/^(.+?)(s|t)(ion)$/,T=/^(.+?)e$/,I=/ll$/,N=new RegExp("^"+c+l+"[^aeiouwxy]$"),L=function(e){var t,n,r,o,a,l,c;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),a=v,(o=y).test(e)?e=e.replace(o,"$1$2"):a.test(e)&&(e=e.replace(a,"$1$2")),a=w,(o=_).test(e)){var u=o.exec(e);(o=g).test(u[1])&&(o=x,e=e.replace(o,""))}else a.test(e)&&(t=(u=a.exec(e))[1],(a=h).test(t)&&(l=k,c=E,(a=S).test(e=t)?e+="e":l.test(e)?(o=x,e=e.replace(o,"")):c.test(e)&&(e+="e")));return(o=O).test(e)&&(e=(t=(u=o.exec(e))[1])+"i"),(o=j).test(e)&&(t=(u=o.exec(e))[1],n=u[2],(o=g).test(t)&&(e=t+i[n])),(o=P).test(e)&&(t=(u=o.exec(e))[1],n=u[2],(o=g).test(t)&&(e=t+s[n])),a=A,(o=C).test(e)?(t=(u=o.exec(e))[1],(o=m).test(t)&&(e=t)):a.test(e)&&(t=(u=a.exec(e))[1]+u[2],(a=m).test(t)&&(e=t)),(o=T).test(e)&&(t=(u=o.exec(e))[1],a=b,l=N,((o=m).test(t)||a.test(t)&&!l.test(t))&&(e=t)),a=m,(o=I).test(e)&&a.test(e)&&(o=x,e=e.replace(o,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var o=r.pop();if(o.str.length>0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}if(0==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}1==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var c,u=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?c=o.node.edges[d]:(c=new R.TokenSet,o.node.edges[d]=c),1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:u+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r<o;r++){var a=e[r],i=r==o-1;if("*"==a)t.edges[a]=t,t.final=i;else{var s=new R.TokenSet;s.final=i,t.edges[a]=s,t=s}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),o=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var a=0;a<o;a++){var i=r[a];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var o=t[r];e=e+o+this.edges[o].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var o=Object.keys(n.qNode.edges),a=o.length,i=Object.keys(n.node.edges),s=i.length,l=0;l<a;l++)for(var c=o[l],u=0;u<s;u++){var d=i[u];if(d==c||"*"==c){var p=n.node.edges[d],f=n.qNode.edges[c],g=p.final&&f.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||g:((m=new R.TokenSet).final=g,n.output.edges[d]=m),r.push({qNode:f,output:m,node:p})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var o=new R.TokenSet,a=e[r];t.edges[a]=o,this.uncheckedNodes.push({parent:t,char:a,child:o}),t=o}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),s=0;s<this.fields.length;s++)r[this.fields[s]]=new R.Vector;e.call(t,t);for(s=0;s<t.clauses.length;s++){var l=t.clauses[s],c=null,u=R.Set.empty;c=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<c.length;d++){var p=c[d];l.term=p;var f=R.TokenSet.fromClause(l),g=this.tokenSet.intersect(f).toArray();if(0===g.length&&l.presence===R.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){a[T=l.fields[m]]=R.Set.empty}break}for(var b=0;b<g.length;b++){var h=g[b],y=this.invertedIndex[h],v=y._index;for(m=0;m<l.fields.length;m++){var _=y[T=l.fields[m]],w=Object.keys(_),x=h+"/"+T,S=new R.Set(w);if(l.presence==R.Query.presence.REQUIRED&&(u=u.union(S),void 0===a[T]&&(a[T]=R.Set.complete)),l.presence!=R.Query.presence.PROHIBITED){if(r[T].upsert(v,l.boost,(function(e,t){return e+t})),!o[x]){for(var k=0;k<w.length;k++){var E,O=w[k],j=new R.FieldRef(O,T),P=_[O];void 0===(E=n[j])?n[j]=new R.MatchData(h,T,P):E.add(h,T,P)}o[x]=!0}}else void 0===i[T]&&(i[T]=R.Set.empty),i[T]=i[T].union(S)}}}if(l.presence===R.Query.presence.REQUIRED)for(m=0;m<l.fields.length;m++){a[T=l.fields[m]]=a[T].intersect(u)}}var C=R.Set.complete,A=R.Set.empty;for(s=0;s<this.fields.length;s++){var T;a[T=this.fields[s]]&&(C=C.intersect(a[T])),i[T]&&(A=A.union(i[T]))}var I=Object.keys(n),N=[],L=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(s=0;s<I.length;s++){j=I[s];var D=R.FieldRef.fromString(j);n[j]=new R.MatchData}}for(s=0;s<I.length;s++){var F=(D=R.FieldRef.fromString(I[s])).docRef;if(C.contains(F)&&!A.contains(F)){var M,z=this.fieldVectors[D],B=r[D.fieldName].similarity(z);if(void 0!==(M=L[F]))M.score+=B,M.matchData.combine(n[D]);else{var $={ref:F,score:B,matchData:n[D]};L[F]=$,N.push($)}}}return N.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,o=Object.create(null),a=e.invertedIndex,i=new R.TokenSet.Builder,s=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<r.length;l++){var c=(d=r[l])[0],u=d[1];n[c]=new R.Vector(u)}for(l=0;l<a.length;l++){var d,p=(d=a[l])[0],f=d[1];i.insert(p),o[p]=f}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=o,t.tokenSet=i.root,t.pipeline=s,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o<r.length;o++){var a=r[o],i=this._fields[a].extractor,s=this._fields[a].isLiteral??!1,l=i?i(e):e[a],c=s?[l]:this.tokenizer(l,{fields:[a]}),u=s?c:this.pipeline.run(c),d=new R.FieldRef(n,a),p=Object.create(null);this.fieldTermFrequencies[d]=p,this.fieldLengths[d]=0,this.fieldLengths[d]+=u.length;for(var f=0;f<u.length;f++){var g=u[f];if(null==p[g]&&(p[g]=0),p[g]+=1,null==this.invertedIndex[g]){var m=Object.create(null);m._index=this.termIndex,this.termIndex+=1;for(var b=0;b<r.length;b++)m[r[b]]=Object.create(null);this.invertedIndex[g]=m}null==this.invertedIndex[g][a][n]&&(this.invertedIndex[g][a][n]=Object.create(null));for(var h=0;h<this.metadataWhitelist.length;h++){var y=this.metadataWhitelist[h],v=g.metadata[y];null==this.invertedIndex[g][a][n][y]&&(this.invertedIndex[g][a][n][y]=[]),this.invertedIndex[g][a][n][y].push(v)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},o=0;o<t;o++){var a=R.FieldRef.fromString(e[o]),i=a.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[a]}var s=Object.keys(this._fields);for(o=0;o<s.length;o++){var l=s[o];n[l]=n[l]/r[l]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),o=0;o<n;o++){for(var a=R.FieldRef.fromString(t[o]),i=a.fieldName,s=this.fieldLengths[a],l=new R.Vector,c=this.fieldTermFrequencies[a],u=Object.keys(c),d=u.length,p=this._fields[i].boost||1,f=this._documents[a.docRef].boost||1,g=0;g<d;g++){var m,b,h,y=u[g],v=c[y],_=this.invertedIndex[y]._index;void 0===r[y]?(m=R.idf(this.invertedIndex[y],this.documentCount),r[y]=m):m=r[y],b=m*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(s/this.averageFieldLength[i]))+v),b*=p,b*=f,h=Math.round(1e3*b)/1e3,l.insert(_,h)}e[a]=l}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),o=Object.keys(n||{}),a=0;a<o.length;a++){var i=o[a];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],o=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var a=0;a<o.length;a++){var i=o[a],s=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var l=0;l<s.length;l++){var c=s[l];null==this.metadata[r][i][c]?this.metadata[r][i][c]=e.metadata[r][i][c]:this.metadata[r][i][c]=this.metadata[r][i][c].concat(e.metadata[r][i][c])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),o=0;o<r.length;o++){var a=r[o];a in this.metadata[e][t]?this.metadata[e][t][a]=this.metadata[e][t][a].concat(n[a]):this.metadata[e][t][a]=n[a]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},787:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(758),o=n(6070);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},6307:(e,t,n)=>{"use strict";var r=n(758),o=n(9576),a=n(248),i=n(1742),s=n(4784),l=n(5575);const c=[n(3905),n(4169),n(6436),n(171),n(4412)];var u=n(1151),d=n(5557),p=n(389),f=n(6070);function g(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(950),b=n(4480),h=n(2235),y=n(9618),v=n(5003),_=n(4703),w=n(980),x=n(1163),S=n(3652),k=n(4981);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,b.A)(),r=(0,_.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(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 O(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,b.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,b.A)(),{pathname:r}=(0,d.zy)();return e+(0,S.Ks)((0,h.Ay)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function j(){const{i18n:{currentLocale:e}}=(0,b.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(O,{}),(0,f.jsx)(E,{}),(0,f.jsx)(k.A,{tag:x.C,locale:e}),(0,f.jsx)(m.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const P=new Map;var C=n(787),A=n(790),T=n(3523);function I(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=c.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,T.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),I("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?I("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=I("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(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)(N,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const D=R,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(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 = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" 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="${z}" 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('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,b.A)();return(0,f.jsx)(f.Fragment,{children:!l.A.canUseDOM&&(0,f.jsx)(m.A,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,b.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,f.jsx)($,{}):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,b.A)(),a=(0,h.Ay)(e),{htmlLang:i,direction:s}=o[r];return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("html",{lang:i,dir:s}),(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 V=n(4496),Q=n(5473);function W(){const e=(0,Q.A)();return(0,f.jsx)(m.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const q=(0,p.v)(u.A);function G(){const e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,p.u)(u.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.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)(D,{location:e,children:q})}function K(){return(0,f.jsx)(V.A,{children:(0,f.jsx)(A.l,{children:(0,f.jsxs)(C.x,{children:[(0,f.jsxs)(g,{children:[(0,f.jsx)(H,{}),(0,f.jsx)(j,{}),(0,f.jsx)(U,{}),(0,f.jsx)(G,{})]}),(0,f.jsx)(W,{})]})})})}var Y=n(4054);const Z=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 X=n(5743);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,p.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),L(e))},re=Object.freeze(ne);function oe(e){let{children:t}=e;return"hash"===s.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const ae=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.vd,{children:(0,f.jsx)(oe,{children:(0,f.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ae)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};L(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},790:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(758),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"advanced-usage/early-access-program","path":"/docs/advanced-usage/early-access-program","sidebar":"docs"},{"id":"advanced-usage/fail2ban-gamevault-guide","path":"/docs/advanced-usage/fail2ban-gamevault-guide","sidebar":"docs"},{"id":"advanced-usage/linux-client","path":"/docs/advanced-usage/linux-client","sidebar":"docs"},{"id":"advanced-usage/rest-api","path":"/docs/advanced-usage/rest-api","sidebar":"docs"},{"id":"advanced-usage/steamdeck","path":"/docs/advanced-usage/steamdeck","sidebar":"docs"},{"id":"client-docs/data","path":"/docs/client-docs/data","sidebar":"docs"},{"id":"client-docs/gui","path":"/docs/client-docs/gui","sidebar":"docs"},{"id":"client-docs/how-to-use","path":"/docs/client-docs/how-to-use","sidebar":"docs"},{"id":"client-docs/setup","path":"/docs/client-docs/setup","sidebar":"docs"},{"id":"client-docs/themes","path":"/docs/client-docs/themes","sidebar":"docs"},{"id":"client-docs/updating-client","path":"/docs/client-docs/updating-client","sidebar":"docs"},{"id":"gamevault-plus/client-apis","path":"/docs/gamevault-plus/client-apis","sidebar":"docs"},{"id":"gamevault-plus/client-setup","path":"/docs/gamevault-plus/client-setup","sidebar":"docs"},{"id":"gamevault-plus/introduction","path":"/docs/gamevault-plus/introduction","sidebar":"docs"},{"id":"gamevault-plus/themes","path":"/docs/gamevault-plus/themes","sidebar":"docs"},{"id":"intro","path":"/docs/intro","sidebar":"docs"},{"id":"license-contribute","path":"/docs/license-contribute","sidebar":"docs"},{"id":"server-docs/adding-games","path":"/docs/server-docs/adding-games","sidebar":"docs"},{"id":"server-docs/backup-and-restore","path":"/docs/server-docs/backup-and-restore","sidebar":"docs"},{"id":"server-docs/configuration","path":"/docs/server-docs/configuration","sidebar":"docs"},{"id":"server-docs/game-types","path":"/docs/server-docs/game-types","sidebar":"docs"},{"id":"server-docs/indexing","path":"/docs/server-docs/indexing","sidebar":"docs"},{"id":"server-docs/media","path":"/docs/server-docs/media","sidebar":"docs"},{"id":"server-docs/metadata-enrichment/metadata","path":"/docs/server-docs/metadata-enrichment/metadata","sidebar":"docs"},{"id":"server-docs/metadata-enrichment/provider-igdb","path":"/docs/server-docs/metadata-enrichment/provider-igdb","sidebar":"docs"},{"id":"server-docs/parental-control","path":"/docs/server-docs/parental-control","sidebar":"docs"},{"id":"server-docs/plugins","path":"/docs/server-docs/plugins","sidebar":"docs"},{"id":"server-docs/server-news","path":"/docs/server-docs/server-news","sidebar":"docs"},{"id":"server-docs/setup/caprover","path":"/docs/server-docs/setup/caprover","sidebar":"docs"},{"id":"server-docs/setup/docker-compose","path":"/docs/server-docs/setup/docker-compose","sidebar":"docs"},{"id":"server-docs/setup/native","path":"/docs/server-docs/setup/native","sidebar":"docs"},{"id":"server-docs/setup/synology-container-manager","path":"/docs/server-docs/setup/synology-container-manager","sidebar":"docs"},{"id":"server-docs/setup/toc","path":"/docs/server-docs/setup/","sidebar":"docs"},{"id":"server-docs/setup/truenas-scale","path":"/docs/server-docs/setup/truenas-scale","sidebar":"docs"},{"id":"server-docs/setup/truenas-scale-legacy","path":"/docs/server-docs/setup/truenas-scale-legacy","sidebar":"docs"},{"id":"server-docs/setup/unraid","path":"/docs/server-docs/setup/unraid","sidebar":"docs"},{"id":"server-docs/structure","path":"/docs/server-docs/structure","sidebar":"docs"},{"id":"server-docs/updating-games","path":"/docs/server-docs/updating-games","sidebar":"docs"},{"id":"server-docs/user-management","path":"/docs/server-docs/user-management","sidebar":"docs"},{"id":"server-docs/websockets","path":"/docs/server-docs/websockets","sidebar":"docs"},{"id":"troubleshooting","path":"/docs/troubleshooting","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/intro","label":"intro"}}}}],"breadcrumbs":true}},"@cmfcmf/docusaurus-search-local":{"default":{"titleBoost":5,"contentBoost":1,"tagsBoost":3,"parentCategoriesBoost":2,"indexDocSidebarParentCategories":0,"maxSearchResults":8}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.6.2","siteVersion":"1.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.6.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.6.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.6.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.6.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.6.2"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.6.2"},"docusaurus-plugin-image-zoom":{"type":"package","name":"docusaurus-plugin-image-zoom","version":"2.0.0"},"@cmfcmf/docusaurus-search-local":{"type":"package","name":"@cmfcmf/docusaurus-search-local","version":"1.2.0"},"tailwind-plugin":{"type":"local"}}}');var c=n(6070);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4496:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(758),o=n(5575),a=n(950),i=n(3652),s=n(3385),l=n(5612),c=n(6070);function u(e){let{error:t,tryAgain:n}=e;return(0,c.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,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(m,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const g=e=>(0,c.jsx)(f,{...e});class m 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??g)(e)}return e??null}}},5575:(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}},950:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);var r=n(248),o=n(6070);function a(e){return(0,o.jsx)(r.mg,{...e})}},88:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(758),o=n(1742),a=n(3652),i=n(4480),s=n(2048),l=n(5575),c=n(9121),u=n(2235),d=n(6070);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":b,autoAddBaseUrl:h=!0,...y}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:_,baseUrl:w}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,u.hH)(),k=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const O=p||f;const j=(0,s.A)(O),P=O?.replace("pathname://","");let C=void 0!==P?(A=P,h&&(e=>e.startsWith("/"))(A)?S(A):A):void 0;var A;"hash"===x&&C?.startsWith("./")&&(C=C?.slice(1)),C&&j&&(C=(0,a.Ks)(C,{trailingSlash:_,baseUrl:w}));const T=(0,r.useRef)(!1),I=n?o.k2:o.N_,N=l.A.canUseIntersectionObserver,L=(0,r.useRef)(),R=()=>{T.current||null==C||(window.docusaurus.preload(C),T.current=!0)};(0,r.useEffect)((()=>(!N&&j&&l.A.canUseDOM&&null!=C&&window.docusaurus.prefetch(C),()=>{N&&L.current&&L.current.disconnect()})),[L,C,N,j]);const D=C?.startsWith("#")??!1,F=!y.target||"_self"===y.target,M=!C||!j||!F||D&&"hash"!==x;b||!D&&M||k.collectLink(C),y.id&&k.collectAnchor(y.id);const z={};return M?(0,d.jsx)("a",{ref:E,href:C,...O&&!j&&{target:"_blank",rel:"noopener noreferrer"},...y,...z}):(0,d.jsx)(I,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{E.current=e,N&&e&&j&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),L.current.observe(e))},to:C,...n&&{isActive:m,activeClassName:g},...z})}const f=r.forwardRef(p)},8072:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(758),o=n(6070);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 s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},8503:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},2048:(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})},2235:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>i});var r=n(758),o=n(4480),a=n(2048);function i(){const{siteConfig:e}=(0,o.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,s=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:o=!1,absolute:i=!1}={},router:s}=e;if(!r||r.startsWith("#")||(0,a.z)(r))return r;if("hash"===s)return r.startsWith("/")?`.${r}`:`./${r}`;if(o)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const l=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:s}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9121:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(758);n(6070);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4480:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(758),o=n(790);function a(){return(0,r.useContext)(o.o)}},1538:(e,t,n)=>{"use strict";n.d(t,{P_:()=>i,kh:()=>a});var r=n(4480),o=n(8503);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=a(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},5473:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(758),o=n(787);function a(){return(0,r.useContext)(o.o)}},3523:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(758);const o=n(5575).A.canUseDOM?r.useLayoutEffect:r.useEffect},4017:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(758),o=n(5612);function a(){const e=r.useContext(o.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},5743:(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=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},5612:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(758),o=n(6070);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},6236:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>v,g1:()=>y});var r=n(758),o=n(150),a=n(8503),i=n(9618),s=n(7957),l=n(7888),c=n(6070);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,s.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,s.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,s.Wf)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=g();return(0,c.jsx)(f.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return(0,c.jsx)(m,{children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=h(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function v(){const e=(0,o.Gy)(),[t]=h();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},9419:(e,t,n)=>{"use strict";n.d(t,{k:()=>a,v:()=>i});var r=n(150),o=n(6236);function a(e,t){return`docs-${e}-${t}`}function i(){const e=(0,r.Gy)(),t=(0,r.gk)(),n=(0,o.XK)();return[...Object.keys(e).map((function(r){const o=t?.activePlugin.pluginId===r?t.activeVersion:void 0,i=n[r],s=e[r].versions.find((e=>e.isLast));return a(r,(o??i??s).name)}))]}},3139:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(758),o=n(7888),a=n(6070);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},1614:(e,t,n)=>{"use strict";n.d(t,{$S:()=>f,B5:()=>k,Nr:()=>p,OF:()=>_,QB:()=>S,Vd:()=>w,Y:()=>y,d1:()=>E,fW:()=>x,w8:()=>b});var r=n(758),o=n(5557),a=n(389),i=n(150),s=n(1197),l=n(5182),c=n(6236),u=n(6235),d=n(3139);function p(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=p(t);if(e)return e}}(e):void 0:e.href}function f(){const{pathname:e}=(0,o.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({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}const g=(e,t)=>void 0!==e&&(0,s.ys)(e,t),m=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||m(e.items,t))}function h(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>h(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>h(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,s.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,s.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function _(){const e=(0,d.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,c.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,l.sb)([t,n,o].filter(Boolean))),[t,n,o])}function x(e,t){const n=w(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 S(e,t){const n=w(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- ${(0,l.sb)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,u.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const l=s.sidebar,c=l?r.docsSidebars[l]:void 0;return{docElement:(0,a.v)(i),sidebarName:l,sidebarItems:c}}function E(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!p(e)))}},6235:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(758),o=n(7888),a=n(6070);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},150:(e,t,n)=>{"use strict";n.d(t,{d1:()=>l.d1,zK:()=>y,vT:()=>g,gk:()=>m,Gy:()=>p,$S:()=>l.$S,HW:()=>v,vF:()=>u.v,ht:()=>f,g1:()=>c.g1,r7:()=>h,jh:()=>b});var r=n(5557),o=n(1538);const a=e=>e.versions.find((e=>e.isLast));function i(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})))}function s(e,t){const n=i(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):{}}}var l=n(1614),c=n(6236),u=n(9419);const d={},p=()=>(0,o.kh)("docusaurus-plugin-content-docs")??d,f=e=>{try{return(0,o.P_)("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 g(e){void 0===e&&(e={});const t=p(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.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 m(e){void 0===e&&(e={});const t=g(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function b(e){return f(e).versions}function h(e){const t=f(e);return a(t)}function y(e){const t=f(e),{pathname:n}=(0,r.zy)();return s(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=a(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},3485:(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 s=n(758),l=[],c=[];var u=s.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 s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function g(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var g=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function b(){return m||(m=e(g.loader)),m.promise}return l.push(b),"function"==typeof g.webpack&&c.push((function(){if((0,g.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return b()})),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}),m=e(g.loader),r._loadModule()})),b(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return b()};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(g.modules)&&g.modules.forEach((function(t){e.context.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),g.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.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?s.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextType",u),p}function m(e){return g(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(p,e)};var b=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return s.createElement(u.Provider,{value:{report:this.props.report}},s.Children.only(this.props.children))},t}(s.Component);function h(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return h(e)}))}m.Capture=b,m.preloadAll=function(){return new Promise((function(e,t){h(l).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){h(c).then(e,e)}))},e.exports=m},6436:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(8744),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},4169:(e,t,n)=>{"use strict";var r=n(5371),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t,a=globalThis.Prism;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(1274),n(8104)(`./prism-${e}`)})),delete globalThis.Prism,void 0!==a&&(globalThis.Prism=e)}(r.My)},8038:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(758);var r=n(3526),o=n(8072),a=n(9618),i=n(88),s=n(9121);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_Hcr8",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_ZS6d"};var c=n(6070);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},4799:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);const r={iconExternalLink:"iconExternalLink_kYT9"};var o=n(6070);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},3385:(e,t,n)=>{"use strict";n.d(t,{A:()=>si});var r=n(758),o=n(3526),a=n(4496),i=n(5003),s=n(5557),l=n(8072),c=n(3354),u=n(6070);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,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,l.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 m(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var b=n(8539),h=n(980);const y={skipToContent:"skipToContent_HFi9"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var _=n(9618),w=n(5309);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_ZG0G"};function k(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.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,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_W_Jx"};function O(e){const{announcementBar:t}=(0,_.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const j={announcementBar:"announcementBar_NWyD",announcementBarPlaceholder:"announcementBarPlaceholder_gnpf",announcementBarClose:"announcementBarClose_NR6a",announcementBarContent:"announcementBarContent_PrW2"};function P(){const{announcementBar:e}=(0,_.p)(),{isActive:t,close:n}=(0,w.M)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:j.announcementBarPlaceholder}),(0,u.jsx)(O,{className:j.announcementBarContent}),a&&(0,u.jsx)(k,{onClick:n,className:j.announcementBarClose})]})}var C=n(8260),A=n(372);var T=n(7888),I=n(5508);const N=r.createContext(null);function L(e){let{children:t}=e;const n=function(){const e=(0,C.M)(),t=(0,I.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,T.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,u.jsx)(N.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(N);if(!e)throw new T.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,I.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:R(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(3617),z=n(5473);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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 $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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"})})}const U={toggle:"toggle_hXnJ",toggleButton:"toggleButton_MBwj",darkToggleIcon:"darkToggleIcon_JpX0",lightToggleIcon:"lightToggleIcon_QBrn",toggleButtonDisabled:"toggleButtonDisabled_ODKm"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite","aria-pressed":"dark"===r?"true":"false",children:[(0,u.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const V=r.memo(H),Q={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_Pd0z"};function W(e){let{className:t}=e;const n=(0,_.p)().navbar.style,r=(0,_.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.G)();return r?null:(0,u.jsx)(V,{className:t,buttonClassName:"dark"===n?Q.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var q=n(31);function G(){return(0,u.jsx)(q.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,C.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.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,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(G,{}),(0,u.jsx)(W,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Z=n(88),X=n(2235),J=n(2048);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(4799);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(o,{forcePrependBaseUrl:!0}),g=a&&o&&!(0,J.A)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,g&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Z.A,{href:l?f:o,...c,...m}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(5186),se=n(1197),le=n(4480);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_fvxk"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!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,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(va,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(va,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var ge=n(4703);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.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 be="iconLanguage_QjCn";var he=n(8143);function ye(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function ve(e){return{current:e}}function _e(e){return e!==Object(e)}function we(e,t){if(e===t)return!0;if(_e(e)||_e(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];if(!(o in t))return!1;if(!we(e[o],t[o]))return!1}return!0}var xe=function(){};function Se(e){var t=e.item,n=e.items,r=void 0===n?[]:n;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ee(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ee(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Oe=["items"],je=["items"];function Pe(e){return Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe(e)}function Ce(e){return function(e){if(Array.isArray(e))return Ae(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ae(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Te(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(n),!0).forEach((function(t){Le(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Le(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Pe(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Pe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Pe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Re(e){return e.map((function(e){var t=e.items,n=Te(e,Oe);return Ne(Ne({},n),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||n.objectIDs})}))}function De(e){var t=function(e){var t=ke((e.version||"").split(".").map(Number),2),n=t[0],r=t[1];return n>=3||2===n&&r>=4||1===n&&r>=10}(e);function n(n,r,o){if(t&&void 0!==o){var a=o[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":a.appId,"X-Algolia-API-Key":a.apiKey};e.apply(void 0,[n].concat(Ce(r),[{headers:i}]))}else e.apply(void 0,[n].concat(Ce(r)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("clickedObjectIDsAfterSearch",Re(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("clickedObjectIDs",Re(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("convertedObjectIDsAfterSearch",Re(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&n("convertedObjectIDs",Re(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&t.reduce((function(e,t){var n=t.items,r=Te(t,je);return[].concat(Ce(e),Ce(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r<e.objectIDs.length;r+=t)n.push(Ne(Ne({},e),{},{objectIDs:e.objectIDs.slice(r,r+t)}));return n}(Ne(Ne({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return n("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function Fe(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function Me(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function ze(e){return ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ze(e)}function Be(e){return function(e){if(Array.isArray(e))return $e(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return $e(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $e(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(n),!0).forEach((function(t){Ve(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ue(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ve(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ze(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ze(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qe="2.6.0",We="https://cdn.jsdelivr.net/npm/search-insights@".concat(Qe,"/dist/search-insights.min.js"),qe=ye((function(e){var t=e.onItemsChange,n=e.items,r=e.insights,o=e.state;t({insights:r,insightsEvents:Fe({items:n}).map((function(e){return He({eventName:"Items Viewed"},e)})),state:o})}),400);function Ge(e){var t=function(e){return He({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.viewedObjectIDs.apply(t,Be(n.map((function(e){return He(He({},e),{},{algoliaSource:Ke(e.algoliaSource,r.context)})}))))},onSelect:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.clickedObjectIDsAfterSearch.apply(t,Be(n.map((function(e){return He(He({},e),{},{algoliaSource:Ke(e.algoliaSource,r.context)})}))))},onActive:xe,__autocomplete_clickAnalytics:!0},e)}(e),n=t.insightsClient,r=t.onItemsChange,o=t.onSelect,a=t.onActive,i=t.__autocomplete_clickAnalytics,s=n;if(n||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(s=t[n]),s||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t[n].queue.push(r)}),t[n].version=Qe,s=t[n],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var n=e.document.createElement("script");n.async=!0,n.src=We,n.onerror=function(){console.error(t)},document.body.appendChild(n)}catch(r){console.error(t)}}(t))})),!s)return{};var l=De(s),c=ve([]),u=ye((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(Be(e),Be(t.items))}),[]).filter(Me);we(c.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(c.current=n,n.length>0&&qe({onItemsChange:r,items:n,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function c(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:He(He({},i?{clickAnalytics:!0}:{}),e?{userToken:e}:{}),insights:l}})}s("addAlgoliaAgent","insights-plugin"),c(),s("onUserTokenChange",c),s("getUserToken",null,(function(e,t){c(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,a=e.source;Me(t)&&o({state:n,event:r,insights:l,item:t,insightsEvents:[He({eventName:"Item Selected"},Se({item:t,items:a.getItems().filter(Me)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;Me(t)&&a({state:r,event:o,insights:l,item:t,insightsEvents:[He({eventName:"Item Active"},Se({item:t,items:n.getItems().filter(Me)}))]})}))},onStateChange:function(e){var t=e.state;u({state:t})},__autocomplete_pluginOptions:e}}function Ke(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(Be(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],Be(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xe(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ye(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Je(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){Xe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:a}),n({state:o,prevState:i})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}function et(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function tt(e){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tt(e)}function nt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach((function(t){ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==tt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==tt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===tt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function at(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var it=0;function st(){return"autocomplete-".concat(it++)}function lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lt(Object(n),!0).forEach((function(t){ut(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ut(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==dt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===dt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dt(e){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dt(e)}function pt(e){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(e)}function ft(e){return function(e){if(Array.isArray(e))return gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return gt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){ht(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ht(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==pt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==pt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===pt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return bt(bt({debug:!1,openOnFocus:!1,enterKeyHint:void 0,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:void 0,environment:r,shouldPanelOpen:function(e){return at(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:st(),plugins:o,initialState:bt({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(ft(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:xe,onResolve:xe};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=ct(ct({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return et(e)})).then((function(e){return e.map((function(e){return bt(bt({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:bt({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}function _t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_t(Object(n),!0).forEach((function(t){xt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==vt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==vt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===vt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function St(e){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},St(e)}function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(n),!0).forEach((function(t){Ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ot(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==St(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==St(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===St(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jt(e){return function(e){if(Array.isArray(e))return Pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Pt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ct(e){return Boolean(e.execute)}function At(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(jt(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Et(Et({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Et(Et({},n),{},{params:Et(Et({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function Tt(e){var t=e.reduce((function(e,t){if(!Ct(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,a=t.requests,i=e.find((function(e){return Ct(t)&&Ct(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(i){var s;(s=i.items).push.apply(s,jt(a))}else{var l={execute:r,requesterId:o,items:a,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!Ct(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return et(e)}))}function It(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),a=o.map((function(e){return e.items})),i=o[0].transformResponse,s=i?i({results:r=a,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):a;return t.onResolve({source:t,results:a,items:s,state:n.getState()}),Array.isArray(s),s.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:s}}))}function Nt(e,t){var n=t;return{then:function(t,r){return Nt(e.then(Dt(t,n,e),Dt(r,n,e)),n)},catch:function(t){return Nt(e.catch(Dt(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Nt(e.finally(Dt(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Lt(e){return Nt(new Promise((function(t,n){return e(t,n)})),{isCanceled:!1,onCancelList:[]})}function Rt(e){return Nt(e,{isCanceled:!1,onCancelList:[]})}function Dt(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Ft(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,a=0;!1===r;){var i=t.collections[o];if(i===n){r=!0;break}a+=i.items.length,o++}return t.activeItemId-a}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function Mt(e){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mt(e)}Lt.resolve=function(e){return Rt(Promise.resolve(e))},Lt.reject=function(e){return Rt(Promise.reject(e))};var zt=["event","nextState","props","query","refresh","store"];function Bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Bt(Object(n),!0).forEach((function(t){Ut(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ut(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Mt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Mt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Mt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ht(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Vt,Qt,Wt,qt=null,Gt=(Vt=-1,Qt=-1,Wt=void 0,function(e){var t=++Vt;return Promise.resolve(e).then((function(e){return Wt&&t<Qt?Wt:(Qt=t,Wt=e,e)}))});function Kt(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,a=e.query,i=e.refresh,s=e.store,l=Ht(e,zt);qt&&o.environment.clearTimeout(qt);var c=l.setCollections,u=l.setIsOpen,d=l.setQuery,p=l.setActiveItemId,f=l.setStatus,g=l.setContext;if(d(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var m,b=s.getState().collections.map((function(e){return $t($t({},e),{},{items:[]})}));f("idle"),c(b),u(null!==(m=r.isOpen)&&void 0!==m?m:o.shouldPanelOpen({state:s.getState()}));var h=Rt(Gt(b).then((function(){return Promise.resolve()})));return s.pendingRequests.add(h)}f("loading"),qt=o.environment.setTimeout((function(){f("stalled")}),o.stallThreshold);var y=Rt(Gt(o.getSources($t({query:a,refresh:i,state:s.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems($t({query:a,refresh:i,state:s.getState()},l))).then((function(t){return At(t,e.sourceId,s.getState())}))}))).then(Tt).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));r&&g({algoliaInsightsPlugin:$t($t({},(null===(n=s.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})});return It(t,e,s)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return wt(wt({},e),{},xt({},t.source.sourceId,wt(wt({},t.source),{},{getItems:function(){return et(t.items)}})))}),{}),a=n.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:r}).sourcesBySourceId;return et(n.reshape({sourcesBySourceId:a,sources:Object.values(a),state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:s.getState()})}))})))).then((function(e){var n;f("idle"),c(e);var d=o.shouldPanelOpen({state:s.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!a&&d||d);var p=Ft(s.getState());if(null!==s.getState().activeItemId&&p){var g=p.item,m=p.itemInputValue,b=p.itemUrl,h=p.source;h.onActive($t({event:t,item:g,itemInputValue:m,itemUrl:b,refresh:i,source:h,state:s.getState()},l))}})).finally((function(){f("idle"),qt&&o.environment.clearTimeout(qt)}));return s.pendingRequests.add(y)}function Yt(e,t,n){return[e,null==n?void 0:n.sourceId,t].filter(Boolean).join("-").replace(/\s/g,"")}function Zt(e){return Zt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zt(e)}var Xt=["event","props","refresh","store"];function Jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function en(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jt(Object(n),!0).forEach((function(t){tn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function tn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Zt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Zt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Zt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var rn=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function on(e){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},on(e)}var an=["props","refresh","store"],sn=["inputElement","formElement","panelElement"],ln=["inputElement"],cn=["inputElement","maxLength"],un=["source"],dn=["item","source"];function pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pn(Object(n),!0).forEach((function(t){gn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==on(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==on(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===on(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function bn(e){var t=e.props,n=e.refresh,r=e.store,o=mn(e,an);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return fn({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},mn(e,sn))},getRootProps:function(e){return fn({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label")},e)},getFormProps:function(e){e.inputElement;return fn({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(fn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(fn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},mn(e,ln))},getLabelProps:function(e){return fn({htmlFor:Yt(t.id,"input"),id:Yt(t.id,"label")},e)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&Kt(fn({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=e||{},l=(s.inputElement,s.maxLength),c=void 0===l?512:l,u=mn(s,cn),d=Ft(r.getState()),p=function(e){return Boolean(e&&e.match(rn))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),f=t.enterKeyHint||(null!=d&&d.itemUrl&&!p?"go":"search");return fn({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?Yt(t.id,"item-".concat(r.getState().activeItemId),null==d?void 0:d.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label"),value:r.getState().completion||r.getState().query,id:Yt(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){Kt(fn({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=nn(e,Xt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=Ft(o.getState()),t=n.environment.document.getElementById(Yt(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},s=function(){var e=Ft(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,s=e.itemUrl,l=e.source;l.onActive(en({event:t,item:n,itemInputValue:i,itemUrl:s,refresh:r,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?Kt(en({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(i,0)})):(o.dispatch(t.key,{}),s(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=Ft(o.getState()),c=l.item,u=l.itemInputValue,d=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),void n.navigator.navigate({itemUrl:d,item:c,state:o.getState()});Kt(en({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:o},a)).then((function(){p.onSelect(en({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a))}))}}}(fn({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:xe,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},u)},getPanelProps:function(e){return fn({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=mn(n,un);return fn({role:"listbox","aria-labelledby":Yt(t.id,"label"),id:Yt(t.id,"list",r)},o)},getItemProps:function(e){var a=e.item,i=e.source,s=mn(e,dn);return fn({id:Yt(t.id,"item-".concat(a.__autocomplete_id),i),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=Ft(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,s=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(fn({event:e,item:i,itemInputValue:s,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var s=i.getItemInputValue({item:a,state:r.getState()}),l=i.getItemUrl({item:a,state:r.getState()});(l?Promise.resolve():Kt(fn({event:e,nextState:{isOpen:!1},props:t,query:s,refresh:n,store:r},o))).then((function(){i.onSelect(fn({event:e,item:a,itemInputValue:s,itemUrl:l,refresh:n,source:i,state:r.getState()},o))}))}},s)}}}var hn="1.12.2",yn=[{segment:"autocomplete-core",version:hn}];function vn(e){return vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vn(e)}function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==vn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===vn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Sn(e){var t,n,r,o,a=e.plugins,i=e.options,s=null===(t=((null===(n=i.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=s?xn({},s,Object.keys((null===(r=i.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:a.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:wn({"autocomplete-core":Object.keys(i)},l),ua:yn.concat((null===(o=i.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function kn(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=Ft(n))||void 0===t?void 0:t.itemInputValue)||null}function En(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function On(e){return On="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},On(e)}function jn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?jn(Object(n),!0).forEach((function(t){Cn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Cn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==On(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==On(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===On(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var An=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Pn(Pn({},e),{},{activeItemId:t.payload});case"setQuery":return Pn(Pn({},e),{},{query:t.payload,completion:null});case"setCollections":return Pn(Pn({},e),{},{collections:t.payload});case"setIsOpen":return Pn(Pn({},e),{},{isOpen:t.payload});case"setStatus":return Pn(Pn({},e),{},{status:t.payload});case"setContext":return Pn(Pn({},e),{},{context:Pn(Pn({},e.context),t.payload)});case"ArrowDown":var n=Pn(Pn({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:En(1,e.activeItemId,at(e),t.props.defaultActiveItemId)});return Pn(Pn({},n),{},{completion:kn({state:n})});case"ArrowUp":var r=Pn(Pn({},e),{},{activeItemId:En(-1,e.activeItemId,at(e),t.props.defaultActiveItemId)});return Pn(Pn({},r),{},{completion:kn({state:r})});case"Escape":return e.isOpen?Pn(Pn({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Pn(Pn({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Pn(Pn({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Pn(Pn({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",completion:null,query:""});case"focus":return Pn(Pn({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Pn(Pn({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Pn(Pn({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function Tn(e){return Tn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tn(e)}function In(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?In(Object(n),!0).forEach((function(t){Ln(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):In(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ln(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Tn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Tn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Tn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rn(e){var t=[],n=yt(e,t),r=Je(An,n,(function(e){var t,r,a=e.prevState,c=e.state;if(n.onStateChange(Nn({prevState:a,state:c,refresh:i,navigator:n.navigator},o)),!l()&&null!==(t=c.context)&&void 0!==t&&null!==(r=t.algoliaInsightsPlugin)&&void 0!==r&&r.__automaticInsights&&!1!==n.insights){var u=Ge({__autocomplete_clickAnalytics:!1});n.plugins.push(u),s([u])}})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return rt(rt({},e),{},{items:et(e.items).map((function(e){return rt(rt({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=bn(Nn({props:n,refresh:i,store:r,navigator:n.navigator},o));function i(){return Kt(Nn({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:i,store:r},o))}function s(e){e.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Nn(Nn({},o),{},{navigator:n.navigator,refresh:i,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))}))}function l(){return n.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))}if(n.insights&&!l()){var c="boolean"==typeof n.insights?{}:n.insights;n.plugins.push(Ge(c))}return s(n.plugins),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var a=o.document.createElement("meta"),i=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(r),i.appendChild(a)}),0)}}({metadata:Sn({plugins:n.plugins,options:e}),environment:n.environment}),Nn(Nn({refresh:i,navigator:n.navigator},a),o)}var Dn=function(e,t,n,r){var o;t[0]=0;for(var a=1;a<t.length;a++){var i=t[a++],s=t[a]?(t[0]|=i?1:2,n[t[a++]]):t[++a];3===i?r[0]=s:4===i?r[1]=Object.assign(r[1]||{},s):5===i?(r[1]=r[1]||{})[t[++a]]=s:6===i?r[1][t[++a]]+=s+"":i?(o=e.apply(s,Dn(e,s,n,["",null])),r.push(o),s[0]?t[0]|=2:(t[a-2]=0,t[a]=o)):r.push(s)}return r},Fn=new Map;function Mn(e){var t=Fn.get(this);return t||(t=new Map,Fn.set(this,t)),(t=Dn(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",a="",i=[0],s=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?i.push(0,e,o):3===r&&(e||o)?(i.push(3,e,o),r=2):2===r&&"..."===o&&e?i.push(4,e,0):2===r&&o&&!e?i.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},l=0;l<e.length;l++){l&&(1===r&&s(),s(l));for(var c=0;c<e[l].length;c++)t=e[l][c],1===r?"<"===t?(s(),i=[i],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(s(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(s(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(s(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return s(),i}(e)),t),arguments,[])).length>1?t:t[0]}var zn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},Bn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},$n=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},Un=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Hn(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Vn(e){this._listeners[e.type](e)}function Qn(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||Hn(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Un.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,Vn,r):e.removeEventListener(t,Vn,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Wn(e){return"onChange"===e?"onInput":e}function qn(e,t){for(var n in t)Qn(e,Wn(n),t[n])}function Gn(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Qn(e,Wn(n),t[n])}var Kn=["children"];function Yn(e){return function(e){if(Array.isArray(e))return Zn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Zn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Xn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Jn(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=Xn(n,Kn),i=e.document.createElement(t);return qn(i,a),i.append.apply(i,Yn(o)),i}}function er(e){return er="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},er(e)}var tr=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"];function nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nr(Object(n),!0).forEach((function(t){or(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function or(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==er(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==er(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===er(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ar(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ir=function(e){var t=e.autocompleteScopeApi,n=e.environment,r=(e.classNames,e.getInputProps),o=e.getInputPropsCore,a=e.isDetached,i=e.state,s=ar(e,tr),l=Jn(n)("input",s),c=r(rr({state:i,props:o({inputElement:l}),inputElement:l},t));return qn(l,rr(rr({},c),{},{onKeyDown:function(e){a&&"Tab"===e.key||c.onKeyDown(e)}})),l};function sr(e){return sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(e)}function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(Object(n),!0).forEach((function(t){ur(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ur(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==sr(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==sr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===sr(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var dr,pr,fr,gr,mr,br,hr,yr={},vr=[],_r=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,wr=Array.isArray;function xr(e,t){for(var n in t)e[n]=t[n];return e}function Sr(e){var t=e.parentNode;t&&t.removeChild(e)}function kr(e,t,n){var r,o,a,i={};for(a in t)"key"==a?r=t[a]:"ref"==a?o=t[a]:i[a]=t[a];if(arguments.length>2&&(i.children=arguments.length>3?dr.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return Er(e,i,r,o,null)}function Er(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++fr:o,__i:-1,__u:0};return null==o&&null!=pr.vnode&&pr.vnode(a),a}function Or(e){return e.children}function jr(e,t){this.props=e,this.context=t}function Pr(e,t){if(null==t)return e.__?Pr(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Pr(e):null}function Cr(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Cr(e)}}function Ar(e){(!e.__d&&(e.__d=!0)&&gr.push(e)&&!Tr.__r++||mr!==pr.debounceRendering)&&((mr=pr.debounceRendering)||br)(Tr)}function Tr(){var e,t,n,r,o,a,i,s,l;for(gr.sort(hr);e=gr.shift();)e.__d&&(t=gr.length,r=void 0,a=(o=(n=e).__v).__e,s=[],l=[],(i=n.__P)&&((r=xr({},o)).__v=o.__v+1,pr.vnode&&pr.vnode(r),Br(i,r,o,n.__n,void 0!==i.ownerSVGElement,32&o.__u?[a]:null,s,null==a?Pr(o):a,!!(32&o.__u),l),r.__.__k[r.__i]=r,$r(s,r,l),r.__e!=a&&Cr(r)),gr.length>t&&gr.sort(hr));Tr.__r=0}function Ir(e,t,n,r,o,a,i,s,l,c,u){var d,p,f,g,m,b=r&&r.__k||vr,h=t.length;for(n.__d=l,Nr(n,t,b),l=n.__d,d=0;d<h;d++)null!=(f=n.__k[d])&&"boolean"!=typeof f&&"function"!=typeof f&&(p=-1===f.__i?yr:b[f.__i]||yr,f.__i=d,Br(e,f,p,o,a,i,s,l,c,u),g=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&Hr(p.ref,null,f),u.push(f.ref,f.__c||g,f)),null==m&&null!=g&&(m=g),65536&f.__u||p.__k===f.__k?l=Lr(f,l,e):"function"==typeof f.type&&void 0!==f.__d?l=f.__d:g&&(l=g.nextSibling),f.__d=void 0,f.__u&=-196609);n.__d=l,n.__e=m}function Nr(e,t,n){var r,o,a,i,s,l=t.length,c=n.length,u=c,d=0;for(e.__k=[],r=0;r<l;r++)null!=(o=e.__k[r]=null==(o=t[r])||"boolean"==typeof o||"function"==typeof o?null:"string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?Er(null,o,null,null,o):wr(o)?Er(Or,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?Er(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,s=Rr(o,n,i=r+d,u),o.__i=s,a=null,-1!==s&&(u--,(a=n[s])&&(a.__u|=131072)),null==a||null===a.__v?(-1==s&&d--,"function"!=typeof o.type&&(o.__u|=65536)):s!==i&&(s===i+1?d++:s>i?u>l-i?d+=s-i:d--:d=s<i&&s==i-1?s-i:0,s!==r+d&&(o.__u|=65536))):(a=n[r])&&null==a.key&&a.__e&&(a.__e==e.__d&&(e.__d=Pr(a)),Vr(a,a,!1),n[r]=null,u--);if(u)for(r=0;r<c;r++)null!=(a=n[r])&&0==(131072&a.__u)&&(a.__e==e.__d&&(e.__d=Pr(a)),Vr(a,a))}function Lr(e,t,n){var r,o;if("function"==typeof e.type){for(r=e.__k,o=0;r&&o<r.length;o++)r[o]&&(r[o].__=e,t=Lr(r[o],t,n));return t}return e.__e!=t&&(n.insertBefore(e.__e,t||null),t=e.__e),t&&t.nextSibling}function Rr(e,t,n,r){var o=e.key,a=e.type,i=n-1,s=n+1,l=t[n];if(null===l||l&&o==l.key&&a===l.type)return n;if(r>(null!=l&&0==(131072&l.__u)?1:0))for(;i>=0||s<t.length;){if(i>=0){if((l=t[i])&&0==(131072&l.__u)&&o==l.key&&a===l.type)return i;i--}if(s<t.length){if((l=t[s])&&0==(131072&l.__u)&&o==l.key&&a===l.type)return s;s++}}return-1}function Dr(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||_r.test(t)?n:n+"px"}function Fr(e,t,n,r,o){var a;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Dr(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Dr(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])a=t!==(t=t.replace(/(PointerCapture)$|Capture$/,"$1")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=Date.now(),e.addEventListener(t,a?zr:Mr,a)):e.removeEventListener(t,a?zr:Mr,a);else{if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&"rowSpan"!==t&&"colSpan"!==t&&"role"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function Mr(e){var t=this.l[e.type+!1];if(e.t){if(e.t<=t.u)return}else e.t=Date.now();return t(pr.event?pr.event(e):e)}function zr(e){return this.l[e.type+!0](pr.event?pr.event(e):e)}function Br(e,t,n,r,o,a,i,s,l,c){var u,d,p,f,g,m,b,h,y,v,_,w,x,S,k,E=t.type;if(void 0!==t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),a=[s=t.__e=n.__e]),(u=pr.__b)&&u(t);e:if("function"==typeof E)try{if(h=t.props,y=(u=E.contextType)&&r[u.__c],v=u?y?y.props.value:u.__:r,n.__c?b=(d=t.__c=n.__c).__=d.__E:("prototype"in E&&E.prototype.render?t.__c=d=new E(h,v):(t.__c=d=new jr(h,v),d.constructor=E,d.render=Qr),y&&y.sub(d),d.props=h,d.state||(d.state={}),d.context=v,d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),null==d.__s&&(d.__s=d.state),null!=E.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=xr({},d.__s)),xr(d.__s,E.getDerivedStateFromProps(h,d.__s))),f=d.props,g=d.state,d.__v=t,p)null==E.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(null==E.getDerivedStateFromProps&&h!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(h,v),!d.__e&&(null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(h,d.__s,v)||t.__v===n.__v)){for(t.__v!==n.__v&&(d.props=h,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),_=0;_<d._sb.length;_++)d.__h.push(d._sb[_]);d._sb=[],d.__h.length&&i.push(d);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(h,d.__s,v),null!=d.componentDidUpdate&&d.__h.push((function(){d.componentDidUpdate(f,g,m)}))}if(d.context=v,d.props=h,d.__P=e,d.__e=!1,w=pr.__r,x=0,"prototype"in E&&E.prototype.render){for(d.state=d.__s,d.__d=!1,w&&w(t),u=d.render(d.props,d.state,d.context),S=0;S<d._sb.length;S++)d.__h.push(d._sb[S]);d._sb=[]}else do{d.__d=!1,w&&w(t),u=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++x<25);d.state=d.__s,null!=d.getChildContext&&(r=xr(xr({},r),d.getChildContext())),p||null==d.getSnapshotBeforeUpdate||(m=d.getSnapshotBeforeUpdate(f,g)),Ir(e,wr(k=null!=u&&u.type===Or&&null==u.key?u.props.children:u)?k:[k],t,n,r,o,a,i,s,l,c),d.base=t.__e,t.__u&=-161,d.__h.length&&i.push(d),b&&(d.__E=d.__=null)}catch(e){t.__v=null,l||null!=a?(t.__e=s,t.__u|=l?160:32,a[a.indexOf(s)]=null):(t.__e=n.__e,t.__k=n.__k),pr.__e(e,t,n)}else null==a&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Ur(n.__e,t,n,r,o,a,i,l,c);(u=pr.diffed)&&u(t)}function $r(e,t,n){t.__d=void 0;for(var r=0;r<n.length;r++)Hr(n[r],n[++r],n[++r]);pr.__c&&pr.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){pr.__e(e,t.__v)}}))}function Ur(e,t,n,r,o,a,i,s,l){var c,u,d,p,f,g,m,b=n.props,h=t.props,y=t.type;if("svg"===y&&(o=!0),null!=a)for(c=0;c<a.length;c++)if((f=a[c])&&"setAttribute"in f==!!y&&(y?f.localName===y:3===f.nodeType)){e=f,a[c]=null;break}if(null==e){if(null===y)return document.createTextNode(h);e=o?document.createElementNS("http://www.w3.org/2000/svg",y):document.createElement(y,h.is&&h),a=null,s=!1}if(null===y)b===h||s&&e.data===h||(e.data=h);else{if(a=a&&dr.call(e.childNodes),b=n.props||yr,!s&&null!=a)for(b={},c=0;c<e.attributes.length;c++)b[(f=e.attributes[c]).name]=f.value;for(c in b)f=b[c],"children"==c||("dangerouslySetInnerHTML"==c?d=f:"key"===c||c in h||Fr(e,c,null,f,o));for(c in h)f=h[c],"children"==c?p=f:"dangerouslySetInnerHTML"==c?u=f:"value"==c?g=f:"checked"==c?m=f:"key"===c||s&&"function"!=typeof f||b[c]===f||Fr(e,c,f,b[c],o);if(u)s||d&&(u.__html===d.__html||u.__html===e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),Ir(e,wr(p)?p:[p],t,n,r,o&&"foreignObject"!==y,a,i,a?a[0]:n.__k&&Pr(n,0),s,l),null!=a)for(c=a.length;c--;)null!=a[c]&&Sr(a[c]);s||(c="value",void 0!==g&&(g!==e[c]||"progress"===y&&!g||"option"===y&&g!==b[c])&&Fr(e,c,g,b[c],!1),c="checked",void 0!==m&&m!==e[c]&&Fr(e,c,m,b[c],!1))}return e}function Hr(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){pr.__e(e,n)}}function Vr(e,t,n){var r,o;if(pr.unmount&&pr.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Hr(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){pr.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Vr(r[o],t,n||"function"!=typeof e.type);n||null==e.__e||Sr(e.__e),e.__=e.__e=e.__d=void 0}function Qr(e,t,n){return this.constructor(e,n)}function Wr(e,t,n){var r,o,a,i;pr.__&&pr.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,a=[],i=[],Br(t,e=(!r&&n||t).__k=kr(Or,null,[e]),o||yr,yr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?dr.call(t.childNodes):null,a,!r&&n?n:o?o.__e:t.firstChild,r,i),$r(a,e,i)}function qr(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}dr=vr.slice,pr={__e:function(e,t,n,r){for(var o,a,i;t=t.__;)if((o=t.__c)&&!o.__)try{if((a=o.constructor)&&null!=a.getDerivedStateFromError&&(o.setState(a.getDerivedStateFromError(e)),i=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),i=o.__d),i)return o.__E=o}catch(t){e=t}throw e}},fr=0,jr.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=xr({},this.state),"function"==typeof e&&(e=e(xr({},n),this.props)),e&&xr(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Ar(this))},jr.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ar(this))},jr.prototype.render=Or,gr=[],br="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,hr=function(e,t){return e.__v.__b-t.__v.__b},Tr.__r=0;var Gr="__aa-highlight__",Kr="__/aa-highlight__";function Yr(e){var t=e.highlightedValue.split(Gr),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Kr);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Zr(e){return function(e){if(Array.isArray(e))return Xr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Xr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Jr(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=qr(t,["_highlightResult"].concat(Zr(r),["value"]));return"string"!=typeof o&&(o=qr(t,r)||""),Yr({highlightedValue:o})}function eo(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},Jr({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}var to={"&":"&","<":"<",">":">",""":'"',"'":"'"},no=new RegExp(/\w/i),ro=/&(amp|quot|lt|gt|#39);/g,oo=RegExp(ro.source);function ao(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,s=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return no.test((o=a.value)&&oo.test(o)?o.replace(ro,(function(e){return to[e]})):o)||s!==i?a.isHighlighted:s}function io(e){return io="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},io(e)}function so(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?so(Object(n),!0).forEach((function(t){co(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):so(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function co(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==io(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==io(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===io(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uo(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return lo(lo({},t),{},{isHighlighted:!ao(e,n)})})):e.map((function(e){return lo(lo({},e),{},{isHighlighted:!1})}))}function po(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,s=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},uo(Jr(r))).map((function(e,n){return e.isHighlighted?t(s,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function fo(e){return function(e){if(Array.isArray(e))return go(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return go(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return go(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function go(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function mo(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=qr(t,["_snippetResult"].concat(fo(r),["value"]));return"string"!=typeof o&&(o=qr(t,r)||""),Yr({highlightedValue:o})}function bo(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,s=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},uo(mo(r))).map((function(e,n){return e.isHighlighted?t(s,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function ho(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},mo({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}function yo(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function vo(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}function _o(e){return _o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_o(e)}var wo=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"];function xo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function So(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xo(Object(n),!0).forEach((function(t){ko(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ko(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==_o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_o(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Eo(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Oo={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},jo=function(e,t){var n=e.children;(0,e.render)(n,t)},Po={createElement:kr,Fragment:Or,render:Wr};function Co(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var s=r.getBoundingClientRect();return{top:i,left:s.left,right:o.document.documentElement.clientWidth-(s.left+s.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function Ao(e){return Ao="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ao(e)}function To(){return To=Object.assign?Object.assign.bind():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},To.apply(this,arguments)}function Io(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function No(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Io(Object(n),!0).forEach((function(t){Lo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Io(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Lo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ao(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ao(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ao(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ro=[{segment:"autocomplete-js",version:hn}];function Do(e){return function(e){if(Array.isArray(e))return Fo(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Fo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fo(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Mo(e){return Mo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mo(e)}var zo=function(e){return e&&"object"===Mo(e)&&"[object Object]"===Object.prototype.toString.call(e)};function Bo(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,Do(o)):zo(r)&&zo(o)?e[n]=Bo(r,o):e[n]=o})),e}),{})}function $o(e){return $o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$o(e)}function Uo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ho(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Uo(Object(n),!0).forEach((function(t){Vo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Uo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Vo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==$o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==$o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===$o(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Wo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Wo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Wo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var qo=["components"];function Go(e){return Go="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Go(e)}function Ko(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Yo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yo(Object(n),!0).forEach((function(t){Xo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xo(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Go(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Go(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Go(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jo(e){var t,n=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),r=n.runEffect,o=n.cleanupEffects,a=n.runEffects,i=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),s=i.reactive,l=i.runReactives,c=ve(!1),u=ve(e),d=ve(void 0),p=s((function(){return function(e){var t,n=e.classNames,r=e.container,o=e.getEnvironmentProps,a=e.getFormProps,i=e.getInputProps,s=e.getItemProps,l=e.getLabelProps,c=e.getListProps,u=e.getPanelProps,d=e.getRootProps,p=e.panelContainer,f=e.panelPlacement,g=e.render,m=e.renderNoResults,b=e.renderer,h=e.detachedMediaQuery,y=e.components,v=e.translations,_=Eo(e,wo),w="undefined"!=typeof window?window:{},x=yo(w,r);x.tagName;var S=So(So({},Po),b),k={Highlight:eo(S),ReverseHighlight:po(S),ReverseSnippet:bo(S),Snippet:ho(S)};return{renderer:{classNames:vo(Oo,null!=n?n:{}),container:x,getEnvironmentProps:null!=o?o:function(e){return e.props},getFormProps:null!=a?a:function(e){return e.props},getInputProps:null!=i?i:function(e){return e.props},getItemProps:null!=s?s:function(e){return e.props},getLabelProps:null!=l?l:function(e){return e.props},getListProps:null!=c?c:function(e){return e.props},getPanelProps:null!=u?u:function(e){return e.props},getRootProps:null!=d?d:function(e){return e.props},panelContainer:p?yo(w,p):w.document.body,panelPlacement:null!=f?f:"input-wrapper-width",render:null!=g?g:jo,renderNoResults:m,renderer:S,detachedMediaQuery:null!=h?h:getComputedStyle(w.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:So(So({},k),y),translations:So(So({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",submitButtonTitle:"Submit"}),v)},core:So(So({},_),{},{id:null!==(t=_.id)&&void 0!==t?t:st(),environment:w})}}(u.current)})),f=s((function(){return p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches})),g=s((function(){return Rn(Zo(Zo({},p.value.core),{},{onStateChange:function(e){var t,n,r;c.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=d.current)||void 0===t||t.call(d,e),null===(n=(r=p.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:u.current.shouldPanelOpen||function(e){var t=e.state;if(f.value)return!0;var n=at(t)>0;if(!p.value.core.openOnFocus&&!t.query)return n;var r=Boolean(c.current||p.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Ro,options:e}}))})),m=ve(Zo({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},p.value.core.initialState)),b={getEnvironmentProps:p.value.renderer.getEnvironmentProps,getFormProps:p.value.renderer.getFormProps,getInputProps:p.value.renderer.getInputProps,getItemProps:p.value.renderer.getItemProps,getLabelProps:p.value.renderer.getLabelProps,getListProps:p.value.renderer.getListProps,getPanelProps:p.value.renderer.getPanelProps,getRootProps:p.value.renderer.getRootProps},h={setActiveItemId:g.value.setActiveItemId,setQuery:g.value.setQuery,setCollections:g.value.setCollections,setIsOpen:g.value.setIsOpen,setStatus:g.value.setStatus,setContext:g.value.setContext,refresh:g.value.refresh,navigator:g.value.navigator},y=s((function(){return Mn.bind(p.value.renderer.renderer.createElement)})),v=s((function(){return function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.classNames,o=e.environment,a=e.isDetached,i=e.placeholder,s=void 0===i?"Search":i,l=e.propGetters,c=e.setIsModalOpen,u=e.state,d=e.translations,p=Jn(o),f=l.getRootProps(cr({state:u,props:t.getRootProps({})},n)),g=p("div",cr({class:r.root},f)),m=p("div",{class:r.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),b=p("div",{class:r.detachedOverlay,children:[m],onMouseDown:function(){c(!1),t.setIsOpen(!1)}}),h=l.getLabelProps(cr({state:u,props:t.getLabelProps({})},n)),y=p("button",{class:r.submitButton,type:"submit",title:d.submitButtonTitle,children:[zn({environment:o})]}),v=p("label",cr({class:r.label,children:[y]},h)),_=p("button",{class:r.clearButton,type:"reset",title:d.clearButtonTitle,children:[Bn({environment:o})]}),w=p("div",{class:r.loadingIndicator,children:[$n({environment:o})]}),x=ir({class:r.input,environment:o,state:u,getInputProps:l.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:n,isDetached:a}),S=p("div",{class:r.inputWrapperPrefix,children:[v,w]}),k=p("div",{class:r.inputWrapperSuffix,children:[_]}),E=p("div",{class:r.inputWrapper,children:[x]}),O=l.getFormProps(cr({state:u,props:t.getFormProps({inputElement:x})},n)),j=p("form",cr({class:r.form,children:[S,E,k]},O)),P=l.getPanelProps(cr({state:u,props:t.getPanelProps({})},n)),C=p("div",cr({class:r.panel},P)),A=p("div",{class:r.detachedSearchButtonQuery,textContent:u.query}),T=p("div",{class:r.detachedSearchButtonPlaceholder,hidden:Boolean(u.query),textContent:s});if(a){var I=p("div",{class:r.detachedSearchButtonIcon,children:[zn({environment:o})]}),N=p("button",{type:"button",class:r.detachedSearchButton,onClick:function(){c(!0)},children:[I,T,A]}),L=p("button",{type:"button",class:r.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),c(!1)}}),R=p("div",{class:r.detachedFormContainer,children:[j,L]});m.appendChild(R),g.appendChild(N)}else g.appendChild(j);return{detachedContainer:m,detachedOverlay:b,detachedSearchButtonQuery:A,detachedSearchButtonPlaceholder:T,inputWrapper:E,input:x,root:g,form:j,label:v,submitButton:y,clearButton:_,loadingIndicator:w,panel:C}}({autocomplete:g.value,autocompleteScopeApi:h,classNames:p.value.renderer.classNames,environment:p.value.core.environment,isDetached:f.value,placeholder:p.value.core.placeholder,propGetters:b,setIsModalOpen:S,state:m.current,translations:p.value.renderer.translations})}));function _(){qn(v.value.panel,{style:f.value?{}:Co({panelPlacement:p.value.renderer.panelPlacement,container:v.value.root,form:v.value.form,environment:p.value.core.environment})})}function w(e){m.current=e;var t={autocomplete:g.value,autocompleteScopeApi:h,classNames:p.value.renderer.classNames,components:p.value.renderer.components,container:p.value.renderer.container,html:y.value,dom:v.value,panelContainer:f.value?v.value.detachedContainer:p.value.renderer.panelContainer,propGetters:b,state:m.current,renderer:p.value.renderer.renderer},n=!at(e)&&!c.current&&p.value.renderer.renderNoResults||p.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,o=e.propGetters,a=e.state;Gn(r.root,o.getRootProps(No({state:a,props:t.getRootProps({})},n))),Gn(r.input,o.getInputProps(No({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),qn(r.label,{hidden:"stalled"===a.status}),qn(r.loadingIndicator,{hidden:"stalled"!==a.status}),qn(r.clearButton,{hidden:!a.query}),qn(r.detachedSearchButtonQuery,{textContent:a.query}),qn(r.detachedSearchButtonPlaceholder,{hidden:Boolean(a.query)})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,o=t.classNames,a=t.html,i=t.dom,s=t.panelContainer,l=t.propGetters,c=t.state,u=t.components,d=t.renderer;if(c.isOpen){s.contains(i.panel)||"loading"===c.status||s.appendChild(i.panel),i.panel.classList.toggle("aa-Panel--stalled","stalled"===c.status);var p=c.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var i=e.source,s=e.items;return d.createElement("section",{key:t,className:o.source,"data-autocomplete-source-id":i.sourceId},i.templates.header&&d.createElement("div",{className:o.sourceHeader},i.templates.header({components:u,createElement:d.createElement,Fragment:d.Fragment,items:s,source:i,state:c,html:a})),i.templates.noResults&&0===s.length?d.createElement("div",{className:o.sourceNoResults},i.templates.noResults({components:u,createElement:d.createElement,Fragment:d.Fragment,source:i,state:c,html:a})):d.createElement("ul",To({className:o.list},l.getListProps(No({state:c,props:n.getListProps({source:i})},r))),s.map((function(e){var t=n.getItemProps({item:e,source:i});return d.createElement("li",To({key:t.id,className:o.item},l.getItemProps(No({state:c,props:t},r))),i.templates.item({components:u,createElement:d.createElement,Fragment:d.Fragment,item:e,state:c,html:a}))}))),i.templates.footer&&d.createElement("div",{className:o.sourceFooter},i.templates.footer({components:u,createElement:d.createElement,Fragment:d.Fragment,items:s,source:i,state:c,html:a})))})),f=d.createElement(d.Fragment,null,d.createElement("div",{className:o.panelLayout},p),d.createElement("div",{className:"aa-GradientBottom"})),g=p.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(No(No({children:f,state:c,sections:p,elements:g},d),{},{components:u,html:a},r),i.panel)}else s.contains(i.panel)&&s.removeChild(i.panel)}(n,t)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o();var t,n,r=p.value.renderer,i=r.components,s=Ko(r,qo);u.current=Bo(s,p.value.core,{components:(t=i,n=function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")},Object.entries(t).reduce((function(e,t){var r=Qo(t,2),o=r[0],a=r[1];return n({key:o,value:a})?Ho(Ho({},e),{},Vo({},o,a)):e}),{})),initialState:m.current},e),l(),a(),g.value.refresh().then((function(){w(m.current)}))}function S(e){requestAnimationFrame((function(){var t=p.value.core.environment.document.body.contains(v.value.detachedOverlay);e!==t&&(e?(p.value.core.environment.document.body.appendChild(v.value.detachedOverlay),p.value.core.environment.document.body.classList.add("aa-Detached"),v.value.input.focus()):(p.value.core.environment.document.body.removeChild(v.value.detachedOverlay),p.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return r((function(){var e=g.value.getEnvironmentProps({formElement:v.value.form,panelElement:v.value.panel,inputElement:v.value.input});return qn(p.value.core.environment,e),function(){qn(p.value.core.environment,Object.keys(e).reduce((function(e,t){return Zo(Zo({},e),{},Xo({},t,void 0))}),{}))}})),r((function(){var e=f.value?p.value.core.environment.document.body:p.value.renderer.panelContainer,t=f.value?v.value.detachedOverlay:v.value.panel;return f.value&&m.current.isOpen&&S(!0),w(m.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=p.value.renderer.container;return e.appendChild(v.value.root),function(){e.removeChild(v.value.root)}})),r((function(){var e=ye((function(e){w(e.state)}),0);return d.current=function(t){var n=t.state,r=t.prevState;(f.value&&r.isOpen!==n.isOpen&&S(n.isOpen),f.value||!n.isOpen||r.isOpen||_(),n.query!==r.query)&&p.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){d.current=void 0}})),r((function(){var e=ye((function(){var e=f.value;f.value=p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches,e!==f.value?x({}):requestAnimationFrame(_)}),20);return p.value.core.environment.addEventListener("resize",e),function(){p.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!f.value)return function(){};function e(e){v.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=p.value.core.environment.matchMedia(getComputedStyle(p.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(_),function(){}})),Zo(Zo({},h),{},{update:x,destroy:function(){o()}})}var ea=n(950);const ta=n(622),na=ta;var ra=n(1176),oa=n.n(ra);function aa(){const e=(0,s.zy)(),t=(0,s.W6)(),{siteConfig:{baseUrl:n}}=(0,le.A)(),[o,a]=(0,r.useState)({terms:[],isDocsOrBlog:!1});return(0,r.useEffect)((()=>{if(!e.state?.cmfcmfhighlight||0===e.state.cmfcmfhighlight.terms.length)return;a(e.state.cmfcmfhighlight);const{cmfcmfhighlight:n,...r}=e.state;t.replace({...e,state:r})}),[e.state?.cmfcmfhighlight,t,e]),(0,r.useEffect)((()=>{if(0===o.terms.length)return;const e=o.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(!e)return;const t=new(oa())(e),n={ignoreJoiners:!0};return t.mark(o.terms,n),()=>t.unmark(n)}),[o,n]),null}var ia=n(1538),sa=n(1163);function la(e){let{document:t}=e;const[n,r]=t.sectionRoute.split("#");let o=n;return r&&(o+="#"+r),o}const ca={documents:[],index:na((function(){this.ref("id"),this.field("title"),this.field("content")}))};const ua=()=>{const e=(0,z.A)(),[t,o]=(0,r.useState)((()=>!!e&&"dark"===document.documentElement.getAttribute("data-theme")));(0,r.useEffect)((()=>{const e=new MutationObserver((()=>{o("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()}),[]);const{siteConfig:{baseUrl:a}}=(0,le.A)(),{titleBoost:i,contentBoost:c,tagsBoost:u,parentCategoriesBoost:d,indexDocSidebarParentCategories:p,maxSearchResults:f}=(0,ia.P_)("@cmfcmf/docusaurus-search-local"),g=(0,s.W6)(),{tags:m}=function(){const{i18n:e}=(0,le.A)(),t=n(150).vF(),r=[sa.C,...t];return{locale:e.currentLocale,tags:r}}(),b=(0,r.useRef)(m);(0,r.useEffect)((()=>{b.current=m}),[m]);const h=(0,r.useRef)({}),y=async e=>{const t=h.current[e];switch(t?.state){case"ready":return t;case void 0:{const t=[];h.current[e]={state:"loading",callbacks:t};const n=await async function(e,t){{let r;try{const n=await fetch(`${e}search-index-${t}.json`);if(!n.ok)return ca;r=await n.json()}catch(n){return ca}return{documents:r.documents,index:na.Index.load(r.index)}}}(a,e);return t.forEach((e=>e(n))),h.current[e]={state:"ready",...n}}case"loading":return new Promise((e=>{t.callbacks.push(e)}))}},v=(0,l.T)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),_=(0,r.useRef)(null),w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(_.current)return w.current=Jo({container:_.current,placeholder:v,renderer:{createElement:r.createElement,Fragment:r.Fragment,render:he.render},navigator:{navigate(e){let{item:t,itemUrl:n}=e;g.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,l.T)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,l.T)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,l.T)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources(e){let{query:t}=e;return[{sourceId:"search-results",templates:{item(e){let{item:t}=e;const n=la(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:e=>{e.preventDefault(),g.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:()=>r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,l.T)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))},getItemUrl(e){let{item:t}=e;return la(t)},async getItems(){const e=b.current,n=await Promise.all(e.map((e=>y(e)))),r=(e=>ta.tokenizer(e).map((e=>e.str)))(t);return n.flatMap((e=>{let{index:t,documents:n}=e;return t.query((e=>{e.term(r,{fields:["title"],boost:i}),e.term(r,{fields:["title"],boost:i,wildcard:na.Query.wildcard.TRAILING}),e.term(r,{fields:["content"],boost:c}),e.term(r,{fields:["content"],boost:c,wildcard:na.Query.wildcard.TRAILING}),e.term(r,{fields:["tags"],boost:u}),e.term(r,{fields:["tags"],boost:u,wildcard:na.Query.wildcard.TRAILING}),p&&(e.term(r,{fields:["sidebarParentCategories"],boost:d}),e.term(r,{fields:["sidebarParentCategories"],boost:d,wildcard:na.Query.wildcard.TRAILING}))})).slice(0,f).map((e=>({document:n.find((t=>t.id.toString()===e.ref)),score:e.score,terms:r})))})).sort(((e,t)=>t.score-e.score)).slice(0,f)}}]}}),()=>w.current?.destroy()}),[f]),r.createElement(r.Fragment,null,r.createElement(ea.A,null,r.createElement("body",{"data-theme":t?"dark":"light"})),r.createElement(aa,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:_,"data-tags":m.join(",")})))},da={navbarSearchContainer:"navbarSearchContainer_c6_E"};function pa(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,da.navbarSearchContainer),children:t})}var fa=n(150),ga=n(1614);var ma=n(6236);function ba(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find((t=>t.id===e.mainDocId))}(e)}const ha={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,ge.o)(),{search:f,hash:g}=(0,s.zy)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:be}),b]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(pa,{className:n,children:(0,u.jsx)(ua,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,fa.zK)(r),i=(0,ga.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,fa.zK)(r),i=(0,ga.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ga.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,fa.zK)(n),f=(0,fa.jh)(n),{savePreferredVersionName:g}=(0,ma.g1)(n),m=[...o,...f.map((function(e){const t=ba(e,p);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...a],b=(0,ga.Vd)(n)[0],h=t&&m.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&m.length>1?void 0:ba(b,p).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:h,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:h,to:y,items:m,isActive:r?()=>!1:void 0})}},ya=ha;function va(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=ya[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function _a(){const e=(0,C.M)(),t=(0,_.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(va,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function wa(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.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 xa(){const e=0===(0,_.p)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(wa,{onClick:()=>t.hide()}),t.content]})}function Sa(){const e=(0,C.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(_a,{}),secondaryMenu:(0,u.jsx)(xa,{})}):null}const ka={navbarHideable:"navbarHideable_xPBf",navbarHidden:"navbarHidden_eF4K"};function Ea(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Oa(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,_.p)(),i=(0,C.M)(),{navbarRef:s,isNavbarVisible:d}=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,A.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-a.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.$)((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}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[ka.navbarHideable,!d&&ka.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ea,{onClick:i.toggle}),(0,u.jsx)(Sa,{})]})}var ja=n(3652);const Pa={errorBoundaryError:"errorBoundaryError_YIPv",errorBoundaryFallback:"errorBoundaryFallback_gpsT"};function Ca(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.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 Aa(e){let{error:t}=e;const n=(0,ja.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Pa.errorBoundaryError,children:n})}class Ta extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Ia="right";function Na(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function La(){const{toggle:e,shown:t}=(0,C.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.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,u.jsx)(Na,{})})}const Ra={colorModeToggle:"colorModeToggle_kx9A"};function Da(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Ta,{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,u.jsx)(va,{...e})},t)))})}function Fa(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ma(){const e=(0,C.M)(),t=(0,_.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Ia)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(Fa,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(La,{}),(0,u.jsx)(G,{}),(0,u.jsx)(Da,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Da,{items:r}),(0,u.jsx)(W,{className:Ra.colorModeToggle}),!o&&(0,u.jsx)(pa,{children:(0,u.jsx)(ua,{})})]})})}function za(){return(0,u.jsx)(Oa,{children:(0,u.jsx)(Ma,{})})}function Ba(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.Ay)(n),l=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function $a(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ba,{item:t})},t.href??t.to)}function Ua(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)($a,{item:e},t)))})]})}function Ha(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Ua,{column:e},t)))})}function Va(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Qa(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ba,{item:t})}function Wa(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Qa,{item:e}),t.length!==n+1&&(0,u.jsx)(Va,{})]},n)))})})}function qa(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ha,{columns:t}):(0,u.jsx)(Wa,{links:t})}var Ga=n(1495);const Ka={footerLogoLink:"footerLogoLink_CidK"};function Ya(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(Ga.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Za(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:Ka.footerLogoLink,target:t.target,children:(0,u.jsx)(Ya,{logo:t})}):(0,u.jsx)(Ya,{logo:t})}function Xa(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ja(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function ei(){const{footer:e}=(0,_.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(Ja,{style:o,links:n&&n.length>0&&(0,u.jsx)(qa,{links:n}),logo:r&&(0,u.jsx)(Za,{logo:r}),copyright:t&&(0,u.jsx)(Xa,{copyright:t})})}const ti=r.memo(ei),ni=(0,T.fM)([M.a,w.o,A.Tv,ma.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(I.y_,{children:(0,u.jsx)(C.e,{children:(0,u.jsx)(L,{children:t})})})}]);function ri(e){let{children:t}=e;return(0,u.jsx)(ni,{children:t})}var oi=n(8038);function ai(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(oi.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Ca,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Aa,{error:t})})]})})})}const ii={mainWrapper:"mainWrapper_AbkR"};function si(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,h.J)(),(0,u.jsxs)(ri,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(P,{}),(0,u.jsx)(za,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(b.G.wrapper.main,ii.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(ai,{...e}),children:t})}),!n&&(0,u.jsx)(ti,{})]})}},31:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(758);var r=n(88),o=n(2235),a=n(4480),i=n(9618),s=n(1495),l=n(6070);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Ay)(t.src),dark:(0,o.Ay)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.Ay)(s?.href||"/"),g=n?"":t,m=s?.alt??g;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},4981:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);var r=n(950),o=n(6070);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1495:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(758),o=n(3526),a=n(5473),i=n(3617);const s={themedComponent:"themedComponent_Zwkh","themedComponent--light":"themedComponent--light_oZSx","themedComponent--dark":"themedComponent--dark_Ll79"};var l=n(6070);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},5186:(e,t,n)=>{"use strict";n.d(t,{N:()=>h,u:()=>c});var r=n(758),o=n(5575),a=n(3523),i=n(769),s=n(6070);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function g(e){if(!o.A.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function b(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(m,{...n,collapsed:l}):null}function h(e){let{lazy:t,...n}=e;const r=t?b:m;return(0,s.jsx)(r,{...n})}},5309:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,o:()=>g});var r=n(758),o=n(5473),a=n(7957),i=n(7888),s=n(9618),l=n(6070);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.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=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},3617:(e,t,n)=>{"use strict";n.d(t,{G:()=>h,a:()=>b});var r=n(758),o=n(5575),a=n(7888),i=n(7957),s=n(9618),l=n(6070);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function b(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8260:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>g});var r=n(758),o=n(5508),a=n(7569),i=n(5557),s=n(7888);function l(e){!function(e){const t=(0,i.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(9618),u=n(6070);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const 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 f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function g(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5508:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(758),o=n(7888),a=n(6070);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},980:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(758);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)}}),[])}},7569:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(758),o=n(5575);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(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}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},8539:(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}`},layout:{},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"}}},769:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},5182:(e,t,n)=>{"use strict";function r(e){return Array.from(new Set(e))}function o(e,t){const n={};let r=0;for(const o of e){const e=t(o,r);n[e]??=[],n[e].push(o),r+=1}return n}n.d(t,{$z:()=>o,sb:()=>r})},5003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>u,Jx:()=>f});var r=n(758),o=n(3526),a=n(950),i=n(4017),s=n(2235),l=n(4480);var c=n(6070);function u(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const u=function(e){const{siteConfig:t}=(0,l.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.hH)(),p=o?d(o,{absolute:!0}):void 0;return(0,c.jsxs)(a.A,{children:[t&&(0,c.jsx)("title",{children:u}),t&&(0,c.jsx)("meta",{property:"og:title",content:u}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,o.A)(i,t);return(0,c.jsxs)(d.Provider,{value:s,children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("html",{className:s})}),n]})}function f(e){let{children:t}=e;const n=(0,i.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,o.A)(r,a),children:t})}},7888:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(758),o=n(3523),a=n(6070);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l 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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},1197:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(758),o=n(1151),a=n(4480);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},372:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(758),o=n(5575),a=n(5473),i=(n(3523),n(7888)),s=n(6070);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);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){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),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?.()}}},1163:(e,t,n)=>{"use strict";n.d(t,{C:()=>r});const r="default"},7957:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>c});n(758);const r=JSON.parse('{"N":"localStorage","M":""}'),o=r.N;function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function i(e){if(void 0===e&&(e=o),"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,s||(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),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(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?l:{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),()=>{}}}}}},4703:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4480),o=n(5557),a=n(3652);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.Ks)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},3354:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(758),o=n(5557),a=n(7888);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])}},9618:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4480);function o(){return(0,r.A)().siteConfig.themeConfig}},2131:(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(/[#?]/),s="/"===i||i===r?i:(l=i,c=n,c?o(l):a(l));var l,c;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(5530);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},4113:(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]}},3652:(e,t,n)=>{"use strict";t.rA=t.Ks=t.LU=void 0;const r=n(3422);t.LU="__blog-post-container";var o=n(2131);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(5530);var i=n(4113);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},5530:(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}},4412:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(4784),o=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},a=function(e){return"IMG"===e.tagName},i=function(e){return e&&1===e.nodeType},s=function(e){return".svg"===(e.currentSrc||e.src).substr(-4).toLowerCase()},l=function(e){try{return Array.isArray(e)?e.filter(a):function(e){return NodeList.prototype.isPrototypeOf(e)}(e)?[].slice.call(e).filter(a):i(e)?[e].filter(a):"string"==typeof e?[].slice.call(document.querySelectorAll(e)).filter(a):[]}catch(t){throw new TypeError("The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList or an array.\nSee: https://github.com/francoischalifour/medium-zoom")}},c=function(e,t){var n=o({bubbles:!1,cancelable:!1,detail:void 0},t);if("function"==typeof window.CustomEvent)return new CustomEvent(e,n);var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),r};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}");const u=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=window.Promise||function(e){function t(){}e(t,t)},a=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.reduce((function(e,t){return[].concat(e,l(t))}),[]);return r.filter((function(e){return-1===f.indexOf(e)})).forEach((function(e){f.push(e),e.classList.add("medium-zoom-image")})),g.forEach((function(e){var t=e.type,n=e.listener,o=e.options;r.forEach((function(e){e.addEventListener(t,n,o)}))})),_},u=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target,t=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,n=void 0;if(h.container)if(h.container instanceof Object)t=(e=o({},e,h.container)).width-e.left-e.right-2*h.margin,n=e.height-e.top-e.bottom-2*h.margin;else{var r=(i(h.container)?h.container:document.querySelector(h.container)).getBoundingClientRect(),a=r.width,l=r.height,c=r.left,u=r.top;e=o({},e,{width:a,height:l,left:c,top:u})}t=t||e.width-2*h.margin,n=n||e.height-2*h.margin;var d=y.zoomedHd||y.original,p=s(d)?t:d.naturalWidth||t,f=s(d)?n:d.naturalHeight||n,g=d.getBoundingClientRect(),m=g.top,b=g.left,v=g.width,_=g.height,w=Math.min(Math.max(v,p),t)/v,x=Math.min(Math.max(_,f),n)/_,S=Math.min(w,x),k="scale("+S+") translate3d("+((t-v)/2-b+h.margin+e.left)/S+"px, "+((n-_)/2-m+h.margin+e.top)/S+"px, 0)";y.zoomed.style.transform=k,y.zoomedHd&&(y.zoomedHd.style.transform=k)};return new r((function(n){if(e&&-1===f.indexOf(e))n(_);else{if(y.zoomed)n(_);else{if(e)y.original=e;else{if(!(f.length>0))return void n(_);var r=f;y.original=r[0]}if(y.original.dispatchEvent(c("medium-zoom:open",{detail:{zoom:_}})),b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,m=!0,y.zoomed=function(e){var t=e.getBoundingClientRect(),n=t.top,r=t.left,o=t.width,a=t.height,i=e.cloneNode(),s=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,l=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return i.removeAttribute("id"),i.style.position="absolute",i.style.top=n+s+"px",i.style.left=r+l+"px",i.style.width=o+"px",i.style.height=a+"px",i.style.transform="",i}(y.original),document.body.appendChild(v),h.template){var o=i(h.template)?h.template:document.querySelector(h.template);y.template=document.createElement("div"),y.template.appendChild(o.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&"PICTURE"===y.original.parentElement.tagName&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",d),y.zoomed.addEventListener("transitionend",(function e(){m=!1,y.zoomed.removeEventListener("transitionend",e),y.original.dispatchEvent(c("medium-zoom:opened",{detail:{zoom:_}})),n(_)})),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(a),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,t()};var a=setInterval((function(){y.zoomedHd.complete&&(clearInterval(a),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),t())}),10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var s=y.zoomedHd.addEventListener("load",(function(){y.zoomedHd.removeEventListener("load",s),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),t()}))}else t()}}}))},d=function(){return new r((function(e){if(!m&&y.original){m=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(c("medium-zoom:close",{detail:{zoom:_}})),y.zoomed.addEventListener("transitionend",(function t(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(v),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),m=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(c("medium-zoom:closed",{detail:{zoom:_}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,e(_)}))}else e(_)}))},p=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target;return y.original?d():u({target:e})},f=[],g=[],m=!1,b=0,h=n,y={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?h=t:(t||"string"==typeof t)&&a(t);var v=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.background=e,t}((h=o({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},h)).background);document.addEventListener("click",(function(e){var t=e.target;t!==v?-1!==f.indexOf(t)&&p({target:t}):d()})),document.addEventListener("keyup",(function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||d()})),document.addEventListener("scroll",(function(){if(!m&&y.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(b-e)>h.scrollOffset&&setTimeout(d,150)}})),window.addEventListener("resize",d);var _={open:u,close:d,toggle:p,update:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(v.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=o({},h.container,e.container)),e.template){var n=i(e.template)?e.template:document.querySelector(e.template);t.template=n}return h=o({},h,t),f.forEach((function(e){e.dispatchEvent(c("medium-zoom:update",{detail:{zoom:_}}))})),_},clone:function(){return e(o({},h,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}))},attach:a,detach:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];y.zoomed&&d();var r=t.length>0?t.reduce((function(e,t){return[].concat(e,l(t))}),[]):f;return r.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(c("medium-zoom:detach",{detail:{zoom:_}}))})),f=f.filter((function(e){return-1===r.indexOf(e)})),_},on:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return f.forEach((function(r){r.addEventListener("medium-zoom:"+e,t,n)})),g.push({type:"medium-zoom:"+e,listener:t,options:n}),_},off:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return f.forEach((function(r){r.removeEventListener("medium-zoom:"+e,t,n)})),g=g.filter((function(n){return!(n.type==="medium-zoom:"+e&&n.listener.toString()===t.toString())})),_},getOptions:function(){return h},getImages:function(){return f},getZoomedImage:function(){return y.original}};return _},{themeConfig:d}=r.default;function p(e){var t,n;return document.querySelector('html[data-theme="dark"]')?(null===(t=e.background)||void 0===t?void 0:t.dark)||"rgb(50, 50, 50)":(null===(n=e.background)||void 0===n?void 0:n.light)||"rgb(255, 255, 255)"}const f=function(){if("undefined"==typeof window)return null;let e;const{zoom:t}=d,{selector:n=".markdown img",config:r={}}=t||{};if(!t)return null;r.background=p(t);var o=new MutationObserver((function(){e&&e.update({background:p(t)})}));const a=document.querySelector("html");return o.observe(a,{attributes:!0,attributeFilter:["data-theme"]}),setTimeout((()=>{e&&e.detach(),e=u(n,r)}),1e3),{onRouteUpdate(){setTimeout((()=>{e&&e.detach(),e=u(n,r)}),1e3)}}}()},3332:(e,t,n)=>{"use strict";n.d(t,{zR:()=>_,TM:()=>O,yJ:()=>f,sC:()=>P,AO:()=>p});var r=n(2479);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("/")||[],s=e&&o(e),l=t&&o(t),c=s||l;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}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(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var s=n(9923);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}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 g(){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 m=!("undefined"==typeof window||!window.document||!window.document.createElement);function b(e,t){t(window.confirm(e))}var h="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),m||(0,s.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,c=i.forceRefresh,_=void 0!==c&&c,w=i.getUserConfirmation,x=void 0===w?b:w,S=i.keyLength,k=void 0===S?6:S,E=e.basename?d(l(e.basename)):"";function O(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return E&&(a=u(a,E)),f(a,r,n)}function j(){return Math.random().toString(36).substr(2,k)}var P=g();function C(e){(0,r.A)($,e),$.length=n.length,P.notifyListeners($.location,$.action)}function A(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(O(e.state))}function T(){N(O(v()))}var I=!1;function N(e){if(I)I=!1,C();else{P.confirmTransitionTo(e,"POP",x,(function(t){t?C({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(I=!0,F(o))}(e)}))}}var L=O(v()),R=[L.key];function D(e){return E+p(e)}function F(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(h,A),a&&window.addEventListener(y,T)):0===M&&(window.removeEventListener(h,A),a&&window.removeEventListener(y,T))}var B=!1;var $={length:n.length,action:"POP",location:L,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,j(),$.location);P.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),_)window.location.href=t;else{var l=R.indexOf($.location.key),c=R.slice(0,l+1);c.push(a.key),R=c,C({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,j(),$.location);P.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),_)window.location.replace(t);else{var l=R.indexOf($.location.key);-1!==l&&(R[l]=a.key),C({action:r,location:a})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=P.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=P.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var w="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function k(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(S(window.location.href)+"#"+e)}function O(e){void 0===e&&(e={}),m||(0,s.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?b:o,i=n.hashType,c=void 0===i?"slash":i,h=e.basename?d(l(e.basename)):"",y=x[c],v=y.encodePath,_=y.decodePath;function O(){var e=_(k());return h&&(e=u(e,h)),f(e)}var j=g();function P(e){(0,r.A)(B,e),B.length=t.length,j.notifyListeners(B.location,B.action)}var C=!1,A=null;function T(){var e,t,n=k(),r=v(n);if(n!==r)E(r);else{var o=O(),i=B.location;if(!C&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(A===p(o))return;A=null,function(e){if(C)C=!1,P();else{var t="POP";j.confirmTransitionTo(e,t,a,(function(n){n?P({action:t,location:e}):function(e){var t=B.location,n=R.lastIndexOf(p(t));-1===n&&(n=0);var r=R.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(C=!0,D(o))}(e)}))}}(o)}}var I=k(),N=v(I);I!==N&&E(N);var L=O(),R=[p(L)];function D(e){t.go(e)}var F=0;function M(e){1===(F+=e)&&1===e?window.addEventListener(w,T):0===F&&window.removeEventListener(w,T)}var z=!1;var B={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(h+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);j.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(h+t);if(k()!==o){A=t,function(e){window.location.hash=e}(o);var a=R.lastIndexOf(p(B.location)),i=R.slice(0,a+1);i.push(t),R=i,P({action:n,location:r})}else P()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);j.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(h+t);k()!==o&&(A=t,E(o));var a=R.indexOf(p(B.location));-1!==a&&(R[a]=t),P({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=j.setPrompt(e);return z||(M(1),z=!0),function(){return z&&(z=!1,M(-1)),t()}},listen:function(e){var t=j.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function j(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=g();function d(e){(0,r.A)(_,e),_.length=_.entries.length,u.notifyListeners(_.location,_.action)}function m(){return Math.random().toString(36).substr(2,c)}var b=j(s,0,a.length-1),h=a.map((function(e){return f(e,void 0,"string"==typeof e?m():e.key||m())})),y=p;function v(e){var t=j(_.index+e,0,_.entries.length-1),r=_.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var _={length:h.length,action:"POP",location:h[b],index:b,entries:h,createHref:y,push:function(e,t){var r="PUSH",o=f(e,t,m(),_.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=_.index+1,n=_.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,m(),_.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(_.entries[_.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=_.index+e;return t>=0&&t<_.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return _}},1035:(e,t,n)=>{"use strict";var r=n(5959),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},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),b=0;b<i.length;++b){var h=i[b];if(!(a[h]||r&&r[h]||m&&m[h]||s&&s[h])){var y=p(n,h);try{c(t,h,y)}catch(v){}}}}return t}},9597:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5526:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1176:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=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},o=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,l=0;i=Array.prototype.slice.call(i);var c=function(){--s<=0&&a(l)};s||c(),i.forEach((function(t){e.matches(t,o.exclude)?c():o.onIframeReady(t,(function(e){n(t)&&(l++,r(e)),c()}),c)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],l=[],c=void 0,u=void 0,d=function(){var e=a.getIteratorNode(i);return u=e.prevNode,c=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(c,u,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return l.push(e)}),r)})),l.push(c);l.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var l=e.nodes[s+1];if(void 0===l||l.start>t){if(!r(i.node))return!1;var c=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=a.wrapRangeInTextNode(i.node,c,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var l=1;l<i;l++)s+=o[l].length;t=a.wrapRangeInTextNode(t,s,s+o[i].length),r(t.previousSibling),e.lastIndex=0}})),o()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[i];){var l=s.index;if(0!==i)for(var c=1;c<i;c++)l+=s[c].length;var u=l+s[i].length;a.wrapRangeInMappedTextNode(t,l,u,(function(e){return n(s[i],e)}),(function(t,n){e.lastIndex=n,r(t)}))}o()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes((function(a){var i=a.value.length;e.forEach((function(e,r){var s=o.checkWhitespaceRanges(e,i,a.value),l=s.start,c=s.end;s.valid&&o.wrapRangeInMappedTextNode(a,l,c,(function(n){return t(n,e,a.value.substring(l,c),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,o="wrapMatches",a=function(e){r++,n.opt.each(e)};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),a,(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",a=this.getSeparatedKeywords("string"==typeof e?[e]:e),i=a.keywords,s=a.length,l=this.opt.caseSensitive?"":"i",c=function e(t){var a=new RegExp(n.createRegExp(t),"gm"+l),c=0;n.log('Searching with expression "'+a+'"'),n[o](a,1,(function(e,o){return n.opt.filter(o,t,r,c)}),(function(e){c++,r++,n.opt.each(e)}),(function(){0===c&&n.opt.noMatch(t),i[s-1]===t?n.opt.done(r):e(i[i.indexOf(t)+1])}))};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===s?this.opt.done(r):c(i[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,(function(e,t,r,o){return n.opt.filter(e,t,r,o)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=o.matches(e,n),a=t.matchesExclude(e);return!r||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),a}();function i(e){var t=this,n=new a(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}return i}()},3905:(e,t,n)=>{"use strict";n.r(t)},171:(e,t,n)=>{"use strict";n.r(t)},8744: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),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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 c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(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)},6150:(e,t,n)=>{var r=n(5526);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var g=e[i],m=n[2],b=n[3],h=n[4],y=n[5],v=n[6],_=n[7];s&&(r.push(s),s="");var w=null!=m&&null!=g&&g!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,k=n[2]||u,E=h||y;r.push({name:b||a++,prefix:m||"",delimiter:k,optional:S,repeat:x,partial:w,asterisk:!!_,pattern:E?c(E):_?".*":"[^"+l(k)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(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+")$",d(t)));return function(t,o){for(var a="",s=t||{},l=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var g=l(n.delimiter||"/"),m=i.slice(-g.length)===g;return o||(i=(m?i.slice(0,-g.length):i)+"(?:"+g+"(?=$))?"),i+=a?"$":o&&m?"":"(?="+g+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(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 u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},8520:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},8228:()=>{Prism.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"}},Prism.languages.webmanifest=Prism.languages.json},1274:()=>{!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,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=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(s){for(var l=0;l<s.length&&!(o>=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++o;var m=p.substring(0,g),b=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),h=p.substring(g+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(b),h&&y.push.apply(y,i([h])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},6186:(e,t,n)=>{"use strict";var r=n(2985);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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}},2736:(e,t,n)=>{e.exports=n(6186)()},2985:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9481:(e,t,n)=>{"use strict";var r=n(758),o=n(1896);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,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("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={},g={};function m(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 b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new m(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){b[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var h=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var o=b.hasOwnProperty(t)?b[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(g,e)||!d.call(f,e)&&(p.test(e)?g[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(h,y);b[t]=new m(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(h,y);b[t]=new m(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(h,y);b[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var _=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),O=Symbol.for("react.provider"),j=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),I=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var N=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var L=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=L&&e[L]||e["@@iterator"])?e:null}var D,F=Object.assign;function M(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("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 E:return"Profiler";case k:return"StrictMode";case C:return"Suspense";case A:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case j:return(e.displayName||"Context")+".Consumer";case O:return(e._context.displayName||"Context")+".Provider";case P:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case T:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case I:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function H(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===k?"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 V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(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 q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function G(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 F({},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=V(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=V(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,V(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&&G(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=""+V(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 F({},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:V(n)}}function ae(e,t){var n=V(t.value),r=V(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 se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.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 ue(e,t)}))}:ue);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},ge=["Webkit","ms","Moz","O"];function me(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 be(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var he=F({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 ye(e,t){if(t){if(he[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 _e=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,ke=null;function Ee(e){if(e=_o(e)){if("function"!=typeof xe)throw Error(a(280));var t=e.stateNode;t&&(t=xo(t),xe(e.stateNode,e.type,t))}}function Oe(e){Se?ke?ke.push(e):ke=[e]:Se=e}function je(){if(Se){var e=Se,t=ke;if(ke=Se=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Pe(e,t){return e(t)}function Ce(){}var Ae=!1;function Te(e,t,n){if(Ae)return e(t,n);Ae=!0;try{return Pe(e,t,n)}finally{Ae=!1,(null!==Se||null!==ke)&&(Ce(),je())}}function Ie(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 Ne=!1;if(u)try{var Le={};Object.defineProperty(Le,"passive",{get:function(){Ne=!0}}),window.addEventListener("test",Le,Le),window.removeEventListener("test",Le,Le)}catch(ue){Ne=!1}function Re(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var De=!1,Fe=null,Me=!1,ze=null,Be={onError:function(e){De=!0,Fe=e}};function $e(e,t,n,r,o,a,i,s,l){De=!1,Fe=null,Re.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function He(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 Ve(e){if(Ue(e)!==e)throw Error(a(188))}function Qe(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 Ve(o),e;if(i===r)return Ve(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)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))?We(e):null}function We(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=We(e);if(null!==t)return t;e=e.sibling}return null}var qe=o.unstable_scheduleCallback,Ge=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-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=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 s=i&~o;0!==s?r=dt(s):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&&0!=(4194240&a)))return t;if(0!=(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 gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ht(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(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 _t(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var wt,xt,St,kt,Et,Ot=!1,jt=[],Pt=null,Ct=null,At=null,Tt=new Map,It=new Map,Nt=[],Lt="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 Rt(e,t){switch(e){case"focusin":case"focusout":Pt=null;break;case"dragenter":case"dragleave":Ct=null;break;case"mouseover":case"mouseout":At=null;break;case"pointerover":case"pointerout":Tt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":It.delete(t.pointerId)}}function Dt(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=_o(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Ft(e){var t=vo(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=He(n)))return e.blockedOn=t,void Et(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 Mt(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=_o(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);_e=r,n.target.dispatchEvent(r),_e=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ot=!1,null!==Pt&&Mt(Pt)&&(Pt=null),null!==Ct&&Mt(Ct)&&(Ct=null),null!==At&&Mt(At)&&(At=null),Tt.forEach(zt),It.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ot||(Ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<jt.length){$t(jt[0],e);for(var n=1;n<jt.length;n++){var r=jt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pt&&$t(Pt,e),null!==Ct&&$t(Ct,e),null!==At&&$t(At,e),Tt.forEach(t),It.forEach(t),n=0;n<Nt.length;n++)(r=Nt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Nt.length&&null===(n=Nt[0]).blockedOn;)Ft(n),null===n.blockedOn&&Nt.shift()}var Ht=_.ReactCurrentBatchConfig,Vt=!0;function Qt(e,t,n,r){var o=vt,a=Ht.transition;Ht.transition=null;try{vt=1,qt(e,t,n,r)}finally{vt=o,Ht.transition=a}}function Wt(e,t,n,r){var o=vt,a=Ht.transition;Ht.transition=null;try{vt=4,qt(e,t,n,r)}finally{vt=o,Ht.transition=a}}function qt(e,t,n,r){if(Vt){var o=Kt(e,t,n,r);if(null===o)Vr(e,t,r,Gt,n),Rt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Pt=Dt(Pt,e,t,n,r,o),!0;case"dragenter":return Ct=Dt(Ct,e,t,n,r,o),!0;case"mouseover":return At=Dt(At,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Tt.set(a,Dt(Tt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,It.set(a,Dt(It.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<Lt.indexOf(e)){for(;null!==o;){var a=_o(o);if(null!==a&&wt(a),null===(a=Kt(e,t,n,r))&&Vr(e,t,r,Gt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Gt=null;function Kt(e,t,n,r){if(Gt=null,null!==(e=vo(e=we(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=He(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 Gt=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 F(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,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=F({},cn,{view:0,detail:0}),pn=on(dn),fn=F({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,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!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=on(fn),mn=on(F({},fn,{dataTransfer:0})),bn=on(F({},dn,{relatedTarget:0})),hn=on(F({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=F({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=on(yn),_n=on(F({},cn,{data:0})),wn={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 kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function En(){return kn}var On=F({},dn,{key:function(e){if(e.key){var t=wn[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:En,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}}),jn=on(On),Pn=on(F({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Cn=on(F({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),An=on(F({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Tn=F({},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}),In=on(Tn),Nn=[9,13,27,32],Ln=u&&"CompositionEvent"in window,Rn=null;u&&"documentMode"in document&&(Rn=document.documentMode);var Dn=u&&"TextEvent"in window&&!Rn,Fn=u&&(!Ln||Rn&&8<Rn&&11>=Rn),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.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 Hn={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 Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Qn(e,t,n,r){Oe(r),0<(t=Wr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,qn=null;function Gn(e){Mr(e,0)}function Kn(e){if(q(wo(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(u){var Xn;if(u){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(){Wn&&(Wn.detachEvent("onpropertychange",nr),qn=Wn=null)}function nr(e){if("value"===e.propertyName&&Kn(qn)){var t=[];Qn(t,qn,e,we(e)),Te(Gn,t)}}function rr(e,t,n){"focusin"===e?(tr(),qn=n,(Wn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(qn)}function ar(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(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)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(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=cr(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=G();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=G((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 gr(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=ur(n,a);var i=ur(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 mr=u&&"documentMode"in document&&11>=document.documentMode,br=null,hr=null,yr=null,vr=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==br||br!==G(r)||("selectionStart"in(r=br)&&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},yr&&lr(yr,r)||(yr=r,0<(r=Wr(hr,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},Sr={},kr={};function Er(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 kr)return Sr[e]=n[t];return e}u&&(kr=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 Or=Er("animationend"),jr=Er("animationiteration"),Pr=Er("animationstart"),Cr=Er("transitionend"),Ar=new Map,Tr="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 Ir(e,t){Ar.set(e,t),l(t,[e])}for(var Nr=0;Nr<Tr.length;Nr++){var Lr=Tr[Nr];Ir(Lr.toLowerCase(),"on"+(Lr[0].toUpperCase()+Lr.slice(1)))}Ir(Or,"onAnimationEnd"),Ir(jr,"onAnimationIteration"),Ir(Pr,"onAnimationStart"),Ir("dblclick","onDoubleClick"),Ir("focusin","onFocus"),Ir("focusout","onBlur"),Ir(Cr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="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(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Fr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if($e.apply(this,arguments),De){if(!De)throw Error(a(198));var u=Fe;De=!1,Fe=null,Me||(Me=!0,ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=0!=(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 s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Fr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Fr(o,s,c),a=l}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zr(e,t){var n=t[bo];void 0===n&&(n=t[bo]=new Set);var r=e+"__bubble";n.has(r)||(Hr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),Hr(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&&(Dr.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 Hr(e,t,n,r){switch(Yt(t)){case 1:var o=Qt;break;case 4:o=Wt;break;default:o=qt}n=o.bind(null,t,n,e),o=void 0,!Ne||"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 Vr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=vo(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Te((function(){var r=a,o=we(n),i=[];e:{var s=Ar.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=jn;break;case"focusin":c="focus",l=bn;break;case"focusout":c="blur",l=bn;break;case"beforeblur":case"afterblur":l=bn;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":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Cn;break;case Or:case jr:case Pr:l=hn;break;case Cr:l=An;break;case"scroll":l=pn;break;case"wheel":l=In;break;case"copy":case"cut":case"paste":l=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Pn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,g=r;null!==g;){var m=(f=g).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Ie(g,p))&&u.push(Qr(g,m,f)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===_e||!(c=n.relatedTarget||n.fromElement)||!vo(c)&&!c[mo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?vo(c):null)&&(c!==(d=Ue(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,m="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=Pn,m="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:wo(l),f=null==c?s:wo(c),(s=new u(m,g+"leave",l,n,o)).target=d,s.relatedTarget=f,m=null,vo(o)===r&&((u=new u(p,g+"enter",c,n,o)).target=f,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(p=c,g=0,f=u=l;f;f=qr(f))g++;for(f=0,m=p;m;m=qr(m))f++;for(;0<g-f;)u=qr(u),g--;for(;0<f-g;)p=qr(p),f--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=qr(u),p=qr(p)}u=null}else u=null;null!==l&&Gr(i,s,l,u,!1),null!==c&&null!==d&&Gr(i,d,c,u,!0)}if("select"===(l=(s=r?wo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var b=Yn;else if(Vn(s))if(Zn)b=ir;else{b=or;var h=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(b=ar);switch(b&&(b=b(e,r))?Qn(i,b,n,o):(h&&h(e,s,r),"focusout"===e&&(h=s._wrapperState)&&h.controlled&&"number"===s.type&&ee(s,"number",s.value)),h=r?wo(r):window,e){case"focusin":(Vn(h)||"true"===h.contentEditable)&&(br=h,hr=r,yr=null);break;case"focusout":yr=hr=br=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,_r(i,n,o);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":_r(i,n,o)}var y;if(Ln)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&&(Fn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Zt=o)?Zt.value:Zt.textContent,Un=!0)),0<(h=Wr(r,v)).length&&(v=new _n(v,e,null,n,o),i.push({event:v,listeners:h}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Dn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!Ln&&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 Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Wr(r,"onBeforeInput")).length&&(o=new _n("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=y))}Mr(i,t)}))}function Qr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(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=Ie(e,n))&&r.unshift(Qr(e,a,o)),null!=(a=Ie(e,t))&&r.push(Qr(e,a,o))),e=e.return}return r}function qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Gr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Ie(n,a))&&i.unshift(Qr(n,l,s)):o||null!=(l=Ie(n,a))&&i.push(Qr(n,l,s))),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(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(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 co(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 uo(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,go="__reactProps$"+po,mo="__reactContainer$"+po,bo="__reactEvents$"+po,ho="__reactListeners$"+po,yo="__reactHandles$"+po;function vo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[mo]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function _o(e){return!(e=e[fo]||e[mo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function xo(e){return e[go]||null}var So=[],ko=-1;function Eo(e){return{current:e}}function Oo(e){0>ko||(e.current=So[ko],So[ko]=null,ko--)}function jo(e,t){ko++,So[ko]=e.current,e.current=t}var Po={},Co=Eo(Po),Ao=Eo(!1),To=Po;function Io(e,t){var n=e.type.contextTypes;if(!n)return Po;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 No(e){return null!=(e=e.childContextTypes)}function Lo(){Oo(Ao),Oo(Co)}function Ro(e,t,n){if(Co.current!==Po)throw Error(a(168));jo(Co,t),jo(Ao,n)}function Do(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,H(e)||"Unknown",o));return F({},n,r)}function Fo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Po,To=Co.current,jo(Co,e),jo(Ao,Ao.current),!0}function Mo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Do(e,t,To),r.__reactInternalMemoizedMergedChildContext=e,Oo(Ao),Oo(Co),jo(Co,e)):Oo(Ao),jo(Ao,n)}var zo=null,Bo=!1,$o=!1;function Uo(e){null===zo?zo=[e]:zo.push(e)}function Ho(){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)),qe(Je,Ho),o}finally{vt=t,$o=!1}}return null}var Vo=[],Qo=0,Wo=null,qo=0,Go=[],Ko=0,Yo=null,Zo=1,Xo="";function Jo(e,t){Vo[Qo++]=qo,Vo[Qo++]=Wo,Wo=e,qo=t}function ea(e,t,n){Go[Ko++]=Zo,Go[Ko++]=Xo,Go[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===Wo;)Wo=Vo[--Qo],Vo[Qo]=null,qo=Vo[--Qo],Vo[Qo]=null;for(;e===Yo;)Yo=Go[--Ko],Go[Ko]=null,Xo=Go[--Ko],Go[Ko]=null,Zo=Go[--Ko],Go[Ko]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Tc(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 la(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=co(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=Tc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function ua(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(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(ca(e))throw fa(),Error(a(418));for(;t;)sa(e,t),t=co(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=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=co(e.nextSibling)}function ga(){oa=ra=null,aa=!1}function ma(e){null===ia?ia=[e]:ia.push(e)}var ba=_.ReactCurrentBatchConfig;function ha(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 ya(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 _a(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=Nc(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 s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(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===I&&va(a)===t.type)?((r=o(t,n.props)).ref=ha(e,t,n),r.return=e,r):((r=Lc(n.type,n.key,n.props,null,e.mode,r)).ref=ha(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Mc(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=Rc(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=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Lc(t.type,t.key,t.props,null,e.mode,n)).ref=ha(e,null,t),n.return=e,n;case x:return(t=Mc(t,e.mode,n)).return=e,t;case I:return p(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Rc(t,e.mode,n,null)).return=e,t;ya(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:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?c(e,t,n,r):null;case x:return n.key===o?u(e,t,n,r):null;case I:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||R(n))return null!==o?null:d(e,t,n,r,null);ya(e,n)}return null}function g(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case w:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case I:return g(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||R(r))return d(t,e=e.get(n)||null,r,o,null);ya(t,r)}return null}function m(o,a,s,l){for(var c=null,u=null,d=a,m=a=0,b=null;null!==d&&m<s.length;m++){d.index>m?(b=d,d=null):b=d.sibling;var h=f(o,d,s[m],l);if(null===h){null===d&&(d=b);break}e&&d&&null===h.alternate&&t(o,d),a=i(h,a,m),null===u?c=h:u.sibling=h,u=h,d=b}if(m===s.length)return n(o,d),aa&&Jo(o,m),c;if(null===d){for(;m<s.length;m++)null!==(d=p(o,s[m],l))&&(a=i(d,a,m),null===u?c=d:u.sibling=d,u=d);return aa&&Jo(o,m),c}for(d=r(o,d);m<s.length;m++)null!==(b=g(d,o,m,s[m],l))&&(e&&null!==b.alternate&&d.delete(null===b.key?m:b.key),a=i(b,a,m),null===u?c=b:u.sibling=b,u=b);return e&&d.forEach((function(e){return t(o,e)})),aa&&Jo(o,m),c}function b(o,s,l,c){var u=R(l);if("function"!=typeof u)throw Error(a(150));if(null==(l=u.call(l)))throw Error(a(151));for(var d=u=null,m=s,b=s=0,h=null,y=l.next();null!==m&&!y.done;b++,y=l.next()){m.index>b?(h=m,m=null):h=m.sibling;var v=f(o,m,y.value,c);if(null===v){null===m&&(m=h);break}e&&m&&null===v.alternate&&t(o,m),s=i(v,s,b),null===d?u=v:d.sibling=v,d=v,m=h}if(y.done)return n(o,m),aa&&Jo(o,b),u;if(null===m){for(;!y.done;b++,y=l.next())null!==(y=p(o,y.value,c))&&(s=i(y,s,b),null===d?u=y:d.sibling=y,d=y);return aa&&Jo(o,b),u}for(m=r(o,m);!y.done;b++,y=l.next())null!==(y=g(m,o,b,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?b:y.key),s=i(y,s,b),null===d?u=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(o,e)})),aa&&Jo(o,b),u}return function e(r,a,i,l){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 w:e:{for(var c=i.key,u=a;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===I&&va(c)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=ha(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((a=Rc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Lc(i.type,i.key,i.props,null,r.mode,l)).ref=ha(r,a,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==a;){if(a.key===u){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=Mc(i,r.mode,l)).return=r,r=a}return s(r);case I:return e(r,a,(u=i._init)(i._payload),l)}if(te(i))return m(r,a,i,l);if(R(i))return b(r,a,i,l);ya(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=Fc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var wa=_a(!0),xa=_a(!1),Sa=Eo(null),ka=null,Ea=null,Oa=null;function ja(){Oa=Ea=ka=null}function Pa(e){var t=Sa.current;Oo(Sa),e._currentValue=t}function Ca(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 Aa(e,t){ka=e,Oa=Ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(vs=!0),e.firstContext=null)}function Ta(e){var t=e._currentValue;if(Oa!==e)if(e={context:e,memoizedValue:t,next:null},null===Ea){if(null===ka)throw Error(a(308));Ea=e,ka.dependencies={lanes:0,firstContext:e}}else Ea=Ea.next=e;return t}var Ia=null;function Na(e){null===Ia?Ia=[e]:Ia.push(e)}function La(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Na(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ra(e,r)}function Ra(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 Da=!1;function Fa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(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,0!=(2&Pl)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ra(e,n)}return null===(o=r.interleaved)?(t.next=t,Na(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ra(e,n)}function $a(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(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 Ha(e,t,n,r){var o=e.updateQueue;Da=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==a){var d=o.baseState;for(i=0,u=c=l=null,s=a;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(g=m.payload)){d=g.call(f,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p="function"==typeof(g=m.payload)?g.call(f,d,p):g))break e;d=F({},d,p);break e;case 2:Da=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(p=s).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Dl|=i,e.lanes=i,e.memoizedState=d}}function Va(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 Qa={},Wa=Eo(Qa),qa=Eo(Qa),Ga=Eo(Qa);function Ka(e){if(e===Qa)throw Error(a(174));return e}function Ya(e,t){switch(jo(Ga,t),jo(qa,e),jo(Wa,Qa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Oo(Wa),jo(Wa,t)}function Za(){Oo(Wa),Oo(qa),Oo(Ga)}function Xa(e){Ka(Ga.current);var t=Ka(Wa.current),n=le(t,e.type);t!==n&&(jo(qa,e),jo(Wa,n))}function Ja(e){qa.current===e&&(Oo(Wa),Oo(qa))}var ei=Eo(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(0!=(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=_.ReactCurrentDispatcher,ai=_.ReactCurrentBatchConfig,ii=0,si=null,li=null,ci=null,ui=!1,di=!1,pi=0,fi=0;function gi(){throw Error(a(321))}function mi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function bi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Ji:es,e=n(r,o),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(a(301));i+=1,ci=li=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(di)}if(oi.current=Xi,t=null!==li&&null!==li.next,ii=0,ci=li=si=null,ui=!1,t)throw Error(a(300));return e}function hi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ci?si.memoizedState=ci=e:ci=ci.next=e,ci}function vi(){if(null===li){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=li.next;var t=null===ci?si.memoizedState:ci.next;if(null!==t)ci=t,li=e;else{if(null===e)throw Error(a(310));e={memoizedState:(li=e).memoizedState,baseState:li.baseState,baseQueue:li.baseQueue,queue:li.queue,next:null},null===ci?si.memoizedState=ci=e:ci=ci.next=e}return ci}function _i(e,t){return"function"==typeof t?t(e):t}function wi(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=li,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((ii&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,si.lanes|=d,Dl|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(vs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Dl|=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 s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(vs=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function ki(e,t){var n=si,r=vi(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,vs=!0),r=r.queue,Di(ji.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ci&&1&ci.memoizedState.tag){if(n.flags|=2048,Ti(9,Oi.bind(null,n,r,o,t),void 0,null),null===Cl)throw Error(a(349));0!=(30&ii)||Ei(n,t,o)}return o}function Ei(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Pi(t)&&Ci(e)}function ji(e,t,n){return n((function(){Pi(t)&&Ci(e)}))}function Pi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Ci(e){var t=Ra(e,1);null!==t&&nc(t,e,1,-1)}function Ai(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:_i,lastRenderedState:e},t.queue=e,e=e.dispatch=Gi.bind(null,si,e),[t.memoizedState,e]}function Ti(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.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 Ii(){return vi().memoizedState}function Ni(e,t,n,r){var o=yi();si.flags|=e,o.memoizedState=Ti(1|t,n,void 0,void 0===r?null:r)}function Li(e,t,n,r){var o=vi();r=void 0===r?null:r;var a=void 0;if(null!==li){var i=li.memoizedState;if(a=i.destroy,null!==r&&mi(r,i.deps))return void(o.memoizedState=Ti(t,n,a,r))}si.flags|=e,o.memoizedState=Ti(1|t,n,a,r)}function Ri(e,t){return Ni(8390656,8,e,t)}function Di(e,t){return Li(2048,8,e,t)}function Fi(e,t){return Li(4,2,e,t)}function Mi(e,t){return Li(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,Li(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&&mi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Hi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&mi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Vi(e,t,n){return 0==(21&ii)?(e.baseState&&(e.baseState=!1,vs=!0),e.memoizedState=n):(sr(n,t)||(n=mt(),si.lanes|=n,Dl|=n,e.baseState=!0),t)}function Qi(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 Wi(){return vi().memoizedState}function qi(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=La(e,t,n,r))){nc(n,e,r,ec()),Zi(n,t,r)}}function Gi(e,t,n){var r=tc(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,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Na(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=La(e,t,o,r))&&(nc(n,e,r,o=ec()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===si||null!==t&&t===si}function Yi(e,t){di=ui=!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(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Xi={readContext:Ta,useCallback:gi,useContext:gi,useEffect:gi,useImperativeHandle:gi,useInsertionEffect:gi,useLayoutEffect:gi,useMemo:gi,useReducer:gi,useRef:gi,useState:gi,useDebugValue:gi,useDeferredValue:gi,useTransition:gi,useMutableSource:gi,useSyncExternalStore:gi,useId:gi,unstable_isNewReconciler:!1},Ji={readContext:Ta,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Ta,useEffect:Ri,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ni(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ni(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ni(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();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=qi.bind(null,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Ai,useDebugValue:$i,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Ai(!1),t=e[0];return e=Qi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=yi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Cl)throw Error(a(349));0!=(30&ii)||Ei(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ri(ji.bind(null,r,i,e),[e]),r.flags|=2048,Ti(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=Cl.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},es={readContext:Ta,useCallback:Ui,useContext:Ta,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Fi,useLayoutEffect:Mi,useMemo:Hi,useReducer:wi,useRef:Ii,useState:function(){return wi(_i)},useDebugValue:$i,useDeferredValue:function(e){return Vi(vi(),li.memoizedState,e)},useTransition:function(){return[wi(_i)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:ki,useId:Wi,unstable_isNewReconciler:!1},ts={readContext:Ta,useCallback:Ui,useContext:Ta,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Fi,useLayoutEffect:Mi,useMemo:Hi,useReducer:xi,useRef:Ii,useState:function(){return xi(_i)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===li?t.memoizedState=e:Vi(t,li.memoizedState,e)},useTransition:function(){return[xi(_i)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:ki,useId:Wi,unstable_isNewReconciler:!1};function ns(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rs(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var os={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=za(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nc(t,e,o,r),$a(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=za(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Ba(e,a,o))&&(nc(t,e,o,r),$a(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=za(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Ba(e,o,r))&&(nc(t,e,r,n),$a(t,e,r))}};function as(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(o,a))}function is(e,t,n){var r=!1,o=Po,a=t.contextType;return"object"==typeof a&&null!==a?a=Ta(a):(o=No(t)?To:Co.current,a=(r=null!=(r=t.contextTypes))?Io(e,o):Po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(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&&os.enqueueReplaceState(t,t.state,null)}function ls(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Fa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Ta(a):(a=No(t)?To:Co.current,o.context=Io(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(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&&os.enqueueReplaceState(o,o.state,null),Ha(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function cs(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 us(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ds(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ps="function"==typeof WeakMap?WeakMap:Map;function fs(e,t,n){(n=za(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,Ql=r),ds(0,t)},n}function gs(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(){ds(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){ds(0,t),"function"!=typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function ms(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;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=Ec.bind(null,e,t,n),t.then(e,e))}function bs(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 hs(e,t,n,r,o){return 0==(1&e.mode)?(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):(e.flags|=65536,e.lanes=o,e)}var ys=_.ReactCurrentOwner,vs=!1;function _s(e,t,n,r){t.child=null===e?xa(t,null,n,r):wa(t,e.child,n,r)}function ws(e,t,n,r,o){n=n.render;var a=t.ref;return Aa(t,o),r=bi(e,t,n,r,a,o),n=hi(),null===e||vs?(aa&&n&&ta(t),t.flags|=1,_s(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function xs(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Ic(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Lc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ss(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Vs(e,t,o)}return t.flags|=1,(e=Nc(a,r)).ref=t.ref,e.return=t,t.child=e}function Ss(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(vs=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,Vs(e,t,o);0!=(131072&e.flags)&&(vs=!0)}}return Os(e,t,n,r,o)}function ks(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},jo(Nl,Il),Il|=n;else{if(0==(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,jo(Nl,Il),Il|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,jo(Nl,Il),Il|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,jo(Nl,Il),Il|=r;return _s(e,t,o,n),t.child}function Es(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Os(e,t,n,r,o){var a=No(n)?To:Co.current;return a=Io(t,a),Aa(t,o),n=bi(e,t,n,r,a,o),r=hi(),null===e||vs?(aa&&r&&ta(t),t.flags|=1,_s(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function js(e,t,n,r,o){if(No(n)){var a=!0;Fo(t)}else a=!1;if(Aa(t,o),null===t.stateNode)Hs(e,t),is(t,n,r),ls(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Ta(c):c=Io(t,c=No(n)?To:Co.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ss(t,i,r,c),Da=!1;var p=t.memoizedState;i.state=p,Ha(t,r,i,o),l=t.memoizedState,s!==r||p!==l||Ao.current||Da?("function"==typeof u&&(rs(t,n,u,r),l=t.memoizedState),(s=Da||as(t,n,s,r,p,l,c))?(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=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ma(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ns(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Ta(l):l=Io(t,l=No(n)?To:Co.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&ss(t,i,r,l),Da=!1,p=t.memoizedState,i.state=p,Ha(t,r,i,o);var g=t.memoizedState;s!==d||p!==g||Ao.current||Da?("function"==typeof f&&(rs(t,n,f,r),g=t.memoizedState),(c=Da||as(t,n,c,r,p,g,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,g,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,g,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),i.props=r,i.state=g,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ps(e,t,n,r,a,o)}function Ps(e,t,n,r,o,a){Es(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Mo(t,n,!1),Vs(e,t,a);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=wa(t,e.child,null,a),t.child=wa(t,null,s,a)):_s(e,t,s,a),t.memoizedState=r.state,o&&Mo(t,n,!0),t.child}function Cs(e){var t=e.stateNode;t.pendingContext?Ro(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ro(0,t.context,!1),Ya(e,t.containerInfo)}function As(e,t,n,r,o){return ga(),ma(o),t.flags|=256,_s(e,t,n,r),t.child}var Ts,Is,Ns,Ls,Rs={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),jo(ei,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&o)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Dc(l,o,0,null),e=Rc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(n),t.memoizedState=Rs,e):Ms(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=us(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Dc({mode:"visible",children:r.children},o,0,null),(i=Rc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&wa(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=Rs,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=us(i=Error(a(419)),r,void 0))}if(l=0!=(s&e.childLanes),vs||l){if(null!==(r=Cl)){switch(s&-s){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|s))?0:o)&&o!==i.retryLane&&(i.retryLane=o,Ra(e,o),nc(r,e,o,-1))}return mc(),zs(e,t,s,r=us(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=jc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Go[Ko++]=Zo,Go[Ko++]=Xo,Go[Ko++]=Yo,Zo=e.id,Xo=e.overflow,Yo=t),t=Ms(t,r.children),t.flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&l)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Nc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Nc(r,s):(s=Rc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Ds(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Rs,o}return e=(s=e.child).sibling,o=Nc(s,{mode:"visible",children:o.children}),0==(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 Ms(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&ma(r),wa(t,e.child,null,n),(e=Ms(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ca(e.return,t,n)}function $s(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 Us(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(_s(e,t,r.children,n),0!=(2&(r=ei.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bs(e,n,t);else if(19===e.tag)Bs(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(jo(ei,r),0==(1&t.mode))t.memoizedState=null;else 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),$s(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}$s(t,!0,n,null,a);break;case"together":$s(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=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=Nc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Qs(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 Ws(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 qs(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 Ws(t),null;case 1:case 17:return No(t.type)&&Lo(),Ws(t),null;case 3:return r=t.stateNode,Za(),Oo(Ao),Oo(Co),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&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(ic(ia),ia=null))),Is(e,t),Ws(t),null;case 5:Ja(t);var o=Ka(Ga.current);if(n=t.type,null!==e&&null!=t.stateNode)Ns(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 Ws(t),null}if(e=Ka(Wa.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[go]=i,e=0!=(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<Rr.length;o++)zr(Rr[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 l in ye(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&zr("scroll",r)}switch(n){case"input":W(r),J(r,i,!0);break;case"textarea":W(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{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[fo]=t,e[go]=r,Ts(e,t,!1,!1),t.stateNode=e;e:{switch(l=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<Rr.length;o++)zr(Rr[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=F({},r,{value:void 0}),zr("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),zr("invalid",e)}for(i in ye(n,o),c=o)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?be(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&zr("scroll",e):null!=u&&v(e,i,u,l))}switch(n){case"input":W(e),J(e,r,!1);break;case"textarea":W(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+V(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 Ws(t),null;case 6:if(e&&null!=t.stateNode)Ls(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=Ka(Ga.current),Ka(Wa.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,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Ws(t),null;case 13:if(Oo(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))fa(),ga(),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 ga(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ws(t),i=!1}else null!==ia&&(ic(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&ei.current)?0===Ll&&(Ll=3):mc())),null!==t.updateQueue&&(t.flags|=4),Ws(t),null);case 4:return Za(),Is(e,t),null===e&&Ur(t.stateNode.containerInfo),Ws(t),null;case 10:return Pa(t.type._context),Ws(t),null;case 19:if(Oo(ei),null===(i=t.memoizedState))return Ws(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Qs(i,!1);else{if(0!==Ll||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ti(e))){for(t.flags|=128,Qs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=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=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return jo(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>Ul&&(t.flags|=128,r=!0,Qs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Qs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return Ws(t),null}else 2*Ze()-i.renderingStartTime>Ul&&1073741824!==n&&(t.flags|=128,r=!0,Qs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,jo(ei,r?1&n|2:1&n),t):(Ws(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Il)&&(Ws(t),6&t.subtreeFlags&&(t.flags|=8192)):Ws(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Gs(e,t){switch(na(t),t.tag){case 1:return No(t.type)&&Lo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Za(),Oo(Ao),Oo(Co),ri(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Ja(t),null;case 13:if(Oo(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ga()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Oo(ei),null;case 4:return Za(),null;case 10:return Pa(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Ts=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}},Is=function(){},Ns=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ka(Wa.current);var a,i=null;switch(n){case"input":o=K(e,o),r=K(e,r),i=[];break;case"select":o=F({},o,{value:void 0}),r=F({},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(u in ye(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var l=o[u];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Ls=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ks=!1,Ys=!1,Zs="function"==typeof WeakSet?WeakSet:Set,Xs=null;function Js(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){kc(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){kc(e,t,r)}}var tl=!1;function nl(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&&el(t,n,a)}o=o.next}while(o!==r)}}function rl(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 ol(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 al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[go],delete t[bo],delete t[ho],delete t[yo])),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 il(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||il(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 ll(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(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(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(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var ul=null,dl=!1;function pl(e,t,n){for(n=n.child;null!==n;)fl(e,t,n),n=n.sibling}function fl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(s){}switch(n.tag){case 5:Ys||Js(n,t);case 6:var r=ul,o=dl;ul=null,pl(e,t,n),dl=o,null!==(ul=r)&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Ut(e)):lo(ul,n.stateNode));break;case 4:r=ul,o=dl,ul=n.stateNode.containerInfo,dl=!0,pl(e,t,n),ul=r,dl=o;break;case 0:case 11:case 14:case 15:if(!Ys&&(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&&(0!=(2&a)||0!=(4&a))&&el(n,t,i),o=o.next}while(o!==r)}pl(e,t,n);break;case 1:if(!Ys&&(Js(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){kc(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,pl(e,t,n),Ys=r):pl(e,t,n);break;default:pl(e,t,n)}}function gl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zs),t.forEach((function(t){var r=Pc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ml(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,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,dl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,dl=!0;break e}l=l.return}if(null===ul)throw Error(a(160));fl(i,s,o),ul=null,dl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(u){kc(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ml(t,e),hl(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(b){kc(e,e.return,b)}try{nl(5,e,e.return)}catch(b){kc(e,e.return,b)}}break;case 1:ml(t,e),hl(e),512&r&&null!==n&&Js(n,n.return);break;case 5:if(ml(t,e),hl(e),512&r&&null!==n&&Js(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(b){kc(e,e.return,b)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Z(o,i),ve(l,s);var u=ve(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?be(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):v(o,d,p,u)}switch(l){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 g=i.value;null!=g?ne(o,!!i.multiple,g,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[go]=i}catch(b){kc(e,e.return,b)}}break;case 6:if(ml(t,e),hl(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(b){kc(e,e.return,b)}}break;case 3:if(ml(t,e),hl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(b){kc(e,e.return,b)}break;case 4:default:ml(t,e),hl(e);break;case 13:ml(t,e),hl(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||($l=Ze())),4&r&&gl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,ml(t,e),Ys=u):ml(t,e),hl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Xs=e,d=e.child;null!==d;){for(p=Xs=d;null!==Xs;){switch(g=(f=Xs).child,f.tag){case 0:case 11:case 14:case 15:nl(4,f,f.return);break;case 1:Js(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){r=f,n=f.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(b){kc(r,n,b)}}break;case 5:Js(f,f.return);break;case 22:if(null!==f.memoizedState){wl(p);continue}}null!==g?(g.return=f,Xs=g):wl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(b){kc(e,e.return,b)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(b){kc(e,e.return,b)}}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:ml(t,e),hl(e),4&r&&gl(e);case 21:}}function hl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(il(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),cl(e,sl(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ll(e,sl(e),i);break;default:throw Error(a(161))}}catch(s){kc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yl(e,t,n){Xs=e,vl(e,t,n)}function vl(e,t,n){for(var r=0!=(1&e.mode);null!==Xs;){var o=Xs,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Ks;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Ys;s=Ks;var c=Ys;if(Ks=i,(Ys=l)&&!c)for(Xs=o;null!==Xs;)l=(i=Xs).child,22===i.tag&&null!==i.memoizedState?xl(o):null!==l?(l.return=i,Xs=l):xl(o);for(;null!==a;)Xs=a,vl(a,t,n),a=a.sibling;Xs=o,Ks=s,Ys=c}_l(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Xs=a):_l(e)}}function _l(e){for(;null!==Xs;){var t=Xs;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ys||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Va(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Va(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.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 u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(a(163))}Ys||512&t.flags&&ol(t)}catch(f){kc(t,t.return,f)}}if(t===e){Xs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xs=n;break}Xs=t.return}}function wl(e){for(;null!==Xs;){var t=Xs;if(t===e){Xs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xs=n;break}Xs=t.return}}function xl(e){for(;null!==Xs;){var t=Xs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(l){kc(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(l){kc(t,o,l)}}var a=t.return;try{ol(t)}catch(l){kc(t,a,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){kc(t,i,l)}}}catch(l){kc(t,t.return,l)}if(t===e){Xs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Xs=s;break}Xs=t.return}}var Sl,kl=Math.ceil,El=_.ReactCurrentDispatcher,Ol=_.ReactCurrentOwner,jl=_.ReactCurrentBatchConfig,Pl=0,Cl=null,Al=null,Tl=0,Il=0,Nl=Eo(0),Ll=0,Rl=null,Dl=0,Fl=0,Ml=0,zl=null,Bl=null,$l=0,Ul=1/0,Hl=null,Vl=!1,Ql=null,Wl=null,ql=!1,Gl=null,Kl=0,Yl=0,Zl=null,Xl=-1,Jl=0;function ec(){return 0!=(6&Pl)?Ze():-1!==Xl?Xl:Xl=Ze()}function tc(e){return 0==(1&e.mode)?1:0!=(2&Pl)&&0!==Tl?Tl&-Tl:null!==ba.transition?(0===Jl&&(Jl=mt()),Jl):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function nc(e,t,n,r){if(50<Yl)throw Yl=0,Zl=null,Error(a(185));ht(e,n,r),0!=(2&Pl)&&e===Cl||(e===Cl&&(0==(2&Pl)&&(Fl|=n),4===Ll&&sc(e,Tl)),rc(e,r),1===n&&0===Pl&&0==(1&t.mode)&&(Ul=Ze()+500,Bo&&Ho()))}function rc(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),s=1<<i,l=o[i];-1===l?0!=(s&n)&&0==(s&r)||(o[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=pt(e,e===Cl?Tl:0);if(0===r)null!==n&&Ge(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ge(n),1===t)0===e.tag?function(e){Bo=!0,Uo(e)}(lc.bind(null,e)):Uo(lc.bind(null,e)),io((function(){0==(6&Pl)&&Ho()})),n=null;else{switch(_t(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Cc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Xl=-1,Jl=0,0!=(6&Pl))throw Error(a(327));var n=e.callbackNode;if(xc()&&e.callbackNode!==n)return null;var r=pt(e,e===Cl?Tl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var o=Pl;Pl|=2;var i=gc();for(Cl===e&&Tl===t||(Hl=null,Ul=Ze()+500,pc(e,t));;)try{yc();break}catch(l){fc(e,l)}ja(),El.current=i,Pl=o,null!==Al?t=0:(Cl=null,Tl=0,t=Ll)}if(0!==t){if(2===t&&(0!==(o=gt(e))&&(r=o,t=ac(e,o))),1===t)throw n=Rl,pc(e,0),sc(e,r),rc(e,Ze()),n;if(6===t)sc(e,r);else{if(o=e.current.alternate,0==(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(!sr(a(),o))return!1}catch(s){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)&&(2===(t=bc(e,r))&&(0!==(i=gt(e))&&(r=i,t=ac(e,i))),1===t))throw n=Rl,pc(e,0),sc(e,r),rc(e,Ze()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:wc(e,Bl,Hl);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=$l+500-Ze())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(wc.bind(null,e,Bl,Hl),t);break}wc(e,Bl,Hl);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),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*kl(r/1960))-r)){e.timeoutHandle=ro(wc.bind(null,e,Bl,Hl),r);break}wc(e,Bl,Hl);break;default:throw Error(a(329))}}}return rc(e,Ze()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=Bl,Bl=n,null!==t&&ic(t)),e}function ic(e){null===Bl?Bl=e:Bl.push.apply(Bl,e)}function sc(e,t){for(t&=~Ml,t&=~Fl,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 lc(e){if(0!=(6&Pl))throw Error(a(327));xc();var t=pt(e,0);if(0==(1&t))return rc(e,Ze()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Rl,pc(e,0),sc(e,t),rc(e,Ze()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wc(e,Bl,Hl),rc(e,Ze()),null}function cc(e,t){var n=Pl;Pl|=1;try{return e(t)}finally{0===(Pl=n)&&(Ul=Ze()+500,Bo&&Ho())}}function uc(e){null!==Gl&&0===Gl.tag&&0==(6&Pl)&&xc();var t=Pl;Pl|=1;var n=jl.transition,r=vt;try{if(jl.transition=null,vt=1,e)return e()}finally{vt=r,jl.transition=n,0==(6&(Pl=t))&&Ho()}}function dc(){Il=Nl.current,Oo(Nl)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Al)for(n=Al.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Lo();break;case 3:Za(),Oo(Ao),Oo(Co),ri();break;case 5:Ja(r);break;case 4:Za();break;case 13:case 19:Oo(ei);break;case 10:Pa(r.type._context);break;case 22:case 23:dc()}n=n.return}if(Cl=e,Al=e=Nc(e.current,null),Tl=Il=t,Ll=0,Rl=null,Ml=Fl=Dl=0,Bl=zl=null,null!==Ia){for(t=0;t<Ia.length;t++)if(null!==(r=(n=Ia[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}Ia=null}return e}function fc(e,t){for(;;){var n=Al;try{if(ja(),oi.current=Xi,ui){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ui=!1}if(ii=0,ci=li=si=null,di=!1,pi=0,Ol.current=null,null===n||null===n.return){Ll=1,Rl=t,Al=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Tl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(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 g=bs(s);if(null!==g){g.flags&=-257,hs(g,s,l,0,t),1&g.mode&&ms(i,u,t),c=u;var m=(t=g).updateQueue;if(null===m){var b=new Set;b.add(c),t.updateQueue=b}else m.add(c);break e}if(0==(1&t)){ms(i,u,t),mc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var h=bs(s);if(null!==h){0==(65536&h.flags)&&(h.flags|=256),hs(h,s,l,0,t),ma(cs(c,l));break e}}i=c=cs(c,l),4!==Ll&&(Ll=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,fs(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Wl||!Wl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,gs(i,l,t));break e}}i=i.return}while(null!==i)}_c(n)}catch(_){t=_,Al===n&&null!==n&&(Al=n=n.return);continue}break}}function gc(){var e=El.current;return El.current=Xi,null===e?Xi:e}function mc(){0!==Ll&&3!==Ll&&2!==Ll||(Ll=4),null===Cl||0==(268435455&Dl)&&0==(268435455&Fl)||sc(Cl,Tl)}function bc(e,t){var n=Pl;Pl|=2;var r=gc();for(Cl===e&&Tl===t||(Hl=null,pc(e,t));;)try{hc();break}catch(o){fc(e,o)}if(ja(),Pl=n,El.current=r,null!==Al)throw Error(a(261));return Cl=null,Tl=0,Ll}function hc(){for(;null!==Al;)vc(Al)}function yc(){for(;null!==Al&&!Ke();)vc(Al)}function vc(e){var t=Sl(e.alternate,e,Il);e.memoizedProps=e.pendingProps,null===t?_c(e):Al=t,Ol.current=null}function _c(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=qs(n,t,Il)))return void(Al=n)}else{if(null!==(n=Gs(n,t)))return n.flags&=32767,void(Al=n);if(null===e)return Ll=6,void(Al=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Al=t);Al=t=e}while(null!==t);0===Ll&&(Ll=5)}function wc(e,t,n){var r=vt,o=jl.transition;try{jl.transition=null,vt=1,function(e,t,n,r){do{xc()}while(null!==Gl);if(0!=(6&Pl))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===Cl&&(Al=Cl=null,Tl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||ql||(ql=!0,Cc(tt,(function(){return xc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=jl.transition,jl.transition=null;var s=vt;vt=1;var l=Pl;Pl|=4,Ol.current=null,function(e,t){if(eo=Vt,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(w){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var g;p!==n||0!==o&&3!==p.nodeType||(l=s+o),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)f=p,p=g;for(;;){if(p===e)break t;if(f===n&&++u===o&&(l=s),f===i&&++d===r&&(c=s),null!==(g=p.nextSibling))break;f=(p=f).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Vt=!1,Xs=t;null!==Xs;)if(e=(t=Xs).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Xs=e;else for(;null!==Xs;){t=Xs;try{var m=t.alternate;if(0!=(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!==m){var b=m.memoizedProps,h=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?b:ns(t.type,b),h);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var _=t.stateNode.containerInfo;1===_.nodeType?_.textContent="":9===_.nodeType&&_.documentElement&&_.removeChild(_.documentElement);break;default:throw Error(a(163))}}catch(w){kc(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Xs=e;break}Xs=t.return}m=tl,tl=!1}(e,n),bl(n,e),gr(to),Vt=!!eo,to=eo=null,e.current=n,yl(n,e,o),Ye(),Pl=l,vt=s,jl.transition=i}else e.current=n;if(ql&&(ql=!1,Gl=e,Kl=o),i=e.pendingLanes,0===i&&(Wl=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),rc(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(Vl)throw Vl=!1,e=Ql,Ql=null,e;0!=(1&Kl)&&0!==e.tag&&xc(),i=e.pendingLanes,0!=(1&i)?e===Zl?Yl++:(Yl=0,Zl=e):Yl=0,Ho()}(e,t,n,r)}finally{jl.transition=o,vt=r}return null}function xc(){if(null!==Gl){var e=_t(Kl),t=jl.transition,n=vt;try{if(jl.transition=null,vt=16>e?16:e,null===Gl)var r=!1;else{if(e=Gl,Gl=null,Kl=0,0!=(6&Pl))throw Error(a(331));var o=Pl;for(Pl|=4,Xs=e.current;null!==Xs;){var i=Xs,s=i.child;if(0!=(16&Xs.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Xs=u;null!==Xs;){var d=Xs;switch(d.tag){case 0:case 11:case 15:nl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xs=p;else for(;null!==Xs;){var f=(d=Xs).sibling,g=d.return;if(al(d),d===u){Xs=null;break}if(null!==f){f.return=g,Xs=f;break}Xs=g}}}var m=i.alternate;if(null!==m){var b=m.child;if(null!==b){m.child=null;do{var h=b.sibling;b.sibling=null,b=h}while(null!==b)}}Xs=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Xs=s;else e:for(;null!==Xs;){if(0!=(2048&(i=Xs).flags))switch(i.tag){case 0:case 11:case 15:nl(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Xs=y;break e}Xs=i.return}}var v=e.current;for(Xs=v;null!==Xs;){var _=(s=Xs).child;if(0!=(2064&s.subtreeFlags)&&null!==_)_.return=s,Xs=_;else e:for(s=v;null!==Xs;){if(0!=(2048&(l=Xs).flags))try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(x){kc(l,l.return,x)}if(l===s){Xs=null;break e}var w=l.sibling;if(null!==w){w.return=l.return,Xs=w;break e}Xs=l.return}}if(Pl=o,Ho(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(x){}r=!0}return r}finally{vt=n,jl.transition=t}}return!1}function Sc(e,t,n){e=Ba(e,t=fs(0,t=cs(n,t),1),1),t=ec(),null!==e&&(ht(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)Sc(e,e,n);else for(;null!==t;){if(3===t.tag){Sc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Wl||!Wl.has(r))){t=Ba(t,e=gs(t,e=cs(n,e),1),1),e=ec(),null!==t&&(ht(t,1,e),rc(t,e));break}}t=t.return}}function Ec(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Cl===e&&(Tl&n)===n&&(4===Ll||3===Ll&&(130023424&Tl)===Tl&&500>Ze()-$l?pc(e,0):Ml|=n),rc(e,t)}function Oc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=ec();null!==(e=Ra(e,t))&&(ht(e,t,n),rc(e,n))}function jc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Oc(e,n)}function Pc(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),Oc(e,n)}function Cc(e,t){return qe(e,t)}function Ac(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 Tc(e,t,n,r){return new Ac(e,t,n,r)}function Ic(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nc(e,t){var n=e.alternate;return null===n?((n=Tc(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 Lc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Ic(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Rc(n.children,o,i,t);case k:s=8,o|=8;break;case E:return(e=Tc(12,n,t,2|o)).elementType=E,e.lanes=i,e;case C:return(e=Tc(13,n,t,o)).elementType=C,e.lanes=i,e;case A:return(e=Tc(19,n,t,o)).elementType=A,e.lanes=i,e;case N:return Dc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case O:s=10;break e;case j:s=9;break e;case P:s=11;break e;case T:s=14;break e;case I:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Tc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Rc(e,t,n,r){return(e=Tc(7,e,r,t)).lanes=n,e}function Dc(e,t,n,r){return(e=Tc(22,e,r,t)).elementType=N,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Tc(6,e,null,t)).lanes=n,e}function Mc(e,t,n){return(t=Tc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(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=bt(0),this.expirationTimes=bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=bt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Bc(e,t,n,r,o,a,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Tc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fa(a),e}function $c(e){if(!e)return Po;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(No(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(No(n))return Do(e,n,t)}return t}function Uc(e,t,n,r,o,a,i,s,l){return(e=Bc(n,r,!0,e,0,a,0,s,l)).context=$c(null),n=e.current,(a=za(r=ec(),o=tc(n))).callback=null!=t?t:null,Ba(n,a,o),e.current.lanes=o,ht(e,o,r),rc(e,r),e}function Hc(e,t,n,r){var o=t.current,a=ec(),i=tc(o);return n=$c(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))&&(nc(e,o,i,a),$a(e,o,i)),i}function Vc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Qc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Wc(e,t){Qc(e,t),(e=e.alternate)&&Qc(e,t)}Sl=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ao.current)vs=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return vs=!1,function(e,t,n){switch(t.tag){case 3:Cs(t),ga();break;case 5:Xa(t);break;case 1:No(t.type)&&Fo(t);break;case 4:Ya(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;jo(Sa,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(jo(ei,1&ei.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(jo(ei,1&ei.current),null!==(e=Vs(e,t,n))?e.sibling:null);jo(ei,1&ei.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Us(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),jo(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,ks(e,t,n)}return Vs(e,t,n)}(e,t,n);vs=0!=(131072&e.flags)}else vs=!1,aa&&0!=(1048576&t.flags)&&ea(t,qo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var o=Io(t,Co.current);Aa(t,n),o=bi(null,t,r,e,o,n);var i=hi();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,No(r)?(i=!0,Fo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Fa(t),o.updater=os,t.stateNode=o,o._reactInternals=t,ls(t,r,e,n),t=Ps(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),_s(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Ic(e)?1:0;if(null!=e){if((e=e.$$typeof)===P)return 11;if(e===T)return 14}return 2}(r),e=ns(r,e),o){case 0:t=Os(null,t,r,e,n);break e;case 1:t=js(null,t,r,e,n);break e;case 11:t=ws(null,t,r,e,n);break e;case 14:t=xs(null,t,r,ns(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Os(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,js(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(Cs(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Ma(e,t),Ha(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=As(e,t,r,n,o=cs(Error(a(423)),t));break e}if(r!==o){t=As(e,t,r,n,o=cs(Error(a(424)),t));break e}for(oa=co(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(ga(),r===o){t=Vs(e,t,n);break e}_s(e,t,r,n)}t=t.child}return t;case 5:return Xa(t),null===e&&ua(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Es(e,t),_s(e,t,s,n),t.child;case 6:return null===e&&ua(t),null;case 13:return Fs(e,t,n);case 4:return Ya(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=wa(t,null,r,n):_s(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ws(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return _s(e,t,t.pendingProps,n),t.child;case 8:case 12:return _s(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,jo(Sa,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!Ao.current){t=Vs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=za(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Ca(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ca(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}_s(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Aa(t,n),r=r(o=Ta(o)),t.flags|=1,_s(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),xs(e,t,r,o=ns(r.type,o),n);case 15:return Ss(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ns(r,o),Hs(e,t),t.tag=1,No(r)?(e=!0,Fo(t)):e=!1,Aa(t,n),is(t,r,o),ls(t,r,o,n),Ps(null,t,r,!0,e,n);case 19:return Us(e,t,n);case 22:return ks(e,t,n)}throw Error(a(156,t.tag))};var qc="function"==typeof reportError?reportError:function(e){console.error(e)};function Gc(e){this._internalRoot=e}function Kc(e){this._internalRoot=e}function Yc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xc(){}function Jc(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Vc(i);s.call(e)}}Hc(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=Vc(i);a.call(e)}}var i=Uc(t,r,e,0,null,!1,0,"",Xc);return e._reactRootContainer=i,e[mo]=i.current,Ur(8===e.nodeType?e.parentNode:e),uc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Vc(l);s.call(e)}}var l=Bc(e,0,!1,null,0,!1,0,"",Xc);return e._reactRootContainer=l,e[mo]=l.current,Ur(8===e.nodeType?e.parentNode:e),uc((function(){Hc(t,l,n,r)})),l}(n,t,e,o,r);return Vc(i)}Kc.prototype.render=Gc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Hc(e,t,null,null)},Kc.prototype.unmount=Gc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Hc(null,e,null,null)})),t[mo]=null}},Kc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nt.length&&0!==t&&t<Nt[n].priority;n++);Nt.splice(n,0,e),0===n&&Ft(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),rc(t,Ze()),0==(6&Pl)&&(Ul=Ze()+500,Ho()))}break;case 13:uc((function(){var t=Ra(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),Wc(e,1)}},xt=function(e){if(13===e.tag){var t=Ra(e,134217728);if(null!==t)nc(t,e,134217728,ec());Wc(e,134217728)}},St=function(e){if(13===e.tag){var t=tc(e),n=Ra(e,t);if(null!==n)nc(n,e,t,ec());Wc(e,t)}},kt=function(){return vt},Et=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));q(r),X(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Pe=cc,Ce=uc;var eu={usingClientEntryPoint:!1,Events:[_o,wo,xo,Oe,je,cc]},tu={findFiberByHostInstance:vo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nu={bundleType:tu.bundleType,version:tu.version,rendererPackageName:tu.rendererPackageName,rendererConfig:tu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Qe(e))?null:e.stateNode},findFiberByHostInstance:tu.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 ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{ot=ru.inject(nu),at=ru}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yc(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(!Yc(e))throw Error(a(299));var n=!1,r="",o=qc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Bc(e,1,!1,null,0,n,0,r,o),e[mo]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Gc(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=Qe(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Zc(t))throw Error(a(200));return Jc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=qc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Uc(t,null,e,1,null!=n?n:null,o,0,i,s),e[mo]=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 Kc(t)},t.render=function(e,t,n){if(!Zc(t))throw Error(a(200));return Jc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zc(e))throw Error(a(40));return!!e._reactRootContainer&&(uc((function(){Jc(null,null,e,!1,(function(){e._reactRootContainer=null,e[mo]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Jc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},9576:(e,t,n)=>{"use strict";var r=n(8143);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},8143:(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(9481)},4072: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 s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!a(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!a(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])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((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!a(e[c[l]],i[c[l]]))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}}},248:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>Q});var r=n(758),o=n(2736),a=n.n(o),i=n(4072),s=n.n(i),l=n(9597),c=n.n(l),u=n(2945),d=n.n(u);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,g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(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 b={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},h={rel:["amphtml","canonical","alternate"]},y={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"]},_=Object.keys(b).map((function(e){return b[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(w).reduce((function(e,t){return e[w[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},k=function(e){var t=S(e,b.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},E=function(e){return S(e,"onChangeClientState")||function(){}},O=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)}),{})},j=function(e,t){return t.filter((function(e){return void 0!==e[b.BASE]})).map((function(e){return e[b.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}),[])},P=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 s=a[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],l=p({},r[s],o[s]);r[s]=l}return e}),[]).reverse()},C=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},A=function(e){return Array.isArray(e)?e.join(""):e},T=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}},I=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[b.NOSCRIPT,b.SCRIPT,b.STYLE],L=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,"'")},R=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}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},F=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=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},M=function(e,t,n){switch(e){case b.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(b.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=R(n),a=A(t);return o?"<"+e+' data-rh="true" '+o+">"+L(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return F(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+'="'+L(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===N.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,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var g=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=T(e.metaTags,v),a=T(t,h),i=T(n,y);return{priorityMethods:{toComponent:function(){return[].concat(F(b.META,o.priority),F(b.LINK,a.priority),F(b.SCRIPT,i.priority))},toString:function(){return M(b.META,o.priority,r)+" "+M(b.LINK,a.priority,r)+" "+M(b.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=g.priorityMethods,u=g.linkTags,d=g.metaTags,p=g.scriptTags}return{priority:f,base:M(b.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",o,r),link:M(b.LINK,u,r),meta:M(b.META,d,r),noscript:M(b.NOSCRIPT,a,r),script:M(b.SCRIPT,p,r),style:M(b.STYLE,i,r),title:M(b.TITLE,{title:l,titleAttributes:c},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({}),H=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),V="undefined"!=typeof document,Q=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);Q.canUseDOM=V,Q.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},Q.defaultProps={context:{}},Q.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(b.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}},q=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),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===o.indexOf(l)&&o.push(l);var u=a.indexOf(l);-1!==u&&a.splice(u,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(","))}},G=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;q(b.BODY,e.bodyAttributes),q(b.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=A(e)),q(b.TITLE,t)}(u,d);var p={baseTag:W(b.BASE,n),linkTags:W(b.LINK,o),metaTags:W(b.META,a),noscriptTags:W(b.NOSCRIPT,i),scriptTags:W(b.SCRIPT,l),styleTags:W(b.STYLE,c)},f={},g={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(g[e]=p[e].oldTags)})),t&&t(),s(e,f,g)},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:j(["href"],e),bodyAttributes:O("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:O("htmlAttributes",e),linkTags:P(b.LINK,["rel","href"],e),metaTags:P(b.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:P(b.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:P(b.SCRIPT,["src","innerHTML"],e),styleTags:P(b.STYLE,["cssText"],e),title:k(e),titleAttributes:O("titleAttributes",e),prioritizeSeoTags:C(e,"prioritizeSeoTags")});Q.canUseDOM?(t=a,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){G(t,(function(){K=null}))})):(G(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:H.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!s()(I(this.props,"helmetData"),I(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case b.SCRIPT:case b.NOSCRIPT:return{innerHTML:t};case b.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 b.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case b.BODY:return p({},o,{bodyAttributes:p({},a)});case b.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 c()(_.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 "+_.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!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=m(r,Z),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,a),l){case b.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case b.LINK:case b.META:case b.NOSCRIPT:case b.SCRIPT:case b.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(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"},5843:(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,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=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,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case b:case m:case l:return e;default:return t}}case o:return t}}}function x(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=b,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||w(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===b},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===_||e.$$typeof===h)},t.typeOf=w},5959:(e,t,n)=>{"use strict";e.exports=n(5843)},389:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(5557),o=n(2479),a=n(758);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 s(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}},1742:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>u,N_:()=>h,k2:()=>_});var r=n(5557),o=n(8421),a=n(758),i=n(3332),s=n(2479),l=n(6406),c=n(9923),u=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},g=function(e){return e},m=a.forwardRef;void 0===m&&(m=g);var b=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,l.A)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=g!==m&&t||n,a.createElement("a",u)}));var h=m((function(e,t){var n=e.component,o=void 0===n?b:n,u=e.replace,d=e.to,h=e.innerRef,y=(0,l.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,c.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),l=r?n.createHref(r):"",b=(0,s.A)({},y,{href:l,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(u||r?n.replace:n.push)(t)}});return g!==m?b.ref=t||h:b.innerRef=h,a.createElement(o,b)}))})),y=function(e){return e},v=a.forwardRef;void 0===v&&(v=y);var _=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,d=e.activeStyle,g=e.className,m=e.exact,b=e.isActive,_=e.location,w=e.sensitive,x=e.strict,S=e.style,k=e.to,E=e.innerRef,O=(0,l.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,c.A)(!1);var n=_||e.location,i=f(p(k,n),n),l=i.pathname,j=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),P=j?(0,r.B6)(n.pathname,{path:j,exact:m,sensitive:w,strict:x}):null,C=!!(b?b(P,n):P),A="function"==typeof g?g(C):g,T="function"==typeof S?S(C):S;C&&(A=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(" ")}(A,u),T=(0,s.A)({},T,d));var I=(0,s.A)({"aria-current":C&&o||null,className:A,style:T,to:i},O);return y!==v?I.ref=t||E:I.innerRef=E,a.createElement(h,I)}))}))},5557:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>I,XZ:()=>y,dO:()=>A,qh:()=>k,zy:()=>N});var r=n(8421),o=n(758),a=n(2736),i=n.n(a),s=n(3332),l=n(9923),c=n(2479),u=n(6150),d=n.n(u),p=(n(5959),n(6406)),f=(n(1035),1073741823),g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return g[e]=(g[e]||0)+1}()+"__",l=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={})[s]=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);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=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[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].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 c.contextTypes=((a={})[s]=i().object,a),{Provider:l,Consumer:c}},b=function(e){var t=m();return t.displayName=e,t},h=b("Router-History"),y=b("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(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var _={},w=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,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;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=_[n]||(_[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return x<w&&(r[e]=a,x++),a}(n,{end:a,strict:s,sensitive:c}),o=r.regexp,i=r.keys,l=o.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var k=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(y.Consumer,null,(function(t){t||(0,l.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,c.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(y.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function O(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,c.A)({},t,{pathname:t.pathname.substr(n.length)})}function j(e){return"string"==typeof e?e:(0,s.AO)(e)}function P(e){return function(){(0,l.A)(!1)}}function C(){}o.Component;var A=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(y.Consumer,null,(function(t){t||(0,l.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,c.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var T=o.useContext;function I(){return T(h)}function N(){return T(y).location}},7462:(e,t,n)=>{"use strict";var r=n(758),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.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:c,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},2713:(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"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function h(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}h.prototype.isReactComponent={},h.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")},h.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=h.prototype;var _=v.prototype=new y;_.constructor=v,m(_,h.prototype),_.isPureReactComponent=!0;var w=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!k.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:S.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var j=/\/+/g;function P(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 C(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+P(l,0):a,w(i)?(o="",null!=e&&(o=e.replace(j,"$&/")+"/"),C(i,t,o,"",(function(e){return e}))):null!=i&&(O(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||l&&l.key===i.key?"":(""+i.key).replace(j,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",w(e))for(var c=0;c<e.length;c++){var u=a+P(s=e[c],c);l+=C(s,t,o,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=C(s=s.value,t,o,u=a+P(s,c++),i);else if("object"===s)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 l}function A(e,t,n){if(null==e)return e;var r=[],o=0;return C(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function T(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 I={current:null},N={transition:null},L={ReactCurrentDispatcher:I,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};function R(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=h,t.Fragment=o,t.Profiler=i,t.PureComponent=v,t.StrictMode=a,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L,t.act=R,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=m({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=O,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:T}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=R,t.useCallback=function(e,t){return I.current.useCallback(e,t)},t.useContext=function(e){return I.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return I.current.useDeferredValue(e)},t.useEffect=function(e,t){return I.current.useEffect(e,t)},t.useId=function(){return I.current.useId()},t.useImperativeHandle=function(e,t,n){return I.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return I.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return I.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return I.current.useMemo(e,t)},t.useReducer=function(e,t,n){return I.current.useReducer(e,t,n)},t.useRef=function(e){return I.current.useRef(e)},t.useState=function(e){return I.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return I.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return I.current.useTransition()},t.version="18.3.1"},758:(e,t,n)=>{"use strict";e.exports=n(2713)},6070:(e,t,n)=>{"use strict";e.exports=n(7462)},4733:(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 s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,n))c<o&&0>a(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}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 s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,g=!1,m=!1,b=!1,h="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function _(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function w(e){if(b=!1,_(e),!m)if(null!==r(c))m=!0,N(x);else{var t=r(u);null!==t&&L(w,t.startTime-e)}}function x(e,n){m=!1,b&&(b=!1,y(O),O=-1),g=!0;var a=f;try{for(_(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!C());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&o(c),_(n)}else o(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&L(w,d.startTime-n),l=!1}return l}finally{p=null,f=a,g=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,k=!1,E=null,O=-1,j=5,P=-1;function C(){return!(t.unstable_now()-P<j)}function A(){if(null!==E){var e=t.unstable_now();P=e;var n=!0;try{n=E(!0,e)}finally{n?S():(k=!1,E=null)}}else k=!1}if("function"==typeof v)S=function(){v(A)};else if("undefined"!=typeof MessageChannel){var T=new MessageChannel,I=T.port2;T.port1.onmessage=A,S=function(){I.postMessage(null)}}else S=function(){h(A,0)};function N(e){E=e,k||(k=!0,S())}function L(e,n){O=h((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(){m||g||(m=!0,N(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"):j=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},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 s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(u,e),null===r(c)&&e===r(u)&&(b?(y(O),O=-1):b=!0,L(w,a-i))):(e.sortIndex=s,n(c,e),m||g||(m=!0,N(x))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},1896:(e,t,n)=>{"use strict";e.exports=n(4733)},2945: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 s=Object.prototype.hasOwnProperty.bind(t),l=0;l<a.length;l++){var c=a[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"GameVault",tagline:"the self-hosted gaming platform for drm-free games",favicon:"img/logo.png",url:"https://gamevau.lt",baseUrl:"/",organizationName:"Phalcode",projectName:"gamevault-docs",onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},plugins:[["@docusaurus/plugin-client-redirects",{fromExtensions:["html","htm"],redirects:[{from:"/gamevault-plus",to:"/docs/gamevault-plus/introduction"},{from:"/license",to:"/docs/license-contribute"}]}],"/home/runner/work/gamevault-docs/gamevault-docs/node_modules/.pnpm/docusaurus-plugin-image-zoom@2.0.0_@docusaurus+theme-classic@3.6.2_@types+react@18.2.45_react_yv4v5ewnd6gdnqopcwhoamhzk4/node_modules/docusaurus-plugin-image-zoom/lib/index.js","/home/runner/work/gamevault-docs/gamevault-docs/node_modules/.pnpm/@cmfcmf+docusaurus-search-local@1.2.0_@docusaurus+core@3.6.2_@mdx-js+react@3.1.0_@types+react_3rtbr3v4hdwko4pc3tvncyoyua/node_modules/@cmfcmf/docusaurus-search-local/lib/server/index.js",null],presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateAuthor:!0,showLastUpdateTime:!0,sidebarPath:"/home/runner/work/gamevault-docs/gamevault-docs/sidebars.js",editUrl:"https://github.com/phalcode/gamevault-docs/tree/master"},blog:{showReadingTime:!0,editUrl:"https://github.com/phalcode/gamevault-docs/tree/master",blogSidebarCount:"ALL"},theme:{customCss:"/home/runner/work/gamevault-docs/gamevault-docs/src/css/custom.css"}}]],themeConfig:{navbar:{logo:{alt:"GameVault",src:"img/logo.png"},title:"GameVault",items:[{type:"docSidebar",sidebarId:"docs",position:"left",label:"Documentation"},{to:"/blog",label:"Blog",position:"left"},{label:"GameVault+",to:"/docs/gamevault-plus/introduction",position:"left"},{label:"GitHub",href:"https://github.com/phalcode",position:"right"},{label:"Discord",href:"https://discord.gg/NEdNen2dSu",position:"right"},{label:"Support us",href:"https://gamevau.lt/docs/intro#support",position:"right"}],hideOnScroll:!1},footer:{logo:{src:"img/phalcode_bright.png",srcDark:"img/phalcode_dark.png",height:"30vh",href:"https://phalco.de"},links:[{title:"Shortcuts",items:[{label:"Introduction",to:"/docs/intro"},{label:"Blog",to:"/blog"},{label:"Server Setup",to:"/docs/server-docs/setup"},{label:"Troubleshooting",to:"/docs/troubleshooting"}]},{title:"Development",items:[{label:"Roadmap",href:"https://github.com/orgs/Phalcode/projects/4"},{label:"Repositories",href:"https://github.com/orgs/Phalcode/repositories?q=gamevault"}]},{title:"Socials",items:[{label:"Reddit",href:"https://reddit.com/r/Phalcode"},{label:"Lemmy",href:"https://lemmy.world/c/phalcode"},{label:"Discord",href:"https://discord.gg/NEdNen2dSu"}]},{title:"Support us",items:[{label:"Get GameVault+",href:"/docs/gamevault-plus/introduction"},{label:"GitHub Sponsors",href:"https://github.com/sponsors/Phalcode"},{href:"https://ko-fi.com/phalcode",label:"Ko-Fi"},{href:"https://liberapay.com/phalcode",label:"Liberapay"},{href:"https://www.paypal.me/phalcode",label:"PayPal"}]},{title:"Legals",items:[{label:"License",href:"/docs/license-contribute"},{label:"Legal Notice",href:"https://phalco.de/legal"},{label:"Privacy Policy",href:"https://phalco.de/privacy"},{label:"Terms of Service",href:"https://phalco.de/tos"}]}],copyright:'Copyright \xa9 2024 <a href="https://phalco.de">Phalcode</a> - All Rights Reserved',style:"light"},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:["bash","json"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},zoom:{selector:".zoomable,img:not(nav img):not(footer img):not(.nozoom):not([alt~='ko-fi']):not([alt~='GameVault'])",config:{background:{light:"#e2e1ef",dark:"#171528"}}},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},2479:(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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},8421:(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})},6406:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},3526:(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}},5371:(e,t,n)=>{"use strict";n.d(t,{My:()=>j,f4:()=>ne});var r,o,a,i,s,l,c,u=n(758),d=n(3526),p=Object.create,f=Object.defineProperty,g=Object.defineProperties,m=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,w=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={}))_.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))w.call(t,n)&&x(e,n,t[n]);return e},k=(e,t)=>g(e,b(t)),E=(e,t)=>{var n={};for(var r in e)_.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n},O=(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 s in a)if(a.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var l=t[s],c=r.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,n,s,a)):(a[i(l)]=!0,e(l,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 s;return l(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,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var g=0;g<f.length;++g){if(d&&d.cause==p+","+g)return;var m=f[g],b=m.inside,h=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var _=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,_+"g")}for(var w=m.pattern||m,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var k=x.value;if(t.length>e.length)return;if(!(k instanceof o)){var E,O=1;if(y){if(!(E=a(w,S,e,h))||E.index>=e.length)break;var j=E.index,P=E.index+E[0].length,C=S;for(C+=x.value.length;j>=C;)C+=(x=x.next).value.length;if(S=C-=x.value.length,x.value instanceof o)continue;for(var A=x;A!==t.tail&&(C<P||"string"==typeof A.value);A=A.next)O++,C+=A.value.length;O--,k=e.slice(S,C),E.index-=S}else if(!(E=a(w,0,k,h)))continue;j=E.index;var T=E[0],I=k.slice(0,j),N=k.slice(j+T.length),L=S+k.length;d&&L>d.reach&&(d.reach=L);var R=x.prev;if(I&&(R=l(t,R,I),S+=I.length),c(t,R,O),x=l(t,R,new o(p,b?r.tokenize(T,b):T,v,T)),N&&l(t,x,N),O>1){var D={cause:p+","+g,reach:L};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){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 l(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 c(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 s="";for(var l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[h(r)[0]])((o={exports:{}}).exports,o),o.exports}),j=((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 h(t))_.call(e,o)||o===n||f(e,o,{get:()=>t[o],enumerable:!(r=m(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(O());j.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]},j.languages.markup.tag.inside["attr-value"].inside.entity=j.languages.markup.entity,j.languages.markup.doctype.inside["internal-subset"].inside=j.languages.markup,j.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(j.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:j.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:j.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},j.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(j.languages.markup.tag,"addAttribute",{value:function(e,t){j.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:j.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),j.languages.html=j.languages.markup,j.languages.mathml=j.languages.markup,j.languages.svg=j.languages.markup,j.languages.xml=j.languages.extend("markup",{}),j.languages.ssml=j.languages.xml,j.languages.atom=j.languages.xml,j.languages.rss=j.languages.xml,a=j,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},l="(?:[^\\\\-]|"+(s=/\\(?: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+")",l=RegExp(l+"-"+l),c={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:l,inside:{escape:s,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:s}},"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":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:s,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},j.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:/[{}[\];(),.:]/},j.languages.javascript=j.languages.extend("clike",{"class-name":[j.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}|\?\?=?|\?\.?|[~:]/}),j.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,j.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:j.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:j.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:j.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:j.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:j.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),j.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:j.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"}}),j.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),j.languages.markup&&(j.languages.markup.tag.addInlined("script","javascript"),j.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")),j.languages.js=j.languages.javascript,j.languages.actionscript=j.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:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),j.languages.actionscript["class-name"].alias="function",delete j.languages.actionscript.parameter,delete j.languages.actionscript["literal-property"],j.languages.markup&&j.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:j.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}(j),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 s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(j),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"))}(j),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})}(j),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}(j),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 c,u=e.languages[n];u?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)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(j),j.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:j.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+/},j.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"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<o.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=o.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(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],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&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)}})),j.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 s(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 l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var a=0;a<n.length;a++){if(c>=d.length)return;var i,l,p,f,g,m,b,h=n[a];"string"==typeof h||"string"==typeof h.content?(i=d[c],-1!==(b=(m="string"==typeof h?h:h.content).indexOf(i))&&(++c,l=m.substring(0,b),g=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(g,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,g),f=m.substring(b+i.length),g=[],l&&g.push(l),g.push(p),f&&(t(m=[f]),g.push.apply(g,m)),"string"==typeof h?(n.splice.apply(n,[a,1].concat(g)),a+=g.length-1):h.content=g)):(b=h.content,Array.isArray(b)?t(b):t([b]))}}(l),new e.Token(i,l,"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 c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,s,c=n[r];"string"!=typeof c&&(a=c.content,Array.isArray(a)?"template-string"===c.type?(c=a[1],3===a.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(a[1]=l(i,s,c))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(j),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}(j),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)}(j),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})}(j),j.languages.n4js=j.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/}),j.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),j.languages.n4jsd=j.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]*/}}(j),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===s(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:s(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=s(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=s(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 s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(j),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}(j),j.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:/[{}[\]();,.:\\]/},j.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=j.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}(j),j.languages.c=j.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|[?:~]|[-+*/%&|^!=<>]=?/}),j.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),j.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},j.languages.c.string],char:j.languages.c.char,comment:j.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:j.languages.c}}}}),j.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 j.languages.c.boolean,j.languages.objectivec=j.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 j.languages.objectivec["class-name"],j.languages.objc=j.languages.objectivec,j.languages.reason=j.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/}),j.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 j.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}(j),j.languages.go=j.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/}),j.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete j.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"])}(j),j.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:/[{}[\];(),.:]/},j.languages.python["string-interpolation"].inside.interpolation.inside.rest=j.languages.python,j.languages.py=j.languages.python,j.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"}},j.languages.webmanifest=j.languages.json;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>P,duotoneDark:()=>C,duotoneLight:()=>A,github:()=>T,gruvboxMaterialDark:()=>G,gruvboxMaterialLight:()=>K,jettwaveDark:()=>V,jettwaveLight:()=>Q,nightOwl:()=>I,nightOwlLight:()=>N,oceanicNext:()=>D,okaidia:()=>F,oneDark:()=>W,oneLight:()=>q,palenight:()=>M,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>H});var P={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)"}}]},C={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"}}]},A={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"}}]},T={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"}}]},I={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)"}}]},N={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)"}}]},L="#c5a5c5",R="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:L}},{types:["attr-value"],style:{color:R}},{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:R}},{types:["punctuation"],style:{color:R}},{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:L}},{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}}]},F={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"}}]},M={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)"}}]},H={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)"}}]},V={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"}}]},Q={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"}}]},W={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%)"}}]},q={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%)"}}]},G={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=(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=k(S({},n),{backgroundColor:void 0}),r},Z=/\r\n|\r|\n/,X=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)},J=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},ee=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,c=t[i];const u=n[i][a];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=J(c,u.type),u.alias&&(c=J(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(Z),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)X(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return X(s),l},te=({children:e,language:t,code:n,theme:r,prism:o})=>{const a=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,u.useState)(Y(t,e)),o=(0,u.useRef)(),a=(0,u.useRef)();return(0,u.useEffect)((()=>{t===o.current&&e===a.current||(o.current=t,a.current=e,r(Y(t,e)))}),[e,t]),n})(a,r),s=(e=>(0,u.useCallback)((t=>{var n=t,{className:r,style:o,line:a}=n,i=E(n,["className","style","line"]);const s=k(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(s.style=e.plain),"object"==typeof o&&(s.style=S(S({},s.style||{}),o)),s}),[e]))(i),l=(e=>{const t=(0,u.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,u.useCallback)((e=>{var n=e,{token:r,className:o,style:a}=n,i=E(n,["token","className","style"]);const s=k(S({},i),{className:(0,d.A)("token",...r.types,o),children:r.content,style:t(r)});return null!=a&&(s.style=S(S({},s.style||{}),a)),s}),[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>{const o=(0,u.useRef)(e);return(0,u.useMemo)((()=>{if(null==n)return ee([t]);const e={code:t,grammar:n,language:r,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),ee(e.tokens)}),[t,n,r])})({prism:o,language:a,code:n,grammar:o.languages[a]});return e({tokens:c,className:`prism-code language-${a}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:l})},ne=e=>(0,u.createElement)(te,k(S({},e),{prism:e.prism||j,theme:e.theme||U,code:e.code,language:e.language}))},9923:(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)}}},3422:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>L,__assign:()=>a,__asyncDelegator:()=>E,__asyncGenerator:()=>k,__asyncValues:()=>O,__await:()=>S,__awaiter:()=>g,__classPrivateFieldGet:()=>T,__classPrivateFieldIn:()=>N,__classPrivateFieldSet:()=>I,__createBinding:()=>b,__decorate:()=>s,__disposeResources:()=>D,__esDecorate:()=>c,__exportStar:()=>h,__extends:()=>o,__generator:()=>m,__importDefault:()=>A,__importStar:()=>C,__makeTemplateObject:()=>j,__metadata:()=>f,__param:()=>l,__propKey:()=>d,__read:()=>v,__rest:()=>i,__runInitializers:()=>u,__setFunctionName:()=>p,__spread:()=>_,__spreadArray:()=>x,__spreadArrays:()=>w,__values:()=>y,default:()=>F});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 s(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 s=e.length-1;s>=0;s--)(o=e[s])&&(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 l(e,t){return function(n,r){t(n,r,e)}}function c(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 s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),p=!1,f=n.length-1;f>=0;f--){var g={};for(var m in r)g[m]="access"===m?{}:r[m];for(var m in r.access)g.access[m]=r.access[m];g.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var b=(0,n[f])("accessor"===l?{get:d.get,set:d.set}:d[c],g);if("accessor"===l){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(s=i(b.get))&&(d.get=s),(s=i(b.set))&&(d.set=s),(s=i(b.init))&&o.unshift(s)}else(s=i(b))&&("field"===l?o.unshift(s):d[c]=s)}u&&Object.defineProperty(u,r.name,d),p=!0}function u(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 g(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(l){s=[6,l],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var b=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 h(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||b(t,e,n)}function y(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(s){o={error:s}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function _(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function w(){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,s=a.length;i<s;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 k(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r={},i("next"),i("throw"),i("return",(function(e){return function(t){return Promise.resolve(t).then(e,c)}})),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||s(e,t)}))},t&&(r[e]=t(r[e])))}function s(e,t){try{(n=o[e](t)).value instanceof S?Promise.resolve(n.value.v).then(l,c):u(a[0][2],n)}catch(r){u(a[0][3],r)}var n}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function E(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 O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(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 j(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var P=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function C(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&b(t,e,n);return P(t,e),t}function A(e){return e&&e.__esModule?e:{default:e}}function T(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 I(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 N(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 L(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 R="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 D(e){function t(t){e.error=e.hasError?new R(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var o=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(o).then(n,(function(e){return t(e),n()}))}catch(a){t(a)}}if(e.hasError)throw e.error}()}const F={__extends:o,__assign:a,__rest:i,__decorate:s,__param:l,__metadata:f,__awaiter:g,__generator:m,__createBinding:b,__exportStar:h,__values:y,__read:v,__spread:_,__spreadArrays:w,__spreadArray:x,__await:S,__asyncGenerator:k,__asyncDelegator:E,__asyncValues:O,__makeTemplateObject:j,__importStar:C,__importDefault:A,__classPrivateFieldGet:T,__classPrivateFieldSet:I,__classPrivateFieldIn:N,__addDisposableResource:L,__disposeResources:D}},2654:e=>{"use strict";e.exports=JSON.parse('{"cmfcmf/d-s-l.searchBar.placeholder":"Search...","cmfcmf/d-s-l.searchBar.noResults":"No results found.","cmfcmf/d-s-l.searchBar.clearButtonTitle":"Clear","cmfcmf/d-s-l.searchBar.detachedCancelButtonText":"Cancel","cmfcmf/d-s-l.searchBar.submitButtonTitle":"Submit"}')},4054:e=>{"use strict";e.exports=JSON.parse('{"/blog-deb":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"},{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"47aca6da"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"d9d4e1f1"},{"content":"2024b8b1"},{"content":"fb0a08ce"},{"content":"8795eea9"}],"__props":"c15d9823"},"/blog/2023/07/01/-30b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"a1f57275"},"/blog/2023/07/08/-d10":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"7424d9c3"},"/blog/2023/07/09/-2c2":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"b7026fb3"},"/blog/2023/07/13/-6e5":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"0bfa7fcc"},"/blog/2023/07/15/-b20":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"9748c478"},"/blog/2023/07/19/-8a6":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"c332f8df"},"/blog/2023/07/20/-9b6":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"b493ea72"},"/blog/2023/07/24/-4f4":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"a1216fa4"},"/blog/2023/07/29/-44c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e7aa45d5"},"/blog/2023/11/20/-3f2":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"55dfe132"},"/blog/2023/12/09/-d2c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"0b705c82"},"/blog/2024/03/28/-60b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e0c5798e"},"/blog/2024/04/01/2024-04-01/-59c":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"4a6974fe"},"/blog/2024/04/14/-e89":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"cd59c184"},"/blog/2024/05/07/-2dc":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"fbaf179c"},"/blog/2024/10/20/-4e9":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"9019cc36"},"/blog/archive-182":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"f81c1134"},"/blog/authors-0b7":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"ef8b811a"},"/blog/page/2-fd3":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"},{"content":"89db6d1d"},{"content":"2e008a3a"},{"content":"7b99d5ba"},{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"8ea09047"},"/blog/tags-287":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"3a2db09e"},"/blog/tags/age-restrictions-8da":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"416eca3f"},"/blog/tags/ai-generated-names-de1":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"eda4f68b"},"/blog/tags/alternative-0cb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"5ac1a9ec"},"/blog/tags/analytics-105":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"66e9ef90"},"/blog/tags/announcement-3ab":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"ba3af7ad"}],"__props":"9d86e7fa"},"/blog/tags/api-d97":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"7489ed02"}],"__props":"f525eb8a"},"/blog/tags/app-f50":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"10d38074"},"/blog/tags/app-name-migration-b3d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"6535206c"},"/blog/tags/app-optimization-4b7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"b2c9ad8a"},"/blog/tags/april-fools-45b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"47aca6da"}],"__props":"915cb6f7"},"/blog/tags/backend-bc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"5c99339f"},"/blog/tags/backend-application-migration-ea3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"4fb3dfba"},"/blog/tags/beta-testing-8e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"f6f174b1"},"/blog/tags/blackmail-2a4":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"7864c493"},"/blog/tags/box-representation-400":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"24c2f136"},"/blog/tags/bugs-ff5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"3f6275a8"},"/blog/tags/celebration-of-achievements-f97":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"8e064018"},"/blog/tags/client-application-update-45e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"077db3c5"},"/blog/tags/client-update-d5b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"36bc9c65"},"/blog/tags/cloud-based-game-platforms-a94":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"87cefd36"},"/blog/tags/code-access-1ef":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"0a27b0d0"},"/blog/tags/coding-chronicle-d18":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"d527dda4"},"/blog/tags/collaboration-f74":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"bdf26d57"},"/blog/tags/community-e39":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"9147d3af"},{"content":"2024b8b1"},{"content":"ba3af7ad"}],"__props":"dc8e8e39"},"/blog/tags/community-driven-63b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"71f025ea"},"/blog/tags/community-feedback-3ee":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"},{"content":"89db6d1d"}],"__props":"3fc2248c"},"/blog/tags/community-management-93f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"751a244a"},"/blog/tags/continued-support-afc":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"77a8abe0"},"/blog/tags/control-04d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"2a693baa"},"/blog/tags/council-member-a6a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"fee02ac9"},"/blog/tags/creepy-behavior-090":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"e78c2f6e"},"/blog/tags/database-ff5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"a6fed517"},"/blog/tags/decision-making-532":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"63511f3c"},"/blog/tags/developers-487":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8167ef7e"},"/blog/tags/development-b27":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"2024b8b1"}],"__props":"fcad5cc1"},"/blog/tags/development-milestones-1c9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"0ad562e6"},"/blog/tags/discord-6df":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"3fc3119e"},{"content":"2024b8b1"}],"__props":"e3409e91"},"/blog/tags/discord-channel-b2d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"},{"content":"0bd541ed"}],"__props":"18747338"},"/blog/tags/discord-community-growth-136":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"e4878929"},"/blog/tags/discord-server-e4d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"e935068c"},"/blog/tags/discord-server-promotion-f55":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"2f44e9f7"},"/blog/tags/documentation-migration-405":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"6e64f266"},"/blog/tags/domain-acquisition-e1a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"065dfc11"},"/blog/tags/drm-free-c7e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"f94e70f3"},"/blog/tags/drm-free-games-6cf":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"678c8d60"},"/blog/tags/early-access-ed5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"3fc3119e"}],"__props":"d82a1228"},"/blog/tags/easter-egg-7c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"cc616304"},"/blog/tags/engagement-b3b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"01fcf7cb"},"/blog/tags/exclusive-preview-0fe":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"4efd7f8f"},"/blog/tags/family-friendly-282":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"6bbbce94"},"/blog/tags/feature-requests-61d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"80404bfe"},"/blog/tags/features-3d5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"2024b8b1"}],"__props":"d5823966"},"/blog/tags/feedback-a81":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"2024b8b1"},{"content":"fb0a08ce"},{"content":"ba3af7ad"}],"__props":"f58fbef8"},"/blog/tags/file-server-f0b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"a3fd4b44"},"/blog/tags/financial-assistance-e64":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"92440753"},"/blog/tags/future-development-db0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"8f8e2e78"},"/blog/tags/future-features-bed":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"e623129a"},"/blog/tags/game-a29":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"1dd5d307"},"/blog/tags/game-development-97c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"99d3d5ac"},"/blog/tags/game-hub-6c3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"4ff7c2f7"},"/blog/tags/game-shelf-566":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"5fa82f91"},"/blog/tags/game-stash-728":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"51fa4cf1"},"/blog/tags/game-vault-39f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"},{"content":"fe2b2ad8"},{"content":"e70842e4"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"2024b8b1"},{"content":"89db6d1d"},{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"9fafd272"},"/blog/tags/game-vault-app-bd6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8ff99662"},"/blog/tags/game-vault-domain-a5b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"8a3c85db"},"/blog/tags/game-vault-journey-52d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"7754063d"},"/blog/tags/game-vault-milestone-030":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"df8deb2d"},"/blog/tags/gaming-2b9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"9147d3af"},{"content":"3fc3119e"},{"content":"7489ed02"}],"__props":"9b1663d8"},"/blog/tags/gaming-community-73c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"daddf69a"},"/blog/tags/gaming-experience-f8c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"7c4a7780"},"/blog/tags/gaming-platform-12f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"7a0110f5"},"/blog/tags/gaming-servers-e66":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"9b95b357"},"/blog/tags/git-hub-590":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"886fdd87"},"/blog/tags/git-hub-issue-8a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"77f7e459"},"/blog/tags/gratitude-1d7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"03919031"},"/blog/tags/harassment-89d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"251cbb95"},"/blog/tags/harbor-a9f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"524a34e7"},"/blog/tags/health-monitoring-d88":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"63b46e50"},"/blog/tags/hybrid-model-038":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"2296bbef"},"/blog/tags/igdb-6ff":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"9d5a95a9"},"/blog/tags/improvement-0af":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"7b99d5ba"}],"__props":"013bccfd"},"/blog/tags/inclusivity-7a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"f677311a"},"/blog/tags/installation-pipeline-94b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"5a8f8fa9"},"/blog/tags/kanban-board-372":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"5bbd8cf3"},"/blog/tags/keyhole-representation-ae7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"c71ef62c"},"/blog/tags/lemmy-community-a2d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"26ca8ce1"},"/blog/tags/lemmy-community-launch-9dd":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"063ffaec"},"/blog/tags/lemmy-forum-7bd":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"3ac72a53"},"/blog/tags/logo-concept-discussion-7e7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"bb12dd4d"},"/blog/tags/logo-deciphering-dc4":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"3b659bf0"},"/blog/tags/love-for-game-vault-2f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"e07621e3"},"/blog/tags/market-analysis-c1c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"04a3aba4"},"/blog/tags/metadata-2c9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"},{"content":"7489ed02"}],"__props":"46e7f252"},"/blog/tags/metadata-framework-bc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"8a3716b4"},"/blog/tags/microsoft-store-cc8":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"5a2f6c5d"},"/blog/tags/microsoft-store-publication-a3d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"591d17b8"},"/blog/tags/migration-finalization-138":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"e5c4b825"},"/blog/tags/motivation-8c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"ca2d5c98"},"/blog/tags/multi-user-authentication-3a5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"d9341347"},"/blog/tags/name-migration-progress-396":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"e98ed1e4"},"/blog/tags/negative-narratives-ef7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"2608b85a"},"/blog/tags/new-logo-3d9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"3f99d67c"},"/blog/tags/new-name-28c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"d5dcebd7"},"/blog/tags/new-name-announcement-7b6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"8852925a"},"/blog/tags/notes-f1b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"3bdf5af6"},"/blog/tags/november-update-a61":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"7486ddfc"},"/blog/tags/official-installations-733":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"c9618c72"},"/blog/tags/open-source-6be":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"b2ade0e8"},"/blog/tags/parental-control-65b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"d53cd084"},"/blog/tags/partnership-0de":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"204759e4"},"/blog/tags/partnerships-588":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"e46b1034"},"/blog/tags/platform-0bc":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"2024b8b1"}],"__props":"4e01c0f4"},"/blog/tags/platform-values-376":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"9e75d8bf"},"/blog/tags/plugin-system-4f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"bc0aa6af"},"/blog/tags/poll-eda":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"6ff2a8aa"},"/blog/tags/poll-results-2a9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"500e67e3"},"/blog/tags/polls-829":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"8b8fd5aa"},"/blog/tags/public-f5f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"daf02673"},"/blog/tags/racist-2bb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"979ccdb6"},"/blog/tags/rawg-5ed":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"fb0e7a2f"},"/blog/tags/rawg-api-751":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"0c6a4732"},"/blog/tags/reddit-forum-61e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7489ed02"}],"__props":"0d3164f5"},"/blog/tags/release-15f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"c9cac9d9"},"/blog/tags/renaming-app-d2c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"6a40fd04"},"/blog/tags/revenue-generation-68c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"e0a15777"},"/blog/tags/roadmap-e17":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"}],"__props":"92fb1dcd"},"/blog/tags/safe-environment-620":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"1334883d"},"/blog/tags/self-hosted-19e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"},{"content":"7489ed02"}],"__props":"5db30e8c"},"/blog/tags/self-hosted-newsletter-b53":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"573c7c88"},"/blog/tags/selfhosted-podcast-8d7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"c8fbe42c"},"/blog/tags/server-update-7ee":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"805ec11d"},"/blog/tags/sharing-blog-posts-2e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"f2a7e769"},"/blog/tags/simplifying-game-installation-0a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"1ff343c8"},"/blog/tags/software-ed0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"a7d982d4"},"/blog/tags/software-development-f78":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"e9e1de17"},"/blog/tags/software-licensing-6a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"db0b0363"},"/blog/tags/software-updates-742":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"4f991444"},"/blog/tags/solution-a71":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"9046e000"},"/blog/tags/source-available-501":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"},{"content":"7489ed02"}],"__props":"cc0b9cf0"},"/blog/tags/source-available-software-42f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"23a0eab7"},"/blog/tags/spam-99a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"8577c450"},"/blog/tags/special-thanks-721":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"c8472403"},"/blog/tags/speculation-691":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"5baa483a"},"/blog/tags/spreading-the-word-9a5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"},{"content":"8795eea9"}],"__props":"113d89da"},"/blog/tags/startup-387":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"c7bbcbc7"},"/blog/tags/steam-5cb":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"ab6782ba"},"/blog/tags/subreddit-migration-bf0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"19e4f252"},"/blog/tags/subscription-088":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"00dfabf5"},"/blog/tags/subscription-model-7e6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"9147d3af"}],"__props":"2aa0a660"},"/blog/tags/subscription-to-updates-role-97f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"534e7ef5"},"/blog/tags/success-cc5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"dd9b1d9d"},"/blog/tags/support-a33":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"009c376a"},"/blog/tags/support-request-99a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"ff51e3f1"},"/blog/tags/surge-of-new-users-4ba":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8795eea9"}],"__props":"aeb57253"},"/blog/tags/sustainability-5a8":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"defc3e62"},"/blog/tags/tech-progress-1f3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"20661643"},"/blog/tags/testing-ad7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"0bd541ed"}],"__props":"82c81335"},"/blog/tags/theme-6c7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7ef69c2b"}],"__props":"73ad9a8e"},"/blog/tags/threats-3f9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"4534f50b"},"/blog/tags/transition-process-a0e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"89db6d1d"}],"__props":"7558b7a2"},"/blog/tags/transparency-7b3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"00fcf151"},"/blog/tags/trolls-22a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"7b99d5ba"}],"__props":"41e301a0"},"/blog/tags/twitch-tv-c17":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"99f2b7e6"},"/blog/tags/ui-redesign-1e3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"d9d4e1f1"}],"__props":"bcc2422e"},"/blog/tags/ui-update-0da":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3fc3119e"}],"__props":"cee5390f"},"/blog/tags/upcoming-update-f39":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fb0a08ce"}],"__props":"3af271b3"},"/blog/tags/update-fa1":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"0766ce7b"},"/blog/tags/updates-125":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"71f72e4c"},"/blog/tags/user-engagement-51e":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2e008a3a"}],"__props":"d6138fd2"},"/blog/tags/user-participation-15b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"ba3af7ad"}],"__props":"357ebdd0"},"/blog/tags/video-games-b8c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"e70842e4"}],"__props":"7576ca6a"},"/blog/tags/videogame-f65":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe2b2ad8"}],"__props":"a67f6c3e"},"/blog/tags/voting-f23":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"2024b8b1"},{"content":"ba3af7ad"}],"__props":"cd781ce1"},"/docs-6d2":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/docs-ee7":{"__comp":"a7bd4aaa","__props":"0058b4c6"},"/docs-ad9":{"__comp":"a94703ab"},"/docs/advanced-usage/early-access-program-8ae":{"__comp":"17896441","content":"264f4708"},"/docs/advanced-usage/fail2ban-gamevault-guide-8b9":{"__comp":"17896441","content":"ee98c124"},"/docs/advanced-usage/linux-client-71a":{"__comp":"17896441","content":"dcb9a9e8"},"/docs/advanced-usage/rest-api-c5a":{"__comp":"17896441","content":"c89c7974"},"/docs/advanced-usage/steamdeck-03e":{"__comp":"17896441","content":"e0da75fc"},"/docs/client-docs/data-840":{"__comp":"17896441","content":"51e7bf36"},"/docs/client-docs/gui-e4a":{"__comp":"17896441","content":"a1072f2a"},"/docs/client-docs/how-to-use-db9":{"__comp":"17896441","content":"435302bb"},"/docs/client-docs/setup-0c3":{"__comp":"17896441","content":"b8ecf3c5"},"/docs/client-docs/themes-e4c":{"__comp":"17896441","content":"f8aea940"},"/docs/client-docs/updating-client-82b":{"__comp":"17896441","content":"e9e0f988"},"/docs/gamevault-plus/client-apis-0d7":{"__comp":"17896441","content":"9404f843"},"/docs/gamevault-plus/client-setup-7b9":{"__comp":"17896441","content":"c9d2adb2"},"/docs/gamevault-plus/introduction-442":{"__comp":"17896441","content":"ec46a009"},"/docs/gamevault-plus/themes-727":{"__comp":"17896441","content":"f5b06269"},"/docs/intro-ee2":{"__comp":"17896441","content":"0e384e19"},"/docs/license-contribute-f9d":{"__comp":"17896441","content":"ba57e113"},"/docs/server-docs/adding-games-3c5":{"__comp":"17896441","content":"14b6aafb"},"/docs/server-docs/backup-and-restore-a7c":{"__comp":"17896441","content":"4d393b3e"},"/docs/server-docs/configuration-5a1":{"__comp":"17896441","content":"b28c3188"},"/docs/server-docs/game-types-45a":{"__comp":"17896441","content":"5e5c84c3"},"/docs/server-docs/indexing-87c":{"__comp":"17896441","content":"b1d7f5b9"},"/docs/server-docs/media-f31":{"__comp":"17896441","content":"007d2baa"},"/docs/server-docs/metadata-enrichment/metadata-d00":{"__comp":"17896441","content":"0748c3bc"},"/docs/server-docs/metadata-enrichment/provider-igdb-9f3":{"__comp":"17896441","content":"193fe191"},"/docs/server-docs/parental-control-c42":{"__comp":"17896441","content":"8ba18f4f"},"/docs/server-docs/plugins-44a":{"__comp":"17896441","content":"18d9fd7d"},"/docs/server-docs/server-news-dce":{"__comp":"17896441","content":"438c7fa2"},"/docs/server-docs/setup/-3dd":{"__comp":"17896441","content":"f4d4319b"},"/docs/server-docs/setup/caprover-9dc":{"__comp":"17896441","content":"b4068411"},"/docs/server-docs/setup/docker-compose-272":{"__comp":"17896441","content":"8c4108df"},"/docs/server-docs/setup/native-29e":{"__comp":"17896441","content":"cddec16f"},"/docs/server-docs/setup/synology-container-manager-621":{"__comp":"17896441","content":"1e0a1681"},"/docs/server-docs/setup/truenas-scale-d3f":{"__comp":"17896441","content":"1630eae8"},"/docs/server-docs/setup/truenas-scale-legacy-a61":{"__comp":"17896441","content":"5b1700d1"},"/docs/server-docs/setup/unraid-5d9":{"__comp":"17896441","content":"80292675"},"/docs/server-docs/structure-3e8":{"__comp":"17896441","content":"61be0f73"},"/docs/server-docs/updating-games-59b":{"__comp":"17896441","content":"4a631206"},"/docs/server-docs/user-management-38a":{"__comp":"17896441","content":"e6a59d41"},"/docs/server-docs/websockets-b63":{"__comp":"17896441","content":"5046667d"},"/docs/troubleshooting-84f":{"__comp":"17896441","content":"9d9f8394"},"/-2e1":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=6307,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.98deba46.js.LICENSE.txt b/assets/js/main.dc29ecc1.js.LICENSE.txt similarity index 100% rename from assets/js/main.98deba46.js.LICENSE.txt rename to assets/js/main.dc29ecc1.js.LICENSE.txt diff --git a/assets/js/runtime~main.125020f0.js b/assets/js/runtime~main.125020f0.js deleted file mode 100644 index 3d9a67e5a..000000000 --- a/assets/js/runtime~main.125020f0.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,f,c,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return b[e].call(f.exports,f,f.exports,r),f.exports}r.m=b,e=[],r.O=(a,f,c,d)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],d=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,c,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({15:"3bdf5af6",69:"357ebdd0",111:"7864c493",121:"71f025ea",146:"f525eb8a",147:"8ba18f4f",187:"d5dcebd7",235:"8a3c85db",241:"8167ef7e",310:"e9e0f988",339:"e0c5798e",356:"e6a59d41",386:"e46b1034",428:"4fb3dfba",447:"3f6275a8",452:"61be0f73",675:"2aa0a660",691:"cee5390f",717:"cc616304",752:"b7026fb3",765:"e4878929",786:"66e9ef90",857:"f677311a",962:"80404bfe",1053:"8795eea9",1105:"1630eae8",1151:"8b8fd5aa",1180:"e3409e91",1271:"4f991444",1283:"3f99d67c",1362:"3fc3119e",1383:"7b99d5ba",1392:"fb0a08ce",1420:"1e0a1681",1472:"c9618c72",1517:"264f4708",1545:"e78c2f6e",1601:"438c7fa2",1691:"8e064018",1693:"00fcf151",1720:"fee02ac9",1736:"dc8e8e39",1814:"ba3af7ad",2002:"18d9fd7d",2126:"435302bb",2158:"5a2f6c5d",2275:"0ad562e6",2314:"065dfc11",2328:"c71ef62c",2337:"204759e4",2422:"c7bbcbc7",2500:"f4d4319b",2510:"0b705c82",2518:"5ac1a9ec",2535:"814f3328",2561:"8577c450",2639:"6bbbce94",2644:"ef8b811a",2650:"9046e000",2656:"e0da75fc",2701:"c9d2adb2",2777:"7a0110f5",2805:"db0b0363",2834:"534e7ef5",2873:"04a3aba4",2908:"92fb1dcd",2942:"9b95b357",2980:"1ff343c8",2999:"a67f6c3e",3017:"e98ed1e4",3020:"6535206c",3025:"fcad5cc1",3066:"f58fbef8",3089:"a6aa9e1f",3112:"cd59c184",3116:"7754063d",3198:"4e01c0f4",3236:"7576ca6a",3251:"e623129a",3357:"2f44e9f7",3392:"ca2d5c98",3433:"dd9b1d9d",3439:"92440753",3465:"47aca6da",3488:"19e4f252",3518:"26ca8ce1",3559:"b28c3188",3581:"daf02673",3585:"d53cd084",3608:"9e4087bc",3629:"aba21aa0",3680:"b2c9ad8a",3712:"41e301a0",3940:"621db11d",4013:"01a85c17",4023:"0bd541ed",4031:"f81c1134",4039:"b1d7f5b9",4088:"0058b4c6",4145:"8c4108df",4195:"c4f5d8e4",4251:"82c81335",4275:"5046667d",4286:"bb12dd4d",4327:"7558b7a2",4368:"a94703ab",4412:"defc3e62",4430:"678c8d60",4452:"bdf26d57",4503:"5fa82f91",4509:"915cb6f7",4517:"416eca3f",4584:"251cbb95",4649:"0d3164f5",4691:"a7d982d4",4758:"dcb9a9e8",4760:"fbaf179c",4781:"b493ea72",4811:"9404f843",4819:"63b46e50",4884:"a6fed517",4893:"fb0e7a2f",4895:"1334883d",4907:"fe2b2ad8",4956:"00dfabf5",5044:"63511f3c",5050:"d82a1228",5059:"8a3716b4",5074:"7c4a7780",5150:"99d3d5ac",5156:"2608b85a",5164:"805ec11d",5240:"87cefd36",5300:"d9d4e1f1",5316:"cddec16f",5325:"a1f57275",5447:"aeb57253",5487:"55dfe132",5501:"51fa4cf1",5548:"daddf69a",5565:"f5b06269",5590:"ee98c124",5658:"e5c4b825",5662:"a1216fa4",5694:"2e008a3a",5724:"500e67e3",5736:"6a40fd04",5773:"23a0eab7",5781:"6e64f266",5789:"01fcf7cb",5805:"77f7e459",5855:"89db6d1d",5865:"c89c7974",5912:"e70842e4",5948:"ba57e113",5954:"9147d3af",5961:"f8aea940",5980:"a7456010",6003:"ab6782ba",6021:"007d2baa",6071:"0bfa7fcc",6072:"3af271b3",6103:"ccc49370",6135:"36bc9c65",6152:"3ac72a53",6182:"e07621e3",6241:"0748c3bc",6325:"c9cac9d9",6364:"cc0b9cf0",6487:"80292675",6497:"9b1663d8",6515:"7489ed02",6522:"f2a7e769",6609:"f94e70f3",6623:"2296bbef",6634:"4a6974fe",6635:"3b659bf0",6642:"c15d9823",6807:"077db3c5",6835:"013bccfd",6927:"886fdd87",6953:"524a34e7",6987:"0766ce7b",7020:"7ef69c2b",7044:"5db30e8c",7146:"51e7bf36",7253:"4534f50b",7262:"d5823966",7283:"5c99339f",7393:"acecf23e",7416:"d527dda4",7459:"193fe191",7471:"d6138fd2",7508:"9d86e7fa",7523:"71f72e4c",7546:"99f2b7e6",7596:"2024b8b1",7650:"a1072f2a",7764:"f6f174b1",7773:"6ff2a8aa",7807:"9748c478",7918:"17896441",7919:"18747338",7937:"4a631206",7951:"03919031",7964:"8852925a",8023:"9d5a95a9",8038:"3fc2248c",8042:"b4068411",8218:"591d17b8",8258:"c332f8df",8307:"e935068c",8346:"5a8f8fa9",8364:"c8fbe42c",8404:"bc0aa6af",8407:"8f8e2e78",8437:"7486ddfc",8444:"9e75d8bf",8489:"8ff99662",8495:"14b6aafb",8516:"5e5c84c3",8518:"a7bd4aaa",8521:"2a693baa",8563:"b2ade0e8",8565:"4ff7c2f7",8610:"6875c492",8644:"8ea09047",8666:"9fafd272",8704:"bcc2422e",8823:"10d38074",8846:"573c7c88",8847:"009c376a",8860:"df8deb2d",8912:"5bbd8cf3",8953:"20661643",9006:"5baa483a",9041:"751a244a",9096:"73ad9a8e",9099:"113d89da",9155:"4d393b3e",9190:"46e7f252",9208:"36994c47",9230:"cd781ce1",9264:"979ccdb6",9268:"7424d9c3",9303:"a3fd4b44",9338:"0c6a4732",9348:"77a8abe0",9360:"9d9f8394",9361:"3a2db09e",9362:"ec46a009",9399:"063ffaec",9418:"1dd5d307",9424:"eda4f68b",9473:"e9e1de17",9490:"d9341347",9498:"ff51e3f1",9518:"0a27b0d0",9565:"9019cc36",9584:"24c2f136",9661:"5e95c892",9671:"0e384e19",9710:"c8472403",9737:"e0a15777",9847:"b8ecf3c5",9886:"e7aa45d5",9950:"4efd7f8f"}[e]||e)+"."+{15:"afdcb5a4",69:"697df34d",111:"9645bd45",121:"6f40bb5d",146:"c495c5b2",147:"bf6e5915",187:"f25b04b3",235:"0ea59cd7",241:"e23acf96",310:"10805eba",339:"308752ac",356:"1d566c42",386:"9a2f7372",428:"c47be8fc",447:"0faaee88",452:"24a6894b",675:"10688fe9",691:"f67a1ea1",717:"77584d59",752:"9d4162c0",765:"b897a783",786:"493eaccb",857:"3b2a60f5",962:"243fe57b",1053:"c226c217",1105:"accef326",1151:"88742189",1180:"eb63e05e",1271:"76873c68",1283:"8306d15a",1362:"a97da495",1383:"a1b49a5b",1392:"709e5246",1420:"843c85a2",1472:"f7a3fb5e",1517:"ca7caef3",1545:"826f4032",1601:"c8ca3637",1649:"c21acdfc",1691:"192c037f",1693:"fc36d5e7",1720:"5c9a73d8",1736:"610e2592",1814:"82300781",2002:"706652b2",2091:"0cdaafca",2126:"311555ff",2158:"09370c3a",2275:"6f0e84be",2314:"021b191d",2328:"433c7f12",2337:"e03fff90",2422:"071b1ca6",2500:"275bbc67",2510:"3d4a2b17",2518:"ee9e635b",2535:"c8be6700",2561:"c522d676",2639:"a8e63d10",2644:"d87fafd2",2650:"f43ecc9e",2656:"d480b18e",2701:"a548cf92",2777:"3ab6f421",2805:"58be98a7",2834:"3ac40b2b",2873:"a65ff355",2908:"8516da11",2942:"29f7c58b",2980:"85bb6a54",2999:"40a0a035",3017:"63e2958e",3020:"8d92d0fd",3025:"fdbd4ec6",3066:"c7d8d0f3",3089:"87c8d08d",3112:"9ebb86c4",3116:"2f94657f",3198:"ef8b51e7",3236:"ca031a19",3251:"cdbc5f94",3357:"aed84675",3392:"f3114af4",3433:"8e104c95",3439:"444c601f",3465:"d22b953e",3488:"384181f4",3518:"f04fae7b",3559:"de9c75ef",3581:"5a456591",3585:"b0b81414",3608:"c436fd83",3629:"f1ffa9ac",3680:"ff2e4e5e",3712:"7724a9e3",3940:"cd005c05",4013:"a3a8d5c8",4023:"643c34a6",4031:"427bb239",4039:"e4770812",4088:"d17a824f",4145:"5a581c4b",4195:"5bde9f5e",4251:"7144e663",4275:"88538dd3",4286:"2d4ebc9a",4327:"df837680",4368:"4436cafa",4412:"9ac48b07",4430:"d2ce53e5",4452:"9e4d46f1",4503:"fa2d39df",4509:"f5acc05c",4517:"c4adc880",4584:"f2332e02",4649:"2cd8823e",4691:"8de9df24",4758:"b7f433a5",4760:"289c4e7f",4781:"002e1b38",4811:"223d7f9d",4819:"16d610c4",4884:"59bc7dcb",4893:"14a490bd",4895:"14400a3c",4907:"5be3f56b",4956:"e80e1c37",5044:"6756bb7e",5050:"49eaf640",5059:"f601d9b6",5074:"96b1e592",5150:"1aaa4761",5156:"02c0ba90",5164:"af062f68",5240:"a188e09d",5300:"ca60091f",5316:"9b0e6a28",5325:"f5d129b3",5447:"2a2f6685",5487:"39f7a57c",5501:"d5da5dbf",5548:"ddeb214e",5565:"e491f127",5590:"784e4902",5658:"37ebd851",5662:"b3f075b9",5694:"c8c45cd2",5724:"19f9ac2f",5736:"888292b4",5773:"c9728401",5781:"2141b30d",5789:"48bd04c7",5805:"a29ad4a7",5855:"830f4491",5865:"7746f383",5912:"f0b00acd",5948:"a8c89eee",5954:"0a76dcd5",5961:"a76ffdb7",5980:"c4d9ffaa",6003:"45f5ab35",6021:"5c11eb62",6071:"b01db92e",6072:"a8d18461",6103:"3a091c2c",6135:"8f29c9d6",6152:"47052c5b",6182:"ddae9e66",6241:"bbf473ea",6325:"33dd62bd",6364:"be0010eb",6487:"2227e39e",6493:"8f62fe69",6497:"b5d4c1d6",6515:"06343463",6522:"bec83672",6609:"5df7c9c2",6623:"15e7a1e1",6634:"d796f7ac",6635:"25a393d1",6642:"91f18004",6807:"0999319f",6835:"ff7437d6",6927:"566679ce",6953:"1aab349d",6987:"6aec0bf0",7020:"14d18f74",7044:"e2e7c57f",7146:"1bea7895",7253:"15c88222",7262:"0056e9ed",7283:"820589b5",7393:"55a1a4b9",7416:"0a77982f",7459:"17ee5eb5",7471:"106d7fa0",7508:"2f9f9808",7523:"07d644c6",7546:"acd277ff",7596:"318d4076",7650:"7616025d",7764:"2d97a5ec",7773:"2304b994",7807:"ab7b920b",7918:"5148359f",7919:"2137608a",7937:"7f9769a2",7951:"e92f7a9d",7964:"709ac834",8023:"5e01b5f3",8038:"1f5578e5",8042:"a6cf9b2a",8218:"ab276fe7",8258:"d52fc2ac",8307:"80350e6e",8346:"0f14bab8",8364:"6e3567e1",8404:"65ec7d7b",8407:"9c2f6ed8",8437:"bb66f90e",8444:"09251459",8489:"58f8bcce",8495:"891b74dd",8516:"68da2443",8518:"b6217e6b",8521:"dbfa1f2b",8563:"9f4e1edb",8565:"26455918",8610:"9307af78",8644:"8882bedc",8666:"8c3e8bdf",8704:"cc2251a8",8823:"62bfa264",8846:"ef50afd2",8847:"06db26bf",8860:"883a1740",8912:"d768f173",8953:"143a88ff",9006:"88d5f495",9041:"99de35a7",9096:"7e581625",9099:"c4b27d8e",9155:"75bfcbb7",9190:"a3647008",9208:"cdf0e56f",9230:"7f1fa5b9",9264:"8cea7923",9268:"3f5cb2ce",9303:"55b11bf1",9338:"5416241e",9348:"6cee7d2b",9360:"562ecabc",9361:"5bb4ae1d",9362:"b72b84ee",9399:"bf3c46a7",9418:"07977e54",9424:"5e7dc2d2",9473:"929612ec",9490:"89897fd7",9498:"a42a1c3f",9518:"5f4c1fad",9565:"071ddb15",9584:"e921b82e",9661:"892705da",9671:"9312608c",9710:"ffbd8f0a",9737:"1e8cc06c",9847:"ef8f4fbe",9886:"9843d9eb",9950:"ced76d32"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},d="gamevault-docs:",r.l=(e,a,f,b)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+f),t.src=e),c[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",18747338:"7919",20661643:"8953",80292675:"6487",92440753:"3439","3bdf5af6":"15","357ebdd0":"69","7864c493":"111","71f025ea":"121",f525eb8a:"146","8ba18f4f":"147",d5dcebd7:"187","8a3c85db":"235","8167ef7e":"241",e9e0f988:"310",e0c5798e:"339",e6a59d41:"356",e46b1034:"386","4fb3dfba":"428","3f6275a8":"447","61be0f73":"452","2aa0a660":"675",cee5390f:"691",cc616304:"717",b7026fb3:"752",e4878929:"765","66e9ef90":"786",f677311a:"857","80404bfe":"962","8795eea9":"1053","1630eae8":"1105","8b8fd5aa":"1151",e3409e91:"1180","4f991444":"1271","3f99d67c":"1283","3fc3119e":"1362","7b99d5ba":"1383",fb0a08ce:"1392","1e0a1681":"1420",c9618c72:"1472","264f4708":"1517",e78c2f6e:"1545","438c7fa2":"1601","8e064018":"1691","00fcf151":"1693",fee02ac9:"1720",dc8e8e39:"1736",ba3af7ad:"1814","18d9fd7d":"2002","435302bb":"2126","5a2f6c5d":"2158","0ad562e6":"2275","065dfc11":"2314",c71ef62c:"2328","204759e4":"2337",c7bbcbc7:"2422",f4d4319b:"2500","0b705c82":"2510","5ac1a9ec":"2518","814f3328":"2535","8577c450":"2561","6bbbce94":"2639",ef8b811a:"2644","9046e000":"2650",e0da75fc:"2656",c9d2adb2:"2701","7a0110f5":"2777",db0b0363:"2805","534e7ef5":"2834","04a3aba4":"2873","92fb1dcd":"2908","9b95b357":"2942","1ff343c8":"2980",a67f6c3e:"2999",e98ed1e4:"3017","6535206c":"3020",fcad5cc1:"3025",f58fbef8:"3066",a6aa9e1f:"3089",cd59c184:"3112","7754063d":"3116","4e01c0f4":"3198","7576ca6a":"3236",e623129a:"3251","2f44e9f7":"3357",ca2d5c98:"3392",dd9b1d9d:"3433","47aca6da":"3465","19e4f252":"3488","26ca8ce1":"3518",b28c3188:"3559",daf02673:"3581",d53cd084:"3585","9e4087bc":"3608",aba21aa0:"3629",b2c9ad8a:"3680","41e301a0":"3712","621db11d":"3940","01a85c17":"4013","0bd541ed":"4023",f81c1134:"4031",b1d7f5b9:"4039","0058b4c6":"4088","8c4108df":"4145",c4f5d8e4:"4195","82c81335":"4251","5046667d":"4275",bb12dd4d:"4286","7558b7a2":"4327",a94703ab:"4368",defc3e62:"4412","678c8d60":"4430",bdf26d57:"4452","5fa82f91":"4503","915cb6f7":"4509","416eca3f":"4517","251cbb95":"4584","0d3164f5":"4649",a7d982d4:"4691",dcb9a9e8:"4758",fbaf179c:"4760",b493ea72:"4781","9404f843":"4811","63b46e50":"4819",a6fed517:"4884",fb0e7a2f:"4893","1334883d":"4895",fe2b2ad8:"4907","00dfabf5":"4956","63511f3c":"5044",d82a1228:"5050","8a3716b4":"5059","7c4a7780":"5074","99d3d5ac":"5150","2608b85a":"5156","805ec11d":"5164","87cefd36":"5240",d9d4e1f1:"5300",cddec16f:"5316",a1f57275:"5325",aeb57253:"5447","55dfe132":"5487","51fa4cf1":"5501",daddf69a:"5548",f5b06269:"5565",ee98c124:"5590",e5c4b825:"5658",a1216fa4:"5662","2e008a3a":"5694","500e67e3":"5724","6a40fd04":"5736","23a0eab7":"5773","6e64f266":"5781","01fcf7cb":"5789","77f7e459":"5805","89db6d1d":"5855",c89c7974:"5865",e70842e4:"5912",ba57e113:"5948","9147d3af":"5954",f8aea940:"5961",a7456010:"5980",ab6782ba:"6003","007d2baa":"6021","0bfa7fcc":"6071","3af271b3":"6072",ccc49370:"6103","36bc9c65":"6135","3ac72a53":"6152",e07621e3:"6182","0748c3bc":"6241",c9cac9d9:"6325",cc0b9cf0:"6364","9b1663d8":"6497","7489ed02":"6515",f2a7e769:"6522",f94e70f3:"6609","2296bbef":"6623","4a6974fe":"6634","3b659bf0":"6635",c15d9823:"6642","077db3c5":"6807","013bccfd":"6835","886fdd87":"6927","524a34e7":"6953","0766ce7b":"6987","7ef69c2b":"7020","5db30e8c":"7044","51e7bf36":"7146","4534f50b":"7253",d5823966:"7262","5c99339f":"7283",acecf23e:"7393",d527dda4:"7416","193fe191":"7459",d6138fd2:"7471","9d86e7fa":"7508","71f72e4c":"7523","99f2b7e6":"7546","2024b8b1":"7596",a1072f2a:"7650",f6f174b1:"7764","6ff2a8aa":"7773","9748c478":"7807","4a631206":"7937","03919031":"7951","8852925a":"7964","9d5a95a9":"8023","3fc2248c":"8038",b4068411:"8042","591d17b8":"8218",c332f8df:"8258",e935068c:"8307","5a8f8fa9":"8346",c8fbe42c:"8364",bc0aa6af:"8404","8f8e2e78":"8407","7486ddfc":"8437","9e75d8bf":"8444","8ff99662":"8489","14b6aafb":"8495","5e5c84c3":"8516",a7bd4aaa:"8518","2a693baa":"8521",b2ade0e8:"8563","4ff7c2f7":"8565","6875c492":"8610","8ea09047":"8644","9fafd272":"8666",bcc2422e:"8704","10d38074":"8823","573c7c88":"8846","009c376a":"8847",df8deb2d:"8860","5bbd8cf3":"8912","5baa483a":"9006","751a244a":"9041","73ad9a8e":"9096","113d89da":"9099","4d393b3e":"9155","46e7f252":"9190","36994c47":"9208",cd781ce1:"9230","979ccdb6":"9264","7424d9c3":"9268",a3fd4b44:"9303","0c6a4732":"9338","77a8abe0":"9348","9d9f8394":"9360","3a2db09e":"9361",ec46a009:"9362","063ffaec":"9399","1dd5d307":"9418",eda4f68b:"9424",e9e1de17:"9473",d9341347:"9490",ff51e3f1:"9498","0a27b0d0":"9518","9019cc36":"9565","24c2f136":"9584","5e95c892":"9661","0e384e19":"9671",c8472403:"9710",e0a15777:"9737",b8ecf3c5:"9847",e7aa45d5:"9886","4efd7f8f":"9950"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>c=e[a]=[f,d]));f.push(c[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var d=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,d,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},f=self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.de9cbb2a.js b/assets/js/runtime~main.de9cbb2a.js new file mode 100644 index 000000000..b329c5c8f --- /dev/null +++ b/assets/js/runtime~main.de9cbb2a.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,c,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return b[e].call(f.exports,f,f.exports,r),f.exports}r.m=b,e=[],r.O=(a,f,c,d)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],d=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,c,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({9:"db0b0363",11:"a3fd4b44",14:"36bc9c65",135:"7576ca6a",179:"8c4108df",295:"6535206c",315:"00fcf151",384:"915cb6f7",482:"c332f8df",488:"dc8e8e39",494:"fb0e7a2f",625:"534e7ef5",671:"bdf26d57",753:"04a3aba4",791:"66e9ef90",811:"5a2f6c5d",843:"19e4f252",849:"0058b4c6",885:"aeb57253",894:"5bbd8cf3",902:"6e64f266",925:"89db6d1d",933:"e5c4b825",1028:"077db3c5",1122:"009c376a",1142:"8f8e2e78",1172:"8b8fd5aa",1182:"e46b1034",1199:"0bfa7fcc",1200:"f2a7e769",1219:"fe2b2ad8",1235:"a7456010",1267:"5ac1a9ec",1312:"bcc2422e",1334:"51e7bf36",1340:"113d89da",1377:"cd781ce1",1387:"b1d7f5b9",1415:"0c6a4732",1474:"6ff2a8aa",1504:"d53cd084",1584:"82c81335",1718:"24c2f136",1764:"ee98c124",1767:"5db30e8c",1784:"f4d4319b",1822:"dd9b1d9d",1837:"e7aa45d5",1840:"9147d3af",1903:"acecf23e",1922:"f6f174b1",2079:"00dfabf5",2082:"979ccdb6",2124:"71f025ea",2206:"4534f50b",2220:"e07621e3",2230:"0bd541ed",2246:"e6a59d41",2251:"defc3e62",2256:"daddf69a",2275:"cddec16f",2278:"0d3164f5",2298:"435302bb",2333:"a1f57275",2386:"193fe191",2419:"cc616304",2634:"c4f5d8e4",2641:"f5b06269",2652:"a67f6c3e",2671:"63511f3c",2680:"d9341347",2690:"3f99d67c",2691:"2608b85a",2711:"9e4087bc",2762:"3fc2248c",2858:"1630eae8",2873:"92440753",2888:"5baa483a",2932:"c8472403",3088:"d5823966",3134:"80404bfe",3154:"8795eea9",3158:"18d9fd7d",3163:"8e064018",3249:"ccc49370",3290:"14b6aafb",3294:"5c99339f",3314:"55dfe132",3328:"63b46e50",3354:"8577c450",3360:"500e67e3",3362:"0ad562e6",3388:"3b659bf0",3468:"b28c3188",3470:"3fc3119e",3503:"8a3716b4",3506:"c9d2adb2",3537:"0a27b0d0",3555:"61be0f73",3580:"4f991444",3629:"73ad9a8e",3716:"80292675",3867:"d82a1228",3903:"573c7c88",3911:"9748c478",3936:"fee02ac9",3973:"77f7e459",3976:"0e384e19",4028:"591d17b8",4034:"fb0a08ce",4070:"ff51e3f1",4129:"9d86e7fa",4146:"ab6782ba",4160:"e0a15777",4212:"621db11d",4308:"4e01c0f4",4309:"99f2b7e6",4365:"a1072f2a",4404:"77a8abe0",4440:"d527dda4",4469:"065dfc11",4581:"1ff343c8",4605:"cc0b9cf0",4674:"3ac72a53",4769:"2e008a3a",4813:"6875c492",4918:"c9cac9d9",4939:"5fa82f91",4974:"805ec11d",4983:"5a8f8fa9",5033:"1dd5d307",5112:"007d2baa",5124:"b493ea72",5138:"524a34e7",5173:"063ffaec",5246:"4ff7c2f7",5289:"357ebdd0",5339:"cee5390f",5450:"251cbb95",5455:"0766ce7b",5541:"b2c9ad8a",5572:"7b99d5ba",5662:"10d38074",5723:"0748c3bc",5735:"8ba18f4f",5742:"aba21aa0",5749:"f81c1134",5759:"3f6275a8",5774:"bb12dd4d",5810:"2a693baa",5849:"9404f843",5872:"e935068c",5877:"4efd7f8f",6013:"9046e000",6030:"3af271b3",6039:"1334883d",6051:"5e5c84c3",6053:"7486ddfc",6071:"f58fbef8",6142:"8167ef7e",6175:"4a6974fe",6188:"4a631206",6216:"b2ade0e8",6231:"e3409e91",6260:"c7bbcbc7",6328:"e0da75fc",6355:"8ff99662",6395:"5046667d",6410:"7c4a7780",6467:"20661643",6484:"47aca6da",6490:"fbaf179c",6557:"f8aea940",6569:"9e75d8bf",6590:"6a40fd04",6659:"d5dcebd7",6755:"7ef69c2b",6929:"e9e0f988",7e3:"2aa0a660",7098:"a7bd4aaa",7125:"e0c5798e",7145:"013bccfd",7268:"a7d982d4",7400:"7558b7a2",7457:"7864c493",7472:"814f3328",7505:"eda4f68b",7508:"b8ecf3c5",7530:"7a0110f5",7554:"26ca8ce1",7601:"87cefd36",7614:"23a0eab7",7619:"2296bbef",7624:"4d393b3e",7643:"a6aa9e1f",7652:"2f44e9f7",7672:"a6fed517",7703:"7424d9c3",7706:"264f4708",7722:"e9e1de17",7766:"ba57e113",7782:"9d5a95a9",7831:"f677311a",7881:"b4068411",7903:"5b1700d1",7933:"e4878929",8001:"4fb3dfba",8022:"daf02673",8033:"b7026fb3",8069:"9b95b357",8095:"9019cc36",8104:"e78c2f6e",8106:"71f72e4c",8121:"3a2db09e",8130:"416eca3f",8146:"c15d9823",8160:"41e301a0",8190:"dcb9a9e8",8209:"01a85c17",8341:"7754063d",8354:"7489ed02",8401:"17896441",8446:"9b1663d8",8457:"a1216fa4",8530:"df8deb2d",8532:"1e0a1681",8611:"8a3c85db",8733:"438c7fa2",8787:"f525eb8a",8790:"c71ef62c",8793:"8852925a",8896:"886fdd87",8947:"ef8b811a",8966:"e98ed1e4",8983:"ec46a009",8987:"d9d4e1f1",9013:"9d9f8394",9030:"0b705c82",9048:"a94703ab",9155:"bc0aa6af",9161:"03919031",9218:"ca2d5c98",9267:"c89c7974",9272:"cd59c184",9316:"3bdf5af6",9329:"d6138fd2",9378:"ba3af7ad",9385:"8ea09047",9470:"18747338",9482:"9fafd272",9484:"c9618c72",9508:"e623129a",9514:"751a244a",9552:"92fb1dcd",9589:"f94e70f3",9636:"6bbbce94",9647:"5e95c892",9724:"46e7f252",9734:"51fa4cf1",9738:"2024b8b1",9748:"c8fbe42c",9751:"678c8d60",9809:"01fcf7cb",9830:"e70842e4",9858:"36994c47",9921:"fcad5cc1",9931:"99d3d5ac",9951:"204759e4"}[e]||e)+"."+{9:"fc6187f6",11:"6d8f20c3",14:"d921631e",135:"f5ca8cb5",179:"fa37aed9",295:"1433f29b",315:"6bd3021f",349:"a3c56dc1",384:"036aa9bc",482:"2e78d6b5",488:"1af3101c",494:"daf52fca",625:"db693c3f",671:"e3d3fb7f",753:"8bc321d3",791:"86179459",811:"19e85d5c",843:"f343ae7c",849:"26316bf2",885:"4e489080",894:"326f16e2",902:"fc6f6795",925:"21ff8d69",933:"b941335b",1028:"2de3d644",1122:"19eca2ed",1142:"6fe8f6f5",1172:"9d70c1ec",1182:"f34d4248",1199:"74ed2bb5",1200:"6ad9c320",1219:"0b6462ba",1235:"543d0101",1267:"d03e158b",1312:"ec947659",1334:"d03c240c",1340:"be8b3509",1377:"48e7f549",1387:"cbac1d1d",1415:"cf16bcab",1474:"92814a6d",1504:"a3a38eaf",1584:"40492f4a",1718:"dd4476d3",1764:"5fdca12f",1767:"a6543c4e",1784:"ebd7de7e",1822:"cac59609",1837:"8a002343",1840:"b382849a",1903:"dbb40a62",1922:"bc13e34e",2079:"0fa9877a",2082:"7ccff8b7",2124:"2ce78be7",2206:"2f84efd3",2220:"a0c440aa",2230:"714aef32",2246:"e5450944",2251:"d5c0ecdf",2256:"0725d0c4",2275:"5cd77676",2278:"a346424b",2298:"82bb51e9",2333:"aa4d0682",2386:"daccda58",2419:"25ec3595",2634:"abd3f65c",2641:"d4cd8ef2",2652:"0e7afd75",2671:"2be0e358",2680:"9c7e846f",2690:"64e39663",2691:"c3deeac8",2711:"ef008bbb",2731:"31e92827",2762:"d502764a",2858:"fbfdbf06",2873:"ce494dc0",2888:"b9cf08d1",2932:"5b89e67c",3088:"67f766a6",3134:"f9fc8cc9",3154:"c6609c81",3158:"c7460380",3163:"c581259a",3249:"55a36fca",3290:"4ad56301",3294:"4f5f69cd",3314:"08acfa72",3328:"78dbdbbc",3354:"e96dcaf1",3360:"d592f3bc",3362:"54f6d3f4",3388:"00d57664",3468:"709befc6",3470:"8a78f462",3503:"ac7a2898",3506:"72742313",3537:"6794e881",3555:"a65020c4",3580:"97a7f6f8",3629:"49a59d01",3716:"8e7294e1",3867:"6c869c2d",3903:"fc7a17f4",3911:"099aef4c",3936:"b9067084",3973:"a37cfdfd",3976:"b3de6757",3990:"46ee42c5",4028:"5d3d00ed",4034:"09e72734",4070:"befcea40",4129:"ceef2bf7",4146:"54fe4fe4",4160:"8c230e7e",4212:"b88f6c61",4308:"c0e367b2",4309:"a77edf89",4365:"635f4127",4404:"b52c3a5b",4440:"cac907b5",4469:"92b139c0",4581:"19476862",4605:"cede556c",4674:"0fb90efc",4769:"01f00524",4813:"3fc46bbb",4918:"91b6f91c",4939:"b7e4a4f5",4974:"f0716136",4983:"8116c622",5033:"fa27440f",5112:"c943cc30",5124:"b58685f3",5138:"b7fed62d",5173:"92bf17ab",5246:"030787b7",5289:"ceb90ae4",5339:"9f718f82",5450:"623450e2",5455:"d16dcd6d",5541:"a9d785bd",5572:"ca363ec4",5662:"af3ca555",5723:"089fb55d",5735:"52640931",5742:"ce524908",5749:"a226cf0e",5759:"2e6192a8",5774:"1d4186d6",5810:"90a01aac",5849:"436aab42",5872:"50671768",5877:"c9c8f059",6013:"208ab4b5",6030:"4197fc24",6039:"b4836a24",6051:"0d9ccf83",6053:"f88d6585",6071:"3001aa86",6142:"c203e135",6175:"1af309d2",6188:"7cbbf92f",6216:"d7e9a1d9",6231:"e86d8c6e",6260:"063da928",6328:"c716281e",6355:"2ec05f81",6395:"9c2b079b",6410:"44b4fffc",6467:"0efb8215",6484:"d3e3ecf1",6490:"d5cbd389",6557:"5099beb6",6569:"76ee71a4",6590:"e691f641",6659:"b19bddcc",6755:"a4f60197",6929:"b6a8b434",7e3:"6fec8829",7098:"4ca513a1",7125:"3f7cd1d9",7145:"81dd0c01",7268:"7f0435a0",7400:"a9d5ae10",7457:"9ddb930d",7472:"858950a4",7505:"04e17820",7508:"1414f1c5",7530:"45ceabe8",7554:"08878b32",7601:"101b8e9b",7614:"711149d8",7619:"ab933e92",7624:"1c91c1a9",7643:"eb8f82b5",7652:"2421b80a",7672:"54a1ad12",7703:"01ede77c",7706:"23a7ca34",7722:"538584e4",7766:"a3d24f2c",7782:"102a19d8",7831:"83dee0e6",7881:"9f392b92",7903:"2b0c805a",7933:"194117b7",8001:"77e500a8",8022:"4057a387",8033:"5b81eaa4",8069:"ed73422d",8095:"cbcaeb75",8104:"cc516231",8106:"32e2dadb",8121:"584411b2",8130:"ae1b220f",8146:"cf1dab78",8160:"a8fa4f4a",8190:"91cdfa5f",8209:"ee1c5da9",8341:"4e7b3133",8354:"f3248100",8401:"79e68f9b",8446:"7486e176",8457:"53700068",8530:"e9f844a5",8532:"21a284c7",8611:"e7acb88a",8733:"0f3b2c38",8787:"27030d53",8790:"6837e458",8793:"5e6069f4",8896:"fb2bf073",8947:"129793ec",8966:"be4c2b71",8983:"1391d8ed",8987:"1cec48e6",9013:"fa0ce498",9030:"2a66ee95",9048:"fff35d7b",9155:"5ae8d76b",9161:"b2df7caa",9218:"f6c7881c",9267:"dc12986b",9272:"1f43baeb",9316:"b8c2d0a1",9329:"62ca3aaa",9378:"1e4788ab",9385:"3c33b70a",9470:"e9eb7cf4",9482:"52f35ff2",9484:"0b818960",9508:"13650692",9514:"7c13fc97",9552:"738b9044",9589:"266815c0",9636:"3031c57c",9647:"381be7a7",9724:"3103dec3",9734:"47fdc58f",9738:"072f6af2",9748:"17edd14e",9751:"b80b1c72",9809:"3ef8e3bb",9830:"d1216a72",9858:"946f3118",9921:"09b6310f",9931:"700a7a58",9951:"e4852d75"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},d="gamevault-docs:",r.l=(e,a,f,b)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+f),t.src=e),c[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",18747338:"9470",20661643:"6467",80292675:"3716",92440753:"2873",db0b0363:"9",a3fd4b44:"11","36bc9c65":"14","7576ca6a":"135","8c4108df":"179","6535206c":"295","00fcf151":"315","915cb6f7":"384",c332f8df:"482",dc8e8e39:"488",fb0e7a2f:"494","534e7ef5":"625",bdf26d57:"671","04a3aba4":"753","66e9ef90":"791","5a2f6c5d":"811","19e4f252":"843","0058b4c6":"849",aeb57253:"885","5bbd8cf3":"894","6e64f266":"902","89db6d1d":"925",e5c4b825:"933","077db3c5":"1028","009c376a":"1122","8f8e2e78":"1142","8b8fd5aa":"1172",e46b1034:"1182","0bfa7fcc":"1199",f2a7e769:"1200",fe2b2ad8:"1219",a7456010:"1235","5ac1a9ec":"1267",bcc2422e:"1312","51e7bf36":"1334","113d89da":"1340",cd781ce1:"1377",b1d7f5b9:"1387","0c6a4732":"1415","6ff2a8aa":"1474",d53cd084:"1504","82c81335":"1584","24c2f136":"1718",ee98c124:"1764","5db30e8c":"1767",f4d4319b:"1784",dd9b1d9d:"1822",e7aa45d5:"1837","9147d3af":"1840",acecf23e:"1903",f6f174b1:"1922","00dfabf5":"2079","979ccdb6":"2082","71f025ea":"2124","4534f50b":"2206",e07621e3:"2220","0bd541ed":"2230",e6a59d41:"2246",defc3e62:"2251",daddf69a:"2256",cddec16f:"2275","0d3164f5":"2278","435302bb":"2298",a1f57275:"2333","193fe191":"2386",cc616304:"2419",c4f5d8e4:"2634",f5b06269:"2641",a67f6c3e:"2652","63511f3c":"2671",d9341347:"2680","3f99d67c":"2690","2608b85a":"2691","9e4087bc":"2711","3fc2248c":"2762","1630eae8":"2858","5baa483a":"2888",c8472403:"2932",d5823966:"3088","80404bfe":"3134","8795eea9":"3154","18d9fd7d":"3158","8e064018":"3163",ccc49370:"3249","14b6aafb":"3290","5c99339f":"3294","55dfe132":"3314","63b46e50":"3328","8577c450":"3354","500e67e3":"3360","0ad562e6":"3362","3b659bf0":"3388",b28c3188:"3468","3fc3119e":"3470","8a3716b4":"3503",c9d2adb2:"3506","0a27b0d0":"3537","61be0f73":"3555","4f991444":"3580","73ad9a8e":"3629",d82a1228:"3867","573c7c88":"3903","9748c478":"3911",fee02ac9:"3936","77f7e459":"3973","0e384e19":"3976","591d17b8":"4028",fb0a08ce:"4034",ff51e3f1:"4070","9d86e7fa":"4129",ab6782ba:"4146",e0a15777:"4160","621db11d":"4212","4e01c0f4":"4308","99f2b7e6":"4309",a1072f2a:"4365","77a8abe0":"4404",d527dda4:"4440","065dfc11":"4469","1ff343c8":"4581",cc0b9cf0:"4605","3ac72a53":"4674","2e008a3a":"4769","6875c492":"4813",c9cac9d9:"4918","5fa82f91":"4939","805ec11d":"4974","5a8f8fa9":"4983","1dd5d307":"5033","007d2baa":"5112",b493ea72:"5124","524a34e7":"5138","063ffaec":"5173","4ff7c2f7":"5246","357ebdd0":"5289",cee5390f:"5339","251cbb95":"5450","0766ce7b":"5455",b2c9ad8a:"5541","7b99d5ba":"5572","10d38074":"5662","0748c3bc":"5723","8ba18f4f":"5735",aba21aa0:"5742",f81c1134:"5749","3f6275a8":"5759",bb12dd4d:"5774","2a693baa":"5810","9404f843":"5849",e935068c:"5872","4efd7f8f":"5877","9046e000":"6013","3af271b3":"6030","1334883d":"6039","5e5c84c3":"6051","7486ddfc":"6053",f58fbef8:"6071","8167ef7e":"6142","4a6974fe":"6175","4a631206":"6188",b2ade0e8:"6216",e3409e91:"6231",c7bbcbc7:"6260",e0da75fc:"6328","8ff99662":"6355","5046667d":"6395","7c4a7780":"6410","47aca6da":"6484",fbaf179c:"6490",f8aea940:"6557","9e75d8bf":"6569","6a40fd04":"6590",d5dcebd7:"6659","7ef69c2b":"6755",e9e0f988:"6929","2aa0a660":"7000",a7bd4aaa:"7098",e0c5798e:"7125","013bccfd":"7145",a7d982d4:"7268","7558b7a2":"7400","7864c493":"7457","814f3328":"7472",eda4f68b:"7505",b8ecf3c5:"7508","7a0110f5":"7530","26ca8ce1":"7554","87cefd36":"7601","23a0eab7":"7614","2296bbef":"7619","4d393b3e":"7624",a6aa9e1f:"7643","2f44e9f7":"7652",a6fed517:"7672","7424d9c3":"7703","264f4708":"7706",e9e1de17:"7722",ba57e113:"7766","9d5a95a9":"7782",f677311a:"7831",b4068411:"7881","5b1700d1":"7903",e4878929:"7933","4fb3dfba":"8001",daf02673:"8022",b7026fb3:"8033","9b95b357":"8069","9019cc36":"8095",e78c2f6e:"8104","71f72e4c":"8106","3a2db09e":"8121","416eca3f":"8130",c15d9823:"8146","41e301a0":"8160",dcb9a9e8:"8190","01a85c17":"8209","7754063d":"8341","7489ed02":"8354","9b1663d8":"8446",a1216fa4:"8457",df8deb2d:"8530","1e0a1681":"8532","8a3c85db":"8611","438c7fa2":"8733",f525eb8a:"8787",c71ef62c:"8790","8852925a":"8793","886fdd87":"8896",ef8b811a:"8947",e98ed1e4:"8966",ec46a009:"8983",d9d4e1f1:"8987","9d9f8394":"9013","0b705c82":"9030",a94703ab:"9048",bc0aa6af:"9155","03919031":"9161",ca2d5c98:"9218",c89c7974:"9267",cd59c184:"9272","3bdf5af6":"9316",d6138fd2:"9329",ba3af7ad:"9378","8ea09047":"9385","9fafd272":"9482",c9618c72:"9484",e623129a:"9508","751a244a":"9514","92fb1dcd":"9552",f94e70f3:"9589","6bbbce94":"9636","5e95c892":"9647","46e7f252":"9724","51fa4cf1":"9734","2024b8b1":"9738",c8fbe42c:"9748","678c8d60":"9751","01fcf7cb":"9809",e70842e4:"9830","36994c47":"9858",fcad5cc1:"9921","99d3d5ac":"9931","204759e4":"9951"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>c=e[a]=[f,d]));f.push(c[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var d=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,d,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},f=self.webpackChunkgamevault_docs=self.webpackChunkgamevault_docs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/blog/2023/07/01/index.html b/blog/2023/07/01/index.html index cfc3f5454..e60cf5e7b 100644 --- a/blog/2023/07/01/index.html +++ b/blog/2023/07/01/index.html @@ -2,19 +2,19 @@ <html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> <head> <meta charset="UTF-8"> -<meta name="generator" content="Docusaurus v3.5.2"> +<meta name="generator" content="Docusaurus v3.6.2"> <title data-rh="true">Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games | GameVault - - - + + + -
Skip to main content

Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey Guys,

+

Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey Guys,

Our team has been working tirelessly for the past year on creating GameVault, the source-available, self-hosted, and free alternative to traditional cloud-based game platforms like Steam, Origin, Epic Games, and GoG. We are excited to share that GameVault is now available for everyone to use, and we are delighted to disclose it to the community.

With GameVault, you can play and track games together with your friends on a shared file server, free from any restrictions that traditional game platforms may impose. We have designed it to work with DRM-free games, providing a unique solution for those who want a more flexible and open approach to gaming. Think of it like Jellyfin, but for Videogames.

GameVault offers a self-hosted approach that gives you complete control over your gaming experience. The platform enables you to browse your server's game collection, securely download games, launch and play them, and even track your playtimes and progress - regardless of whether the server is offline. Additionally, you can compare stats and play states with other users on the server.

Our server features offer automatic indexing of games on the file system into a database, enrichment of games with metadata like tags and genres using RAWG API, multi-user authentication, and configurable logging. We have also implemented health monitoring, full-text search, filters, sorting, pagination, and a fully documented API. The GameVault platform is highly configurable to suit your needs.

We are thrilled that you have found us, and we invite you to try GameVault today. We would be grateful for any contributions, feedback, bug reports, and feature requests you might have. You can also support us by donating using the links provided on our website. If you have any questions or would like to connect with other GameVault users, please join our Discord, Reddit and Lemmy communities - links to which are available in the footer.

-

We are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault.

+

We are passionate about creating a gaming experience that is more open, flexible, and enjoyable for everyone. We hope you will join us on this journey and experience the benefits of a truly source-available alternative to traditional game platforms with GameVault.

\ No newline at end of file diff --git a/blog/2023/07/08/index.html b/blog/2023/07/08/index.html index 6fac3f91b..850b62072 100644 --- a/blog/2023/07/08/index.html +++ b/blog/2023/07/08/index.html @@ -2,19 +2,19 @@ - + Choosing a New, Family-Friendly Name for this project! | GameVault - - - + + + -
Skip to main content

Choosing a New, Family-Friendly Name for this project!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hello, everyone!

+

Choosing a New, Family-Friendly Name for this project!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hello, everyone!

We have an important announcement to share about our source-available gaming platform, project. We have listened to your feedback and concerns, and now we need your help in choosing a new, family-friendly name that better reflects our platform's values. To make this decision-making process more convenient, we have created a poll with 100 potential names, suggested by you on our Discord, some of which were generated by AI. Your participation in shaping the future of our platform is greatly appreciated.

We kindly request your support in selecting a new name for our gaming platform. The poll offers a variety of names, and we ask that you choose at least 10 names (10%) that appeal to you. By gathering diverse input and minimizing bias, we aim to create an inclusive and enjoyable experience for all users. We apologize if the current name has caused any discomfort, and we are committed to creating a welcoming environment for gamers.

To cast your votes and contribute to the selection of a new, family-friendly name for our source-available gaming platform, please click on the link provided at the end of this post. Your voice matters, and together, we can find a name that truly represents our app's essence. The results will be announced on this blog around July 15, 2023.

We sincerely appreciate your support and encourage you to stay tuned for updates as we continue to improve our platform based on your valuable feedback.

Link to the poll: https://forms.gle/cYsURG6BqMXcxE3B8

-

Happy voting!

+

Happy voting!

\ No newline at end of file diff --git a/blog/2023/07/09/index.html b/blog/2023/07/09/index.html index 28959e839..54f0f79c6 100644 --- a/blog/2023/07/09/index.html +++ b/blog/2023/07/09/index.html @@ -2,20 +2,20 @@ - + Battling Harassment and Trolls in Our App Community | GameVault - - - + + + -
Skip to main content

Battling Harassment and Trolls in Our App Community

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey folks,

+

Battling Harassment and Trolls in Our App Community

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey folks,

We have an important update to share with you all while our poll is in progress. It has come to our attention that a group of individuals has been engaging in harassing, blackmailing, and threatening behavior towards us.

It began with spam on our Issue Trackers and Discord Server but this situation has escalated to the point where these individuals went so far as to search me up on LinkedIn and threaten to inform my employer with baseless accusations of racism because of trivial reasons like the branch name in our github project being "master". Moreover, we have received reports that these trolls have extended their actions directly to other members of this server, attempting to spread negative narratives and disrupting the community atmosphere.

To address this issue, we kindly request that you promptly report any encounters with these trolls to both Discord and our dedicated team of moderators. By doing so, we can take appropriate measures to handle the situation and maintain a safe environment for all.

We would like to emphasize that we are not racist individuals, but rather developers who decided to share our hard work with the community, hoping to bring joy and utility to everyone. Unfortunately, we did not anticipate encountering such creepy behavior when we made the project public. It has made us question whether it was the right decision to open up our work in the first place.

If you appreciate our efforts and would like to support us and the app, we humbly ask for your financial assistance. Even a small contribution of five bucks on Kofi would go a long way in helping us maintain our motivation and dedication. Alternatively, if monetary support isn't possible, we would be incredibly grateful if you could share kind words about how the GameVault app has positively impacted your life in the #chat channel. Your encouragement means the world to us. 🥰

In addition, we encourage you to continue reporting any bugs you encounter and submitting feature requests in the respective GitHub trackers. With your valuable input, we can continue improving the app and making it even better.

-

Remember, the success of this project relies on your support and engagement. Let's stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding.

+

Remember, the success of this project relies on your support and engagement. Let's stand together against these trolls and ensure a positive and inclusive community experience. Thank you for your attention and understanding.

\ No newline at end of file diff --git a/blog/2023/07/13/index.html b/blog/2023/07/13/index.html index ca1326c23..0261022fc 100644 --- a/blog/2023/07/13/index.html +++ b/blog/2023/07/13/index.html @@ -2,14 +2,14 @@ - + A Closer Look at GameVaults 'Source-Available' Nature | GameVault - - - + + + -
Skip to main content

A Closer Look at GameVaults 'Source-Available' Nature

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

+

A Closer Look at GameVaults 'Source-Available' Nature

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

today i want to clarify why GameVault isn't considered "open-source" by definition.

You see, GameVault is what we like to call "source-available" software. This means that our code is open for you to explore and modify, but it doesn't fully meet all the criteria of being considered open-source. I want to take a moment to explain what open-source truly means and why we've taken a slightly different approach.

According to the widely recognized definitions, "open-source" software, as one would think, not only provides access to the source code but also offers certain freedoms to its users. It allows them to use, modify, and distribute the software freely, even for commercial purposes.

@@ -18,6 +18,6 @@

It's important to acknowledge that maintaining and developing a software project requires resources. While we admire the open-source community and its valuable contributions, sustaining GameVault solely through donations or offering it for free indefinitely is not feasible. For instance, Jellyfin, a popular open-source app developed over a decade, generates only around $13,500 per year (according to their opencollective page). In contrast, Plex, a closed-source alternative, earns a significant $8.5 million annually. Our company's main goal is to keep the core functionality of GameVault free, but we also need to explore ways to generate revenue in order to support its future growth and improvement. We are currently considering monetizing additional convenience features for the Client Application in the future, although nothing has been finalized yet.

We genuinely appreciate your understanding. As a small business with just two members, we strive to provide you with a valuable product but cannot continue to do so as volunteers indefinitely. Sustaining losses in the long term would not be sustainable, especially considering our local tax obligations. We have families and commitments that cannot be neglected, and this project is not our primary job. Therefore, please understand that GameVault may not strictly align with the traditional definition of "open-source," and we no longer characterize it as such. Our intention is to be transparent and present our perspective. Your understanding, support, and empathy mean a great deal to us.

If you have any thoughts or comments on this topic, we'd be more than happy to hear from you. Feel free to share your feedback on our Discord server. We truly value your input and look forward to engaging with you there.

-

EDIT: Updated Application Name

+

EDIT: Updated Application Name

\ No newline at end of file diff --git a/blog/2023/07/15/index.html b/blog/2023/07/15/index.html index de9352108..3fad1ff89 100644 --- a/blog/2023/07/15/index.html +++ b/blog/2023/07/15/index.html @@ -2,17 +2,17 @@ - + A New Name | GameVault - - - + + + -
Skip to main content

A New Name

· 4 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

+

A New Name

· 4 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

We are thrilled to announce that the poll for choosing a new name for our app is finally over. The process of transitioning to the new name will commence very soon, and we can't wait to share the exciting updates with you.

But first, let's dive into the poll results and shed some light on the important facts without further delay:

-

Summary

+

Summary

In total, 71 people participated in the poll, providing us with valuable data to draw conclusions from. Here's a summary of the key findings:

  • @@ -35,26 +35,26 @@

    SummaryMarket Analysis

    -

    1. GameStash

    +

    Market Analysis

    +

    1. GameStash

    Google Search Results: ~33,600
    Possible Domains: gamestash.de

    • There's already an app called GameStash that offers similar features to ours.
    -

    2. GameVault

    +

    2. GameVault

    Google Search Results: ~800,000
    Possible Domains: gamevau.lt, game-vault.de

    • The term "GameVault" is associated with a popular online casino/gambling application called GameVault999.
    -

    3. GameShelf

    +

    3. GameShelf

    Google Search Results: ~560,000
    Possible Domains: gameshelf.de

    -

    4. Harbor

    +

    4. Harbor

    Google Search Results: ~393,000,000
    Possible Domains: harborapp.de

    -

    5. GameHub

    +

    5. GameHub

    Google Search Results: ~5,690,000 Possible Domains: gamehubapp.de

    • GameHub is a popular game library manager
    • it also sounds like a popular adult site 😁
    -

    What's Next?

    +

    What's Next?

    We understand your eagerness for a new name, and we are equally committed to distancing ourselves from the old one. Taking into account all the suggested names and feedback, we engaged in extensive internal brainstorming, free from outside influences.

    We sought a name that is descriptive, intuitive, and effectively conveys the purpose of our app. Additionally, we aimed for a name that is easily memorable and emphasizes the ownership and control of a self-hosted server, security, and exclusivity.

    Introducing our new name: GameVault
    Available soon under this domain: gamevau.lt

    We have already secured the domain and registered the name wherever possible. The transition process will commence shortly. We are eager to hear your thoughts on the new name. Do you like it?

    -

    Special Thanks ❤️

    +

    Special Thanks ❤️

    Well, as you all know, this was quite a journey to get here, and we wanted to give our special thanks to:

    • @@ -102,6 +102,6 @@

      Special T

    Thank you all for your continued support!

    We will keep you updated as the transition unfolds. In the meantime, head over to our Discord channel to celebrate and share your thoughts on the new name.

    -

    Stay tuned!

+

Stay tuned!

\ No newline at end of file diff --git a/blog/2023/07/19/index.html b/blog/2023/07/19/index.html index e57e9ca0d..6784484f2 100644 --- a/blog/2023/07/19/index.html +++ b/blog/2023/07/19/index.html @@ -2,14 +2,14 @@ - + Quick Migration Update and new Logo | GameVault - - - + + + -
Skip to main content

Quick Migration Update and new Logo

· One min read
Alper Alkan
Co-Founder of Phalcode

Hey guys,

+

Quick Migration Update and new Logo

· One min read
Alper Alkan
Co-Founder of Phalcode

Hey guys,

We have a brief update on the progress of the name migration.

We've successfully completed the migration of the backend application, which is now accessible as gamevault-backend.

Furthermore, we've migrated the documentation and acquired this domain gamevau.lt. We've set up redirects for our previous domain and the demo server as well.

@@ -17,9 +17,9 @@

We're nearly finished, you might say.

The only remaining task is the Client Application. We're actively working on it and currently testing the application on our developer edition. Soon, you'll be able to seamlessly update your client with the new name and appearance.

In the meantime, our graphic designer has crafted a fresh logo for our new name, GameVault.

-

logo

+

logo

To make good use of your time while the migrations are in progress, what do you speculate the new logo represents?

Share your theories in gamevaults #chat channel on discord! We'll reveal the answer and shoutout the winner(s) in the next blog post, once the migration is finalized!

-

Until then ✌️

+

Until then ✌️

\ No newline at end of file diff --git a/blog/2023/07/20/index.html b/blog/2023/07/20/index.html index dcf738c8b..c213ca278 100644 --- a/blog/2023/07/20/index.html +++ b/blog/2023/07/20/index.html @@ -2,23 +2,23 @@ - + The Migrations are finally completed | GameVault - - - + + + -
Skip to main content

The Migrations are finally completed

· One min read
Alper Alkan
Co-Founder of Phalcode

Hey folks,

+

The Migrations are finally completed

· One min read
Alper Alkan
Co-Founder of Phalcode

Hey folks,

Great news. We've successfully migrated our App name in its entirety and will resume advertising as soon as it's published on the Microsoft Store.

Just a heads up, there might be a surge of new users joining the Discord server due to us promoting GameVault across all available platforms now.

You're welcome to join in and spread the word about GameVault with your friends, family, social network, or colleagues!

Let's decipher the mystery behind the new logo: -logo

+logo

  • The Box represents a Vault with a Keyhole, but it also symbolizes a game dice.
  • The Keyhole represents a Keyhole, and simultaneously signifies a game piece.
-

Did you find the logo concept creative? Share your thoughts on discord!

+

Did you find the logo concept creative? Share your thoughts on discord!

\ No newline at end of file diff --git a/blog/2023/07/24/index.html b/blog/2023/07/24/index.html index 366f657fc..201425c23 100644 --- a/blog/2023/07/24/index.html +++ b/blog/2023/07/24/index.html @@ -2,28 +2,28 @@ - + Celebrating 600+ Installations and announcing the upcoming big feature | GameVault - - - + + + -
Skip to main content

Celebrating 600+ Installations and announcing the upcoming big feature

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

+

Celebrating 600+ Installations and announcing the upcoming big feature

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone,

We're excited to share some great news with you all! GameVault has reached a small milestone with over 600 official installations of our GameVault Client Application. What's even more amazing is that around 200 dedicated users, a third of these installations, have joined our Discord community to connect, chat, and share their experiences.

We want to express our immense gratitude for your incredible support, feedback, and love for GameVault. Your ongoing encouragement inspires us to push boundaries and enhance your gaming experience. We're thrilled to announce that an awesome update is being worked on right now - the highly anticipated release of GameVault's Installation Pipeline!

-

GameVault's Installation Pipeline

+

GameVault's Installation Pipeline

The Installation Pipeline is designed to revolutionize how you install and manage your games. It was suggested by members on our Discord server. We understand the challenges of navigating through different installation processes, especially for family members who may not be tech-savvy. With the Installation Pipeline, our goal is to simplify the entire process and make it user-friendly. Whether you're an experienced gamer or not, this update will make installing games easier for you.

You can read the details here on the GitHub issue.

Stay tuned for its upcoming release, and to be among the first to try out this awesome feature, make sure to subscribe to the @Updates Role on our Discord server , if you haven't already. We'll ping you as soon as it's live!

-

Join us on Lemmy

+

Join us on Lemmy

To further connect with our amazing community, we're excited to announce the launch of our official Lemmy community. From now on, we'll also regularly share new blog posts there, providing you with more ways to stay informed and engaged. Join the Lemmy forum and become part of the growing GameVault community!

-

Share GameVault with Others

+

Share GameVault with Others

As we celebrate this milestone and eagerly anticipate more exciting updates, we invite you to spread the word about GameVault among your friends, family, and gaming or self-hosting communities. Your personal recommendations and referrals have played a significant role in our journey so far, and we believe they'll continue to do so in the future.

We want to express our heartfelt appreciation for the feature requests, discussions, and invaluable help on our GitHub. Your support and collaborative efforts help a lot.

-

Support Us

+

Support Us

As we move forward, we kindly ask for your continued support. GameVault's success is currently solely built upon our incredible community, and your encouragement is what fuels us. If you love our app and believe in our vision, please consider supporting us in any way you can. It could even be something simple like a rating on the Microsoft Store. Your backing empowers us to keep our hard work going.

We're eagerly looking forward to celebrating more achievements with all of you.

-

Stay tuned, stay connected, and let's continue this journey together!

+

Stay tuned, stay connected, and let's continue this journey together!

\ No newline at end of file diff --git a/blog/2023/07/29/index.html b/blog/2023/07/29/index.html index d9cc89da5..efac5f9bf 100644 --- a/blog/2023/07/29/index.html +++ b/blog/2023/07/29/index.html @@ -2,20 +2,20 @@ - + Please help us prioritize! | GameVault - - - + + + -
Skip to main content

Please help us prioritize!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hello everyone!

+

Please help us prioritize!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hello everyone!

We hope you're all doing well. We wanted to take a moment to express our heartfelt gratitude for the flood of feature requests and bug reports that have been pouring into our issue trackers. Your enthusiasm and dedication to making GameVault even better are truly inspiring to us.

As many of you may already know, GameVault is a passion project for us, and while we are mostly convinced by your fantastic ideas, it may take some time for us to implement them. Our team meetings happen in our free time, and although we genuinely want to incorporate your suggestions into our roadmap, we are limited by the time and capacity we can dedicate to the project. Moreover, we want to ensure that the features we develop are refined, polished, and also the most desired in the users' opinions, which adds to the timeline.

We believe that collaboration with our incredible community is the key to success, and that's why we want to introduce you to our Roadmap. It displays all new issues, planned tasks we want to work on, and all the ongoing work in a well-organized Kanban Board. You can find it right here.

To ensure that GameVault's development aligns better with your needs, we kindly request your active participation. By voting on GitHub with a Thumbs Up or a Thumbs Down on new and planned issues, you can help us prioritize them effectively. We value your opinion: What features do you feel are most crucial? What aspects of the platform do you find most bothersome? What issues do you see as unnecessary or bloated? Your input will mainly shape the direction we take.

If you're eager to go the extra mile and actively contribute to shaping GameVault further, we invite you to join our Discord community and becoming a "Council Member". By becoming a "Council Member" and enabling Poll Notifications under "#Channels & Roles", you will have a direct say in the future of GameVault because you will get notifications about opinion polls we run from time to time.

We cannot stress enough how much we appreciate your involvement in our endeavor to create the ultimate gaming experience for all of you. Your passion and feedback are invaluable, and we are committed to making GameVault the best it can be, together.

-

Thank you for being part of this amazing journey with us!

+

Thank you for being part of this amazing journey with us!

\ No newline at end of file diff --git a/blog/2023/11/20/index.html b/blog/2023/11/20/index.html index a9ab5d1ae..7097164f9 100644 --- a/blog/2023/11/20/index.html +++ b/blog/2023/11/20/index.html @@ -2,14 +2,14 @@ - + A Look Back and a Glimpse Forward | GameVault - - - + + + -
Skip to main content

A Look Back and a Glimpse Forward

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hello,

+

A Look Back and a Glimpse Forward

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hello,

It's been a while since we caught up here, but if you've been following the action on Discord, you're up to speed. Nevertheless, this blog remains your spot for the key updates and announements.

Let's dive into what's been happening with GameVault since release and what's on the horizon. We've hit version 9 on the backend and 1.7 on the frontend, showcasing our commitment to continuous improvement.

Alongside the usual optimizations and bug fixes, we've been paying a lot of attention to your feature requests and implemented a bunch of them.

@@ -35,14 +35,14 @@

Here are some sneak peeks and mockups: (still work in progress):

  1. Library (Mockup) -Filters -Empty States
  2. +Filters +Empty States
  3. Library (current implementation) -Library
  4. +Library
  5. Game (Mockup) -Game View
  6. +Game View
  7. Game Settings (Mockup) -Game Settings
  8. +Game Settings

Remember, these are teasers. Anything can look different once it ships. There's a lot of work left, and we're on it. To be technical here: Most of these modern controls require us to rewrite WPF Controls from the core. On the backend, we're not slacking either – tons of end-to-end tests are being written to ensure our app's reliability.

Excited about the new UI or got something to say? Head over to Discord and spill the beans!

@@ -51,6 +51,6 @@

And your donations help keeping the lights on, though we're not rolling in dough just yet. Every penny counts, and we're truly grateful. Thanks a lot. ❤️

Help us promote GameVault among fellow self-hosters. Your efforts could inspire a bored developer to join and contribute to our project!

Stay tuned for the UI update – we'll be back in touch soon.

-

Until then, happy gaming! 🎮

+

Until then, happy gaming! 🎮

\ No newline at end of file diff --git a/blog/2023/12/09/index.html b/blog/2023/12/09/index.html index 2986153af..f8ae08867 100644 --- a/blog/2023/12/09/index.html +++ b/blog/2023/12/09/index.html @@ -2,29 +2,29 @@ - + Join the GameVault Early-Access Program Now! | GameVault - - - + + + -
Skip to main content

Join the GameVault Early-Access Program Now!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey, Guys!

+

Join the GameVault Early-Access Program Now!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey, Guys!

For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want YOU to be a part of it!

-

What's the Early-Access Program?

+

What's the Early-Access Program?

Early-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You'll be part of an exclusive group and get a sneak peek into the latest features, but here's the deal – it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else.

-

How to Join

+

How to Join

📋 Complete the Application Form
📅 The first early-access phase kicks off on December 17 and lasts for one week.

-

Prerequisites

+

Prerequisites

💬 Active participation in the designated Discord channel.
🎮 GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it here.
🚀 A GameVault Server running the phalcode/gamevault-backend:early-access image. (Only run this if you are accepted as a Tester as it could break things!)

-

Important Note

+

Important Note

  • There are only a limited number of slots in the Early-Access Program. Supporters and Trusted Members are prioritized.
  • If you're accepted and later found not meeting the requirements, you might be removed from future testing and the next applicant on our list gets the opportunity.
-

Apply here!

+

Apply here!

\ No newline at end of file diff --git a/blog/2024/03/28/index.html b/blog/2024/03/28/index.html index 3a96e432d..7b35582b8 100644 --- a/blog/2024/03/28/index.html +++ b/blog/2024/03/28/index.html @@ -2,22 +2,22 @@ - + Announcing GameVault+ (coming soon) | GameVault - - - + + + -
Skip to main content

Announcing GameVault+ (coming soon)

· 4 min read
Alper Alkan
Co-Founder of Phalcode

Hey Everyone!

+

Announcing GameVault+ (coming soon)

· 4 min read
Alper Alkan
Co-Founder of Phalcode

Hey Everyone!

It feels like it's been ages since we last caught up regarding the development of GameVault (the self-hostable platform for drm-free videogames), but trust me, the silence from our end doesn't mean we've been slacking off. In fact,quite the opposite has been happening behind the scenes.

When my friend and I first launched this application, it was born out of a simple need for a solution to a problem we thought was very particular and only for ourselves. Having a steam-like platform for game files lying on my home server.

We never imagined it would resonate with others or find its own place in the market. Frankly, we thought it might end up just another forgotten repository on GitHub, gathering virtual dust with no one paying it any mind.

But boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there's quite a demand out there for the exact product we've been building.

We’re a small indie team of two and despite juggling multiple jobs, we've poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we've received some generous donations (shoutout to our two loyal monthly donors btw – you know who you are, and we're endlessly grateful!), it's clear that relying solely on sporadic tips isn't sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families.

So, it's time for a slight change. We're thrilled to announce the upcoming release of a new version of our client application, complete with an optional subscription model we're calling...

-

GameVault+

-

What is GameVault+?

+

GameVault+

+

What is GameVault+?

First, to clear some of the confusion:

No, this is not some shady scammy "We're going enterprise" rugpull. The core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is designed to be easily bypassed if you can't or dont want to afford it.

@@ -32,11 +32,11 @@

What is Ga

But there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive.

All details and a Q&A are on the GameVault+ page.

We'll be rolling out this new product today to our early access users first to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It's an exciting new chapter for us, and we can't wait to have you along for the ride.

-

So what's next?

+

So what's next?

We will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon.

After that, we will need to urgently find a solution to our heavy reliance on the degrading and unmaintained RAWG Database. We are already in contact for potential partnerships with Video-Game Databases.

Finally, we will need to do some refactoring of our client application's architecture.

But stay tuned because once all of this is done, the Next Big Feature we'll be focusing on will be open for the community to decide in our #polls channel on Discord. So make sure to join "The Council" to get notified and vote on your most desired feature.

-

Thank you all for supporting us and looking forward to seeing you all on our next updates!

+

Thank you all for supporting us and looking forward to seeing you all on our next updates!

\ No newline at end of file diff --git a/blog/2024/04/01/2024-04-01/index.html b/blog/2024/04/01/2024-04-01/index.html index 4b3b981ed..778d8a847 100644 --- a/blog/2024/04/01/2024-04-01/index.html +++ b/blog/2024/04/01/2024-04-01/index.html @@ -2,22 +2,22 @@ - + GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight! | GameVault - - - + + + -
Skip to main content

GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey Everyone!

+

GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey Everyone!

The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is now available on Windows Phone 7, powered by Microsoft Silverlight!

-

Windows Phone

+

Windows Phone

The Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC.

We understand the excitement and anticipation surrounding this release, and we're just as eager as you are to see how this integration will enhance your experience.

With GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you're battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips.

Thanks to the seamless integration with Microsoft Silverlight, navigating through your game library has never been smoother or more intuitive. The Metro Live Tiles add a touch of elegance to the user interface, making it a joy to browse through your collection and discover new games.

And the best part? This is just the beginning. Our team is already hard at work on further enhancements and features, including the highly anticipated Holodeck edition of GameVault aswell as the new integrated "Bird Feeding Timer" feature, that automatically warns you when your pets are about to starve.

We're incredibly excited to embark on this journey with you and to continue pushing the boundaries of innovation. So what are you waiting for? Head over to the Windows Phone Store and migrate today to start your gaming adventure!

-

Happy gaming... and April Fools!

+

Happy gaming... and April Fools!

\ No newline at end of file diff --git a/blog/2024/04/14/index.html b/blog/2024/04/14/index.html index f4f2e7949..efd8f4925 100644 --- a/blog/2024/04/14/index.html +++ b/blog/2024/04/14/index.html @@ -2,18 +2,18 @@ - + GameVault+ out now | GameVault - - - + + + -
Skip to main content

GameVault+ out now

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone!

+

GameVault+ out now

· 2 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone!

We're thrilled to announce that the early access phase of GameVault+ has concluded, and we're officially launching it today! It's been an incredible journey from the inception of GameVault to where we are now, and we couldn't have done it without your amazing support.

GameVault+ is our way of saying thank you to our dedicated supporters while also ensuring the sustainability of our platform. For a small monthly fee, you'll gain access to premium features designed to enhance your gaming experience within GameVault. We're starting with features like animated profile pictures, custom themes, and activation of the GameVault Client API, with more exciting additions planned for the future.

But our work doesn't stop here. We're committed to refining GameVault+ based on your feedback, as well as addressing key areas of improvement in the platform. This includes exploring partnerships with reputable video game databases to enhance our data offerings and refactoring our client application for optimal performance.

And most importantly, we want you, our community, to have a say in the future direction of GameVault. That's why we're opening up the floor for feature suggestions through our Discord channel. Your input will help shape the next big updates to GameVault.

-

Thank you all for your support and enthusiasm. We're excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!

+

Thank you all for your support and enthusiasm. We're excited to continue this journey with you and to make gaming even more enjoyable for everyone. Stay tuned for more updates, and happy gaming!

\ No newline at end of file diff --git a/blog/2024/05/07/index.html b/blog/2024/05/07/index.html index 822756581..e3c09b9c3 100644 --- a/blog/2024/05/07/index.html +++ b/blog/2024/05/07/index.html @@ -2,27 +2,27 @@ - + Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features! | GameVault - - - + + + -
Skip to main content

Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone!

+

Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hey everyone!

In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, rawg.io. Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. The situation peaked on May 5th when the service went down completely for a day.

-

GameVault's new metadata provider strategy

+

GameVault's new metadata provider strategy

To address these issues, we're making significant changes to GameVault's metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider.

We're also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB's APIs out of the box.

More details on our plans can be found in this GitHub ticket. We also plan to continue supporting the use of your own API keys and other vendors.

However, as decided in our recent poll, we will be removing all support for RAWG.

-

Temporary solution: Implementing a RAWG replacement

+

Temporary solution: Implementing a RAWG replacement

However, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we're away? To address this concern, Toylerrr, one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the RAWG_API_URL environmental variable.

We loved the idea and built on it. Introducing rawg-to-steam-redirect.

The link above explains how it works and how you can use it today.

What we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API.

While https://api.rawg.io/api will remain the default RAWG_API_URL for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0.

-

Exciting new features

+

Exciting new features

In addition to these changes, we're excited to introduce you to some new features that were recently released:

  • 🔖 Bookmarking Video Games: You can now bookmark your favorite games within GameVault.
  • @@ -30,9 +30,9 @@

    Exciti
  • 🔒 Encrypted Archives: GameVault now supports password protected archives.

We hope these updates will make your experience with GameVault even better as we move through this transition period.

-

Supporting GameVault

+

Supporting GameVault

Finally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can't find the GameVault+ easter egg though... 😉

With love,

-

Phalcode

+

Phalcode

\ No newline at end of file diff --git a/blog/2024/10/20/index.html b/blog/2024/10/20/index.html index cc5f85753..ea7a07b96 100644 --- a/blog/2024/10/20/index.html +++ b/blog/2024/10/20/index.html @@ -2,20 +2,20 @@ - + An update so major, we could have built the product from scratch. | GameVault - - - + + + -
Skip to main content

An update so major, we could have built the product from scratch.

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hello, GameVault Community!

+

An update so major, we could have built the product from scratch.

· 3 min read
Alper Alkan
Co-Founder of Phalcode

Hello, GameVault Community!

After six months of hard work, we’re beyond excited to unveil our biggest update yet: GameVault Client v1.12 and GameVault Server v13! This release is so massive, it feels like we could’ve built the product from scratch—there’s that much new ground covered.

-

What’s New?

+

What’s New?

We’ve introduced some game-changing improvements. First and foremost, we’ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we’ve built something much better: a brand-new plugin system on the backend, complete with an official partnership with IGDB/Twitch.

The new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata—if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom.

We’ve been rigorously testing this system for 2–3 months, running an early access phase for about a month. While we’ve optimized it as much as possible, we ask for your patience if any bugs pop up—mastillke sure to back up before migrating!

-

Major New Features

+

Major New Features

Here’s a quick rundown of some other incredible additions in this update:

  • Parental Controls & Age Restrictions: Now, families can manage access based on age-appropriate content, giving more control over what’s playable and viewable for children.
  • @@ -25,15 +25,15 @@

    Major New
  • Convenience Features: We’ve added default arguments and launch/install executables to streamline app functionality.
  • Markdown Support: Both Notes and Server News now support markdown, making formatting a breeze and improving readability.
-

Critical Update Info

+

Critical Update Info

Before updating, please ensure compatibility between clients and servers:

  • Client v1.12 is required for servers running v13 or above.
  • Older clients (before v1.12) won’t work with server running on Version 13 or above.

For a smooth update and a guide on how to use all these new features, check out the detailed migration instructions in the server changelogs. As always, if you hit any snags, feel free to reach out to us on Discord.

-

Support Us

+

Support Us

If you’d like to support our development and help us keep most of GameVault’s features free, consider subscribing to GameVault+ or making a one-time donation. Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all.

-

Thank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we've added.

+

Thank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we've added.

\ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html index 139371c8d..8bb459fcf 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -2,13 +2,13 @@ - + Archive | GameVault - - - + + + - + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml index b70c37f74..2e0aa7c26 100644 --- a/blog/atom.xml +++ b/blog/atom.xml @@ -15,11 +15,11 @@ Hello, GameVault Community!

After six months of hard work, we’re beyond excited to unveil our biggest update yet: GameVault Client v1.12 and GameVault Server v13! This release is so massive, it feels like we could’ve built the product from scratch—there’s that much new ground covered.

-

What’s New?

+

What’s New?

We’ve introduced some game-changing improvements. First and foremost, we’ve moved away from unreliable third-party tools like RAWG and Google Image Scrapers for fetching video game metadata. Instead of just swapping one provider for another and making us dependant again, we’ve built something much better: a brand-new plugin system on the backend, complete with an official partnership with IGDB/Twitch.

The new plugin framework is incredibly flexible, allowing users to write their own metadata provider plugins. It supports an unlimited number of providers, prioritizes data effectively, and even fills in any gaps intelligently. And the cherry on top? Users now have full control over metadata—if you want to tweak or edit a piece of info, you can do so without changing the source data. Your custom edits are saved separately, giving you full freedom.

We’ve been rigorously testing this system for 2–3 months, running an early access phase for about a month. While we’ve optimized it as much as possible, we ask for your patience if any bugs pop up—mastillke sure to back up before migrating!

-

Major New Features

+

Major New Features

Here’s a quick rundown of some other incredible additions in this update:

  • Parental Controls & Age Restrictions: Now, families can manage access based on age-appropriate content, giving more control over what’s playable and viewable for children.
  • @@ -29,14 +29,14 @@
  • Convenience Features: We’ve added default arguments and launch/install executables to streamline app functionality.
  • Markdown Support: Both Notes and Server News now support markdown, making formatting a breeze and improving readability.
-

Critical Update Info

+

Critical Update Info

Before updating, please ensure compatibility between clients and servers:

  • Client v1.12 is required for servers running v13 or above.
  • Older clients (before v1.12) won’t work with server running on Version 13 or above.

For a smooth update and a guide on how to use all these new features, check out the detailed migration instructions in the server changelogs. As always, if you hit any snags, feel free to reach out to us on Discord.

-

Support Us

+

Support Us

If you’d like to support our development and help us keep most of GameVault’s features free, consider subscribing to GameVault+ or making a one-time donation. Although GameVault+ at the time only offers a limited set premium features, your support helps us continue making the app accessible to all.

Thank you all for supporting and using our passion project! We hope you enjoy the latest features and enhancements we've added.

]]>
@@ -64,18 +64,18 @@ Hey everyone!

In our last post we mentioned the challenges we've been facing with the videogame metadata database we've been using, rawg.io. Unfortunately, it's become an unmaintained abandonware, causing frequent downtime and issues like incorrect search results and registration problems. The situation peaked on May 5th when the service went down completely for a day.

-

GameVault's new metadata provider strategy

+

GameVault's new metadata provider strategy

To address these issues, we're making significant changes to GameVault's metadata system. Our goal is to make GameVault metadata provider agnostic, allowing users to seamlessly plug in their preferred metadata provider.

We're also excited to announce our official partnership with IGDB (twitch.tv), a trusted video game database. Going forward, GameVault will primarily use IGDB's APIs out of the box.

More details on our plans can be found in this GitHub ticket. We also plan to continue supporting the use of your own API keys and other vendors.

However, as decided in our recent poll, we will be removing all support for RAWG.

-

Temporary solution: Implementing a RAWG replacement

+

Temporary solution: Implementing a RAWG replacement

However, implementing these changes will take time, and we are both currently busy with work commitments and travel plans. So what happens if RAWG suddenly stops working while we're away? To address this concern, Toylerrr, one of our most valuable community members, had a great idea. He began developing a solution that would be a drop-in replacement for RAWG. An application that mimicked the behavior of RAWG, but fetched data from Steam instead. All you have to do is replace the url in the RAWG_API_URL environmental variable.

We loved the idea and built on it. Introducing rawg-to-steam-redirect.

The link above explains how it works and how you can use it today.

What we liked most about it is that it required minimal backend changes to integrate. We have already tested this solution on our 667 games server and it works great. The quality of box art for example is much better. One drawback is that Steam does not have a lot of tags in its API.

While https://api.rawg.io/api will remain the default RAWG_API_URL for now, you can switch between RAWG and the new solution at any time. Just make sure your GameVault backend is updated to at least v12.1.0.

-

Exciting new features

+

Exciting new features

In addition to these changes, we're excited to introduce you to some new features that were recently released:

  • 🔖 Bookmarking Video Games: You can now bookmark your favorite games within GameVault.
  • @@ -83,7 +83,7 @@
  • 🔒 Encrypted Archives: GameVault now supports password protected archives.

We hope these updates will make your experience with GameVault even better as we move through this transition period.

-

Supporting GameVault

+

Supporting GameVault

Finally, we want to thank all of you for making all of this possible. If you have not already done so, please consider upgrading to GameVault+ to flex with animated profile pictures on your server. We would really appreciate it. Bet you can't find the GameVault+ easter egg though... 😉

With love,

Phalcode

]]>
@@ -155,7 +155,7 @@ Hey Everyone!

The moment you've been waiting for is finally here. We've been working hard on it for months and are thrilled to announce that GameVault Client Application is now available on Windows Phone 7, powered by Microsoft Silverlight!

-

Windows Phone

+

Windows Phone

The Current PC-Version of GameVault will be discontinued soon and will no longer be available to download from the Microsoft Store, as the technology is too new and not well supported yet. We needed a battle-tested framework to ensure compatibility, so we decided to switch to Windows Phone 7 and Silverlight. Also, the mobile platform just has massive market share, compared to PC.

We understand the excitement and anticipation surrounding this release, and we're just as eager as you are to see how this integration will enhance your experience.

With GameVault on your Windows Phone 7 device, you can carry your favorite games with you wherever you go. Whether you're battling fierce foes, exploring vast virtual worlds, or simply passing the time with a quick puzzle game, GameVault ensures that the thrill of gaming is always at your fingertips.

@@ -182,8 +182,8 @@

But boy, were we wrong. The response to our app was unexpectedly large and overwhelming. Thousands of people are using GameVault today, and it seems there's quite a demand out there for the exact product we've been building.

We’re a small indie team of two and despite juggling multiple jobs, we've poured our hearts and souls into this project during our spare times, striving to offer a self-hosted alternative to the gaming platforms out there. And while we've received some generous donations (shoutout to our two loyal monthly donors btw – you know who you are, and we're endlessly grateful!), it's clear that relying solely on sporadic tips isn't sustainable for the long term and we need financial support to maintain our services and justify our time investment towards our families.

So, it's time for a slight change. We're thrilled to announce the upcoming release of a new version of our client application, complete with an optional subscription model we're calling...

-

GameVault+

-

What is GameVault+?

+

GameVault+

+

What is GameVault+?

First, to clear some of the confusion:

No, this is not some shady scammy "We're going enterprise" rugpull. The core of GameVaults upcoming features and the features you enjoyed until now will always remain free. Additionally the system is designed to be easily bypassed if you can't or dont want to afford it.

@@ -198,7 +198,7 @@ The core of GameVaults upcoming features and the features you enjoyed until now

But there are more to come! We will be enhancing this offering with more features, whenever we see room for it, as GameVault+ subscribers are the ones, who keep this project alive.

All details and a Q&A are on the GameVault+ page.

We'll be rolling out this new product today to our early access users first to get the product and the infrastructure around it tested, tweaking and refining it based on your feedback before making it available to everyone. It's an exciting new chapter for us, and we can't wait to have you along for the ride.

-

So what's next?

+

So what's next?

We will polish the rough edges of GameVault+ and bring it to life in the next few weeks, hopefully. You will probably already see some documentation on this website for it. Keep in mind, this is all a work in progress, and we will announce the final release soon.

After that, we will need to urgently find a solution to our heavy reliance on the degrading and unmaintained RAWG Database. We are already in contact for potential partnerships with Video-Game Databases.

Finally, we will need to do some refactoring of our client application's architecture.

@@ -225,16 +225,16 @@ The core of GameVaults upcoming features and the features you enjoyed until now Hey, Guys!

For the upcoming large UI update of GameVault, we're launching a brand new GameVault Early-Access Program, and we want YOU to be a part of it!

-

What's the Early-Access Program?

+

What's the Early-Access Program?

Early-Access is your golden ticket to test-drive upcoming GameVault updates before anyone else. You'll be part of an exclusive group and get a sneak peek into the latest features, but here's the deal – it might not be as stable as our regular releases and you need to interact with us. Your feedback will help us fine-tune everything before the big release for everyone else.

-

How to Join

+

How to Join

📋 Complete the Application Form
📅 The first early-access phase kicks off on December 17 and lasts for one week.

-

Prerequisites

+

Prerequisites

💬 Active participation in the designated Discord channel.
🎮 GameVault installed from the Microsoft Store with a Microsoft Account logged in. If not, grab it here.
🚀 A GameVault Server running the phalcode/gamevault-backend:early-access image. (Only run this if you are accepted as a Tester as it could break things!)

-

Important Note

+

Important Note

-

Linux

-

Portable (L_P)

+

Linux

+

Portable (L_P)

Linux Portable games can be played immediately without additional setup.

  • Detection: Determined by the type tag override or by the presence of .sh files, with no .exe or .msi files.
  • @@ -66,7 +66,7 @@

    Portable (L_P)<

-

Undetected

+

Undetected

This is the default type if GameVault cannot automatically detect the game type. Users will need to manually install the game into the installation folder.

  • Example Files in Archive: @@ -75,6 +75,6 @@

    Undetectedrun.c64

- + \ No newline at end of file diff --git a/docs/server-docs/indexing/index.html b/docs/server-docs/indexing/index.html index ccc29907b..741e73887 100644 --- a/docs/server-docs/indexing/index.html +++ b/docs/server-docs/indexing/index.html @@ -2,14 +2,14 @@ - + Game Indexing | GameVault - - - + + + -

Game Indexing

+

Game Indexing

The server watches the files directory (by default /files) and creates an index of all games, when changes occur. The indexing can also be triggered via API.

The indexing algorithm follows these steps:

    @@ -23,6 +23,6 @@
-

Finally, a simple integrity check is performed to ensure that the games in the database also exist in the files directory, and vice versa.

+

Finally, a simple integrity check is performed to ensure that the games in the database also exist in the files directory, and vice versa.

\ No newline at end of file diff --git a/docs/server-docs/media/index.html b/docs/server-docs/media/index.html index 11957b8c8..c10ab7ccd 100644 --- a/docs/server-docs/media/index.html +++ b/docs/server-docs/media/index.html @@ -2,47 +2,47 @@ - + Media | GameVault - - - + + + -

Media

+

Media

This page outlines how media like images and videos are handled within the backend application.

Here is the updated markdown table including the format names as a second column:

-

Supported Formats

-

Supported Image Formats

+

Supported Formats

+

Supported Image Formats

FormatNameMIME Type
.bmpBitmap Imageimage/bmp
.jpegJPEG Imageimage/jpeg
.pngPortable Network Graphicsimage/png
.tiffTagged Image File Formatimage/tiff
.gifGraphics Interchange Formatimage/gif
.icoIcon Formatimage/vnd.microsoft.icon
-

Supported Audio Formats

+

Supported Audio Formats

FormatNameMIME Type
.mp3MPEG Audioaudio/mpeg
.wavWaveform Audioaudio/wav
.oggOgg Vorbisaudio/ogg
.aacAdvanced Audio Codecaudio/aac
.flacFree Lossless Audio Codecaudio/flac
.wmaWindows Media Audioaudio/x-ms-wma
.amrAdaptive Multi-Rateaudio/amr
.mp4MPEG-4 Audioaudio/mp4
-

Supported Video Formats

+

Supported Video Formats

FormatNameMIME Type
.mp4MPEG-4 Videovideo/mp4
.aviAudio Video Interleavevideo/x-msvideo
.movQuickTimevideo/quicktime
.wmvWindows Media Videovideo/x-ms-wmv
.flvFlash Videovideo/x-flv
.mkvMatroska Videovideo/x-matroska
.webmWebM Videovideo/webm
.mpegMPEG Videovideo/mpeg
.3gp3GPP Multimedia Filevideo/3gpp
-

Media Persistence

+

Media Persistence

GameVault stores media either by persisting them to the filesystem using the media directory (by default /media) or by saving a link to an external URL.

-

Media that is stored on the filesystem

+

Media that is stored on the filesystem

  • game_metadata.cover: Game Box Arts
  • game_metadata.background: Game Background Images
  • gamevault_user.avatar: User Avatars
  • gamevault_user.background: User Background Images
-

Media that is stored as an external resource

+

Media that is stored as an external resource

  • game_metadata.url_screenshots: Game Screenshots
  • game_metadata.url_trailers: Game Trailers
  • game_metadata.url_gameplays: Gameplay Videos
-
note

Note the url_ prefix.

-

Duplicate Media

+
note

Note the url_ prefix.

+

Duplicate Media

GameVault stores each media resource referenced in the database as one-to-one, with no media reuse. So it's normal to see duplicates.

-

Media Garbage Collection

-
Potential data loss

Garbage collection can result in data loss, as it will delete any files inside the media folder without an association in the database. For example if you set up a new, empty database. It is advisable to regularly back up your media just to be safe. If you don't want to lose any data, you can disable garbage collection by setting the MEDIA_GC_DISABLED environment variable to true.

+

Media Garbage Collection

+
Potential data loss

Garbage collection can result in data loss, as it will delete any files inside the media folder without an association in the database. For example if you set up a new, empty database. It is advisable to regularly back up your media just to be safe. If you don't want to lose any data, you can disable garbage collection by setting the MEDIA_GC_DISABLED environment variable to true.

GameVault regularly cleans up its media in the database and filesystem to keep things tidy. We call this process garbage collection.

You can control how often the garbage colletion happens by changing the value of MEDIA_GC_INTERVAL_IN_MINUTES.

During cleanup, GameVault first gets rid of all media in the database that aren't used. Afterwards, it deletes all media files in the media folder that don't match any database entries. So please don't put any files in the media folder that you don't want to be deleted.

-

Turning off Garbage Collection

-

If you want to turn off this feature, you can disableit by setting the MEDIA_GC_DISABLED environment variable to true.

+

Turning off Garbage Collection

+

If you want to turn off this feature, you can disableit by setting the MEDIA_GC_DISABLED environment variable to true.

\ No newline at end of file diff --git a/docs/server-docs/metadata-enrichment/metadata/index.html b/docs/server-docs/metadata-enrichment/metadata/index.html index 647e4331d..cdaec3bef 100644 --- a/docs/server-docs/metadata-enrichment/metadata/index.html +++ b/docs/server-docs/metadata-enrichment/metadata/index.html @@ -2,35 +2,35 @@ - + Enriching your Games with Metadata | GameVault - - - + + + -

Enriching your Games with Metadata

Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.

+

Enriching your Games with Metadata

Research shows that nobody wants to see blank placeholder images and missing descriptions in their library. We want those games enriched with some juicy metadata.

GameVault supports a vast plugin framework that supports connecting to various metadata providers simultaneously. In the following sections, you'll learn how to set up a metadata provider and get started.

-

Setting Up a Metadata Provider

+

Setting Up a Metadata Provider

Click on any of the entries below to get to their dedicated page.

-

Built-In Metadata Providers

+

Built-In Metadata Providers

-

Community-Maintained Metadata Providers

+

Community-Maintained Metadata Providers

-

How Metadata Enrichment in GameVault Works

+

How Metadata Enrichment in GameVault Works

The GameVault Server includes a metadata service that allows various Metadata Provider Plugins to register. Each provider registers with a numerical priority value - the higher the priority, the more important the metadata is treated.

After indexing the games, GameVault automatically searches for relevant metadata. It uses a standard interface search method to find games on the metadata provider (often based on Game Title and Release Year) and determines the best match using a probability index calculated with an NLP Levenshtein algorithm and the release-year-offset. The further away the title and release date, the less probable the match. For each game file, only one game can be mapped per metadata provider.

-

Editing Metadata

+

Editing Metadata

To edit metadata, Users need to have the role EDITOR or higher. Data provided by users are always treated with the highest priority. Only one user-provided metadata object per game is allowed and it is the same for all users. This can be used to fill in missing data manually or change it.

-

Remapping a Game

+

Remapping a Game

It is possible to search the registered Metadata Providers to find a better matching game and remap the current match to it.

-

Unmapping a Game

+

Unmapping a Game

It is possible to unmap a game from a Metadata Provider, which will disconnect the mapped metadata from the game.

-

How GameVault Merges Metadata

+

How GameVault Merges Metadata

GameVault always applies the metadata detached and by priority, by creating an effective metadata object game.metadata. We call this process "merging". It works as follows:

Let's say we have a game: "Grand Theft Auto: San Andreas" with two Metadata Providers and a user-provided edit.

ProviderPriorityTitleDescriptionAge Rating
STEAM1Grand Theft Auto: San AndreasAll you had to do is to follow the damn train, CJ.18
IGDB2Grand Theft Auto: San AndreasI'll have two number 9s, a number 9 large...
USERN/AN/A12
@@ -44,7 +44,7 @@

Developing a New Metadata Provider Plugin

-

Click here to learn how to develop your own metadata provider plugin.

+

Developing a New Metadata Provider Plugin

+

Click here to learn how to develop your own metadata provider plugin.

\ No newline at end of file diff --git a/docs/server-docs/metadata-enrichment/provider-igdb/index.html b/docs/server-docs/metadata-enrichment/provider-igdb/index.html index 41694b722..61253f6cd 100644 --- a/docs/server-docs/metadata-enrichment/provider-igdb/index.html +++ b/docs/server-docs/metadata-enrichment/provider-igdb/index.html @@ -2,17 +2,17 @@ - + Provider: IGDB | GameVault - - - + + + -

Provider: IGDB

-

Overview

+

Provider: IGDB

+

Overview

The Internet Games Database (IGDB) is one of the most popular databases for detailed video game information run by twitch.tv. By integrating IGDB with GameVault, users get accurate and up-to-date game data. We're pleased to partner with IGDB to provide the best game information to our users.

-

Setup

+

Setup

  1. Log in to your Twitch Account on dev.twitch.tv
      @@ -21,23 +21,23 @@

      Setup
    • Open the Twitch Developer dashboard.
    • Click on Register your application -Register your application
    • +Register your application
    • Fill out the form as shown in the image. Make sure to solve the CAPTCHA. -Fill in the details
    • +Fill in the details
    • Once your application is created, click on Manage. -Manage
    • +Manage
    • Click on New Secret. Make sure to solve the CAPTCHA. -New Secret
    • +New Secret
    • Copy your Client ID and Client Secret and configure them in GameVaults METADATA_IGDB_CLIENT_ID and METADATA_IGDB_CLIENT_SECRET environment variables.
    • Done! 🥳 Now just restart your server and it should do it's magic. If you have lots of games, it may take a while to fetch all metadata. You can check the progress in the server logs.
-

Configurations

+

Configurations

PropertyDescriptionDefaultPossible Values
METADATA_IGDB_ENABLEDEnables / Disables the Providertruetrue, false
METADATA_IGDB_PRIORITYPriority of the Provider50Any Integer
METADATA_IGDB_CLIENT_IDYour developer.twitch.tv Client ID-Your Client-ID
METADATA_IGDB_CLIENT_SECRETYour developer.twitch.tv Client Secret-Your Client-Secret
-

Mappings

-

Fields

+

Mappings

+

Fields

GameVault FieldIGDB API Field(s)Notes
provider_slugigdbhardcoded.
age_ratingage_ratingsSee here for details.
provider_data_idid
provider_data_urlurl
titlename
release_datefirst_release_date
descriptiongame.summary and/or game.storylineIf both are available, both get used, else any available will be mapped
ratingtotal_rating
early_accessstatusTrue if the Game is either in status alpha, beta or early_access
developersinvolved_companiesFiltered by involved_company.developer === true
publishersinvolved_companiesFiltered by involved_company.publisher === true
genresgenres
tagskeywords and themes
covercoverUsing the highest possible cover resolution via t_cover_big_2x
backgroundartworks[0] or screenshots[0]Only first artwork/screenshot is mapped. Using the highest possible 16:9 resolution via t_1080p_2x
url_websiteswebsites.url
url_screenshotsscreenshots and artworksUsing the highest possible 16:9 resolution via t_1080p_2x
url_trailersvideosOnly when video title includes the words "trailer", "teaser" or "intro"
url_gameplaysvideosOnly when video title includes the words "gameplay"
-

Age Rating

+

Age Rating

The table below shows how age ratings from GameVault and IGDB are matched. Ratings like "Not Yet Rated" are ignored. A game can have ratings from multiple systems. The IGDB integration calculates the average of all ratings, rounds it, and then saves it to GameVault.

-
Age Rating SystemRating NameGameVault Minimum Age (Years)IGDB Rating Enum Value
PEGIThree31
Seven72
Twelve123
Sixteen164
Eighteen185
ESRBEC37
E68
E10109
T1310
M1711
AO1812
CEROCERO_A013
CERO_B1214
CERO_C1515
CERO_D1716
CERO_Z1817
USKUSK_0018
USK_6619
USK_121220
USK_161621
USK_181822
GRACGRAC_ALL023
GRAC_Twelve1224
GRAC_Fifteen1525
GRAC_Eighteen1826
CLASS_INDCLASS_IND_L028
CLASS_IND_Ten1029
CLASS_IND_Twelve1230
CLASS_IND_Fourteen1431
CLASS_IND_Sixteen1632
CLASS_IND_Eighteen1833
ACBACB_G034
ACB_PG835
ACB_M1536
ACB_MA151537
ACB_R181838
+
Age Rating SystemRating NameGameVault Minimum Age (Years)IGDB Rating Enum Value
PEGIThree31
Seven72
Twelve123
Sixteen164
Eighteen185
ESRBEC37
E68
E10109
T1310
M1711
AO1812
CEROCERO_A013
CERO_B1214
CERO_C1515
CERO_D1716
CERO_Z1817
USKUSK_0018
USK_6619
USK_121220
USK_161621
USK_181822
GRACGRAC_ALL023
GRAC_Twelve1224
GRAC_Fifteen1525
GRAC_Eighteen1826
CLASS_INDCLASS_IND_L028
CLASS_IND_Ten1029
CLASS_IND_Twelve1230
CLASS_IND_Fourteen1431
CLASS_IND_Sixteen1632
CLASS_IND_Eighteen1833
ACBACB_G034
ACB_PG835
ACB_M1536
ACB_MA151537
ACB_R181838
\ No newline at end of file diff --git a/docs/server-docs/parental-control/index.html b/docs/server-docs/parental-control/index.html index 3b484ca99..63ec4c5e0 100644 --- a/docs/server-docs/parental-control/index.html +++ b/docs/server-docs/parental-control/index.html @@ -2,33 +2,33 @@ - + Parental Control | GameVault - - - + + + -

Parental Control

+

Parental Control

GameVault supports a parental control feature that hides games and game progresses based on the games age rating for some users. By default, age restrictions are disabled.

When enabled:

  • Users will not be able to see games above their age rating.
  • Users will not be able to see any progresses for games above their age rating.
-
Things to keep in mind
    +
    Things to keep in mind
    • If you enable parental control, do not forget to set the birth date for existing users.
    • Children must not be of role ADMIN, because they would be able to alter their birth date.
    • The age rating value for games is set by the metadata providers you use. It is in your responsibility to check how the providers determine the age rating.
    • If you use multiple metadata providers, the provider with the highest priority will be used to determine the age rating. User-set age ratings will always override the metadata providers setting. You can check the actively applied minimum age on the game page in your client.
    -

    Enabling Parental Control

    +

    Enabling Parental Control

    To enable parental control, set the PARENTAL_AGE_RESTRICTION_ENABLED environment variable to true. Then set the birth date for all existing users.

    Keep in mind that, when you set this variable to true, new users will also be required to set their Birth date upon registration.

    -

    Changing the Age of Majority

    +

    Changing the Age of Majority

    The age of majority determines the age at which an individual is legally recognized as an adult. Reaching the age of majority enables users to alter their birth date. Otherwise, users will not be able to set their own birth date and an admin will be required to set their birth date.

    You can configure the age of majority for parental control by setting the PARENTAL_AGE_OF_MAJORITY environment variable. The default value is 18.

    -

    Overriding the Age Rating of a Game

    -

    Admins can override the age rating of a single game by simply editing the age rating field of a game directly.

+

Overriding the Age Rating of a Game

+

Admins can override the age rating of a single game by simply editing the age rating field of a game directly.

\ No newline at end of file diff --git a/docs/server-docs/plugins/index.html b/docs/server-docs/plugins/index.html index 1d65f740c..5d1cd5eb7 100644 --- a/docs/server-docs/plugins/index.html +++ b/docs/server-docs/plugins/index.html @@ -2,33 +2,33 @@ - + Plugins | GameVault - - - + + + -

Plugins

-
Plugins are experimental

Plugins are currently in the early stages of development. Things may break, so always make backups before using them.

-

Introduction

+

Plugins

+
Plugins are experimental

Plugins are currently in the early stages of development. Things may break, so always make backups before using them.

+

Introduction

GameVault is built with modularity in mind, featuring a plugin system that allows users to integrate custom functionality directly into the server. Whether you're looking to extend GameVault or customize its behavior, plugins provide the flexibility you need.

-

Where to Find Plugins

+

Where to Find Plugins

You can browse a list of available GameVault plugins here. Be sure to check that the plugin is compatible with your specific version of the GameVault backend.

-

How to Install Plugins

+

How to Install Plugins

To install a plugin, follow these steps:

  1. Place the folder containing your compiled plugin (.js files) into the /plugins directory of your GameVault server. Archives are currently not supported, so extract them first.
  2. When you start the server, GameVault will automatically detect and load the plugin.
-

How to Develop GameVault Plugins

+

How to Develop GameVault Plugins

If you're a developer interested in creating plugins, you're in luck—it's simple to get started. Here’s a step-by-step guide:

-

Step 1: Clone the Backend Repository

+

Step 1: Clone the Backend Repository

First, set up a local instance of the GameVault backend. Follow the setup instructions available here.

-

Step 2: Understand the Architecture

+

Step 2: Understand the Architecture

GameVault plugins are built as NestJS modules, just like the rest of the system. You’ll be working with NestJS components such as Modules, Services, and Controllers.

To start, it's a good idea to read the official NestJS documentation, but if you prefer to jump in and learn by doing, you can reference the example code below.

-

Step 3: Set Up a Plugin

+

Step 3: Set Up a Plugin

Suppose we’re creating a plugin called useless-plugin.

  1. Navigate to the gamevault-backend directory in your cloned repository.
  2. @@ -37,35 +37,35 @@

    Step
  3. Create a new file for your module: useless.plugin.module.ts. This file will serve as the entry point for your plugin and should implement the GameVaultPluginModule interface (which can be imported from src/globals.ts).

Here’s a basic example of how your module might look:

-
import { Module } from "@nestjs/common";
import {
GameVaultPluginModule,
GameVaultPluginModuleMetadataV1,
} from "../../../src/globals";

@Module({
imports: [],
controllers: [],
providers: [],
})
export default class UselessPluginModule implements GameVaultPluginModule {
metadata: GameVaultPluginModuleMetadataV1 = {
name: "Useless Plugin",
author: "Phalcode",
version: "1.0.0",
description:
"An example plugin that does nothing useful. It logs the user count every three seconds and provides two REST APIs with sample data.",
keywords: ["example", "api"],
license: "UNLICENSE",
website: "https://gamevau.lt",
};
}
-
Avoid Redundancy

When naming files, avoid repeating words. For example, if your plugin is called useless-plugin, name the module file useless.plugin.module.ts, not useless-plugin.plugin.module.ts.

-

Step 4: Document Your Plugin

+
import { Module } from "@nestjs/common";
import {
GameVaultPluginModule,
GameVaultPluginModuleMetadataV1,
} from "../../../src/globals";

@Module({
imports: [],
controllers: [],
providers: [],
})
export default class UselessPluginModule implements GameVaultPluginModule {
metadata: GameVaultPluginModuleMetadataV1 = {
name: "Useless Plugin",
author: "Phalcode",
version: "1.0.0",
description:
"An example plugin that does nothing useful. It logs the user count every three seconds and provides two REST APIs with sample data.",
keywords: ["example", "api"],
license: "UNLICENSE",
website: "https://gamevau.lt",
};
}
+
Avoid Redundancy

When naming files, avoid repeating words. For example, if your plugin is called useless-plugin, name the module file useless.plugin.module.ts, not useless-plugin.plugin.module.ts.

+

Step 4: Document Your Plugin

Once you've implemented the GameVaultPluginModule interface, make sure to provide details about your plugin in the metadata section. Be sure to add a README.md and LICENSE file to the plugin folder to make it clear and accessible when shared on GitHub.

-

Step 5: Implement Your Plugin's Logic

+

Step 5: Implement Your Plugin's Logic

Now, develop your plugin by adding services, controllers, or any other NestJS components. You can use existing GameVault modules to extend functionality. For instance in our example you can see we used the UsersService to count the users on our GameVault server. The possibilities are limitless.

-

Adding Configuration Options

+

Adding Configuration Options

If your plugin should support specific configuration for the end user, you can introduce custom environment variables. Make sure they are unique and do not conflict with existing variables. A good pattern is: PLUGIN_AUTHORNAME_PLUGINNAME_SETTING (e.g., PLUGIN_PHALCODE_USELESS_ENABLED).

You can access these variables in your code via process.env.PLUGIN_AUTHORNAME_PLUGINNAME_SETTING.

-

Step 6: Test Your Plugin

+

Step 6: Test Your Plugin

When you’re ready to test, run pnpm start. GameVault will automatically inject your plugin, and you should see relevant logs. You can debug using logs or Visual Studio Code’s "Toggle Auto Attach" feature. For extra quality assurance, you can write unit tests with Jest by adding a .spec.ts file and running pnpm test.

-

Step 7: Compile Your Plugin

+

Step 7: Compile Your Plugin

Once your plugin is working and tested, compile it by running pnpm build. This will generate a dist folder with your compiled plugin in the dist/.local/plugins/useless-plugin directory. Look for folder containing a .plugin.module.js file—this is your compiled plugin. Zip that folder—this is the final, compiled version of your plugin, ready for users to install and run on their servers.

-

Step 8: Release Your Plugin

+

Step 8: Release Your Plugin

  1. Bring your local Git repository to GitHub.
  2. Create a release on GitHub and upload the zipped plugin folder containing your plugin’s JavaScript files.
  3. Tag your repository with gamevault-backend-plugin to make it available for users to find.
- +

If your plugin is particularly useful and you want it to be in the standard feature set, contact us! We might integrate it directly into the official GameVault-Backend product.

-

Metadata Provider Plugin Specifics

+

Metadata Provider Plugin Specifics

If your plugin should integrate with GameVault’s metadata framework, follow these additional steps:

Once complete, you can feature your plugin right here in the documentation.

-

Example Plugins

-

You can check out some example plugins provided by Phalcode here to see how plugins are structured and developed.

+

Example Plugins

+

You can check out some example plugins provided by Phalcode here to see how plugins are structured and developed.

\ No newline at end of file diff --git a/docs/server-docs/server-news/index.html b/docs/server-docs/server-news/index.html index 1e373593c..b3e316736 100644 --- a/docs/server-docs/server-news/index.html +++ b/docs/server-docs/server-news/index.html @@ -2,17 +2,17 @@ - + Server News | GameVault - - - + + + -

Server News

+

Server News

You can keep your users informed by adding a news.md file. Use it to link your game wishlist form, share key updates, or simply greet them.

This file supports Markdown syntax, making it easy to format and structure your content. You can edit the news.md file using any text editor or script. It is located at /config/news.md. If you're using Docker, simply mount that folder as a volume:

-
note

When updating the news.md file., users will receive a notification ping-icon in their client, ensuring they see the latest news.

-
[...]
volumes:
- /your/config/folder:/config
- [...]
[...]
+
note

When updating the news.md file., users will receive a notification ping-icon in their client, ensuring they see the latest news.

+
[...]
volumes:
- /your/config/folder:/config
- [...]
[...]
\ No newline at end of file diff --git a/docs/server-docs/setup/caprover/index.html b/docs/server-docs/setup/caprover/index.html index d526da6ec..d41b0e519 100644 --- a/docs/server-docs/setup/caprover/index.html +++ b/docs/server-docs/setup/caprover/index.html @@ -2,50 +2,50 @@ - + Using CapRover | GameVault - - - + + + -

Using CapRover

CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.

+

Using CapRover

CapRover is an open-source platform that simplifies the deployment and management of web applications through containerization, providing a user-friendly interface for developers.

Setting up a GameVault Server on CapRover is just a click away because we have created a CapRover One-Click-App Integration for this purpose. However, our app hasn't gained enough prominence to be included in the official One-Click-App Repository of CapRover. So, we decided to create our own third-party repository.

In this guide, you will learn how to connect to our third-party repository and install GameVault on your CapRover Instance.

-

Prerequisites

+

Prerequisites

-

Step 1: Log in to your CapRover Dashboard

+

Step 1: Log in to your CapRover Dashboard

Log in to your CapRover dashboard.

-

Step 1

-

Step 2: Navigate to the One-Click-Apps/Databases

+

Step 1

+

Step 2: Navigate to the One-Click-Apps/Databases

Go to "Apps" and click on "One-Click Apps/Databases."

-

Step 2

-

Step 3: Connect Phalcode's third-party repository

+

Step 2

+

Step 3: Connect Phalcode's third-party repository

Scroll down to the bottom. Under "3rd party repositories," copy and paste the following link: https://phalcode.github.io/caprover-one-click-apps. Click the "Connect New Repository" button.

-

Step 3

-

Step 4: Install our GameVault One-Click-App

+

Step 3

+

Step 4: Install our GameVault One-Click-App

Now, all you need to do is search for 'GameVault' using the search box and follow the installation wizard.

If you can't find GameVault in the list, try reloading the page and search again.

-

Step 4

-

Step 5: Enable WebSocket Support

+

Step 4

+

Step 5: Enable WebSocket Support

Go to "Apps" and click on the GameVault App you just created. Make sure WebSocket Support is enabled.

-

Step 5

-

Step 6: Configuring Volumes

+

Step 5

+

Step 6: Configuring Volumes

Configure your mounted volumes as you like.

-

Step 6

-

Conclusion

+

Step 6

+

Conclusion

You have now successfully set up your GameVault Server using CapRover.

Click here to continue.

-

Additional Info

-

Stopping the Server

+

Additional Info

+

Stopping the Server

Navigate to "Apps" and select the GameVault App you have created.

Click on "App Configs".

Set "Instance Count" to 0.

-

Reading the Logs

+

Reading the Logs

Navigate to "Apps" and choose the GameVault App you have created.

Click on "Deployment".

-

You should now see the logs. If needed, click on "View App Logs" first.

+

You should now see the logs. If needed, click on "View App Logs" first.

\ No newline at end of file diff --git a/docs/server-docs/setup/docker-compose/index.html b/docs/server-docs/setup/docker-compose/index.html index c589b8f66..787f192ed 100644 --- a/docs/server-docs/setup/docker-compose/index.html +++ b/docs/server-docs/setup/docker-compose/index.html @@ -2,52 +2,52 @@ - + Using Docker Compose | GameVault - - - + + + -

Using Docker Compose

Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.

+

Using Docker Compose

Docker is a platform for developing, shipping, and running applications in containers, and Docker Compose is a tool for defining and managing multi-container Docker applications.

In this guide, you will learn how to set up GameVault using Docker and Docker Compose.

-

Prerequisites

+

Prerequisites

  • Docker Engine is installed on your system. (Docker Desktop should work too, but this guide is tailored for Docker Engine. Steps might look different on Desktop, but the gist is the same.)
-

Step 1: Creating a Docker Compose file

+

Step 1: Creating a Docker Compose file

Create a new file named docker-compose.yml in a directory of your choice and copy the following code:

-
services:
gamevault-backend:
image: phalcode/gamevault-backend:latest
restart: unless-stopped
environment:
DB_HOST: db
DB_USERNAME: gamevault
DB_PASSWORD: YOURPASSWORDHERE
volumes:
# Mount the folder where your games are
- /your/games/folder:/files
# Mount the folder where GameVault should store its media
- /your/media/folder:/media
ports:
- 8080:8080/tcp
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: gamevault
POSTGRES_PASSWORD: YOURPASSWORDHERE
POSTGRES_DB: gamevault
volumes:
# Mount the folder where your PostgreSQL database files should land
- /your/database/folder:/var/lib/postgresql/data
-
note

Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

-
warning

Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)

-

Tips for Running Docker on Windows

+
services:
gamevault-backend:
image: phalcode/gamevault-backend:latest
restart: unless-stopped
environment:
DB_HOST: db
DB_USERNAME: gamevault
DB_PASSWORD: YOURPASSWORDHERE
volumes:
# Mount the folder where your games are
- /your/games/folder:/files
# Mount the folder where GameVault should store its media
- /your/media/folder:/media
ports:
- 8080:8080/tcp
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: gamevault
POSTGRES_PASSWORD: YOURPASSWORDHERE
POSTGRES_DB: gamevault
volumes:
# Mount the folder where your PostgreSQL database files should land
- /your/database/folder:/var/lib/postgresql/data
+
note

Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

+
warning

Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)

+

Tips for Running Docker on Windows

The above docker-compose.yaml file might not work as expected with Docker for Windows. Here are some things to consider to make it compatible:

  • Use Forward Slashes in Paths: In your volumes, replace Windows-style backslashes (\) with forward slashes (/).

    -
    volumes:
    # Path to your games folder
    - C:/Your/Games/Folder:/files
    +
    volumes:
    # Path to your games folder
    - C:/Your/Games/Folder:/files
  • PostgreSQL Database Volume: For PostgreSQL, it’s often better to use a Docker volume instead of mounting a folder, due to compatibility issues of PostgreSQL with Windows Filesystems. To do this, leave out any volume definition in the database section of your YAML file. Read more here.

-

Alternative Step 1: Running without a PostgreSQL Database

+

Alternative Step 1: Running without a PostgreSQL Database

We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:

-
services:
gamevault-backend:
image: phalcode/gamevault-backend:latest
restart: unless-stopped
environment:
DB_SYSTEM: "SQLITE"
volumes:
- /your/games/folder:/files
- /your/media/folder:/media
- /your/sqlite/database/folder:/db
ports:
- 8080:8080/tcp
-
note

Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

-

Step 2: Start the Service

+
services:
gamevault-backend:
image: phalcode/gamevault-backend:latest
restart: unless-stopped
environment:
DB_SYSTEM: "SQLITE"
volumes:
- /your/games/folder:/files
- /your/media/folder:/media
- /your/sqlite/database/folder:/db
ports:
- 8080:8080/tcp
+
note

Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

+

Step 2: Start the Service

Open a terminal, navigate to the directory where the docker-compose.yml file is located, and run the following command:

-
docker compose up -d
+
docker compose up -d

This will start the GameVault server and PostgreSQL server in the background. The -d parameter detaches the process from the terminal.

-

Conclusion

+

Conclusion

Congratulations! Your GameVault Server has been successfully set up using Docker and Docker Compose. You can now access it using your server's IP address followed by the designated port, such as http://192.168.0.15:8080 for example.

Click here to continue.

-

Additional Info

-

Stopping the server

+

Additional Info

+

Stopping the server

Open a terminal, navigate to the directory where the docker-compose.yml file is located, and run the following command:

-
docker compose down
-

Reading the logs

+
docker compose down
+

Reading the logs

Open a terminal and run the following command:

-
docker logs gamevault-backend
+
docker logs gamevault-backend
\ No newline at end of file diff --git a/docs/server-docs/setup/index.html b/docs/server-docs/setup/index.html index 83c538897..d207e9f43 100644 --- a/docs/server-docs/setup/index.html +++ b/docs/server-docs/setup/index.html @@ -2,29 +2,30 @@ - + Setting up a GameVault Server | GameVault - - - + + + -

Setting up a GameVault Server

+

Setting up a GameVault Server

There are multiple ways to set up a GameVault Server. You can choose one from below that suits you.

If you have any trouble setting up a GameVault server don't give up! There are a lot of helpful people on our discord that can help you.

-

Supported Methods

+

Supported Methods

-

More Methods

+

More Methods

We want to add more setup options to our lineup! Each system has its own way of doing things, and it can take some time and experience to set up new options just right.

We're looking for people who are excited to help out. Since we don't run a GameVault Server on every system, we need your help to add new setup options! If you're interested in joining and setting up options for any system, we'd love to have you contribute to this documentation on Github. Together, we can make our platform easier for everyone to use.

-

What Next?

+

What Next?

Congratulations! 🥳

You now should have a server up and running. To further set up and start using server, you can follow these steps:

    @@ -44,6 +45,6 @@

    What Next?(OPTIONAL) Make your server accessible outside your Local Area Network: If you want to make the application accessible beyond your local network, for instance, for your friends or yourself to connect to it remotely, you'll need to configure an HTTPS reverse proxy and potentially make adjustments to firewall rules. We recommend utilizing NGINX Proxy Manager for this purpose. Numerous guides are available on how to set up a reverse proxy for a Docker container, so we won't cover it in detail in this guide.

-

Enjoy your new gaming experience with GameVault!

+

Enjoy your new gaming experience with GameVault!

\ No newline at end of file diff --git a/docs/server-docs/setup/native/index.html b/docs/server-docs/setup/native/index.html index 3445ffce2..40e693c0b 100644 --- a/docs/server-docs/setup/native/index.html +++ b/docs/server-docs/setup/native/index.html @@ -2,51 +2,51 @@ - + Using Native Approach | GameVault - - - + + + -

Using Native Approach

Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.

+

Using Native Approach

Container technology presents an efficient and scalable solution by encapsulating applications and their dependencies. This ensures consistent performance across diverse environments and streamlines deployment, management, and scalability.

Although we strongly discourage it, if none of the alternative installation methods are suitable for you, GameVault can also be installed directly on your system without using containers. The example provided here uses Debian.

-

Prerequisites

+

Prerequisites

-

Step 1: Clone the Source Code

-
cd ~
git clone https://github.com/Phalcode/gamevault-backend.git
cd gamevault-backend
-

Step 2: Install Dependencies

+

Step 1: Clone the Source Code

+
cd ~
git clone https://github.com/Phalcode/gamevault-backend.git
cd gamevault-backend
+

Step 2: Install Dependencies

Now we need to install all necessary node dependencies.

-
pnpm install
+
pnpm install

Your server files are now in the dist/ folder.

-

Step 3: Set up an .env File

+

Step 3: Set up an .env File

Create a .env file in the dist/src/ directory and configure your GameVault as desired or set them in your system/VM directly.

Example with SQLITE:

First create the necessary folders or just use existing ones in your config:

For example:

-
cd ~
mkdir -p gamevault-db gamevault-media gamevault-games gamevault-logs gamevault-plugins
-
#/gamevault-backend/.env
DB_SYSTEM=SQLITE
VOLUMES_SQLITEDB=/path/for/database/files
VOLUMES_FILES=/path/for/gane/files
VOLUMES_MEDIA=/path/for/media/files
VOLUMES_LOGS=/path/for/log/files
VOLUMES_PLUGINS=/path/for/plugin/files
-

Step 4: Build and Start the Server

+
cd ~
mkdir -p gamevault-db gamevault-media gamevault-games gamevault-logs gamevault-plugins
+
#/gamevault-backend/.env
DB_SYSTEM=SQLITE
VOLUMES_SQLITEDB=/path/for/database/files
VOLUMES_FILES=/path/for/gane/files
VOLUMES_MEDIA=/path/for/media/files
VOLUMES_LOGS=/path/for/log/files
VOLUMES_PLUGINS=/path/for/plugin/files
+

Step 4: Build and Start the Server

To start the server, run:

-
pnpm start
-

Conclusion

+
pnpm start
+

Conclusion

You have now successfully set up your GameVault Server.

Click here to continue.

-

Additional Info

+

Additional Info

Don't put/change anything except the .env file inside the gamevault-backend folder if you don't know what you're doing.

-

Stopping the Server

+

Stopping the Server

Press CTRL + C to stop the server.

-

Updating the Server

+

Updating the Server

You can update the server by running

-
git pull
+
git pull

inside of your gamevault-backend git repository. It will auto update to the latest version.

You can update to a specific version by using:

-
git fetch --all --tags --prune
git checkout tags/9.0.0
-

for example.

+
git fetch --all --tags --prune
git checkout tags/9.0.0
+

for example.

\ No newline at end of file diff --git a/docs/server-docs/setup/synology-container-manager/index.html b/docs/server-docs/setup/synology-container-manager/index.html index bd18e5bae..b86e09658 100644 --- a/docs/server-docs/setup/synology-container-manager/index.html +++ b/docs/server-docs/setup/synology-container-manager/index.html @@ -2,21 +2,21 @@ - + Using Synology Container Manager | GameVault - - - + + + -

Using Synology Container Manager

Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.

+

Using Synology Container Manager

Synology Container Manager is a software application developed by Synology Inc. for their network-attached storage (NAS) devices. It provides users with a graphical user interface for managing Docker containers, allowing them to deploy, manage, and monitor containerized applications on their Synology NAS.

In this guide, you will learn how to set up GameVault on such a system using Docker Compose.

-
Contribute to this page!

Unfortunately, none of our team members uses Synology Hardware and this guide was written blindly. The GameVault Docs live from contributions. If you use a Synology system kindly contribute some screenshots to this page. Thanks!

-

Prerequisites

+
Contribute to this page!

Unfortunately, none of our team members uses Synology Hardware and this guide was written blindly. The GameVault Docs live from contributions. If you use a Synology system kindly contribute some screenshots to this page. Thanks!

+

Prerequisites

-

Step 1: Create Necessary Folders

+

Step 1: Create Necessary Folders

Begin by creating directories for the containers to utilize.
Open File Station and create the following folders:

    @@ -26,7 +26,7 @@

    Step 2: Set Up a Project in Container Manager

    +

    Step 2: Set Up a Project in Container Manager

    1. Open Container Manager from your Synology NAS.
    2. Click on 'Project' and then 'Create'
    3. @@ -38,32 +38,32 @@

      Step 3: Create Docker Compose File

      +

      Step 3: Create Docker Compose File

      Copy and paste the following code into the editor:

      -
      services:
      gamevault-backend:
      image: phalcode/gamevault-backend:latest
      restart: unless-stopped
      environment:
      DB_HOST: db
      DB_USERNAME: gamevault
      DB_PASSWORD: YOURPASSWORDHERE
      volumes:
      - /volume1/docker/gamevault/files:/files
      - /volume1/docker/gamevault/media:/media
      ports:
      - 8080:8080/tcp
      db:
      image: postgres:16
      restart: unless-stopped
      environment:
      POSTGRES_USER: gamevault
      POSTGRES_PASSWORD: YOURPASSWORDHERE
      POSTGRES_DB: gamevault
      volumes:
      - /volume1/docker/gamevault/database:/var/lib/postgresql/data
      -
      note

      Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

      -
      warning

      Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)

      -

      Alternative Step 3: Running without a PostgreSQL Database

      +
      services:
      gamevault-backend:
      image: phalcode/gamevault-backend:latest
      restart: unless-stopped
      environment:
      DB_HOST: db
      DB_USERNAME: gamevault
      DB_PASSWORD: YOURPASSWORDHERE
      volumes:
      - /volume1/docker/gamevault/files:/files
      - /volume1/docker/gamevault/media:/media
      ports:
      - 8080:8080/tcp
      db:
      image: postgres:16
      restart: unless-stopped
      environment:
      POSTGRES_USER: gamevault
      POSTGRES_PASSWORD: YOURPASSWORDHERE
      POSTGRES_DB: gamevault
      volumes:
      - /volume1/docker/gamevault/database:/var/lib/postgresql/data
      +
      note

      Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

      +
      warning

      Password (YOURPASSWORDHERE) can't be empty! else the database will not work. If you don't want a password, consider running without a PostgreSQL Database (Not recommended)

      +

      Alternative Step 3: Running without a PostgreSQL Database

      We don't recommend it, but you can run GameVault without a PostgreSQL Database too using the following configuration:

      -
      services:
      gamevault-backend:
      image: phalcode/gamevault-backend:latest
      restart: unless-stopped
      environment:
      DB_SYSTEM: "SQLITE"
      ports:
      - 8080:8080/tcp #Change the left one if you want
      volumes:
      - /volume1/docker/gamevault/files:/files
      - /volume1/docker/gamevault/media:/media
      - /volume1/docker/gamevault/database:/db
      -
      note

      Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

      -

      Conclusion

      +
      services:
      gamevault-backend:
      image: phalcode/gamevault-backend:latest
      restart: unless-stopped
      environment:
      DB_SYSTEM: "SQLITE"
      ports:
      - 8080:8080/tcp #Change the left one if you want
      volumes:
      - /volume1/docker/gamevault/files:/files
      - /volume1/docker/gamevault/media:/media
      - /volume1/docker/gamevault/database:/db
      +
      note

      Replace the variables (YOURPASSWORDHERE, etc.), as well as the folder paths with what suits you, of course. You can change the port on the left side of the colon aswell.

      +

      Conclusion

      You've successfully set up GameVault Server using Synology Container Manager. You should now be able to access the web interface via your NAS's IP address followed by port 8080. If you encounter any issues or have feedback, please let us know.

      -

      Additional Info

      -

      Stopping the Server

      +

      Additional Info

      +

      Stopping the Server

      To stop the GameVault Server, follow these steps:

      1. Navigate to Container Manager on your Synology NAS.
      2. Select the GameVault container from the list of running containers.
      3. Click on "Stop" to halt the container's operation.
      -

      Reading the Logs

      +

      Reading the Logs

      To view the logs for the GameVault Server, do the following:

      1. Navigate to Container Manager on your Synology NAS.
      2. Select the GameVault container from the list of containers.
      3. Click on "Details" to expand the container's information.
      4. Select the "Log" tab to view the container's logs in real-time.
      5. -
+
\ No newline at end of file diff --git a/docs/server-docs/setup/truenas-scale-legacy.htm/index.html b/docs/server-docs/setup/truenas-scale-legacy.htm/index.html new file mode 100644 index 000000000..7e0bfdbe0 --- /dev/null +++ b/docs/server-docs/setup/truenas-scale-legacy.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/docs/server-docs/setup/truenas-scale-legacy.html/index.html b/docs/server-docs/setup/truenas-scale-legacy.html/index.html new file mode 100644 index 000000000..7e0bfdbe0 --- /dev/null +++ b/docs/server-docs/setup/truenas-scale-legacy.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/docs/server-docs/setup/truenas-scale-legacy/index.html b/docs/server-docs/setup/truenas-scale-legacy/index.html new file mode 100644 index 000000000..dba389254 --- /dev/null +++ b/docs/server-docs/setup/truenas-scale-legacy/index.html @@ -0,0 +1,65 @@ + + + + + +Using TrueNAS Scale - Legacy | GameVault + + + + + +

Using TrueNAS Scale - Legacy

TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.

+

Setting up a GameVault Server on TrueNAS Scale prior, to version 24.10, is just a click away by using our template from the Truecharts Catalog, +a community based catalog for TrueNAS Scale.

+

If you are using TrueNAS Scale version 24.10, or newer, please use this documentation: TrueNAS Scale

+

Prerequisites

+
    +
  • a running TrueNAS Scale Server (prior to version 24.10)
  • +
  • add the TrueCharts Catalog
  • +
  • Install the following operators from TrueCharts; prometheus-operator and cloudnative-pg.
  • +
+

Step 1: Log in to your TrueNAS Scale Dashboard

+

Step 1

+

Step 2: Navigate to the catalog Page in TrueNas Scale

+

Go to apps -> discover -> catalogs.

+

Step 2

+

Validate that TrueCharts catalog was added to the server, if not refer back to the Prerequisites section.

+

Step 3: Navigate to Apps and Disover Page

+

Go to apps -> discover and search for gamevault-backend

+

Step 3

+

Step 4: Configure and Install gamevault-backend

+

Step 4

+

Step 4a

+

Scroll down to App Configuration.

+

Set your Admin User and Admin Password.

+

Step 4b

+
note

Leave the Logs and Images storage options as PVC.

+

Games storage option can be safely set hostpath if not using using any shares or switch to NFS otherwise; please follow the Dataset and Share Setup guide.

+

Step 4c

+

Scroll down to Documentation and click install, wait a few minutes and the app should deploy!

+

Installed

+

Conclusion

+

You have now successfully set up your GameVault Server using TrueNAS Scale.

+

Click here to continue.

+

Additional Info

+

Stopping the Server

+

To stop the server in TrueNAS Scale, you can click on the gamevault-backend app and then edit the app; set the replicas to 0 or use the "stop-all" feature. When editing an application, checking the "stop-all" box and saving the changes accomplishes this. If you're working with applications based on CNPG (cloudnative-postgres), the same methods apply, ensuring a safe shutdown.

+

stop-all

+

If you prefer using Heavyscript, a specialized script for TrueNAS Scale, it offers a secure way to stop apps, including those utilizing CNPG. By default, Heavyscript employs the "stop-all" function to ensure a graceful shutdown.

+

Simple commands for heavyscript:

+

stop: heavyscript app -x gamevault-backend

+

start: heavyscript app -s gamevault-backend

+

Keep in mind that TrueNAS Scale does not support third-party operators. Consequently, relying on the stop button within the TrueNAS Scale GUI, often considered an IX (iXsystems) hack in the Kubernetes space, is not recommended. For a dependable and supported approach, opt for the replica settings, "stop-all" checkbox, or leverage Heavyscript.

+

Reading the Logs

+

Navigate to "Apps" and choose the GameVault-backend App you have created.

+

In workloads, select any of the white boxes with lines icon; thats the logs button.

+

gamevault-workloads-logs-1

+

You have to select the correct main pod and container

+

gamevault-workloads-logs-2

+

Once you selected the main pod and container pod; you should see the logs for the app

+

gamevault-workloads-logs-3

+

You can then download the logs, but you might have to reselect the correct pods again when downloading the logs.

+

gamevault-workloads-logs-4

+ + \ No newline at end of file diff --git a/docs/server-docs/setup/truenas-scale/index.html b/docs/server-docs/setup/truenas-scale/index.html index 419270aa5..bfdb22006 100644 --- a/docs/server-docs/setup/truenas-scale/index.html +++ b/docs/server-docs/setup/truenas-scale/index.html @@ -2,63 +2,84 @@ - + Using TrueNAS Scale | GameVault - - - + + + -

Using TrueNAS Scale

TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.

-

Setting up a GameVault Server on TrueNAS Scale is just a click away by using our template from the Truecharts Catalog, -a community based catalog for TrueNAS Scale.

-

Prerequisites

+

Using TrueNAS Scale

TrueNAS Scale is an open-source, hyper-converged storage platform that combines the reliability of TrueNAS with the versatility of Linux, providing a unified solution for storage, virtualization, and containerization in a single, easy-to-manage system.

+

Since the release of TrueNAS Scale version 24.10 (Electric Eel), Docker is now used to run apps on TrueNAS Scale. With the use of Docker Compose, setting up a GameVault Server on TrueNAS Scale is quick and easy!

+

If you are using an older version of TrueNAS Scale, please use the legacy documentation: TrueNAS Scale - Legacy

+

Prerequisites

    -
  • a running TrueNAS Scale Server!
  • -
  • add the TrueChartsCatalog
  • -
  • Install the following operators from TrueCharts; prometheus-operator and cloudnative-pg.
  • +
  • a running TrueNAS Scale Server (version 24.10 or newer)
  • +
  • an understanding of storage/users in TrueNAS Scale
  • +
  • a docker-compose.yml file that you have already configured by following the Using Docker Compose and Configuration pages.
-

Step 1: Log in to your TrueNAS Scale Dashboard

-

Step 1

-

Step 2: Navigate to the catalog Page in TrueNas Scale

-

Go to apps -> discover -> catalogs.

-

Step 2

-

Validate that TrueCharts catalog was added to the server, if not refer back to the Prerequisites section.

-

Step 3: Navigate to Apps and Disover Page

-

Go to apps -> discover and search for gamevault-backend

-

Step 3

-

Step 4: Configure and Install gamevault-backend

-

Step 4

-

Step 4a

-

Scroll down to App Configuration.

-

Set your Admin User and Admin Password.

-

Step 4b

-
note

Leave the Logs and Images storage options as PVC.

-

Games storage option can be safely set hostpath if not using using any shares or switch to NFS otherwise; please follow the Dataset and Share Setup guide.

-

Step 4c

-

Scroll down to Documentation and click install, wait a few minutes and the app should deploy!

-

Installed

-

Conclusion

-

You have now successfully set up your GameVault Server using TrueNAS Scale.

+

Step 1: Log in to your TrueNAS Scale Dashboard

+

Step 1

+

Step 2: Configure User/Storage for GameVault

+

Configuring User

+

By default, GameVault will try to run as user ID 1000 and group ID 1000. However, this will not normally work in TrueNAS Scale. Instead, you will need to specify which user/group ID GameVault should use. You can create a new user, or use an existing one!

+

In your docker-compose.yml, file add the PUID and PGID variables to the gamevault-backend environment variables. +For simplicity, we will use the "apps" user/group which is built-in to TrueNAS Scale and uses ID number 568 for both PUID and PGID.

+
PUID: 568
PGID: 568
+

Configuring Storage

+

GameVault expects three directories:

+
    +
  • a directory where your games are located - mounted to the /files directory internally
  • +
  • a directory for GameVault to store the database files - mounted to the /var/lib/postgresql/data directory internally
  • +
  • a database for GameVault to store its media - mounted to the /media directory internally
  • +
+

These directories will need to be created before you can deploy GameVault on your TrueNAS Scale server. +If you have not yet done so, create the needed directories before continuing, and ensure your chosen user has read/write access to all three of the directories.

+

Step 2a: Setting your GameVault Admin user

+

You can specify a username that will be given the Admin role upon registration in GameVault. Add the following variable to your docker-compose.yml file under the gamevault-backend environment variables. Set it to your desired GameVault username, and your account will be given the Admin role once you register!

+
SERVER_ADMIN_USERNAME: YourUsernameHere
+

Make sure to register your admin account using the same username!

+

When finished, your docker-compose.yml file should look something like this:

+
services:
gamevault-backend:
image: phalcode/gamevault-backend:latest
restart: unless-stopped
environment:
PUID: 568
PGID: 568
SERVER_ADMIN_USERNAME: YourUsernameHere
DB_HOST: db
DB_USERNAME: gamevault
DB_PASSWORD: YOURPASSWORDHERE
volumes:
# Mount the folder where your games are
- /mnt/yourgames:/files
# Mount the folder where GameVault should store its media
- /mnt/GameVault/media:/media
ports:
- 8080:8080/tcp
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: gamevault
POSTGRES_PASSWORD: YOURPASSWORDHERE
POSTGRES_DB: gamevault
volumes:
# Mount the folder where your PostgreSQL database files should land
- /mnt/GameVault/database:/var/lib/postgresql/data
+

You are now ready to deploy GameVault!

+

Step 3: Navigate to Apps and Disover Page

+

Go to apps -> discover

+

Scale-EE-Step-3

+

Step 4: Select "Install via YAML"

+

Click the three dot icon next the the "Custom App" button:

+

Scale-EE-Step-4

+

Then, select the option to "Install via YAML":

+

Scale-EE-Step-4a

+

In the pop-out window, enter the name of the custom app: for this example we used "gamevault-backend"

+

Then, paste the entire contents of your docker-compose.yml file into the "Custom Config" section:

+

Scale-EE-Step-4b

+

Make sure you have all your needed changes per the rest of the documentation, then click "Save".

+

The system will automatically do all the setup and return you to the main Apps pages when complete!

+

Conclusion

+

You have now successfully set up your GameVault Server using TrueNAS Scale!

Click here to continue.

-

Additional Info

-

Stopping the Server

-

To stop the server in TrueNAS Scale, you can click on the gamevault-backend app and then edit the app; set the replicas to 0 or use the "stop-all" feature. When editing an application, checking the "stop-all" box and saving the changes accomplishes this. If you're working with applications based on CNPG (cloudnative-postgres), the same methods apply, ensuring a safe shutdown.

-

stop-all

-

If you prefer using Heavyscript, a specialized script for TrueNAS Scale, it offers a secure way to stop apps, including those utilizing CNPG. By default, Heavyscript employs the "stop-all" function to ensure a graceful shutdown.

-

Simple commands for heavyscript:

-

stop: heavyscript app -x gamevault-backend

-

start: heavyscript app -s gamevault-backend

-

Keep in mind that TrueNAS Scale does not support third-party operators. Consequently, relying on the stop button within the TrueNAS Scale GUI, often considered an IX (iXsystems) hack in the Kubernetes space, is not recommended. For a dependable and supported approach, opt for the replica settings, "stop-all" checkbox, or leverage Heavyscript.

-

Reading the Logs

+

Additional Info

+

Stopping the Server

+

To stop the GameVault server, navigate to the main Apps page, and check the box next to your running instance of gamevault:

+

Scale-EE-Stop1

+

Then, click the drop-down menu for "Select action", and choose "Stop All Selected"

+

Scale-EE-Stop2

+

This will shutdown GameVault and the database.

+

Reading the Logs

Navigate to "Apps" and choose the GameVault-backend App you have created.

-

In workloads, select any of the white boxes with lines icon; thats the logs button.

-

gamevault-workloads-logs-1

-

You have to select the correct main pod and container

-

gamevault-workloads-logs-2

-

Once you selected the main pod and container pod; you should see the logs for the app

-

gamevault-workloads-logs-3

-

You can then download the logs, but you might have to reselect the correct pods again when downloading the logs.

-

gamevault-workloads-logs-4

+

Under the "Workloads" section, you will see two "Containers" running:

+

Scale-EE-logs1

+

Click the "veiw logs" icon next to either the database container (db) or the gamevault container (gamevault-backend) to open the logs:

+

Scale-EE-logs2

+

In the new window that opens, choose the number of previous log lines you would like to view (500 is normal), then click "Connect":

+

Scale-EE-logs3

+

You will see the previous number of log lines up to the number you entered, and all new log entries will appear as they are written!

+

Troubleshooting

+

If you recieve any errors while trying to save your GameVault configuration, be sure that all indents/spacing is correct YAML syntax. +You can try a few things to ensure proper formatting:

+
    +
  • Use a text editor that maintains indents properly, such as Notepad++
  • +
  • Copy the example docker-compose.yml file from above, paste it directly into the configuration window, and add your changes directly. This can help ensure consistent formatting.
  • +
\ No newline at end of file diff --git a/docs/server-docs/setup/unraid/index.html b/docs/server-docs/setup/unraid/index.html index 0f123798a..82a89e209 100644 --- a/docs/server-docs/setup/unraid/index.html +++ b/docs/server-docs/setup/unraid/index.html @@ -2,48 +2,48 @@ - + Using UNRAID | GameVault - - - + + + -

Using UNRAID

Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.

+

Using UNRAID

Unraid is a storage operating system that allows users to create a centralized and scalable network-attached storage (NAS) solution, utilizing a unique array of drives with different sizes and types while offering the flexibility to run virtual machines and Docker containers.

You can easily set up a GameVault Server by using one of our templates from the Unraid Community Applications Store.

-

Prerequisites

+

Prerequisites

-

Step 1: Setting up the Database

+

Step 1: Setting up the Database

Log into your Unraid dashboard and navigate to your apps section of the dashboard and search for the offical postgresql15 Community Application by postgres

-

Step 1

-

Step 2: Install POSTGRES

+

Step 1

+

Step 2: Install POSTGRES

Using the default configuration making sure you add the following entries:

-
POSTGRES_USER: gamevault
POSTGRES_PASSWORD: RANDOMPASSWORD
POSTGRES_DB: gamevault
+
POSTGRES_USER: gamevault
POSTGRES_PASSWORD: RANDOMPASSWORD
POSTGRES_DB: gamevault

Make sure you remember the password and port you set we will use this in step 3

-

Step 2

-

Step 3: Setting up your GameVault Backend server

+

Step 2

+

Step 3: Setting up your GameVault Backend server

Search for gamevault-backend on the Unraid app store making sure to click the one without the SQLITE in the title.

Click install

-

Step 3

-

Alternative Step 3: Running without a PostgreSQL Database

+

Step 3

+

Alternative Step 3: Running without a PostgreSQL Database

We don't recommend it but you can run GameVault without a PostgreSQL Database too by instead using the GameVault-Backend-SQLITE template by phalcode in Step 2.

-

Step 4: Configure install

+

Step 4: Configure install

Using the password and port fill out the information that is required and click apply at the bottom.

-

Step 4

+

Step 4

Your GameVault should now be available at http://tower.local:8080/ or HOSTNAME:PORT if you changed your hostname or port.

-

Conclusion

+

Conclusion

You have now successfully set up your GameVault Server using UNRAID.

Click here to continue.

-

Additional Info

-

Stopping the Server

+

Additional Info

+

Stopping the Server

Navigate to "Docker" tab and left click the GameVault app icon you have created.

Click on "Stop".

-

Reading the Logs

+

Reading the Logs

Navigate to "Docker" tab and left click the GameVault app icon you have created.

Click on "Logs".

-

This should bring a pop-up window of the currently logs of the server.

+

This should bring a pop-up window of the currently logs of the server.

\ No newline at end of file diff --git a/docs/server-docs/structure/index.html b/docs/server-docs/structure/index.html index 09491b5f3..702beeade 100644 --- a/docs/server-docs/structure/index.html +++ b/docs/server-docs/structure/index.html @@ -2,25 +2,25 @@ - + File and Folder Structure | GameVault - - - + + + -

File and Folder Structure

+

File and Folder Structure

If you want to set up a GameVault Server, you need to pay attention to the file and folder structure. The volume mapped to the /files directory must contain your games. These games must be named correctly and should either be archived in one of the supported archive formats listed below or be a single-file executable as described below to be accurately detected by GameVault.

-

Supported Archive Formats

+

Supported Archive Formats

GameVault supports all file formats 7zip 23.01 (2023-06-20) does:

.7z .xz .bz2 .gz .tar .zip .wim .ar .arj .cab .chm .cpio .cramfs .dmg .ext .fat .gpt .hfs .ihex .iso .lzh .lzma .mbr .msi .nsis .ntfs .qcow2 .rar .rpm .squashfs .udf .uefi .vdi .vhd .vmdk .wim .xar .z

-

Single File Executable

+

Single File Executable

We recommend archiving games to save storage and bandwidth. However, if the game is just a single file executable, like setup_game.exe or setup_game.sh, you can import it into GameVault without archiving. Just be sure to rename it as described below for compatibility with GameVault (e.g. Minecraft (v1.12) (2011).exe). By default, GameVault autodetects the game type of single-file executables as a setup-type game. In rare cases, games can be single portable executables without additional setup. If that's the case, make sure to mark the games as "Portable" using the type override.

Supported Executables:
.exe .sh

-
Downloading single-file executables

Single-file executables are packed into a .tar file (no compression) and cached in the server's /tmp folder on-the-fly when users download them, to make them compatible with the GameVault Client. The cached files are reused until deleted by a Server Restart.

-

Naming Convention for Games

+
Downloading single-file executables

Single-file executables are packed into a .tar file (no compression) and cached in the server's /tmp folder on-the-fly when users download them, to make them compatible with the GameVault Client. The cached files are reused until deleted by a Server Restart.

+

Naming Convention for Games

The name of each game file must follow this format:

Title (Version) (EarlyAccess) (GameType) (NoCache) (ReleaseYear).zip

Note that the parentheses must be included, and the naming convention is case sensitive.

@@ -29,14 +29,14 @@

Here's an example of a file that follows this convention:

Far Cry 6 (v1.5.0) (2021).zip

By following this naming convention and using the common values listed in the table above, you can ensure that your games are detected correctly by GameVault.

-
Illegal Filenames and Characters
    +
    Illegal Filenames and Characters
    • File names must not contain the following characters: /, <, >, :, ", \, |, ?, and *. Replace these problematic characters with appropriate ones to ensure compatibility across all systems.
    • Avoid ending file names with spaces or dots.
    • Avoid using text within Round brackets such as (GOTY) in your file names, as GameVault will remove them. Round brackets are reserved for the different flags mentioned above. Use square brackets instead: [GOTY]
    • Do not use reserved file names such as CON, PRN, AUX, NUL, COM(1-9), LPT(1-9), etc.
    • Avoid using multiple chained extensions like .tar.gz or .tar.bz2. Instead, use only the last extension like .gz or .bz2.
    -

    Other Examples

    +

    Other Examples

    Here are some other valid examples of game names that follow the naming convention:

    • Star Wars Jedi - Fallen Order(v1.0.10.0) (2019).zip
    • @@ -47,6 +47,6 @@

      Other Example
    • Stray (2022).7z
    • Captain of Industry (v0.4.12b) (EA) (2022).gz
    • Minecraft (2011).exe
    • -

+
\ No newline at end of file diff --git a/docs/server-docs/updating-games/index.html b/docs/server-docs/updating-games/index.html index bbc3e537f..59155714f 100644 --- a/docs/server-docs/updating-games/index.html +++ b/docs/server-docs/updating-games/index.html @@ -2,18 +2,18 @@ - + Updating Games | GameVault - - - + + + -

Updating Games

-

Applying an Update to a Game

+

Updating Games

+

Applying an Update to a Game

To update a game, simply delete the existing game file and replace it with a new one in the files directory (by default /files).

You can freely modify the early access and version flags of your game. As long as the path or the combination of title and release year of the new file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be restored if needed and updated with the new file's information, while preserving any progress associated with the game.

-

Example

+

Example

Let's say you have a very outdated version of the game Minecraft (EA) (v1.8b) (2011).zip and you want to update it to the newest version, such as Minecraft (v1.20.1) (2011).7z:

  1. @@ -27,7 +27,7 @@

    Exampleadding the same game multiple times.

    -

    Changing or Moving a Game

    -

    Changing or moving a game is also a breeze. As long as the path or the combination of title and release year of the moved or renamed file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be updated with the new file's information, while preserving any progress associated with the game.

+

Changing or Moving a Game

+

Changing or moving a game is also a breeze. As long as the path or the combination of title and release year of the moved or renamed file matches the old file, GameVault's indexer will recognize it as an update. The same game entity will be updated with the new file's information, while preserving any progress associated with the game.

\ No newline at end of file diff --git a/docs/server-docs/user-management/index.html b/docs/server-docs/user-management/index.html index 00c5b8d52..60a909c75 100644 --- a/docs/server-docs/user-management/index.html +++ b/docs/server-docs/user-management/index.html @@ -2,41 +2,41 @@ - + User Management | GameVault - - - + + + -

User Management

+

User Management

This documentation provides instructions on user management for the GameVault server. User management involves configuring the initial admin user, enabling/disabling user registration, managing user activation, and assigning roles. These features are crucial for controlling user access, maintaining security, and administering the server effectively.

-

Admin User

-

Initial Setup

-
warning

GameVault does not register the first admin account for you. You will need to do that yourself.

+

Admin User

+

Initial Setup

+
warning

GameVault does not register the first admin account for you. You will need to do that yourself.

The first registered user on a server is automatically activated and granted admin permissions. You can register it using the GameVault Client Application.

-

Admin Role Recovery

+

Admin Role Recovery

If you lost your admin permissions due to misconfiguration, you can fix this by using the SERVER_ADMIN_USERNAME environment variable. Simply set this variable to the username of the user you wish to elevate to admin role. Upon server startup, GameVault will automatically grant admin permissions to the specified username provided in this configuration variable.

-

Admin Password Recovery

+

Admin Password Recovery

In the event that the server owner gets locked out of the admin user account due to password loss or other reasons, the GameVault Server provides an easy way to recover access.

First, set the SERVER_ADMIN_USERNAME environment variable to the username of the admin user you wish to reset the password for. Then, set the SERVER_ADMIN_PASSWORD environment variable to the desired password for the admin user.

For example:

-
SERVER_ADMIN_USERNAME=gamevaultfan1
SERVER_ADMIN_PASSWORD=hunter2
+
SERVER_ADMIN_USERNAME=gamevaultfan1
SERVER_ADMIN_PASSWORD=hunter2

Upon the next startup of the GameVault server, the admin user's password will be updated to the specified password, allowing the user to regain access.

-

User Registration

+

User Registration

You have the option to enable or disable new user registration. When tighter control is needed, you can opt to disable public registration.

Simply set the SERVER_REGISTRATION_DISABLED environment variable to true to easily deactivate the public user registration API in GameVault. This prevents new users from creating accounts and accessing the application.

However, even when public registration is closed, authenticated administrators retain the ability to register new users.

-

User Activation

+

User Activation

The activation process is a crucial step to authorize and activate new user accounts. By default, newly registered users are required to be activated by an administrator before they can fully utilize the application.

Unactivated users have limited rights, even less than the rights of a guest role user. They are treated as unauthenticated and can not access most APIs. Admins are exempt from activation checks. They can activate new users through the admin panel within the GameVault application.

However, if you wish to bypass the mandatory activation step and allow new users to immediately gain full access to GameVault, you can disable the activation process. Simply set the SERVER_ACCOUNT_ACTIVATION_DISABLED environment variable to true. This activates users automatically upon registration, removes the activation requirement and grants immediate access to new users.

-

User Roles

+

User Roles

Roles play a crucial role in ensuring the security and proper functioning of the GameVault server. They determine the permissions and access levels granted to users within the application.

GameVault implements the following roles:

RoleDescriptionLevel
GuestThis role allows users to view most content within the application.1
Users (Default)This role includes permissions such as downloading games, creating progresses, and editing the user's own profile.2
EditorsEditors have the ability to edit and remap games within the application.3
AdminsAdmins possess full control over user management and can edit user profiles.4
-

By assigning appropriate roles to users, you can ensure that they have the necessary access and privileges based on their responsibilities.

+

By assigning appropriate roles to users, you can ensure that they have the necessary access and privileges based on their responsibilities.

\ No newline at end of file diff --git a/docs/server-docs/websockets/index.html b/docs/server-docs/websockets/index.html index a40c7a957..b81b41537 100644 --- a/docs/server-docs/websockets/index.html +++ b/docs/server-docs/websockets/index.html @@ -2,20 +2,20 @@ - + WebSockets | GameVault - - - + + + -

WebSockets

-
Work in progress

GameVault doesn't fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it's just a basic version to begin with on the server. If you're interested in how we're doing with implementing Websockets, you can check out this page on GitHub to see our progress.

+

WebSockets

+
Work in progress

GameVault doesn't fully use Websockets yet. Both the client and the server are still lacking a full implementation. Right now, it's just a basic version to begin with on the server. If you're interested in how we're doing with implementing Websockets, you can check out this page on GitHub to see our progress.

In GameVault Backend Version 9.0.0, we introduced an exciting feature – WebSockets. These WebSockets provide an asynchronous and bidirectional gateway for interactive communication with clients. Our implementation is based on Socket.io, which itself relies on the WebSocket protocol.

WebSockets enable real-time communication between the server and clients. This means that not only can the server send data to clients when they ask for it, but the server can also initiate conversations with the clients.

To use this feature effectively, you need to ensure that Web-Socket Support is enabled on your machine, network, or reverse proxy.

The API is documented via AsyncAPI standard in /api/docs/async. However, please note that, at the time of writing, this documentation may not run on Docker due to a bug. If you encounter this issue, you can refer to the source code for manual implementation.

-

Activities

+

Activities

Starting from GameVault Backend Version 9.0.0, GameVault allows clients to share their current activities on the server. These activities provide valuable information about what users are doing, making the platform more interactive. Activities can include:

Once a user reports his activity, it will propagate to all other users. Clients have the freedom to report their activities. If they don't, the server will display them as offline by default.

-

Disabling Activities

+

Disabling Activities

For server owners who wish to disable activities, it's as simple as setting the SERVER_ONLINE_ACTIVITIES_DISABLED environment variable to true. Please be aware that, depending on your clients implementation, this might result in everyone appearing as offline all the time.

-

Security

-

Each user is assigned a randomly generated Socket Secret that they can retrieve at /api/users/me. This secret must be included in the headers (X-Socket-Secret) of every subsequent Socket.IO Handshake request to the server.

+

Security

+

Each user is assigned a randomly generated Socket Secret that they can retrieve at /api/users/me. This secret must be included in the headers (X-Socket-Secret) of every subsequent Socket.IO Handshake request to the server.

\ No newline at end of file diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 48ed30f9b..054254feb 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -2,17 +2,17 @@ - + Troubleshooting | GameVault - - - + + + -

Troubleshooting

+

Troubleshooting

Below, we will gradually list some common issues and corresponding solutions to help you maximize the potential of your app. If you can't find a solution to your problem here, feel free to open a ticket on our Github board or seek assistance via Discord. Alternatively, you may also directly email our company address if the issue is confidential.

-
How to report an issue

Always provide as much information as possible so that we can reproduce the problem, and always attach a full (from the start of the server to when the problem occurs) log file with the SERVER_LOG_LEVEL env-var set to debug. You must not shorten log files. It just makes it harder for us to understand what went wrong. We know they get big, but we know how to read them.

-

All-Rounder Solutions that Fix Most Problems

+
How to report an issue

Always provide as much information as possible so that we can reproduce the problem, and always attach a full (from the start of the server to when the problem occurs) log file with the SERVER_LOG_LEVEL env-var set to debug. You must not shorten log files. It just makes it harder for us to understand what went wrong. We know they get big, but we know how to read them.

+

All-Rounder Solutions that Fix Most Problems

I can't mention these in every single Section below, so before you try to solve anything, try these:

  • Check if the server is running healthy and is reachable from your client.
  • @@ -20,24 +20,24 @@

    Server for any issues with Configuration.

-

Common Problems and Solutions

-

Incorrect Game Mapping

+

Common Problems and Solutions

+

Incorrect Game Mapping

  • Refer to this for instructions on how to remap your games.
-

Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error

+

Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error

This is most probably a permissions issue due to the fact that gamevault runs as a non-root user (1000:1000) by default for security purposes.

Either make sure this user has permissions to read/write to the folders you map in as volumes, or run GameVault with a user that has the permissions to do so. You can do this by using the PUID & PGID environment variables.

-

Unable to Connect to Server / 500 Internal Server Error

+

Unable to Connect to Server / 500 Internal Server Error

  • Ensure that you use the correct protocol (http or https) in the connection string, particularly if your server doesn't support SSL.
  • If you have disabled authentication in your server configuration, make sure to include the authentication header for user-specific requests. See here for more information.
-

Initial Admin User is not working

+

Initial Admin User is not working

  • You need to register the first user. It is automatically activated and granted admin permissions.
-

Games Not Appearing in the Installations / Servers List

+

Games Not Appearing in the Installations / Servers List

-

Missing Box Arts

+

Missing Box Arts

-

Lack of Metadata in Games

+

Lack of Metadata in Games

-

Lost my Admin Role

+

Lost my Admin Role

  • Refer to this for instructions on how to regain admin privileges for your user.
-

Forgot my Admin Password

+

Forgot my Admin Password

  • Refer to this for instructions on how to reset the password of your admin user.
-

Game Downloads are slow

+

Game Downloads are slow

  • Make sure the Clients Bandwidth Speed Limit is unset under Settings -> Application
  • Make sure the Servers Bandwidth Speed Limit is unset (SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS environment variable unset or 0)
  • Restart your Client and Server
  • If your server is in your LAN, make sure you don't mistakenly access it from WAN
  • Check your middle-mans: Proxies, VPNs and older Network Hardware could all affect the download speeds.
  • -
+
\ No newline at end of file diff --git a/img/docs/setup/scale/Scale-EE-Step-3.png b/img/docs/setup/scale/Scale-EE-Step-3.png new file mode 100644 index 000000000..d8458546d Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Step-3.png differ diff --git a/img/docs/setup/scale/Scale-EE-Step-4.png b/img/docs/setup/scale/Scale-EE-Step-4.png new file mode 100644 index 000000000..58ab49fd9 Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Step-4.png differ diff --git a/img/docs/setup/scale/Scale-EE-Step-4a.png b/img/docs/setup/scale/Scale-EE-Step-4a.png new file mode 100644 index 000000000..965fea8e6 Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Step-4a.png differ diff --git a/img/docs/setup/scale/Scale-EE-Step-4b.png b/img/docs/setup/scale/Scale-EE-Step-4b.png new file mode 100644 index 000000000..7f0d75622 Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Step-4b.png differ diff --git a/img/docs/setup/scale/Scale-EE-Stop1.png b/img/docs/setup/scale/Scale-EE-Stop1.png new file mode 100644 index 000000000..ce44decad Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Stop1.png differ diff --git a/img/docs/setup/scale/Scale-EE-Stop2.png b/img/docs/setup/scale/Scale-EE-Stop2.png new file mode 100644 index 000000000..a9dc92ca1 Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-Stop2.png differ diff --git a/img/docs/setup/scale/Scale-EE-logs1.png b/img/docs/setup/scale/Scale-EE-logs1.png new file mode 100644 index 000000000..d068a7a56 Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-logs1.png differ diff --git a/img/docs/setup/scale/Scale-EE-logs2.png b/img/docs/setup/scale/Scale-EE-logs2.png new file mode 100644 index 000000000..2ce92b22b Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-logs2.png differ diff --git a/img/docs/setup/scale/Scale-EE-logs3.png b/img/docs/setup/scale/Scale-EE-logs3.png new file mode 100644 index 000000000..b1781c94a Binary files /dev/null and b/img/docs/setup/scale/Scale-EE-logs3.png differ diff --git a/index.html b/index.html index b6cbfe6a2..ca3117fdc 100644 --- a/index.html +++ b/index.html @@ -2,13 +2,13 @@ - + GameVault | GameVault - - - + + + -

Create your own
gaming platform.

Hoarding video games is fun, but a chaotic list of files on a network share is not.
Let GameVault organize everything for you and enjoy a selfhosted Steam-like experience for games on your own home server.

Learn more

🎮 Browse Your Games

Browse your server's beautifully organized library to download, install and play your collection of video games of all kinds!

👯 Build Your Community

Share your platform with your friends and family so they can enjoy your library, too. Administrate your users and games.

⏱️ Track Your Progress

See how long you or your friends have been playing a game, find out what they are and keep track of what you've already completed or abandoned.

🔎 Automatic Metadata Enrichment

GameVault automatically enriches your game with all the juicy information and and images from the largest video game database.

📦 Easy To Use

There’s no need to compile any code! The app is readily available in the Microsoft Store. Plus, installing games and setting up a server is equally straightforward!

👥 Join The Movement

👥 Join The Movement

Join our growing community , star us on GitHub, or even contribute to our source-available project! Everyone can help!

Frequently asked questions

If you can’t find what you’re looking for here, check out the Docs or contact us via Discord, GitHub, or Email

    • Does GameVault combine my gaming platforms in one place?

      No, GameVault is not for combining games from different platforms into one app. Rather, it's for managing your own gaming platform with your own game files hosted on your server.

    • Is GameVault open-source?

      No, GameVault is source-available, meaning the code is open for you to explore and modify for personal use. However, you may not use it for commercial purposes.

    • Is GameVault a tool for piracy?

      No, it isn't. GameVault is designed to manage legally obtained DRM-free games. While it can technically be used with illegally obtained games, we do not endorse or support piracy. We encourage users to comply with copyright laws. Unlawful use is strictly improper and unauthorized.

    • Does GameVault work with games from Steam, Epic Games, Microsoft, etc.?

      Usually not. GameVault is made for games you own and only works with DRM-free games, either pure game files or installers. Most platforms use DRM, but there are exceptions like GOG and Humble Bundle that don’t.

    • Is there a native client for Mac or Linux?

      No, apart from emulation or community-maintained clients, there is currently no native Linux or Mac GameVault client application.

    • Does GameVault have anything to do with gambling?

      No, absolutely not. There's just a gambling app with a similar name on the market. If you're struggling with gambling addiction, please seek help.

    • Does GameVault stream games?

      No, GameVault has nothing to do with streaming. It's simply an app to organize and browse your game library in a Steam-like experience and share it with your community.

    • Does GameVault cost any money?

      No, the core features of GameVault are and will always be free. However, we do offer a paid GameVault+ subscription for some additional extra features, which you can subscribe to if you'd like to continuously support our work.

    • What was the former name of GameVault?

      The first rule of GameVault is: you do not talk about the former name of GameVault.

*In case you're wondering, all depicted games on this website are placeholders and not real

+

Create your own
gaming platform.

Hoarding video games is fun, but a chaotic list of files on a network share is not.
Let GameVault organize everything for you and enjoy a selfhosted Steam-like experience for games on your own home server.

Learn more

🎮 Browse Your Games

Browse your server's beautifully organized library to download, install and play your collection of video games of all kinds!

👯 Build Your Community

Share your platform with your friends and family so they can enjoy your library, too. Administrate your users and games.

⏱️ Track Your Progress

See how long you or your friends have been playing a game, find out what they are and keep track of what you've already completed or abandoned.

🔎 Automatic Metadata Enrichment

GameVault automatically enriches your game with all the juicy information and and images from the largest video game database.

📦 Easy To Use

There’s no need to compile any code! The app is readily available in the Microsoft Store. Plus, installing games and setting up a server is equally straightforward!

👥 Join The Movement

👥 Join The Movement

Join our growing community , star us on GitHub, or even contribute to our source-available project! Everyone can help!

Frequently asked questions

If you can’t find what you’re looking for here, check out the Docs or contact us via Discord, GitHub, or Email

    • Does GameVault combine my gaming platforms in one place?

      No, GameVault is not for combining games from different platforms into one app. Rather, it's for managing your own gaming platform with your own game files hosted on your server.

    • Is GameVault open-source?

      No, GameVault is source-available, meaning the code is open for you to explore and modify for personal use. However, you may not use it for commercial purposes.

    • Is GameVault a tool for piracy?

      No, it isn't. GameVault is designed to manage legally obtained DRM-free games. While it can technically be used with illegally obtained games, we do not endorse or support piracy. We encourage users to comply with copyright laws. Unlawful use is strictly improper and unauthorized.

    • Does GameVault work with games from Steam, Epic Games, Microsoft, etc.?

      Usually not. GameVault is made for games you own and only works with DRM-free games, either pure game files or installers. Most platforms use DRM, but there are exceptions like GOG and Humble Bundle that don’t.

    • Is there a native client for Mac or Linux?

      No, apart from emulation or community-maintained clients, there is currently no native Linux or Mac GameVault client application.

    • Does GameVault have anything to do with gambling?

      No, absolutely not. There's just a gambling app with a similar name on the market. If you're struggling with gambling addiction, please seek help.

    • Does GameVault stream games?

      No, GameVault has nothing to do with streaming. It's simply an app to organize and browse your game library in a Steam-like experience and share it with your community.

    • Does GameVault cost any money?

      No, the core features of GameVault are and will always be free. However, we do offer a paid GameVault+ subscription for some additional extra features, which you can subscribe to if you'd like to continuously support our work.

    • What was the former name of GameVault?

      The first rule of GameVault is: you do not talk about the former name of GameVault.

*In case you're wondering, all depicted games on this website are placeholders and not real

\ No newline at end of file diff --git a/search-index-blog_posts_list.json b/search-index-blog_posts_list.json index e0645c798..9f1a211ec 100644 --- a/search-index-blog_posts_list.json +++ b/search-index-blog_posts_list.json @@ -1 +1 @@ -{"documents":[{"id":41,"pageTitle":"","sectionTitle":"Quick Migration Update and new Logo","sectionRoute":"/blog/page/2","type":"blog"},{"id":42,"pageTitle":"","sectionTitle":"A New Name","sectionRoute":"/blog/page/2","type":"blog"},{"id":43,"pageTitle":"","sectionTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionRoute":"/blog/page/2","type":"blog"},{"id":44,"pageTitle":"","sectionTitle":"Battling Harassment and Trolls in Our App Community","sectionRoute":"/blog/page/2","type":"blog"},{"id":45,"pageTitle":"","sectionTitle":"Choosing a New, Family-Friendly Name for this project!","sectionRoute":"/blog/page/2","type":"blog"},{"id":46,"pageTitle":"","sectionTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionRoute":"/blog/page/2","type":"blog"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/41",[0,1.618,1,0.068,2,0.068,3,0.728,4,1.618]],["content/41",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/41",[17,0.177,18,0.506,19,0.506,20,0.506,21,0.506,22,0.506,23,0.506,24,0.506,25,0.506,26,0.506,27,0.506,28,0.506,29,0.506,30,0.506,31,0.506,32,0.506,33,0.506,34,0.506,35,0.506,36,0.506,37,0.506,38,0.506,39,0.506,40,0.506,41,0.506,42,0.506,43,0.506,44,0.506,45,0.506,46,0.506,47,0.506,48,0.506,49,0.506,50,0.506,51,0.506,52,0.506,53,0.506,54,0.338,55,0.506,56,0.506,57,0.506,58,0.338,59,0.506,60,0.506,61,0.506,62,0.506,63,0.506,64,0.506,65,0.338,66,0.506,67,0.506,68,0.506,69,0.506,70,0.506,71,0.506,72,0.506,73,0.506,74,0.506,75,0.88,76,0.506,77,0.506,78,0.506,79,0.506,80,0.506,81,0.506,82,0.506,83,0.506,84,0.506,85,0.506,86,0.338,87,0.506,88,0.506,89,0.506,90,0.338,91,0.506,92,0.506,93,0.506,94,0.506,95,0.506,96,0.506,97,0.506,98,0.506,99,0.506,100,0.506,101,0.506,102,0.506,103,0.506]],["title/42",[3,0.943,9,0.221]],["content/42",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/42",[]],["title/43",[17,0.228,104,1.504,105,1.504,106,1.504,107,1.504,108,1.504]],["content/43",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/43",[]],["title/44",[54,1.082,58,1.082,65,1.082,86,1.082,109,1.618]],["content/44",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/44",[]],["title/45",[3,0.677,9,0.159,110,1.504,111,1.504,112,1.504,113,1.504]],["content/45",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/45",[]],["title/46",[17,0.178,90,1.165,114,1.173,115,1.173,116,1.173,117,1.173,118,1.173,119,1.173,120,1.173]],["content/46",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/46",[]]],"invertedIndex":[["",{"_index":115,"title":{"46":{}},"content":{},"tags":{}}],["access",{"_index":16,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["ai-generated nam",{"_index":80,"title":{},"content":{},"tags":{"41":{}}}],["altern",{"_index":92,"title":{},"content":{},"tags":{"41":{}}}],["announc",{"_index":84,"title":{},"content":{},"tags":{"41":{}}}],["api",{"_index":100,"title":{},"content":{},"tags":{"41":{}}}],["app",{"_index":65,"title":{"44":{}},"content":{},"tags":{"41":{}}}],["applic",{"_index":14,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["avail",{"_index":107,"title":{"43":{}},"content":{},"tags":{}}],["backend",{"_index":13,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["backend application migr",{"_index":19,"title":{},"content":{},"tags":{"41":{}}}],["battl",{"_index":109,"title":{"44":{}},"content":{},"tags":{}}],["blackmail",{"_index":55,"title":{},"content":{},"tags":{"41":{}}}],["brief",{"_index":7,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["bug",{"_index":70,"title":{},"content":{},"tags":{"41":{}}}],["choos",{"_index":110,"title":{"45":{}},"content":{},"tags":{}}],["client application upd",{"_index":24,"title":{},"content":{},"tags":{"41":{}}}],["closer",{"_index":104,"title":{"43":{}},"content":{},"tags":{}}],["cloud-based game platform",{"_index":93,"title":{},"content":{},"tags":{"41":{}}}],["code access",{"_index":49,"title":{},"content":{},"tags":{"41":{}}}],["commun",{"_index":86,"title":{"44":{}},"content":{},"tags":{"41":{}}}],["community feedback",{"_index":32,"title":{},"content":{},"tags":{"41":{}}}],["complet",{"_index":12,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["control",{"_index":47,"title":{},"content":{},"tags":{"41":{}}}],["creepy behavior",{"_index":64,"title":{},"content":{},"tags":{"41":{}}}],["decision-mak",{"_index":85,"title":{},"content":{},"tags":{"41":{}}}],["develop",{"_index":62,"title":{},"content":{},"tags":{"41":{}}}],["discord channel",{"_index":28,"title":{},"content":{},"tags":{"41":{}}}],["discord serv",{"_index":101,"title":{},"content":{},"tags":{"41":{}}}],["documentation migr",{"_index":20,"title":{},"content":{},"tags":{"41":{}}}],["domain acquisit",{"_index":21,"title":{},"content":{},"tags":{"41":{}}}],["drm",{"_index":119,"title":{"46":{}},"content":{},"tags":{}}],["drm-free gam",{"_index":94,"title":{},"content":{},"tags":{"41":{}}}],["engag",{"_index":74,"title":{},"content":{},"tags":{"41":{}}}],["famili",{"_index":111,"title":{"45":{}},"content":{},"tags":{}}],["family-friendli",{"_index":78,"title":{},"content":{},"tags":{"41":{}}}],["feature request",{"_index":71,"title":{},"content":{},"tags":{"41":{}}}],["feedback",{"_index":81,"title":{},"content":{},"tags":{"41":{}}}],["file serv",{"_index":95,"title":{},"content":{},"tags":{"41":{}}}],["financial assist",{"_index":67,"title":{},"content":{},"tags":{"41":{}}}],["free",{"_index":120,"title":{"46":{}},"content":{},"tags":{}}],["friendli",{"_index":112,"title":{"45":{}},"content":{},"tags":{}}],["future develop",{"_index":89,"title":{},"content":{},"tags":{"41":{}}}],["game",{"_index":90,"title":{"46":{}},"content":{},"tags":{"41":{}}}],["gamehub",{"_index":36,"title":{},"content":{},"tags":{"41":{}}}],["gameshelf",{"_index":34,"title":{},"content":{},"tags":{"41":{}}}],["gamestash",{"_index":33,"title":{},"content":{},"tags":{"41":{}}}],["gamevault",{"_index":17,"title":{"43":{},"46":{}},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{"41":{}}}],["gamevault app",{"_index":69,"title":{},"content":{},"tags":{"41":{}}}],["gamevault domain",{"_index":39,"title":{},"content":{},"tags":{"41":{}}}],["gaming platform",{"_index":76,"title":{},"content":{},"tags":{"41":{}}}],["guy",{"_index":6,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["harass",{"_index":54,"title":{"44":{}},"content":{},"tags":{"41":{}}}],["harbor",{"_index":35,"title":{},"content":{},"tags":{"41":{}}}],["health monitor",{"_index":99,"title":{},"content":{},"tags":{"41":{}}}],["hey",{"_index":5,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["host",{"_index":117,"title":{"46":{}},"content":{},"tags":{}}],["hybrid model",{"_index":50,"title":{},"content":{},"tags":{"41":{}}}],["improv",{"_index":72,"title":{},"content":{},"tags":{"41":{}}}],["inclus",{"_index":82,"title":{},"content":{},"tags":{"41":{}}}],["introduc",{"_index":114,"title":{"46":{}},"content":{},"tags":{}}],["lemmy commun",{"_index":23,"title":{},"content":{},"tags":{"41":{}}}],["lemmy forum",{"_index":103,"title":{},"content":{},"tags":{"41":{}}}],["logo",{"_index":4,"title":{"41":{}},"content":{},"tags":{}}],["look",{"_index":105,"title":{"43":{}},"content":{},"tags":{}}],["market analysi",{"_index":37,"title":{},"content":{},"tags":{"41":{}}}],["metadata",{"_index":97,"title":{},"content":{},"tags":{"41":{}}}],["migrat",{"_index":1,"title":{"41":{}},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["migration fin",{"_index":29,"title":{},"content":{},"tags":{"41":{}}}],["motiv",{"_index":68,"title":{},"content":{},"tags":{"41":{}}}],["multi-user authent",{"_index":96,"title":{},"content":{},"tags":{"41":{}}}],["name",{"_index":9,"title":{"42":{},"45":{}},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["name migration progress",{"_index":18,"title":{},"content":{},"tags":{"41":{}}}],["natur",{"_index":108,"title":{"43":{}},"content":{},"tags":{}}],["negative narr",{"_index":59,"title":{},"content":{},"tags":{"41":{}}}],["new",{"_index":3,"title":{"41":{},"42":{},"45":{}},"content":{},"tags":{}}],["new logo",{"_index":26,"title":{},"content":{},"tags":{"41":{}}}],["new nam",{"_index":77,"title":{},"content":{},"tags":{"41":{}}}],["new name announc",{"_index":38,"title":{},"content":{},"tags":{"41":{}}}],["now",{"_index":15,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["open-sourc",{"_index":45,"title":{},"content":{},"tags":{"41":{}}}],["platform",{"_index":118,"title":{"46":{}},"content":{},"tags":{}}],["platform valu",{"_index":87,"title":{},"content":{},"tags":{"41":{}}}],["poll",{"_index":79,"title":{},"content":{},"tags":{"41":{}}}],["poll result",{"_index":30,"title":{},"content":{},"tags":{"41":{}}}],["progress",{"_index":8,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["project",{"_index":113,"title":{"45":{}},"content":{},"tags":{}}],["public",{"_index":63,"title":{},"content":{},"tags":{"41":{}}}],["quick",{"_index":0,"title":{"41":{}},"content":{},"tags":{}}],["racist",{"_index":61,"title":{},"content":{},"tags":{"41":{}}}],["rawg api",{"_index":98,"title":{},"content":{},"tags":{"41":{}}}],["reddit forum",{"_index":102,"title":{},"content":{},"tags":{"41":{}}}],["renaming app",{"_index":31,"title":{},"content":{},"tags":{"41":{}}}],["revenue gener",{"_index":52,"title":{},"content":{},"tags":{"41":{}}}],["safe environ",{"_index":60,"title":{},"content":{},"tags":{"41":{}}}],["self",{"_index":116,"title":{"46":{}},"content":{},"tags":{}}],["self-host",{"_index":91,"title":{},"content":{},"tags":{"41":{}}}],["self-hosted newslett",{"_index":42,"title":{},"content":{},"tags":{"41":{}}}],["selfhosted podcast",{"_index":41,"title":{},"content":{},"tags":{"41":{}}}],["software develop",{"_index":48,"title":{},"content":{},"tags":{"41":{}}}],["software licens",{"_index":51,"title":{},"content":{},"tags":{"41":{}}}],["sourc",{"_index":106,"title":{"43":{}},"content":{},"tags":{}}],["source-avail",{"_index":75,"title":{},"content":{},"tags":{"41":{}}}],["source-available softwar",{"_index":44,"title":{},"content":{},"tags":{"41":{}}}],["spam",{"_index":57,"title":{},"content":{},"tags":{"41":{}}}],["special thank",{"_index":40,"title":{},"content":{},"tags":{"41":{}}}],["specul",{"_index":27,"title":{},"content":{},"tags":{"41":{}}}],["subreddit migr",{"_index":22,"title":{},"content":{},"tags":{"41":{}}}],["success",{"_index":73,"title":{},"content":{},"tags":{"41":{}}}],["successfulli",{"_index":11,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["support",{"_index":66,"title":{},"content":{},"tags":{"41":{}}}],["test",{"_index":25,"title":{},"content":{},"tags":{"41":{}}}],["threat",{"_index":56,"title":{},"content":{},"tags":{"41":{}}}],["transition process",{"_index":43,"title":{},"content":{},"tags":{"41":{}}}],["transpar",{"_index":46,"title":{},"content":{},"tags":{"41":{}}}],["troll",{"_index":58,"title":{"44":{}},"content":{},"tags":{"41":{}}}],["updat",{"_index":2,"title":{"41":{}},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}],["user engag",{"_index":53,"title":{},"content":{},"tags":{"41":{}}}],["user particip",{"_index":83,"title":{},"content":{},"tags":{"41":{}}}],["vote",{"_index":88,"title":{},"content":{},"tags":{"41":{}}}],["we'v",{"_index":10,"title":{},"content":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}},"tags":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file +{"documents":[{"id":50,"pageTitle":"","sectionTitle":"Quick Migration Update and new Logo","sectionRoute":"/blog/page/2","type":"blog"},{"id":51,"pageTitle":"","sectionTitle":"A New Name","sectionRoute":"/blog/page/2","type":"blog"},{"id":52,"pageTitle":"","sectionTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionRoute":"/blog/page/2","type":"blog"},{"id":53,"pageTitle":"","sectionTitle":"Battling Harassment and Trolls in Our App Community","sectionRoute":"/blog/page/2","type":"blog"},{"id":54,"pageTitle":"","sectionTitle":"Choosing a New, Family-Friendly Name for this project!","sectionRoute":"/blog/page/2","type":"blog"},{"id":55,"pageTitle":"","sectionTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionRoute":"/blog/page/2","type":"blog"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/50",[0,1.618,1,0.068,2,0.068,3,0.728,4,1.618]],["content/50",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/50",[17,0.177,18,0.506,19,0.506,20,0.506,21,0.506,22,0.506,23,0.506,24,0.506,25,0.506,26,0.506,27,0.506,28,0.506,29,0.506,30,0.506,31,0.506,32,0.506,33,0.506,34,0.506,35,0.506,36,0.506,37,0.506,38,0.506,39,0.506,40,0.506,41,0.506,42,0.506,43,0.506,44,0.506,45,0.506,46,0.506,47,0.506,48,0.506,49,0.506,50,0.506,51,0.506,52,0.506,53,0.506,54,0.338,55,0.506,56,0.506,57,0.506,58,0.338,59,0.506,60,0.506,61,0.506,62,0.506,63,0.506,64,0.506,65,0.338,66,0.506,67,0.506,68,0.506,69,0.506,70,0.506,71,0.506,72,0.506,73,0.506,74,0.506,75,0.88,76,0.506,77,0.506,78,0.506,79,0.506,80,0.506,81,0.506,82,0.506,83,0.506,84,0.506,85,0.506,86,0.338,87,0.506,88,0.506,89,0.506,90,0.338,91,0.506,92,0.506,93,0.506,94,0.506,95,0.506,96,0.506,97,0.506,98,0.506,99,0.506,100,0.506,101,0.506,102,0.506,103,0.506]],["title/51",[3,0.943,9,0.221]],["content/51",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/51",[]],["title/52",[17,0.228,104,1.504,105,1.504,106,1.504,107,1.504,108,1.504]],["content/52",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/52",[]],["title/53",[54,1.082,58,1.082,65,1.082,86,1.082,109,1.618]],["content/53",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/53",[]],["title/54",[3,0.677,9,0.159,110,1.504,111,1.504,112,1.504,113,1.504]],["content/54",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/54",[]],["title/55",[17,0.178,90,1.165,114,1.173,115,1.173,116,1.173,117,1.173,118,1.173,119,1.173,120,1.173]],["content/55",[1,0.089,2,0.065,5,0.074,6,0.074,7,0.074,8,0.074,9,0.163,10,0.074,11,0.074,12,0.074,13,0.102,14,0.074,15,0.074,16,0.074,17,0.234]],["tags/55",[]]],"invertedIndex":[["",{"_index":115,"title":{"55":{}},"content":{},"tags":{}}],["access",{"_index":16,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["ai-generated nam",{"_index":80,"title":{},"content":{},"tags":{"50":{}}}],["altern",{"_index":92,"title":{},"content":{},"tags":{"50":{}}}],["announc",{"_index":84,"title":{},"content":{},"tags":{"50":{}}}],["api",{"_index":100,"title":{},"content":{},"tags":{"50":{}}}],["app",{"_index":65,"title":{"53":{}},"content":{},"tags":{"50":{}}}],["applic",{"_index":14,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["avail",{"_index":107,"title":{"52":{}},"content":{},"tags":{}}],["backend",{"_index":13,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["backend application migr",{"_index":19,"title":{},"content":{},"tags":{"50":{}}}],["battl",{"_index":109,"title":{"53":{}},"content":{},"tags":{}}],["blackmail",{"_index":55,"title":{},"content":{},"tags":{"50":{}}}],["brief",{"_index":7,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["bug",{"_index":70,"title":{},"content":{},"tags":{"50":{}}}],["choos",{"_index":110,"title":{"54":{}},"content":{},"tags":{}}],["client application upd",{"_index":24,"title":{},"content":{},"tags":{"50":{}}}],["closer",{"_index":104,"title":{"52":{}},"content":{},"tags":{}}],["cloud-based game platform",{"_index":93,"title":{},"content":{},"tags":{"50":{}}}],["code access",{"_index":49,"title":{},"content":{},"tags":{"50":{}}}],["commun",{"_index":86,"title":{"53":{}},"content":{},"tags":{"50":{}}}],["community feedback",{"_index":32,"title":{},"content":{},"tags":{"50":{}}}],["complet",{"_index":12,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["control",{"_index":47,"title":{},"content":{},"tags":{"50":{}}}],["creepy behavior",{"_index":64,"title":{},"content":{},"tags":{"50":{}}}],["decision-mak",{"_index":85,"title":{},"content":{},"tags":{"50":{}}}],["develop",{"_index":62,"title":{},"content":{},"tags":{"50":{}}}],["discord channel",{"_index":28,"title":{},"content":{},"tags":{"50":{}}}],["discord serv",{"_index":101,"title":{},"content":{},"tags":{"50":{}}}],["documentation migr",{"_index":20,"title":{},"content":{},"tags":{"50":{}}}],["domain acquisit",{"_index":21,"title":{},"content":{},"tags":{"50":{}}}],["drm",{"_index":119,"title":{"55":{}},"content":{},"tags":{}}],["drm-free gam",{"_index":94,"title":{},"content":{},"tags":{"50":{}}}],["engag",{"_index":74,"title":{},"content":{},"tags":{"50":{}}}],["famili",{"_index":111,"title":{"54":{}},"content":{},"tags":{}}],["family-friendli",{"_index":78,"title":{},"content":{},"tags":{"50":{}}}],["feature request",{"_index":71,"title":{},"content":{},"tags":{"50":{}}}],["feedback",{"_index":81,"title":{},"content":{},"tags":{"50":{}}}],["file serv",{"_index":95,"title":{},"content":{},"tags":{"50":{}}}],["financial assist",{"_index":67,"title":{},"content":{},"tags":{"50":{}}}],["free",{"_index":120,"title":{"55":{}},"content":{},"tags":{}}],["friendli",{"_index":112,"title":{"54":{}},"content":{},"tags":{}}],["future develop",{"_index":89,"title":{},"content":{},"tags":{"50":{}}}],["game",{"_index":90,"title":{"55":{}},"content":{},"tags":{"50":{}}}],["gamehub",{"_index":36,"title":{},"content":{},"tags":{"50":{}}}],["gameshelf",{"_index":34,"title":{},"content":{},"tags":{"50":{}}}],["gamestash",{"_index":33,"title":{},"content":{},"tags":{"50":{}}}],["gamevault",{"_index":17,"title":{"52":{},"55":{}},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{"50":{}}}],["gamevault app",{"_index":69,"title":{},"content":{},"tags":{"50":{}}}],["gamevault domain",{"_index":39,"title":{},"content":{},"tags":{"50":{}}}],["gaming platform",{"_index":76,"title":{},"content":{},"tags":{"50":{}}}],["guy",{"_index":6,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["harass",{"_index":54,"title":{"53":{}},"content":{},"tags":{"50":{}}}],["harbor",{"_index":35,"title":{},"content":{},"tags":{"50":{}}}],["health monitor",{"_index":99,"title":{},"content":{},"tags":{"50":{}}}],["hey",{"_index":5,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["host",{"_index":117,"title":{"55":{}},"content":{},"tags":{}}],["hybrid model",{"_index":50,"title":{},"content":{},"tags":{"50":{}}}],["improv",{"_index":72,"title":{},"content":{},"tags":{"50":{}}}],["inclus",{"_index":82,"title":{},"content":{},"tags":{"50":{}}}],["introduc",{"_index":114,"title":{"55":{}},"content":{},"tags":{}}],["lemmy commun",{"_index":23,"title":{},"content":{},"tags":{"50":{}}}],["lemmy forum",{"_index":103,"title":{},"content":{},"tags":{"50":{}}}],["logo",{"_index":4,"title":{"50":{}},"content":{},"tags":{}}],["look",{"_index":105,"title":{"52":{}},"content":{},"tags":{}}],["market analysi",{"_index":37,"title":{},"content":{},"tags":{"50":{}}}],["metadata",{"_index":97,"title":{},"content":{},"tags":{"50":{}}}],["migrat",{"_index":1,"title":{"50":{}},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["migration fin",{"_index":29,"title":{},"content":{},"tags":{"50":{}}}],["motiv",{"_index":68,"title":{},"content":{},"tags":{"50":{}}}],["multi-user authent",{"_index":96,"title":{},"content":{},"tags":{"50":{}}}],["name",{"_index":9,"title":{"51":{},"54":{}},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["name migration progress",{"_index":18,"title":{},"content":{},"tags":{"50":{}}}],["natur",{"_index":108,"title":{"52":{}},"content":{},"tags":{}}],["negative narr",{"_index":59,"title":{},"content":{},"tags":{"50":{}}}],["new",{"_index":3,"title":{"50":{},"51":{},"54":{}},"content":{},"tags":{}}],["new logo",{"_index":26,"title":{},"content":{},"tags":{"50":{}}}],["new nam",{"_index":77,"title":{},"content":{},"tags":{"50":{}}}],["new name announc",{"_index":38,"title":{},"content":{},"tags":{"50":{}}}],["now",{"_index":15,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["open-sourc",{"_index":45,"title":{},"content":{},"tags":{"50":{}}}],["platform",{"_index":118,"title":{"55":{}},"content":{},"tags":{}}],["platform valu",{"_index":87,"title":{},"content":{},"tags":{"50":{}}}],["poll",{"_index":79,"title":{},"content":{},"tags":{"50":{}}}],["poll result",{"_index":30,"title":{},"content":{},"tags":{"50":{}}}],["progress",{"_index":8,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["project",{"_index":113,"title":{"54":{}},"content":{},"tags":{}}],["public",{"_index":63,"title":{},"content":{},"tags":{"50":{}}}],["quick",{"_index":0,"title":{"50":{}},"content":{},"tags":{}}],["racist",{"_index":61,"title":{},"content":{},"tags":{"50":{}}}],["rawg api",{"_index":98,"title":{},"content":{},"tags":{"50":{}}}],["reddit forum",{"_index":102,"title":{},"content":{},"tags":{"50":{}}}],["renaming app",{"_index":31,"title":{},"content":{},"tags":{"50":{}}}],["revenue gener",{"_index":52,"title":{},"content":{},"tags":{"50":{}}}],["safe environ",{"_index":60,"title":{},"content":{},"tags":{"50":{}}}],["self",{"_index":116,"title":{"55":{}},"content":{},"tags":{}}],["self-host",{"_index":91,"title":{},"content":{},"tags":{"50":{}}}],["self-hosted newslett",{"_index":42,"title":{},"content":{},"tags":{"50":{}}}],["selfhosted podcast",{"_index":41,"title":{},"content":{},"tags":{"50":{}}}],["software develop",{"_index":48,"title":{},"content":{},"tags":{"50":{}}}],["software licens",{"_index":51,"title":{},"content":{},"tags":{"50":{}}}],["sourc",{"_index":106,"title":{"52":{}},"content":{},"tags":{}}],["source-avail",{"_index":75,"title":{},"content":{},"tags":{"50":{}}}],["source-available softwar",{"_index":44,"title":{},"content":{},"tags":{"50":{}}}],["spam",{"_index":57,"title":{},"content":{},"tags":{"50":{}}}],["special thank",{"_index":40,"title":{},"content":{},"tags":{"50":{}}}],["specul",{"_index":27,"title":{},"content":{},"tags":{"50":{}}}],["subreddit migr",{"_index":22,"title":{},"content":{},"tags":{"50":{}}}],["success",{"_index":73,"title":{},"content":{},"tags":{"50":{}}}],["successfulli",{"_index":11,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["support",{"_index":66,"title":{},"content":{},"tags":{"50":{}}}],["test",{"_index":25,"title":{},"content":{},"tags":{"50":{}}}],["threat",{"_index":56,"title":{},"content":{},"tags":{"50":{}}}],["transition process",{"_index":43,"title":{},"content":{},"tags":{"50":{}}}],["transpar",{"_index":46,"title":{},"content":{},"tags":{"50":{}}}],["troll",{"_index":58,"title":{"53":{}},"content":{},"tags":{"50":{}}}],["updat",{"_index":2,"title":{"50":{}},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}],["user engag",{"_index":53,"title":{},"content":{},"tags":{"50":{}}}],["user particip",{"_index":83,"title":{},"content":{},"tags":{"50":{}}}],["vote",{"_index":88,"title":{},"content":{},"tags":{"50":{}}}],["we'v",{"_index":10,"title":{},"content":{"50":{},"51":{},"52":{},"53":{},"54":{},"55":{}},"tags":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file diff --git a/search-index-default.json b/search-index-default.json index 2c6802da2..6a2eb3cc3 100644 --- a/search-index-default.json +++ b/search-index-default.json @@ -1 +1 @@ -{"documents":[{"id":1,"pageTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionRoute":"/blog/2023/07/01/","type":"blog"},{"id":2,"pageTitle":"Choosing a New, Family-Friendly Name for this project!","sectionTitle":"Choosing a New, Family-Friendly Name for this project!","sectionRoute":"/blog/2023/07/08/","type":"blog"},{"id":4,"pageTitle":"Battling Harassment and Trolls in Our App Community","sectionTitle":"Battling Harassment and Trolls in Our App Community","sectionRoute":"/blog/2023/07/09/","type":"blog"},{"id":3,"pageTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionRoute":"/blog/2023/07/13/","type":"blog"},{"id":5,"pageTitle":"A New Name","sectionTitle":"A New Name","sectionRoute":"/blog/2023/07/15/","type":"blog"},{"id":6,"pageTitle":"A New Name","sectionTitle":"Summary","sectionRoute":"/blog/2023/07/15/#summary","type":"blog"},{"id":7,"pageTitle":"A New Name","sectionTitle":"Market Analysis","sectionRoute":"/blog/2023/07/15/#market-analysis","type":"blog"},{"id":8,"pageTitle":"A New Name","sectionTitle":"1. GameStash","sectionRoute":"/blog/2023/07/15/#1-gamestash","type":"blog"},{"id":9,"pageTitle":"A New Name","sectionTitle":"2. GameVault","sectionRoute":"/blog/2023/07/15/#2-gamevault","type":"blog"},{"id":10,"pageTitle":"A New Name","sectionTitle":"3. GameShelf","sectionRoute":"/blog/2023/07/15/#3-gameshelf","type":"blog"},{"id":11,"pageTitle":"A New Name","sectionTitle":"4. Harbor","sectionRoute":"/blog/2023/07/15/#4-harbor","type":"blog"},{"id":12,"pageTitle":"A New Name","sectionTitle":"5. GameHub","sectionRoute":"/blog/2023/07/15/#5-gamehub","type":"blog"},{"id":13,"pageTitle":"A New Name","sectionTitle":"What's Next?","sectionRoute":"/blog/2023/07/15/#whats-next","type":"blog"},{"id":14,"pageTitle":"A New Name","sectionTitle":"Special Thanks ❤️","sectionRoute":"/blog/2023/07/15/#special-thanks-️","type":"blog"},{"id":18,"pageTitle":"Quick Migration Update and new Logo","sectionTitle":"Quick Migration Update and new Logo","sectionRoute":"/blog/2023/07/19/","type":"blog"},{"id":15,"pageTitle":"The Migrations are finally completed","sectionTitle":"The Migrations are finally completed","sectionRoute":"/blog/2023/07/20/","type":"blog"},{"id":16,"pageTitle":"Celebrating 600+ Installations and announcing the upcoming big feature","sectionTitle":"Celebrating 600+ Installations and announcing the upcoming big feature","sectionRoute":"/blog/2023/07/24/","type":"blog"},{"id":17,"pageTitle":"Please help us prioritize!","sectionTitle":"Please help us prioritize!","sectionRoute":"/blog/2023/07/29/","type":"blog"},{"id":20,"pageTitle":"A Look Back and a Glimpse Forward","sectionTitle":"A Look Back and a Glimpse Forward","sectionRoute":"/blog/2023/11/20/","type":"blog"},{"id":21,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Join the GameVault Early-Access Program Now!","sectionRoute":"/blog/2023/12/09/","type":"blog"},{"id":22,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"What's the Early-Access Program?","sectionRoute":"/blog/2023/12/09/#whats-the-early-access-program","type":"blog"},{"id":23,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"How to Join","sectionRoute":"/blog/2023/12/09/#how-to-join","type":"blog"},{"id":24,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Prerequisites","sectionRoute":"/blog/2023/12/09/#prerequisites","type":"blog"},{"id":25,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Important Note","sectionRoute":"/blog/2023/12/09/#important-note","type":"blog"},{"id":27,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"Announcing GameVault+ (coming soon)","sectionRoute":"/blog/2024/03/28/","type":"blog"},{"id":28,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"GameVault+","sectionRoute":"/blog/2024/03/28/#gamevault","type":"blog"},{"id":29,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"What is GameVault+?","sectionRoute":"/blog/2024/03/28/#what-is-gamevault","type":"blog"},{"id":30,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"So what's next?","sectionRoute":"/blog/2024/03/28/#so-whats-next","type":"blog"},{"id":19,"pageTitle":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","sectionTitle":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","sectionRoute":"/blog/2024/04/01/2024-04-01/","type":"blog"},{"id":26,"pageTitle":"GameVault+ out now","sectionTitle":"GameVault+ out now","sectionRoute":"/blog/2024/04/14/","type":"blog"},{"id":31,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionRoute":"/blog/2024/05/07/","type":"blog"},{"id":32,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"GameVault's new metadata provider strategy","sectionRoute":"/blog/2024/05/07/#gamevaults-new-metadata-provider-strategy","type":"blog"},{"id":33,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Temporary solution: Implementing a RAWG replacement","sectionRoute":"/blog/2024/05/07/#temporary-solution-implementing-a-rawg-replacement","type":"blog"},{"id":34,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Exciting new features","sectionRoute":"/blog/2024/05/07/#exciting-new-features","type":"blog"},{"id":35,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Supporting GameVault","sectionRoute":"/blog/2024/05/07/#supporting-gamevault","type":"blog"},{"id":36,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"An update so major, we could have built the product from scratch.","sectionRoute":"/blog/2024/10/20/","type":"blog"},{"id":37,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"What’s New?","sectionRoute":"/blog/2024/10/20/#whats-new","type":"blog"},{"id":38,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Major New Features","sectionRoute":"/blog/2024/10/20/#major-new-features","type":"blog"},{"id":39,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Critical Update Info","sectionRoute":"/blog/2024/10/20/#critical-update-info","type":"blog"},{"id":40,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Support Us","sectionRoute":"/blog/2024/10/20/#support-us","type":"blog"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/1",[0,1.056,1,0.064,2,0.522,3,0.903,4,0.974,5,0.469,6,0.781,7,1.412,8,0.839]],["content/1",[1,0.191,3,1.613,4,1.741,5,0.963,6,2.055,7,1.644,8,1.824,9,0.794,10,1.476,11,1.342,12,1.139,13,2.211,14,2.211,15,1.869,16,2.523,17,2.059,18,2.045,19,2.059,20,3.489,21,2.211,22,1.231,23,1.476,24,2.211,25,2.211,26,2.211,27,0.742,28,1.303,29,0.532,30,1.139,31,1.481,32,2.211,33,1.869,34,0.762,35,3.489,36,3.391,37,1.342,38,1.342,39,2.523,40,1.36,41,1.869,42,2.211,43,1.231,44,1.613,45,2.211,46,1.135,47,2.211,48,0.794,49,1.396,50,2.868,51,1.888,52,2.868,53,1.644,54,1.869,55,1.342,56,1.613,57,1.342,58,1.135,59,1.135,60,0.977,61,1.824,62,1.869,63,1.869,64,2.211,65,1.644,66,1.869,67,1.644,68,1.342,69,0.91,70,2.211,71,1.342,72,2.211,73,1.476,74,2.211,75,1.476,76,1.869,77,2.211,78,2.211,79,1.385,80,0.571,81,1.869,82,2.211,83,1.476,84,1.135,85,2.211,86,1.135,87,1.869,88,2.211,89,1.051,90,1.741,91,2.211,92,2.211,93,3.391,94,1.869,95,1.342,96,2.211,97,2.211,98,1.644,99,2.211,100,1.051,101,2.211,102,2.211,103,2.211,104,1.869,105,1.644,106,1.644,107,2.211,108,0.977,109,1.231,110,1.476,111,1.644,112,1.869,113,1.135,114,1.476,115,1.135,116,0.695,117,1.231,118,1.476,119,1.231,120,0.431,121,1.342,122,2.523,123,1.869,124,1.869,125,1.869,126,1.051,127,1.613,128,0.569,129,1.869,130,1.644,131,2.211,132,1.644,133,1.231,134,1.342,135,1.231,136,1.869,137,1.342]],["tags/1",[1,0.061,5,0.281,19,1.097,86,0.927,90,0.927,138,1.527,139,1.527,140,1.806,141,1.806,142,1.806,143,1.806,144,1.806,145,1.806,146,1.806,147,1.806,148,1.806]],["title/2",[149,1.919,150,0.311,151,1.227,152,1.919,153,0.926,154,1.14]],["content/2",[5,0.727,6,2.246,16,3.477,17,2.407,18,1.752,22,1.517,28,1.047,29,0.655,30,0.915,37,1.654,44,1.296,49,1.122,56,1.296,61,1.204,79,0.915,108,1.204,115,1.399,116,1.246,119,1.517,120,0.774,122,2.949,126,1.296,128,0.701,133,1.517,137,1.654,149,2.949,150,0.564,151,1.886,152,2.949,153,2.162,154,1.204,155,1.82,156,1.654,157,1.331,158,2.724,159,2.304,160,1.047,161,1.517,162,2.724,163,2.724,164,2.026,165,0.831,166,2.026,167,1.82,168,2.026,169,1.925,170,2.724,171,2.304,172,1.517,173,2.026,174,2.724,175,1.654,176,2.026,177,1.399,178,2.724,179,2.207,180,1.82,181,3.964,182,2.724,183,1.654,184,3.964,185,2.724,186,2.304,187,2.724,188,1.654,189,2.304,190,2.724,191,2.304,192,2.026,193,2.724,194,1.204,195,2.304,196,2.724,197,1.399,198,2.304,199,2.304,200,2.304,201,2.724,202,2.036,203,2.724,204,2.026,205,1.82,206,2.724,207,2.724,208,1.296,209,2.026,210,2.304,211,2.724,212,1.122,213,1.82,214,1.82,215,2.724,216,2.724,217,2.724,218,2.724,219,1.654,220,1.517,221,1.399,222,0.494,223,1.122,224,1.122,225,1.654,226,2.724,227,1.654]],["tags/2",[1,0.061,34,0.406,116,0.567,138,1.527,157,0.606,169,0.744,192,1.343,202,0.927,228,1.806,229,1.806,230,1.806,231,1.806,232,1.806,233,1.806,234,1.806,235,1.806]],["title/4",[34,0.637,236,2.397,237,2.108,238,2.108,239,0.78]],["content/4",[1,0.075,2,0.61,9,0.796,11,1.346,12,1.141,19,1.346,28,1.588,30,0.745,34,0.929,37,1.346,40,0.999,51,1.235,61,0.98,69,1.4,71,1.346,73,1.481,80,0.373,100,1.055,114,1.481,115,1.139,117,1.235,118,2.761,119,1.892,120,0.807,124,1.875,128,0.875,134,1.346,153,0.796,154,1.827,156,1.346,160,0.852,161,1.235,165,0.465,166,1.649,169,0.913,179,1.235,180,1.481,183,1.346,188,1.346,192,1.649,199,1.875,219,2.064,222,0.402,223,1.4,224,0.913,225,1.346,237,1.649,238,3.075,239,1.137,240,1.875,241,1.481,242,2.874,243,1.875,244,4.133,245,1.892,246,1.875,247,3.399,248,2.874,249,1.875,250,1.875,251,1.875,252,2.064,253,2.874,254,2.874,255,2.217,256,2.217,257,1.875,258,1.875,259,1.503,260,2.217,261,1.649,262,2.217,263,2.217,264,2.217,265,2.217,266,2.217,267,2.217,268,2.217,269,1.892,270,1.346,271,2.217,272,1.875,273,1.875,274,1.875,275,1.875,276,1.875,277,1.139,278,2.217,279,1.481,280,2.217,281,2.217,282,2.217,283,2.217,284,1.481,285,2.217,286,4.133,287,1.649,288,2.27,289,2.217,290,1.875,291,1.235,292,1.875,293,2.217,294,2.217,295,2.529,296,2.217,297,1.875,298,1.875,299,0.796,300,1.481,301,1.346,302,1.875,303,1.875,304,2.217,305,1.875,306,1.649,307,1.875,308,2.217,309,2.874,310,1.875,311,1.481,312,1.139,313,1.875,314,1.649,315,2.217,316,1.875,317,2.217,318,1.235,319,2.217,320,2.217,321,2.217,322,1.235,323,1.481,324,1.235,325,1.481,326,2.217,327,1.649,328,0.98,329,1.139,330,1.875,331,1.346,332,3.399,333,2.217,334,1.875,335,1.649,336,1.139,337,1.649,338,1.875,339,1.346,340,2.217,341,1.875,342,1.875,343,1.481,344,1.875,345,1.346,346,2.217,347,1.875,348,1.139,349,0.852,350,1.235]],["tags/4",[117,0.83,120,0.291,224,0.614,237,1.109,238,1.109,239,0.41,245,0.83,246,1.26,251,1.26,298,1.26,299,0.535,310,1.26,325,0.995,343,0.995,351,1.49,352,1.49,353,1.49,354,1.49,355,1.49,356,1.49,357,1.49]],["title/3",[1,0.087,17,1.567,18,1.14,358,2.58,359,1.325,360,2.58]],["content/3",[1,0.168,3,0.816,4,0.881,8,1.546,9,0.616,12,0.576,15,1.45,17,3.537,18,0.758,19,1.042,20,1.45,28,1.067,29,0.413,30,0.576,31,1.443,33,1.45,34,0.385,40,0.816,44,1.32,48,1.585,49,0.706,51,2.979,52,1.45,53,1.276,54,1.45,56,1.32,59,0.881,60,1.227,69,0.706,79,0.932,80,0.289,98,1.276,104,2.347,108,0.758,113,0.881,115,0.881,116,0.539,120,0.542,121,1.042,126,0.816,128,0.441,137,1.686,151,0.816,153,0.616,154,1.227,156,1.042,164,1.276,165,0.359,168,1.276,173,2.065,177,1.425,179,0.955,188,1.042,194,0.758,197,0.881,214,1.146,219,1.042,222,0.311,223,0.706,224,0.706,225,1.686,227,1.042,239,0.764,245,0.955,270,1.042,277,0.881,291,0.955,295,1.276,299,0.997,301,1.042,307,1.45,318,0.955,323,1.146,324,0.955,327,1.276,337,2.601,339,1.042,350,1.947,359,0.881,361,1.715,362,2.684,363,3.497,364,1.042,365,1.042,366,3.995,367,4.414,368,2.065,369,3.497,370,1.276,371,1.276,372,1.715,373,1.276,374,1.45,375,0.816,376,1.715,377,1.715,378,1.146,379,2.776,380,1.715,381,1.45,382,0.758,383,0.539,384,1.715,385,1.45,386,1.146,387,1.715,388,1.715,389,2.776,390,1.45,391,1.276,392,1.32,393,1.715,394,2.347,395,1.715,396,1.715,397,0.955,398,1.042,399,1.276,400,1.45,401,1.715,402,1.715,403,2.776,404,1.256,405,2.776,406,1.45,407,1.715,408,1.715,409,1.45,410,1.715,411,1.146,412,1.45,413,1.715,414,1.715,415,1.715,416,1.715,417,1.45,418,1.715,419,1.276,420,1.715,421,1.715,422,1.042,423,1.715,424,1.715,425,1.042,426,1.715,427,1.715,428,2.336,429,1.146,430,0.955,431,2.776,432,1.715,433,1.715,434,1.276,435,1.715,436,1.715,437,1.715,438,1.715,439,1.45,440,1.715,441,1.715,442,1.146,443,1.715,444,1.715,445,1.715,446,1.715,447,1.715,448,1.276,449,0.881,450,1.276,451,1.45,452,1.715,453,1.715,454,1.715,455,1.715,456,0.659,457,1.276,458,1.715,459,0.881,460,1.45,461,1.276,462,1.276,463,1.45,464,1.042,465,1.715,466,1.715,467,1.146,468,1.45,469,1.715,470,1.715,471,1.715,472,1.715,473,1.715,474,1.45,475,1.715,476,1.715,477,1.276,478,1.45,479,1.715,480,1.715,481,1.715,482,1.715,483,1.715,484,1.146,485,1.45,486,1.042,487,1.715,488,1.715,489,1.715,490,1.276,491,1.042,492,1.042,493,1.146]],["tags/3",[59,1.243,394,2.047,494,2.421,495,2.421,496,2.421,497,2.421,498,2.421,499,2.421,500,2.421,501,2.421]],["title/5",[150,0.486,153,1.446]],["content/5",[9,1.583,27,1.481,28,1.695,30,1.481,60,1.949,109,2.455,149,3.28,150,0.663,153,1.972,156,2.678,157,1.481,167,2.945,169,2.261,212,1.816,222,0.8,239,1.213,312,2.264,345,2.678,422,2.678,459,2.264,502,2.945,503,3.729,504,3.28,505,1.949,506,3.28,507,3.28,508,3.729,509,4.41,510,3.28,511,4.41,512,2.455,513,4.41]],["tags/5",[1,0.064,514,1.886,515,1.886,516,1.595,517,1.26,518,1.26,519,1.26,520,1.26,521,1.886,522,1.886,523,1.886,524,1.886,525,1.886,526,1.886,527,1.886]],["title/6",[528,3.961]],["content/6",[1,0.093,28,1.059,29,0.663,31,0.989,34,1.159,38,1.673,44,1.311,48,0.989,69,1.135,79,0.925,115,2.052,116,0.866,126,1.311,129,2.33,136,2.33,151,1.311,153,2.117,160,1.059,165,0.577,166,2.05,169,2.125,175,2.427,194,1.218,202,2.052,208,1.311,212,1.135,219,1.673,224,1.135,225,1.673,239,1.42,261,2.05,279,1.84,325,1.84,331,1.673,341,2.33,347,2.33,348,1.415,350,1.534,378,1.84,381,2.33,386,1.84,422,2.427,429,1.84,442,1.84,461,2.05,467,1.84,512,1.534,517,1.84,518,1.84,519,1.84,520,1.84,528,2.33,529,2.755,530,2.755,531,3.38,532,1.84,533,2.755,534,2.755,535,2.05,536,1.673,537,2.755,538,2.33,539,3.997,540,2.755,541,2.755,542,2.755,543,2.33,544,2.755,545,2.755,546,2.33,547,2.05,548,2.755,549,2.755,550,2.755,551,2.33,552,2.33,553,2.755,554,1.84,555,2.33,556,1.415,557,2.755,558,2.755,559,2.33,560,2.33,561,2.05,562,2.755,563,1.135,564,2.05,565,2.33,566,2.755,567,2.755,568,2.755,569,2.755,570,2.755,571,2.755,572,2.755,573,1.84,574,2.755,575,3.997,576,2.225,577,3.38,578,2.755,579,2.755,580,2.755,581,2.755,582,2.755,583,2.755,584,2.33,585,2.33,586,2.755]],["tags/6",[]],["title/7",[576,2.242,577,3.406]],["content/7",[]],["tags/7",[]],["title/8",[517,2.69,587,4.027]],["content/8",[56,2.371,80,0.839,100,2.371,212,2.052,239,1.371,328,2.203,365,3.027,517,3.329,588,2.775,589,4.984,590,2.559,591,4.984,592,3.329,593,2.052,594,4.984,595,4.984]],["tags/8",[]],["title/9",[1,0.136,596,4.027]],["content/9",[1,0.166,5,0.765,100,2.339,212,2.025,328,2.173,365,2.986,404,1.765,434,3.657,467,3.284,588,2.737,590,2.525,597,4.917,598,3.657,599,4.917,600,4.917,601,4.917,602,4.917,603,4.917]],["tags/9",[]],["title/10",[518,2.69,604,4.027]],["content/10",[5,0.899,31,1.719,65,3.561,100,2.277,153,1.719,212,1.971,239,1.317,328,2.116,382,2.116,404,1.719,462,3.561,518,3.197,588,2.665,590,2.458,593,1.971,605,4.787,606,4.787,607,4.787,608,3.561,609,4.787,610,4.787]],["tags/10",[]],["title/11",[519,2.69,611,4.027]],["content/11",[75,3.057,100,2.177,165,0.959,208,2.177,212,1.884,239,1.259,328,2.023,331,2.779,365,2.779,477,3.404,504,3.404,519,3.753,538,3.87,576,2.548,588,2.548,590,2.885,592,3.057,612,4.576,613,4.576,614,4.576,615,3.404,616,4.576,617,3.404,618,4.576,619,2.35,620,4.576,621,4.576]],["tags/11",[]],["title/12",[520,2.69,565,3.406]],["content/12",[2,1.362,5,0.77,100,2.355,212,2.038,328,2.188,434,4.383,520,3.306,588,2.756,590,2.542,622,4.95,623,4.95,624,3.682,625,3.306,626,4.95,627,4.95,628,4.95]],["tags/12",[]],["title/13",[397,2.242,629,2.242]],["content/13",[0,2.046,1,0.124,3,1.748,4,1.887,8,1.624,18,1.624,40,1.08,59,1.887,66,4.129,75,2.454,116,1.154,150,0.662,153,2.292,167,2.454,172,2.046,191,3.107,197,1.887,239,1.011,245,2.046,291,2.046,297,3.107,328,1.624,350,2.046,382,1.624,390,3.107,486,2.231,490,2.733,502,2.454,503,3.107,505,1.624,547,2.733,590,2.507,593,1.513,598,2.733,630,3.262,631,3.674,632,3.674,633,3.107,634,3.674,635,3.107,636,3.674,637,3.674,638,3.674,639,3.674,640,3.674,641,3.674,642,3.674,643,3.107,644,2.733,645,3.674,646,3.107,647,3.674,648,3.674,649,3.107,650,3.674,651,3.107,652,3.674]],["tags/13",[]],["title/14",[2,0.972,349,1.357,653,2.987]],["content/14",[1,0.119,2,0.972,3,1.68,4,1.813,27,1.186,28,1.357,40,1.038,48,1.268,57,2.144,60,1.561,69,1.454,120,0.689,128,1.384,135,1.966,150,0.574,153,2.065,172,1.966,175,2.144,202,1.813,220,1.966,221,1.813,222,0.641,223,1.454,239,0.972,241,2.359,259,1.561,274,2.986,309,2.986,330,2.986,336,1.813,349,2.066,449,1.813,486,2.888,490,2.627,502,2.359,563,1.454,573,2.359,576,1.966,619,1.813,653,4.021,654,2.627,655,2.986,656,5.377,657,3.531,658,3.531,659,2.627,660,3.531,661,3.531,662,3.176,663,2.627,664,3.531,665,2.359,666,3.531,667,3.531,668,3.531,669,3.531,670,2.359,671,3.531,672,1.454,673,3.531,674,2.986,675,2.359,676,2.627]],["tags/14",[]],["title/18",[150,0.342,222,0.514,677,2.108,678,1.455,679,2.108]],["content/18",[1,0.182,2,0.837,9,1.093,10,2.033,12,1.022,28,1.17,29,0.732,31,1.093,34,0.684,40,0.895,43,1.694,51,1.694,58,1.563,71,2.606,105,2.264,110,2.033,128,0.783,130,2.264,150,0.652,153,1.785,165,0.638,194,1.345,205,2.033,209,2.264,213,2.033,222,0.902,259,1.897,299,1.093,335,2.264,336,1.563,375,2.365,383,0.956,404,1.785,409,2.574,456,1.649,459,1.563,493,2.033,505,1.345,512,1.694,590,2.204,598,2.264,619,1.563,629,1.694,662,2.033,663,2.264,674,2.574,678,3.034,679,3.193,680,3.044,681,2.574,682,2.606,683,3.044,684,3.044,685,2.264,686,2.574,687,3.044,688,3.044,689,3.044,690,3.044,691,3.044,692,2.574,693,1.649,694,3.044,695,3.044,696,2.033,697,2.264,698,1.848,699,1.345,700,2.033,701,2.574,702,3.044,703,3.044,704,3.044,705,3.044,706,3.044,707,1.563,708,2.574,709,3.044,710,1.848,711,3.044,712,3.044,713,2.264,714,2.264]],["tags/18",[699,0.961,708,1.838,715,2.174,716,2.174,717,2.174,718,2.174,719,2.174,720,2.174,721,2.174,722,2.174,723,1.838,724,2.174]],["title/15",[58,1.814,459,1.814,678,1.814]],["content/15",[1,0.164,5,0.758,6,1.505,9,1.313,18,1.616,28,1.405,29,0.879,38,2.22,40,1.075,79,1.228,127,2.315,128,1.253,150,0.661,151,1.739,153,1.313,198,3.091,208,1.739,209,3.62,239,1.006,240,3.091,259,1.616,279,2.442,331,2.22,345,2.22,375,1.739,392,1.739,399,2.719,484,2.442,486,2.22,505,1.616,555,3.091,675,2.442,678,1.877,679,3.62,681,3.091,725,3.656,726,3.091,727,3.656,728,3.656,729,2.22,730,2.442,731,3.656,732,3.656,733,3.091,734,2.035,735,3.656,736,3.656,737,3.656,738,3.656,739,2.719,740,3.656,741,5.471,742,3.656,743,3.656,744,3.656,745,3.656,746,3.091,747,3.656,748,3.656]],["tags/15",[723,2.047,749,2.421,750,2.421,751,2.421,752,2.421,753,2.047,754,2.421,755,2.421,756,2.421,757,2.421]],["title/16",[80,0.398,157,0.795,676,1.761,758,2.002,759,1.581,760,1.318,761,1.437]],["content/16",[1,0.163,2,0.497,3,0.858,4,0.927,5,0.644,9,0.648,12,0.971,27,1.215,28,1.591,29,0.696,30,0.606,34,1.086,35,1.526,37,1.096,38,1.096,40,0.85,43,1.005,44,0.858,48,1.038,49,1.704,60,0.798,61,1.278,68,1.096,69,1.191,73,1.205,79,0.971,80,0.487,106,1.342,109,1.005,111,1.342,112,1.526,116,0.567,119,1.005,120,0.884,125,3.06,126,0.858,127,1.721,128,0.931,130,2.692,135,1.61,150,0.349,151,1.376,152,1.342,157,0.971,160,1.111,165,0.758,167,1.932,172,1.005,177,0.927,179,1.005,180,1.205,183,1.096,194,0.798,200,1.526,205,1.205,213,1.205,214,1.205,219,1.756,220,2.304,221,1.485,222,0.751,223,1.49,239,0.497,245,1.005,252,1.096,258,1.526,261,1.342,269,1.61,270,1.096,277,1.485,279,1.205,288,1.205,301,1.096,306,2.151,311,1.205,312,0.927,314,1.342,318,1.005,322,1.005,324,1.61,329,1.485,331,1.096,335,1.342,343,1.205,345,1.096,350,1.005,359,0.927,362,1.205,378,1.205,391,2.151,392,0.858,397,1.005,404,0.648,417,1.526,419,1.342,429,1.205,430,1.005,442,1.205,448,1.342,449,0.927,456,0.693,468,1.526,484,1.205,492,1.756,505,0.798,512,1.005,546,1.526,561,1.342,563,0.743,585,1.526,593,0.743,615,1.342,625,1.205,662,1.205,665,1.205,672,1.191,676,2.151,693,1.591,710,1.756,729,1.096,730,1.205,734,1.005,758,1.526,759,3.636,760,1.005,762,1.526,763,2.892,764,1.932,765,2.151,766,1.805,767,1.526,768,2.445,769,1.805,770,2.151,771,1.526,772,1.342,773,1.526,774,1.526,775,1.096,776,2.892,777,2.417,778,4.139,779,1.805,780,1.526,781,1.805,782,1.805,783,1.805,784,1.805,785,1.805,786,1.805,787,1.805,788,1.205,789,0.927,790,1.096,791,1.342,792,2.445,793,1.805,794,1.805,795,1.526,796,1.526,797,1.805,798,1.205,799,1.005,800,2.892,801,1.805,802,1.805,803,1.526,804,1.526,805,1.342,806,1.342,807,1.342,808,1.005,809,1.805,810,1.805,811,1.342,812,1.526,813,1.805,814,1.096,815,1.805,816,1.805]],["tags/16",[116,0.544,665,1.157,753,1.465,817,1.733,818,1.733,819,1.733,820,1.733,821,1.733,822,1.733,823,1.733,824,1.733,825,1.733,826,1.733,827,1.733,828,1.733,829,1.733,830,1.733]],["title/17",[126,1.68,160,1.357,831,2.359]],["content/17",[0,1.25,1,0.17,2,0.618,5,0.349,6,0.924,8,0.992,11,1.363,12,1.152,16,1.67,30,0.754,34,0.771,37,1.363,48,1.804,61,0.992,62,1.898,69,0.924,79,0.754,80,0.701,95,1.363,108,0.992,111,1.67,115,1.153,116,0.705,117,1.25,118,1.499,119,1.91,127,1.068,128,0.578,132,2.552,134,1.363,135,1.25,137,1.363,150,0.414,154,1.517,155,1.499,160,0.863,161,1.91,164,1.67,165,0.719,169,1.413,172,1.25,175,1.363,176,2.552,177,1.153,179,1.25,180,1.499,188,1.363,197,1.153,202,1.153,208,1.632,252,2.832,253,1.898,259,0.992,269,1.25,270,1.363,272,1.898,277,1.762,288,2.292,290,1.898,291,2.319,299,1.232,311,1.499,322,1.25,329,1.153,336,1.153,343,1.499,348,1.762,349,0.863,364,1.363,371,1.67,373,1.67,391,1.67,398,1.363,411,1.499,457,1.67,460,1.898,477,1.67,491,1.363,512,1.25,536,1.363,547,1.67,563,0.924,593,0.924,608,1.67,619,1.762,630,1.499,644,1.67,654,1.67,659,1.67,665,1.499,697,1.67,698,2.084,707,2.58,734,1.91,765,1.67,768,1.898,771,1.898,772,1.67,777,1.499,792,1.898,798,2.292,799,1.25,803,1.898,804,1.898,805,1.67,831,1.499,832,2.245,833,1.898,834,1.898,835,2.245,836,2.245,837,2.245,838,2.245,839,2.245,840,2.901,841,1.67,842,2.245,843,1.67,844,1.898,845,4.165,846,1.898,847,2.245,848,1.898,849,2.245,850,2.084,851,2.245,852,2.245,853,3.431,854,1.898,855,2.245,856,2.245,857,2.245,858,2.245,859,2.245,860,2.245,861,2.901,862,1.898,863,2.245,864,2.552,865,3.431,866,1.499,867,2.245,868,2.245,869,1.499,870,2.245,871,2.245,872,2.245,873,1.898]],["tags/17",[1,0.064,6,0.777,34,0.424,80,0.317,116,0.593,128,0.485,169,0.777,202,0.968,269,1.05,299,0.677,805,1.403,840,1.595,874,1.886,875,1.886,876,1.886]],["title/20",[359,1.615,492,1.91,814,1.91,877,3.145]],["content/20",[1,0.141,2,1.256,3,0.871,5,0.795,10,1.223,12,0.983,27,0.615,29,0.704,34,0.412,39,1.363,48,1.051,49,0.754,55,1.112,59,1.877,60,0.81,71,1.112,79,0.615,80,0.615,84,0.941,95,1.777,114,1.223,115,0.941,117,1.02,118,1.223,119,1.02,120,0.713,121,1.112,127,0.871,128,1.074,137,1.112,150,0.221,154,0.81,155,1.223,160,1.125,165,0.384,169,0.754,177,0.941,183,1.112,194,0.81,197,0.941,204,2.177,210,1.549,212,0.754,213,1.223,220,1.02,221,0.941,222,0.663,223,0.754,224,0.754,227,1.112,242,1.549,245,1.02,259,1.616,270,1.112,275,1.549,277,1.503,291,1.02,299,0.658,311,1.223,314,1.363,324,1.63,342,1.549,345,1.112,348,0.941,349,0.704,359,0.941,375,1.739,378,1.223,392,0.871,397,2.035,398,1.112,404,0.658,411,1.223,425,1.112,430,1.02,449,0.941,450,1.363,505,0.81,508,1.549,510,1.363,535,1.363,536,1.112,556,0.941,561,1.363,563,1.719,564,1.363,573,1.223,592,1.223,593,0.754,624,3.395,630,1.223,672,0.754,675,1.223,682,1.777,685,2.177,693,1.87,696,1.223,697,1.363,699,0.81,710,1.112,713,1.363,714,1.363,733,1.549,734,1.02,759,2.441,761,1.112,772,1.363,789,0.941,790,1.112,798,1.223,799,1.02,806,2.719,811,1.363,814,1.112,862,1.549,864,1.363,878,1.549,879,1.549,880,1.832,881,1.832,882,1.832,883,1.832,884,1.832,885,1.832,886,1.549,887,1.223,888,1.832,889,1.832,890,1.832,891,1.832,892,1.832,893,1.832,894,1.363,895,1.832,896,1.549,897,1.832,898,1.832,899,1.832,900,1.549,901,1.832,902,1.832,903,1.549,904,1.363,905,1.549,906,1.549,907,1.832,908,1.832,909,1.832,910,1.832,911,1.832,912,1.832,913,1.832,914,1.832,915,1.363,916,3.106,917,2.475,918,2.475,919,1.832,920,1.832,921,1.832,922,1.832,923,1.832,924,1.549,925,1.832,926,1.832,927,1.549,928,1.832,929,1.832,930,1.832,931,1.549,932,1.832,933,1.549,934,1.549,935,4.175,936,1.832,937,1.832,938,1.832,939,2.927,940,1.832,941,1.832,942,1.832,943,1.832,944,1.832,945,1.549,946,1.832,947,1.832,948,1.832,949,1.832,950,1.832,951,1.832,952,1.832,953,1.832,954,1.832,955,1.549,956,1.549,957,1.832,958,1.832,959,1.832,960,1.832,961,1.832,962,1.832,963,1.549]],["tags/20",[964,2.421,965,2.421,966,2.421,967,2.421,968,2.421,969,2.421,970,2.421,971,2.421,972,2.421,973,2.421]],["title/21",[1,0.087,29,0.621,127,1.227,383,0.811,974,1.14,975,1.723]],["content/21",[1,0.199,9,1.777,10,3.306,48,1.777,68,3.006,150,0.598,222,0.898,383,1.555,617,3.682,693,1.902,760,2.756,799,2.756,916,3.682,974,2.188,975,3.306,976,4.186]],["tags/21",[1,0.082,5,0.377,128,0.623,516,2.047,977,2.047,978,2.421,979,2.421,980,2.421,981,2.421,982,2.421]],["title/22",[383,0.988,397,1.751,974,1.39,975,2.101]],["content/22",[1,0.148,2,1.206,30,1.472,80,0.737,108,1.937,116,1.377,160,1.684,221,2.251,222,0.795,243,3.706,383,1.377,485,3.706,535,3.261,649,3.706,672,2.253,699,1.937,700,2.928,760,2.44,761,2.662,799,2.44,933,3.706,934,3.706,974,1.937,983,4.383,984,3.706,985,4.383,986,3.654,987,4.383,988,3.706,989,4.383,990,4.383,991,4.383,992,4.383,993,4.383]],["tags/22",[]],["title/23",[127,2.228]],["content/23",[2,1.635,58,2.577,312,2.577,382,2.218,383,1.577,404,1.802,670,3.352,974,2.218,994,5.019,995,3.733,996,5.019,997,5.019,998,5.019,999,4.244]],["tags/23",[]],["title/24",[1000,4.685]],["content/24",[1,0.19,2,1.673,40,1.346,43,2.548,94,3.87,128,1.178,175,2.779,336,2.35,383,1.438,563,1.884,635,3.87,698,2.779,729,3.412,730,3.057,759,3.057,866,3.753,904,3.404,1001,4.576,1002,4.576,1003,4.576,1004,3.87,1005,4.576,1006,4.576,1007,4.576]],["tags/24",[]],["title/25",[156,2.446,1008,2.996]],["content/25",[110,3.115,120,0.91,177,2.395,277,2.395,371,3.47,383,1.466,404,1.675,425,2.832,559,3.944,563,1.921,629,2.597,699,2.062,734,2.597,831,3.115,841,3.47,974,2.062,975,3.115,1004,3.944,1009,3.944,1010,4.664,1011,3.47,1012,4.664,1013,3.944,1014,4.664,1015,4.664,1016,3.944]],["tags/25",[]],["title/27",[1,0.106,157,1.056,241,2.101,505,1.39]],["content/27",[1,0.122,2,0.663,3,1.721,4,1.237,5,0.563,6,1.79,7,1.792,8,1.065,9,0.865,11,1.462,19,1.462,23,1.609,30,0.809,31,0.865,38,1.462,39,1.792,40,0.708,46,1.237,55,1.462,56,1.146,58,1.237,68,1.462,108,1.6,109,1.341,113,1.237,114,1.609,120,0.47,121,1.462,150,0.291,151,1.146,154,1.065,157,0.809,173,1.792,186,2.036,204,2.692,208,1.146,239,0.663,249,2.036,259,1.6,269,1.341,273,2.036,295,1.792,299,0.865,312,1.237,313,2.036,316,2.036,318,1.341,323,1.609,327,1.792,337,1.792,344,2.036,365,1.462,370,1.792,375,2.299,382,1.065,392,2.068,398,1.462,399,1.792,400,2.036,404,1.3,419,1.792,428,1.609,429,1.609,456,0.925,462,2.692,463,2.036,464,1.462,467,1.609,474,2.036,486,2.198,491,1.462,504,1.792,531,2.036,543,2.036,556,1.237,576,1.341,584,2.036,592,1.609,633,2.036,654,1.792,655,2.036,663,1.792,670,1.609,672,0.992,692,2.036,693,1.671,707,2.232,760,1.341,789,2.232,812,2.036,833,2.036,878,2.036,887,1.609,896,2.036,927,2.036,945,2.036,976,2.036,1011,1.792,1017,2.036,1018,2.408,1019,2.408,1020,2.408,1021,2.408,1022,2.408,1023,2.036,1024,2.408,1025,2.408,1026,2.408,1027,2.408,1028,2.036,1029,2.408,1030,2.408,1031,2.036,1032,2.408,1033,2.408,1034,2.036,1035,2.408,1036,2.036,1037,2.408,1038,2.408,1039,2.408,1040,2.408,1041,2.408,1042,2.408,1043,2.408,1044,2.408,1045,2.408,1046,2.036,1047,2.408,1048,2.408,1049,2.408,1050,2.408,1051,2.408,1052,2.408,1053,2.408,1054,2.408,1055,1.792,1056,2.408,1057,2.408,1058,2.408,1059,2.036,1060,2.408,1061,2.408,1062,2.036,1063,2.408,1064,2.408,1065,2.408,1066,2.408,1067,2.036,1068,2.408]],["tags/27",[1,0.092,5,0.425,34,0.614,157,0.917,299,0.981,366,2.309,1069,2.731,1070,2.731]],["title/28",[1,0.158]],["content/28",[]],["tags/28",[]],["title/29",[1,0.158]],["content/29",[1,0.2,8,1.128,18,1.128,22,1.421,27,0.857,29,0.614,30,0.857,31,1.357,34,0.573,43,2.104,48,0.916,49,1.853,53,1.898,56,1.214,57,1.55,61,1.128,75,1.705,79,0.857,80,0.936,83,1.705,90,1.31,108,1.128,113,1.31,116,0.802,120,0.878,133,1.421,150,0.456,154,1.128,160,0.981,165,0.535,194,1.128,214,1.705,241,1.705,312,1.94,318,1.421,322,1.421,323,1.705,324,1.421,325,1.705,349,0.981,364,1.55,382,1.128,383,1.187,392,1.797,439,2.158,449,1.94,450,1.898,456,1.452,464,2.295,506,2.811,507,1.898,510,1.898,554,1.705,563,1.051,608,1.898,619,1.31,646,2.158,662,1.705,693,0.981,696,1.705,698,1.55,699,1.128,700,1.705,710,1.55,714,1.898,760,1.421,775,2.295,788,1.705,789,1.31,791,1.898,796,2.158,814,2.295,843,1.898,850,1.55,903,2.158,956,2.158,974,1.128,986,1.705,1016,2.158,1055,2.811,1059,2.158,1071,2.552,1072,2.552,1073,2.552,1074,2.552,1075,2.552,1076,1.898,1077,2.552,1078,2.552,1079,2.552,1080,1.898,1081,2.158,1082,2.552,1083,2.552,1084,2.552,1085,2.158,1086,2.158,1087,1.898,1088,2.552,1089,2.158,1090,2.552,1091,2.552,1092,2.552,1093,1.898,1094,1.898,1095,1.898,1096,1.898,1097,1.705,1098,2.552,1099,2.552,1100,2.552,1101,2.158,1102,1.898,1103,2.552,1104,2.158,1105,2.158,1106,2.552,1107,2.552,1108,2.552,1109,2.552,1110,2.552,1111,2.552,1112,2.158,1113,2.552,1114,2.158,1115,2.552]],["tags/29",[]],["title/30",[397,2.242,629,2.242]],["content/30",[1,0.119,5,0.55,12,1.186,34,0.793,46,1.813,51,1.966,71,2.144,80,0.8,84,2.442,89,1.68,105,2.627,108,2.102,120,0.689,123,2.986,127,1.68,128,0.909,157,1.186,165,0.74,169,1.454,171,2.986,202,1.813,208,1.68,220,1.966,221,1.813,222,0.641,300,2.359,302,2.986,334,2.986,336,1.813,349,1.357,359,1.813,364,2.888,411,2.359,449,1.813,456,1.357,459,2.442,492,2.144,505,1.561,551,2.986,593,1.958,629,2.993,672,1.454,710,2.144,713,2.627,761,2.144,790,2.144,844,2.986,864,2.627,999,2.986,1036,2.986,1116,3.531,1117,3.531,1118,3.531,1119,3.531,1120,3.531,1121,3.531,1122,3.531,1123,3.531,1124,2.986,1125,3.531,1126,1.813,1127,1.966,1128,2.986,1129,3.531,1130,3.531,1131,2.627,1132,3.531,1133,3.531]],["tags/30",[]],["title/19",[1,0.064,18,0.839,22,1.056,29,0.456,456,0.729,729,1.152,1134,1.605,1135,1.605,1136,1.605,1137,1.605]],["content/19",[1,0.173,5,0.871,6,0.966,9,0.842,11,1.425,12,1.192,18,1.569,27,1.192,28,0.902,29,0.564,30,0.788,49,0.966,60,1.037,61,1.037,63,1.984,65,1.745,67,1.745,73,1.567,76,1.984,79,0.788,80,0.597,81,1.984,106,1.745,108,1.037,109,1.976,113,1.205,120,0.458,135,1.306,150,0.517,157,0.788,165,0.492,194,1.037,223,0.966,227,1.425,236,3,300,1.567,301,2.155,303,1.984,306,2.64,322,1.306,329,1.205,338,1.984,348,1.822,349,0.902,350,1.306,364,1.425,368,1.745,373,1.745,375,1.116,404,0.842,430,1.976,456,0.902,459,1.205,478,1.984,493,1.567,505,1.037,507,2.64,512,1.306,554,1.567,563,0.966,576,1.306,593,0.966,619,1.205,624,1.745,630,1.567,643,1.984,651,1.984,672,0.966,675,1.567,677,1.745,678,1.205,693,1.364,699,1.037,707,1.205,729,2.599,730,2.37,734,1.306,773,1.984,774,1.984,775,2.155,780,1.984,795,1.984,799,1.306,846,1.984,873,1.984,879,1.984,887,1.567,924,1.984,963,1.984,1028,1.984,1034,1.984,1076,1.745,1101,1.984,1102,3.183,1134,4.034,1135,4.034,1136,3.619,1137,3.619,1138,1.745,1139,2.346,1140,3.548,1141,2.346,1142,2.346,1143,1.984,1144,1.984,1145,1.984,1146,2.346,1147,1.984,1148,2.346,1149,2.346,1150,2.346,1151,1.984,1152,2.346,1153,2.346,1154,2.346,1155,2.346,1156,2.346,1157,2.346,1158,2.346,1159,2.346,1160,2.346,1161,2.346,1162,2.346,1163,2.346,1164,2.346,1165,2.346,1166,2.346,1167,2.346,1168,2.346,1169,2.346,1170,2.346,1171,2.346,1172,2.346,1173,2.346,1174,2.346,1175,1.984,1176,2.346,1177,2.346,1178,2.346]],["tags/19",[1179,4.949]],["title/26",[1,0.119,29,0.85,789,1.814]],["content/26",[1,0.203,5,0.798,6,1.628,9,0.975,12,0.911,22,1.511,27,1.328,29,0.653,30,1.328,34,0.61,43,1.511,48,0.975,49,1.92,51,1.511,56,1.291,61,1.2,68,1.648,69,1.118,80,0.785,84,1.394,90,1.394,109,1.511,113,1.394,116,0.853,120,0.91,128,0.698,133,1.511,135,2.201,157,0.911,160,1.043,165,0.569,172,1.511,176,2.019,177,2.03,188,1.648,197,1.394,220,1.511,221,1.394,222,0.717,223,1.118,224,1.118,227,1.648,259,1.2,284,1.813,288,1.813,318,1.511,324,1.511,329,1.394,336,1.394,339,1.648,348,1.394,349,1.519,368,2.019,370,2.019,383,1.242,392,1.291,404,0.975,422,1.648,428,1.813,430,1.511,456,1.519,532,1.813,536,1.648,554,1.813,563,1.118,619,1.394,629,1.511,693,2.184,698,1.648,700,1.813,761,1.648,764,1.813,765,2.019,775,2.401,834,2.295,843,2.019,848,2.295,850,1.648,861,2.295,894,2.019,974,1.2,995,2.019,1055,2.019,1080,2.019,1081,2.295,1086,2.295,1087,2.019,1089,2.295,1093,2.019,1094,2.019,1095,2.019,1096,2.019,1097,1.813,1126,1.394,1127,1.511,1128,2.295,1131,2.019,1175,2.295,1180,2.714,1181,2.714,1182,2.714,1183,2.295,1184,2.714,1185,2.714,1186,2.714,1187,2.714,1188,2.714]],["tags/26",[1,0.086,5,0.24,6,0.636,80,0.26,116,0.485,128,0.397,139,1.306,157,0.519,222,0.28,224,0.636,299,0.555,428,1.032,672,0.636,977,1.306,1067,1.306,1126,0.793,1189,1.544,1190,1.544,1191,1.544]],["title/31",[27,0.682,46,1.043,80,0.342,89,0.967,150,0.245,1126,1.043,1192,1.718,1193,2.032,1194,1.512]],["content/31",[9,1.574,30,1.472,31,1.574,55,2.662,58,2.251,84,2.251,86,2.251,100,2.085,195,3.706,205,2.928,212,1.805,252,2.662,254,3.706,257,3.706,305,3.706,375,2.602,392,2.085,573,2.928,615,3.261,670,2.928,798,2.928,854,3.706,1023,3.706,1062,3.706,1124,3.706,1195,4.383,1196,4.383,1197,4.383,1198,4.383,1199,4.383,1200,4.383,1201,4.383,1202,4.383,1203,4.383,1204,4.383]],["tags/31",[1,0.092,5,0.259,23,1.112,34,0.374,46,0.855,55,1.011,80,0.28,84,0.855,86,0.855,89,0.792,90,0.855,222,0.302,682,1.011,1126,0.855,1194,1.239,1205,1.408,1206,1.665]],["title/32",[44,1.348,86,1.455,150,0.342,777,1.893,1207,2.834]],["content/32",[1,0.169,5,0.593,27,1.279,31,1.796,44,2.379,49,1.568,79,1.279,83,2.544,84,1.956,86,2.867,89,1.812,90,2.568,110,2.544,120,0.976,157,1.279,165,1.048,169,1.568,223,1.568,252,2.313,269,2.121,284,2.544,300,2.544,322,2.121,386,2.544,442,2.544,448,2.833,492,2.313,536,2.313,556,1.956,693,1.922,701,3.221,739,2.833,764,2.544,777,2.544,788,2.544,789,1.956,850,3.037,915,2.833,984,3.221,1011,2.833,1013,3.221,1126,1.956,1127,2.121,1194,2.833,1205,3.221,1208,3.809,1209,3.809,1210,3.809,1211,3.809,1212,3.809,1213,3.809]],["tags/32",[]],["title/33",[46,1.455,89,1.348,95,1.721,1192,2.397,1214,2.397]],["content/33",[0,1.746,1,0.106,5,0.488,12,1.837,23,3.375,29,0.754,31,1.126,34,0.704,40,0.922,46,2.595,87,2.651,89,2.738,90,1.61,95,1.904,113,1.61,122,2.332,150,0.379,159,2.651,161,1.746,165,0.657,189,2.651,194,1.386,197,1.61,222,0.569,225,1.904,248,2.651,250,2.651,277,1.61,284,2.094,287,2.332,291,1.746,299,1.126,374,2.651,382,1.937,398,1.904,404,1.126,406,2.651,425,1.904,461,2.332,484,2.927,532,2.094,556,2.25,593,1.291,659,3.26,682,2.661,686,2.651,693,1.205,696,2.094,699,1.386,707,2.25,739,2.332,770,2.332,790,1.904,806,2.332,808,1.746,850,1.904,869,2.094,1102,2.332,1145,2.651,1183,2.651,1214,3.706,1215,3.135,1216,3.135,1217,2.651,1218,3.135,1219,3.135,1220,3.135,1221,2.651,1222,2.651,1223,3.135,1224,4.383,1225,3.135,1226,3.135,1227,2.651,1228,3.135,1229,3.135,1230,3.135,1231,3.135,1232,3.135,1233,3.135,1234,2.651,1235,2.651,1236,3.135]],["tags/33",[]],["title/34",[27,1.186,80,0.594,150,0.426]],["content/34",[0,2.25,1,0.205,2,1.581,5,0.809,27,1.357,29,1.382,61,1.787,67,3.866,69,1.664,80,0.68,120,1.014,134,2.454,150,0.488,161,2.25,165,0.847,222,0.733,339,2.454,412,3.418,430,2.25,502,2.7,556,2.076,625,2.7,672,1.664,693,1.553,726,4.395,807,3.007,900,3.418,905,4.395,915,3.007,1080,3.007,1127,2.25,1151,3.418,1237,5.197,1238,4.042,1239,4.042,1240,4.042,1241,4.042]],["tags/34",[]],["title/35",[1,0.136,120,0.786]],["content/35",[1,0.191,2,1.267,40,1.354,48,1.654,126,2.191,165,0.965,179,2.564,208,2.191,328,2.036,349,1.77,362,3.076,459,2.365,506,3.426,593,1.896,770,3.426,955,3.894,1085,3.894,1093,3.426,1094,3.426,1095,3.426,1131,3.426,1242,4.605,1243,4.605,1244,4.605,1245,4.605,1246,4.605,1247,4.605]],["tags/35",[]],["title/36",[222,0.514,464,1.721,808,1.578,1248,2.397,1249,2.834]],["content/36",[1,0.205,12,1.527,27,1.527,34,1.022,40,1.337,150,0.549,155,3.037,222,0.825,301,2.762,456,1.748,464,2.762,491,2.762,672,1.873,808,2.532,869,3.037,1046,3.845,1138,3.383,1147,3.845,1250,4.548,1251,4.548,1252,4.548,1253,4.548,1254,3.845,1255,3.845,1256,4.548,1257,4.548,1258,4.548,1259,4.548]],["tags/36",[1,0.073,1008,1.617,1097,1.452,1260,2.174,1261,2.174,1262,2.174,1263,2.174,1264,2.174,1265,2.174,1266,2.174,1267,2.174,1268,2.174]],["title/37",[150,0.486,1269,3.406]],["content/37",[0,1.653,5,0.656,17,1.803,29,0.714,44,2.333,48,1.066,50,2.511,57,1.803,58,1.525,59,1.525,60,1.312,69,1.223,79,1.416,83,2.817,86,2.166,89,1.412,98,3.137,117,1.653,120,0.579,150,0.509,161,1.653,165,0.622,183,1.803,224,1.223,259,1.312,312,1.525,328,1.312,329,1.525,382,1.312,383,0.933,385,2.511,386,1.983,422,1.803,493,2.817,532,2.817,556,2.166,560,2.511,564,2.209,588,1.653,617,2.209,644,2.209,678,1.525,682,1.803,699,1.312,746,2.511,764,1.983,767,2.511,790,1.803,807,2.209,808,1.653,811,2.209,814,1.803,831,1.983,866,1.983,869,2.817,894,2.209,904,2.209,974,1.312,986,1.983,995,2.209,1009,2.511,1031,2.511,1096,2.209,1104,2.511,1105,2.511,1112,2.511,1126,1.525,1127,1.653,1138,3.137,1143,2.511,1217,2.511,1221,2.511,1222,2.511,1270,4.77,1271,2.969,1272,2.969,1273,2.969,1274,2.969,1275,2.969,1276,4.905,1277,2.969,1278,2.969,1279,2.969,1280,2.969,1281,2.969,1282,2.969,1283,2.969,1284,2.969,1285,2.511,1286,2.969,1287,2.969,1288,2.969,1289,2.969,1290,2.969,1291,2.969,1292,2.969]],["tags/37",[]],["title/38",[80,0.594,150,0.426,1248,2.987]],["content/38",[1,0.155,2,0.922,5,0.522,22,1.866,29,1.259,34,0.753,40,0.986,41,2.835,49,1.38,57,2.036,59,2.357,60,1.482,79,1.126,80,0.564,120,0.896,133,1.866,150,0.405,151,1.595,165,0.702,168,2.494,222,0.608,224,1.38,239,1.263,276,2.835,287,2.494,292,2.835,329,1.721,339,2.036,359,1.721,383,1.053,451,2.835,625,2.239,677,2.494,707,1.721,808,1.866,906,2.835,916,2.494,917,2.835,918,2.835,931,2.835,1008,2.494,1017,3.881,1097,3.066,1114,2.835,1127,1.866,1234,2.835,1269,2.835,1270,3.881,1293,3.352,1294,3.352,1295,3.352,1296,3.352,1297,3.352,1298,3.352,1299,3.352,1300,3.352,1301,3.352,1302,3.352,1303,3.352,1304,3.352,1305,3.352,1306,3.352,1307,3.352,1308,3.352,1309,4.59,1310,3.352,1311,3.352,1312,3.352,1313,2.835,1314,3.352,1315,3.352,1316,3.352,1317,3.352,1318,4.59,1319,3.352,1320,3.352]],["tags/38",[]],["title/39",[222,0.641,552,2.987,1285,2.987]],["content/39",[8,1.817,12,1.38,31,1.476,40,1.794,80,0.692,126,1.955,128,1.058,150,0.496,222,0.953,348,2.111,425,2.496,456,2.225,491,2.496,678,2.111,762,3.476,788,2.745,789,2.698,866,3.509,886,3.476,887,2.745,986,3.509,1076,3.058,1144,3.476,1227,4.442,1235,3.476,1254,4.442,1255,3.476,1321,4.111,1322,4.111,1323,4.111,1324,4.111,1325,4.111,1326,4.111,1327,4.111,1328,4.111,1329,4.111]],["tags/39",[]],["title/40",[120,0.914]],["content/40",[1,0.181,8,1.881,31,1.528,56,2.024,80,0.99,120,1.148,121,2.584,132,3.165,133,2.369,134,2.584,154,1.881,160,2.064,165,1.125,223,1.752,239,1.171,299,1.528,349,1.635,362,2.842,375,2.024,382,1.881,383,1.337,449,2.185,457,3.165,685,3.165,707,2.758,775,2.584,791,3.165,841,3.165,988,3.598,1087,3.165,1313,3.598,1330,4.255,1331,4.255]],["tags/40",[]]],"invertedIndex":[["",{"_index":2,"title":{"1":{},"14":{}},"content":{"4":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"22":{},"23":{},"24":{},"27":{},"34":{},"35":{},"38":{}},"tags":{}}],["1",{"_index":587,"title":{"8":{}},"content":{},"tags":{}}],["1.7",{"_index":889,"title":{},"content":{"20":{}},"tags":{}}],["10",{"_index":184,"title":{},"content":{"2":{}},"tags":{}}],["100",{"_index":170,"title":{},"content":{"2":{}},"tags":{}}],["13",{"_index":1323,"title":{},"content":{"39":{}},"tags":{}}],["13,500",{"_index":436,"title":{},"content":{"3":{}},"tags":{}}],["15",{"_index":216,"title":{},"content":{"2":{}},"tags":{}}],["17",{"_index":998,"title":{},"content":{"23":{}},"tags":{}}],["2",{"_index":596,"title":{"9":{}},"content":{},"tags":{}}],["200",{"_index":766,"title":{},"content":{"16":{}},"tags":{}}],["2000",{"_index":953,"title":{},"content":{"20":{}},"tags":{}}],["2023",{"_index":217,"title":{},"content":{"2":{}},"tags":{}}],["28.2",{"_index":572,"title":{},"content":{"6":{}},"tags":{}}],["29.6",{"_index":571,"title":{},"content":{"6":{}},"tags":{}}],["2–3",{"_index":1289,"title":{},"content":{"37":{}},"tags":{}}],["3",{"_index":604,"title":{"10":{}},"content":{},"tags":{}}],["31",{"_index":570,"title":{},"content":{"6":{}},"tags":{}}],["33,600",{"_index":589,"title":{},"content":{"8":{}},"tags":{}}],["35.2",{"_index":569,"title":{},"content":{"6":{}},"tags":{}}],["350",{"_index":954,"title":{},"content":{"20":{}},"tags":{}}],["36.6",{"_index":557,"title":{},"content":{"6":{}},"tags":{}}],["38",{"_index":568,"title":{},"content":{"6":{}},"tags":{}}],["393,000,000",{"_index":612,"title":{},"content":{"11":{}},"tags":{}}],["3rd",{"_index":1103,"title":{},"content":{"29":{}},"tags":{}}],["4",{"_index":611,"title":{"11":{}},"content":{},"tags":{}}],["4,99",{"_index":1090,"title":{},"content":{"29":{}},"tags":{}}],["42.3",{"_index":545,"title":{},"content":{"6":{}},"tags":{}}],["49.90",{"_index":1091,"title":{},"content":{"29":{}},"tags":{}}],["5",{"_index":565,"title":{"12":{}},"content":{"6":{}},"tags":{}}],["5,690,000",{"_index":622,"title":{},"content":{"12":{}},"tags":{}}],["52.1",{"_index":537,"title":{},"content":{"6":{}},"tags":{}}],["560,000",{"_index":605,"title":{},"content":{"10":{}},"tags":{}}],["5th",{"_index":1203,"title":{},"content":{"31":{}},"tags":{}}],["600",{"_index":758,"title":{"16":{}},"content":{"16":{}},"tags":{}}],["667",{"_index":1229,"title":{},"content":{"33":{}},"tags":{}}],["7",{"_index":1136,"title":{"19":{}},"content":{"19":{}},"tags":{}}],["71",{"_index":530,"title":{},"content":{"6":{}},"tags":{}}],["8.5",{"_index":443,"title":{},"content":{"3":{}},"tags":{}}],["800,000",{"_index":597,"title":{},"content":{"9":{}},"tags":{}}],["9",{"_index":888,"title":{},"content":{"20":{}},"tags":{}}],["abandonwar",{"_index":1197,"title":{},"content":{"31":{}},"tags":{}}],["abov",{"_index":1227,"title":{},"content":{"33":{},"39":{}},"tags":{}}],["absolut",{"_index":415,"title":{},"content":{"3":{}},"tags":{}}],["accept",{"_index":1004,"title":{},"content":{"24":{},"25":{}},"tags":{}}],["access",{"_index":383,"title":{"21":{},"22":{}},"content":{"3":{},"18":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"29":{},"37":{},"38":{},"40":{}},"tags":{}}],["accord",{"_index":379,"title":{},"content":{"3":{}},"tags":{}}],["account",{"_index":635,"title":{},"content":{"13":{},"24":{}},"tags":{}}],["accus",{"_index":264,"title":{},"content":{"4":{}},"tags":{}}],["achiev",{"_index":816,"title":{},"content":{"16":{}},"tags":{}}],["acknowledg",{"_index":424,"title":{},"content":{"3":{}},"tags":{}}],["acquir",{"_index":684,"title":{},"content":{"18":{}},"tags":{}}],["action",{"_index":275,"title":{},"content":{"4":{},"20":{}},"tags":{}}],["activ",{"_index":698,"title":{},"content":{"17":{},"18":{},"24":{},"26":{},"29":{}},"tags":{}}],["ad",{"_index":1313,"title":{},"content":{"38":{},"40":{}},"tags":{}}],["add",{"_index":846,"title":{},"content":{"17":{},"19":{}},"tags":{}}],["addit",{"_index":339,"title":{},"content":{"3":{},"4":{},"26":{},"34":{},"38":{}},"tags":{}}],["addition",{"_index":75,"title":{},"content":{"1":{},"11":{},"13":{},"29":{}},"tags":{}}],["address",{"_index":284,"title":{},"content":{"4":{},"26":{},"32":{},"33":{}},"tags":{}}],["admin",{"_index":1307,"title":{},"content":{"38":{}},"tags":{}}],["admir",{"_index":427,"title":{},"content":{"3":{}},"tags":{}}],["ado",{"_index":562,"title":{},"content":{"6":{}},"tags":{}}],["adult",{"_index":627,"title":{},"content":{"12":{}},"tags":{}}],["adventur",{"_index":1176,"title":{},"content":{"19":{}},"tags":{}}],["advertis",{"_index":727,"title":{},"content":{"15":{}},"tags":{}}],["affili",{"_index":544,"title":{},"content":{"6":{}},"tags":{}}],["afford",{"_index":1079,"title":{},"content":{"29":{}},"tags":{}}],["ag",{"_index":1017,"title":{},"content":{"27":{},"38":{}},"tags":{}}],["again",{"_index":1275,"title":{},"content":{"37":{}},"tags":{}}],["against",{"_index":347,"title":{},"content":{"4":{},"6":{}},"tags":{}}],["age restrict",{"_index":1265,"title":{},"content":{},"tags":{"36":{}}}],["agnost",{"_index":1208,"title":{},"content":{"32":{}},"tags":{}}],["ai",{"_index":174,"title":{},"content":{"2":{}},"tags":{}}],["ai-generated nam",{"_index":231,"title":{},"content":{},"tags":{"2":{}}}],["aim",{"_index":191,"title":{},"content":{"2":{},"13":{}},"tags":{}}],["align",{"_index":477,"title":{},"content":{"3":{},"11":{},"17":{}},"tags":{}}],["aliv",{"_index":1109,"title":{},"content":{"29":{}},"tags":{}}],["allow",{"_index":386,"title":{},"content":{"3":{},"6":{},"32":{},"37":{}},"tags":{}}],["along",{"_index":1114,"title":{},"content":{"29":{},"38":{}},"tags":{}}],["alongsid",{"_index":892,"title":{},"content":{"20":{}},"tags":{}}],["alreadi",{"_index":593,"title":{},"content":{"8":{},"10":{},"13":{},"16":{},"17":{},"19":{},"20":{},"30":{},"33":{},"35":{}},"tags":{}}],["altern",{"_index":19,"title":{},"content":{"1":{},"3":{},"4":{},"27":{}},"tags":{"1":{}}}],["although",{"_index":457,"title":{},"content":{"3":{},"17":{},"40":{}},"tags":{}}],["alway",{"_index":1076,"title":{},"content":{"19":{},"29":{},"39":{}},"tags":{}}],["amaz",{"_index":765,"title":{},"content":{"16":{},"17":{},"26":{}},"tags":{}}],["analysi",{"_index":577,"title":{"7":{}},"content":{"6":{}},"tags":{}}],["analyt",{"_index":1267,"title":{},"content":{},"tags":{"36":{}}}],["analyz",{"_index":581,"title":{},"content":{"6":{}},"tags":{}}],["anim",{"_index":1093,"title":{},"content":{"26":{},"29":{},"35":{}},"tags":{}}],["announ",{"_index":884,"title":{},"content":{"20":{}},"tags":{}}],["announc",{"_index":157,"title":{"16":{},"27":{}},"content":{"2":{},"5":{},"16":{},"19":{},"26":{},"27":{},"30":{},"32":{}},"tags":{"2":{},"26":{},"27":{}}}],["annual",{"_index":445,"title":{},"content":{"3":{}},"tags":{}}],["anoth",{"_index":1031,"title":{},"content":{"27":{},"37":{}},"tags":{}}],["answer",{"_index":409,"title":{},"content":{"3":{},"18":{}},"tags":{}}],["anticip",{"_index":306,"title":{},"content":{"4":{},"16":{},"19":{}},"tags":{}}],["anual",{"_index":1092,"title":{},"content":{"29":{}},"tags":{}}],["anyon",{"_index":987,"title":{},"content":{"22":{}},"tags":{}}],["anyth",{"_index":938,"title":{},"content":{"20":{}},"tags":{}}],["api",{"_index":90,"title":{},"content":{"1":{},"26":{},"29":{},"32":{},"33":{}},"tags":{"1":{},"31":{}}}],["apolog",{"_index":193,"title":{},"content":{"2":{}},"tags":{}}],["app",{"_index":239,"title":{"4":{}},"content":{"3":{},"4":{},"5":{},"6":{},"8":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"27":{},"38":{},"40":{}},"tags":{"4":{}}}],["app name migr",{"_index":749,"title":{},"content":{},"tags":{"15":{}}}],["app optim",{"_index":1266,"title":{},"content":{},"tags":{"36":{}}}],["app'",{"_index":210,"title":{},"content":{"2":{},"20":{}},"tags":{}}],["appeal",{"_index":185,"title":{},"content":{"2":{}},"tags":{}}],["appear",{"_index":702,"title":{},"content":{"18":{}},"tags":{}}],["appli",{"_index":1016,"title":{},"content":{"25":{},"29":{}},"tags":{}}],["applic",{"_index":404,"title":{},"content":{"3":{},"9":{},"10":{},"16":{},"18":{},"19":{},"20":{},"23":{},"25":{},"26":{},"27":{},"33":{}},"tags":{}}],["application'",{"_index":1129,"title":{},"content":{"30":{}},"tags":{}}],["appreci",{"_index":179,"title":{},"content":{"2":{},"3":{},"4":{},"16":{},"17":{},"35":{}},"tags":{}}],["approach",{"_index":52,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["appropri",{"_index":292,"title":{},"content":{"4":{},"38":{}},"tags":{}}],["april",{"_index":1177,"title":{},"content":{"19":{}},"tags":{}}],["april fool",{"_index":1179,"title":{},"content":{},"tags":{"19":{}}}],["architectur",{"_index":1130,"title":{},"content":{"30":{}},"tags":{}}],["archiv",{"_index":905,"title":{},"content":{"20":{},"34":{}},"tags":{}}],["area",{"_index":1184,"title":{},"content":{"26":{}},"tags":{}}],["argument",{"_index":1314,"title":{},"content":{"38":{}},"tags":{}}],["around",{"_index":214,"title":{},"content":{"2":{},"3":{},"16":{},"29":{}},"tags":{}}],["art",{"_index":1231,"title":{},"content":{"33":{}},"tags":{}}],["ask",{"_index":183,"title":{},"content":{"2":{},"4":{},"16":{},"20":{},"37":{}},"tags":{}}],["aspect",{"_index":856,"title":{},"content":{"17":{}},"tags":{}}],["assist",{"_index":317,"title":{},"content":{"4":{}},"tags":{}}],["associ",{"_index":600,"title":{},"content":{"9":{}},"tags":{}}],["aswel",{"_index":924,"title":{},"content":{"19":{},"20":{}},"tags":{}}],["atmospher",{"_index":283,"title":{},"content":{"4":{}},"tags":{}}],["attempt",{"_index":278,"title":{},"content":{"4":{}},"tags":{}}],["attent",{"_index":242,"title":{},"content":{"4":{},"20":{}},"tags":{}}],["attract",{"_index":542,"title":{},"content":{"6":{}},"tags":{}}],["authent",{"_index":92,"title":{},"content":{"1":{}},"tags":{}}],["auto",{"_index":900,"title":{},"content":{"20":{},"34":{}},"tags":{}}],["automat",{"_index":81,"title":{},"content":{"1":{},"19":{}},"tags":{}}],["avail",{"_index":18,"title":{"3":{},"19":{}},"content":{"1":{},"2":{},"3":{},"13":{},"15":{},"19":{},"29":{}},"tags":{}}],["away",{"_index":1217,"title":{},"content":{"33":{},"37":{}},"tags":{}}],["awesom",{"_index":776,"title":{},"content":{"16":{}},"tags":{}}],["back",{"_index":814,"title":{"20":{}},"content":{"16":{},"20":{},"29":{},"37":{}},"tags":{}}],["backend",{"_index":682,"title":{},"content":{"18":{},"20":{},"33":{},"37":{}},"tags":{"31":{}}}],["backend application migr",{"_index":716,"title":{},"content":{},"tags":{"18":{}}}],["backend:earli",{"_index":1003,"title":{},"content":{"24":{}},"tags":{}}],["backlog",{"_index":610,"title":{},"content":{"10":{}},"tags":{}}],["backup",{"_index":908,"title":{},"content":{"20":{}},"tags":{}}],["bandwidth",{"_index":907,"title":{},"content":{"20":{}},"tags":{}}],["bar",{"_index":1308,"title":{},"content":{"38":{}},"tags":{}}],["base",{"_index":22,"title":{"19":{}},"content":{"1":{},"2":{},"26":{},"29":{},"38":{}},"tags":{}}],["baseless",{"_index":263,"title":{},"content":{"4":{}},"tags":{}}],["battl",{"_index":236,"title":{"4":{}},"content":{"19":{}},"tags":{}}],["be",{"_index":270,"title":{},"content":{"3":{},"4":{},"16":{},"17":{},"20":{}},"tags":{}}],["bean",{"_index":950,"title":{},"content":{"20":{}},"tags":{}}],["becom",{"_index":798,"title":{},"content":{"16":{},"17":{},"20":{},"31":{}},"tags":{}}],["befor",{"_index":986,"title":{},"content":{"22":{},"29":{},"37":{},"39":{}},"tags":{}}],["beforehand",{"_index":578,"title":{},"content":{"6":{}},"tags":{}}],["began",{"_index":250,"title":{},"content":{"4":{},"33":{}},"tags":{}}],["begin",{"_index":1165,"title":{},"content":{"19":{}},"tags":{}}],["behavior",{"_index":248,"title":{},"content":{"4":{},"33":{}},"tags":{}}],["behind",{"_index":399,"title":{},"content":{"3":{},"15":{},"27":{}},"tags":{}}],["believ",{"_index":391,"title":{},"content":{"3":{},"16":{},"17":{}},"tags":{}}],["benefit",{"_index":136,"title":{},"content":{"1":{},"6":{}},"tags":{}}],["best",{"_index":873,"title":{},"content":{"17":{},"19":{}},"tags":{}}],["bet",{"_index":1245,"title":{},"content":{"35":{}},"tags":{}}],["beta test",{"_index":979,"title":{},"content":{},"tags":{"21":{}}}],["better",{"_index":161,"title":{},"content":{"2":{},"4":{},"17":{},"33":{},"34":{},"37":{}},"tags":{}}],["between",{"_index":1235,"title":{},"content":{"33":{},"39":{}},"tags":{}}],["beyond",{"_index":1251,"title":{},"content":{"36":{}},"tags":{}}],["bia",{"_index":190,"title":{},"content":{"2":{}},"tags":{}}],["big",{"_index":761,"title":{"16":{}},"content":{"20":{},"22":{},"26":{},"30":{}},"tags":{}}],["biggest",{"_index":1253,"title":{},"content":{"36":{}},"tags":{}}],["bird",{"_index":1167,"title":{},"content":{"19":{}},"tags":{}}],["blackmail",{"_index":246,"title":{},"content":{"4":{}},"tags":{"4":{}}}],["bloat",{"_index":859,"title":{},"content":{"17":{}},"tags":{}}],["blog",{"_index":213,"title":{},"content":{"2":{},"16":{},"18":{},"20":{}},"tags":{}}],["board",{"_index":608,"title":{},"content":{"10":{},"17":{},"29":{}},"tags":{}}],["bookmark",{"_index":1237,"title":{},"content":{"34":{}},"tags":{}}],["bore",{"_index":962,"title":{},"content":{"20":{}},"tags":{}}],["born",{"_index":1022,"title":{},"content":{"27":{}},"tags":{}}],["both",{"_index":287,"title":{},"content":{"4":{},"33":{},"38":{}},"tags":{}}],["bothersom",{"_index":857,"title":{},"content":{"17":{}},"tags":{}}],["boundari",{"_index":774,"title":{},"content":{"16":{},"19":{}},"tags":{}}],["box",{"_index":739,"title":{},"content":{"15":{},"32":{},"33":{}},"tags":{}}],["box represent",{"_index":755,"title":{},"content":{},"tags":{"15":{}}}],["boy",{"_index":1037,"title":{},"content":{"27":{}},"tags":{}}],["brainstorm",{"_index":638,"title":{},"content":{"13":{}},"tags":{}}],["branch",{"_index":268,"title":{},"content":{"4":{}},"tags":{}}],["brand",{"_index":617,"title":{},"content":{"11":{},"21":{},"37":{}},"tags":{}}],["break",{"_index":1006,"title":{},"content":{"24":{}},"tags":{}}],["breez",{"_index":1319,"title":{},"content":{"38":{}},"tags":{}}],["brent",{"_index":668,"title":{},"content":{"14":{}},"tags":{}}],["brief",{"_index":680,"title":{},"content":{"18":{}},"tags":{}}],["bring",{"_index":302,"title":{},"content":{"4":{},"30":{}},"tags":{}}],["brows",{"_index":63,"title":{},"content":{"1":{},"19":{}},"tags":{}}],["btw",{"_index":1057,"title":{},"content":{"27":{}},"tags":{}}],["buck",{"_index":320,"title":{},"content":{"4":{}},"tags":{}}],["bug",{"_index":117,"title":{},"content":{"1":{},"4":{},"17":{},"20":{},"37":{}},"tags":{"4":{}}}],["build",{"_index":1045,"title":{},"content":{"27":{}},"tags":{}}],["built",{"_index":808,"title":{"36":{}},"content":{"16":{},"33":{},"36":{},"37":{},"38":{}},"tags":{}}],["bunch",{"_index":897,"title":{},"content":{"20":{}},"tags":{}}],["busi",{"_index":461,"title":{},"content":{"3":{},"6":{},"33":{}},"tags":{}}],["bypass",{"_index":1077,"title":{},"content":{"29":{}},"tags":{}}],["call",{"_index":365,"title":{},"content":{"3":{},"8":{},"9":{},"11":{},"27":{}},"tags":{}}],["can't",{"_index":506,"title":{},"content":{"5":{},"29":{},"35":{}},"tags":{}}],["capac",{"_index":842,"title":{},"content":{"17":{}},"tags":{}}],["carri",{"_index":1150,"title":{},"content":{"19":{}},"tags":{}}],["case",{"_index":402,"title":{},"content":{"3":{}},"tags":{}}],["casino/gambl",{"_index":602,"title":{},"content":{"9":{}},"tags":{}}],["cast",{"_index":201,"title":{},"content":{"2":{}},"tags":{}}],["caught",{"_index":878,"title":{},"content":{"20":{},"27":{}},"tags":{}}],["caus",{"_index":195,"title":{},"content":{"2":{},"31":{}},"tags":{}}],["celebr",{"_index":676,"title":{"16":{}},"content":{"14":{},"16":{}},"tags":{}}],["celebration of achiev",{"_index":830,"title":{},"content":{},"tags":{"16":{}}}],["certain",{"_index":384,"title":{},"content":{"3":{}},"tags":{}}],["challeng",{"_index":615,"title":{},"content":{"11":{},"16":{},"31":{}},"tags":{}}],["chanc",{"_index":660,"title":{},"content":{"14":{}},"tags":{}}],["chang",{"_index":556,"title":{},"content":{"6":{},"20":{},"27":{},"32":{},"33":{},"34":{},"37":{}},"tags":{}}],["changelog",{"_index":1328,"title":{},"content":{"39":{}},"tags":{}}],["channel",{"_index":336,"title":{},"content":{"4":{},"14":{},"17":{},"18":{},"24":{},"26":{},"30":{}},"tags":{}}],["chapter",{"_index":1113,"title":{},"content":{"29":{}},"tags":{}}],["character",{"_index":479,"title":{},"content":{"3":{}},"tags":{}}],["chat",{"_index":335,"title":{},"content":{"4":{},"16":{},"18":{}},"tags":{}}],["check",{"_index":1326,"title":{},"content":{"39":{}},"tags":{}}],["cherri",{"_index":1283,"title":{},"content":{"37":{}},"tags":{}}],["children",{"_index":1299,"title":{},"content":{"38":{}},"tags":{}}],["choic",{"_index":540,"title":{},"content":{"6":{}},"tags":{}}],["choos",{"_index":149,"title":{"2":{}},"content":{"2":{},"5":{}},"tags":{}}],["chosen",{"_index":583,"title":{},"content":{"6":{}},"tags":{}}],["clarifi",{"_index":361,"title":{},"content":{"3":{}},"tags":{}}],["clear",{"_index":1059,"title":{},"content":{"27":{},"29":{}},"tags":{}}],["cli",{"_index":1098,"title":{},"content":{"29":{}},"tags":{}}],["click",{"_index":203,"title":{},"content":{"2":{}},"tags":{}}],["client",{"_index":456,"title":{"19":{}},"content":{"3":{},"16":{},"18":{},"19":{},"26":{},"27":{},"29":{},"30":{},"36":{},"39":{}},"tags":{}}],["client application upd",{"_index":721,"title":{},"content":{},"tags":{"18":{}}}],["client upd",{"_index":1260,"title":{},"content":{},"tags":{"36":{}}}],["close",{"_index":403,"title":{},"content":{"3":{}},"tags":{}}],["closer",{"_index":358,"title":{"3":{}},"content":{},"tags":{}}],["cloud",{"_index":21,"title":{},"content":{"1":{}},"tags":{}}],["cloud-based game platform",{"_index":140,"title":{},"content":{},"tags":{"1":{}}}],["code",{"_index":367,"title":{},"content":{"3":{}},"tags":{}}],["code access",{"_index":497,"title":{},"content":{},"tags":{"3":{}}}],["coding chronicl",{"_index":972,"title":{},"content":{},"tags":{"20":{}}}],["collabor",{"_index":805,"title":{},"content":{"16":{},"17":{}},"tags":{"17":{}}}],["colleagu",{"_index":555,"title":{},"content":{"6":{},"15":{}},"tags":{}}],["collect",{"_index":65,"title":{},"content":{"1":{},"10":{},"19":{}},"tags":{}}],["come",{"_index":241,"title":{"27":{}},"content":{"4":{},"14":{},"29":{}},"tags":{}}],["commenc",{"_index":503,"title":{},"content":{"5":{},"13":{}},"tags":{}}],["comment",{"_index":487,"title":{},"content":{"3":{}},"tags":{}}],["commerci",{"_index":389,"title":{},"content":{"3":{}},"tags":{}}],["commit",{"_index":197,"title":{},"content":{"2":{},"3":{},"13":{},"17":{},"20":{},"26":{},"33":{}},"tags":{}}],["common",{"_index":614,"title":{},"content":{"11":{}},"tags":{}}],["commun",{"_index":34,"title":{"4":{}},"content":{"1":{},"3":{},"4":{},"6":{},"16":{},"17":{},"18":{},"20":{},"26":{},"29":{},"30":{},"33":{},"36":{},"38":{}},"tags":{"2":{},"17":{},"27":{},"31":{}}}],["community feedback",{"_index":516,"title":{},"content":{},"tags":{"5":{},"21":{}}}],["community manag",{"_index":1268,"title":{},"content":{},"tags":{"36":{}}}],["community-driven",{"_index":1191,"title":{},"content":{},"tags":{"26":{}}}],["company'",{"_index":446,"title":{},"content":{"3":{}},"tags":{}}],["compar",{"_index":76,"title":{},"content":{"1":{},"19":{}},"tags":{}}],["compat",{"_index":1144,"title":{},"content":{"19":{},"39":{}},"tags":{}}],["complet",{"_index":58,"title":{"15":{}},"content":{"1":{},"18":{},"23":{},"27":{},"31":{},"37":{}},"tags":{}}],["concept",{"_index":747,"title":{},"content":{"15":{}},"tags":{}}],["concern",{"_index":159,"title":{},"content":{"2":{},"33":{}},"tags":{}}],["conclud",{"_index":1180,"title":{},"content":{"26":{}},"tags":{}}],["conclus",{"_index":534,"title":{},"content":{"6":{}},"tags":{}}],["conduct",{"_index":575,"title":{},"content":{"6":{}},"tags":{}}],["configur",{"_index":93,"title":{},"content":{"1":{}},"tags":{}}],["confirm",{"_index":549,"title":{},"content":{"6":{}},"tags":{}}],["confus",{"_index":1071,"title":{},"content":{"29":{}},"tags":{}}],["connect",{"_index":125,"title":{},"content":{"1":{},"16":{}},"tags":{}}],["consent",{"_index":423,"title":{},"content":{"3":{}},"tags":{}}],["consequ",{"_index":579,"title":{},"content":{"6":{}},"tags":{}}],["consid",{"_index":362,"title":{},"content":{"3":{},"16":{},"35":{},"40":{}},"tags":{}}],["contact",{"_index":1125,"title":{},"content":{"30":{}},"tags":{}}],["content",{"_index":1296,"title":{},"content":{"38":{}},"tags":{}}],["continu",{"_index":223,"title":{},"content":{"2":{},"3":{},"4":{},"14":{},"16":{},"19":{},"20":{},"26":{},"32":{},"40":{}},"tags":{}}],["continued support",{"_index":829,"title":{},"content":{},"tags":{"16":{}}}],["contrast",{"_index":440,"title":{},"content":{"3":{}},"tags":{}}],["contribut",{"_index":115,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"6":{},"17":{},"20":{}},"tags":{}}],["control",{"_index":59,"title":{},"content":{"1":{},"3":{},"13":{},"20":{},"37":{},"38":{}},"tags":{"3":{}}}],["conveni",{"_index":168,"title":{},"content":{"2":{},"3":{},"38":{}},"tags":{}}],["convey",{"_index":645,"title":{},"content":{"13":{}},"tags":{}}],["convinc",{"_index":837,"title":{},"content":{"17":{}},"tags":{}}],["cook",{"_index":913,"title":{},"content":{"20":{}},"tags":{}}],["copi",{"_index":416,"title":{},"content":{"3":{}},"tags":{}}],["core",{"_index":450,"title":{},"content":{"3":{},"20":{},"29":{}},"tags":{}}],["couldn't",{"_index":1182,"title":{},"content":{"26":{}},"tags":{}}],["could’v",{"_index":1256,"title":{},"content":{"36":{}},"tags":{}}],["council",{"_index":864,"title":{},"content":{"17":{},"20":{},"30":{}},"tags":{}}],["council memb",{"_index":875,"title":{},"content":{},"tags":{"17":{}}}],["count",{"_index":959,"title":{},"content":{"20":{}},"tags":{}}],["cover",{"_index":1259,"title":{},"content":{"36":{}},"tags":{}}],["craft",{"_index":704,"title":{},"content":{"18":{}},"tags":{}}],["crash",{"_index":910,"title":{},"content":{"20":{}},"tags":{}}],["creat",{"_index":16,"title":{},"content":{"1":{},"2":{},"17":{}},"tags":{}}],["creativ",{"_index":748,"title":{},"content":{"15":{}},"tags":{}}],["creepi",{"_index":308,"title":{},"content":{"4":{}},"tags":{}}],["creepy behavior",{"_index":354,"title":{},"content":{},"tags":{"4":{}}}],["criteria",{"_index":372,"title":{},"content":{"3":{}},"tags":{}}],["critic",{"_index":552,"title":{"39":{}},"content":{"6":{}},"tags":{}}],["cross",{"_index":952,"title":{},"content":{"20":{}},"tags":{}}],["crucial",{"_index":855,"title":{},"content":{"17":{}},"tags":{}}],["crucual",{"_index":393,"title":{},"content":{"3":{}},"tags":{}}],["current",{"_index":194,"title":{},"content":{"2":{},"3":{},"6":{},"16":{},"18":{},"19":{},"20":{},"29":{},"33":{}},"tags":{}}],["custom",{"_index":1096,"title":{},"content":{"26":{},"29":{},"37":{}},"tags":{}}],["data",{"_index":532,"title":{},"content":{"6":{},"26":{},"33":{},"37":{}},"tags":{}}],["databas",{"_index":84,"title":{},"content":{"1":{},"20":{},"26":{},"30":{},"31":{},"32":{}},"tags":{"31":{}}}],["day",{"_index":1204,"title":{},"content":{"31":{}},"tags":{}}],["deal",{"_index":485,"title":{},"content":{"3":{},"22":{}},"tags":{}}],["decad",{"_index":435,"title":{},"content":{"3":{}},"tags":{}}],["decemb",{"_index":997,"title":{},"content":{"23":{}},"tags":{}}],["decid",{"_index":300,"title":{},"content":{"4":{},"19":{},"30":{},"32":{}},"tags":{}}],["deciph",{"_index":737,"title":{},"content":{"15":{}},"tags":{}}],["decis",{"_index":166,"title":{},"content":{"2":{},"4":{},"6":{}},"tags":{}}],["decision-mak",{"_index":233,"title":{},"content":{},"tags":{"2":{}}}],["dedic",{"_index":288,"title":{},"content":{"4":{},"16":{},"17":{},"26":{}},"tags":{}}],["deep",{"_index":926,"title":{},"content":{"20":{}},"tags":{}}],["default",{"_index":1234,"title":{},"content":{"33":{},"38":{}},"tags":{}}],["definit",{"_index":363,"title":{},"content":{"3":{}},"tags":{}}],["degrad",{"_index":1123,"title":{},"content":{"30":{}},"tags":{}}],["delay",{"_index":513,"title":{},"content":{"5":{}},"tags":{}}],["delight",{"_index":32,"title":{},"content":{"1":{}},"tags":{}}],["demand",{"_index":1043,"title":{},"content":{"27":{}},"tags":{}}],["demo",{"_index":688,"title":{},"content":{"18":{}},"tags":{}}],["depend",{"_index":560,"title":{},"content":{"6":{},"37":{}},"tags":{}}],["descript",{"_index":642,"title":{},"content":{"13":{}},"tags":{}}],["design",{"_index":43,"title":{},"content":{"1":{},"16":{},"18":{},"24":{},"26":{},"29":{}},"tags":{}}],["desir",{"_index":411,"title":{},"content":{"3":{},"17":{},"20":{},"30":{}},"tags":{}}],["despit",{"_index":1048,"title":{},"content":{"27":{}},"tags":{}}],["detail",{"_index":788,"title":{},"content":{"16":{},"29":{},"32":{},"39":{}},"tags":{}}],["develop",{"_index":299,"title":{},"content":{"3":{},"4":{},"17":{},"18":{},"20":{},"27":{},"33":{},"40":{}},"tags":{"4":{},"17":{},"26":{},"27":{}}}],["development mileston",{"_index":968,"title":{},"content":{},"tags":{"20":{}}}],["devic",{"_index":1149,"title":{},"content":{"19":{}},"tags":{}}],["dice",{"_index":743,"title":{},"content":{"15":{}},"tags":{}}],["didn't",{"_index":408,"title":{},"content":{"3":{}},"tags":{}}],["differ",{"_index":378,"title":{},"content":{"3":{},"6":{},"16":{},"20":{}},"tags":{}}],["direct",{"_index":861,"title":{},"content":{"17":{},"26":{}},"tags":{}}],["directli",{"_index":276,"title":{},"content":{"4":{},"38":{}},"tags":{}}],["disclos",{"_index":33,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["discomfort",{"_index":196,"title":{},"content":{"2":{}},"tags":{}}],["discontinu",{"_index":1141,"title":{},"content":{"19":{}},"tags":{}}],["discord",{"_index":128,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"24":{},"26":{},"30":{},"39":{}},"tags":{"17":{},"21":{},"26":{}}}],["discord channel",{"_index":723,"title":{},"content":{},"tags":{"15":{},"18":{}}}],["discord community growth",{"_index":819,"title":{},"content":{},"tags":{"16":{}}}],["discord serv",{"_index":146,"title":{},"content":{},"tags":{"1":{}}}],["discord server promot",{"_index":752,"title":{},"content":{},"tags":{"15":{}}}],["discov",{"_index":1164,"title":{},"content":{"19":{}},"tags":{}}],["discuss",{"_index":662,"title":{},"content":{"14":{},"16":{},"18":{},"29":{}},"tags":{}}],["display",{"_index":849,"title":{},"content":{"17":{}},"tags":{}}],["disrupt",{"_index":282,"title":{},"content":{"4":{}},"tags":{}}],["distanc",{"_index":632,"title":{},"content":{"13":{}},"tags":{}}],["distribut",{"_index":387,"title":{},"content":{"3":{}},"tags":{}}],["dive",{"_index":508,"title":{},"content":{"5":{},"20":{}},"tags":{}}],["divers",{"_index":187,"title":{},"content":{"2":{}},"tags":{}}],["do",{"_index":290,"title":{},"content":{"4":{},"17":{}},"tags":{}}],["docker/kubernet",{"_index":621,"title":{},"content":{"11":{}},"tags":{}}],["document",{"_index":105,"title":{},"content":{"1":{},"18":{},"30":{}},"tags":{}}],["documentation migr",{"_index":717,"title":{},"content":{},"tags":{"18":{}}}],["doesn't",{"_index":370,"title":{},"content":{"3":{},"26":{},"27":{}},"tags":{}}],["domain",{"_index":590,"title":{},"content":{"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"18":{}},"tags":{}}],["domain acquisit",{"_index":718,"title":{},"content":{},"tags":{"18":{}}}],["don't",{"_index":395,"title":{},"content":{"3":{}},"tags":{}}],["donat",{"_index":121,"title":{},"content":{"1":{},"3":{},"20":{},"27":{},"40":{}},"tags":{}}],["done",{"_index":1131,"title":{},"content":{"26":{},"30":{},"35":{}},"tags":{}}],["donor",{"_index":1056,"title":{},"content":{"27":{}},"tags":{}}],["dont",{"_index":1078,"title":{},"content":{"29":{}},"tags":{}}],["dough",{"_index":957,"title":{},"content":{"20":{}},"tags":{}}],["down",{"_index":854,"title":{},"content":{"17":{},"31":{}},"tags":{}}],["download",{"_index":67,"title":{},"content":{"1":{},"19":{},"34":{}},"tags":{}}],["downtim",{"_index":1199,"title":{},"content":{"31":{}},"tags":{}}],["draw",{"_index":533,"title":{},"content":{"6":{}},"tags":{}}],["drawback",{"_index":1232,"title":{},"content":{"33":{}},"tags":{}}],["drive",{"_index":985,"title":{},"content":{"22":{}},"tags":{}}],["drm",{"_index":7,"title":{"1":{}},"content":{"1":{},"27":{}},"tags":{}}],["drm-free",{"_index":1189,"title":{},"content":{},"tags":{"26":{}}}],["drm-free gam",{"_index":141,"title":{},"content":{},"tags":{"1":{}}}],["drop",{"_index":1219,"title":{},"content":{"33":{}},"tags":{}}],["due",{"_index":732,"title":{},"content":{"15":{}},"tags":{}}],["dure",{"_index":1052,"title":{},"content":{"27":{}},"tags":{}}],["dust",{"_index":1035,"title":{},"content":{"27":{}},"tags":{}}],["each",{"_index":582,"title":{},"content":{"6":{}},"tags":{}}],["eager",{"_index":630,"title":{},"content":{"13":{},"17":{},"19":{},"20":{}},"tags":{}}],["eagerli",{"_index":800,"title":{},"content":{"16":{}},"tags":{}}],["earli",{"_index":974,"title":{"21":{},"22":{}},"content":{"21":{},"22":{},"23":{},"25":{},"26":{},"29":{},"37":{}},"tags":{}}],["earlier",{"_index":574,"title":{},"content":{"6":{}},"tags":{}}],["early access",{"_index":977,"title":{},"content":{},"tags":{"21":{},"26":{}}}],["earn",{"_index":441,"title":{},"content":{"3":{}},"tags":{}}],["easier",{"_index":786,"title":{},"content":{"16":{}},"tags":{}}],["easili",{"_index":646,"title":{},"content":{"13":{},"29":{}},"tags":{}}],["easter",{"_index":1246,"title":{},"content":{"35":{}},"tags":{}}],["easter egg",{"_index":1206,"title":{},"content":{},"tags":{"31":{}}}],["edg",{"_index":1117,"title":{},"content":{"30":{}},"tags":{}}],["edit",{"_index":493,"title":{},"content":{"3":{},"18":{},"19":{},"37":{}},"tags":{}}],["effect",{"_index":644,"title":{},"content":{"13":{},"17":{},"37":{}},"tags":{}}],["effort",{"_index":314,"title":{},"content":{"4":{},"16":{},"20":{}},"tags":{}}],["egg",{"_index":1247,"title":{},"content":{"35":{}},"tags":{}}],["eleg",{"_index":1163,"title":{},"content":{"19":{}},"tags":{}}],["embark",{"_index":1173,"title":{},"content":{"19":{}},"tags":{}}],["emerg",{"_index":566,"title":{},"content":{"6":{}},"tags":{}}],["empathi",{"_index":483,"title":{},"content":{"3":{}},"tags":{}}],["emphas",{"_index":297,"title":{},"content":{"4":{},"13":{}},"tags":{}}],["employ",{"_index":262,"title":{},"content":{"4":{}},"tags":{}}],["empow",{"_index":815,"title":{},"content":{"16":{}},"tags":{}}],["emul",{"_index":920,"title":{},"content":{"20":{}},"tags":{}}],["enabl",{"_index":62,"title":{},"content":{"1":{},"17":{}},"tags":{}}],["encount",{"_index":286,"title":{},"content":{"4":{}},"tags":{}}],["encourag",{"_index":219,"title":{},"content":{"2":{},"3":{},"4":{},"6":{},"16":{}},"tags":{}}],["encrypt",{"_index":1239,"title":{},"content":{"34":{}},"tags":{}}],["end",{"_index":204,"title":{},"content":{"2":{},"20":{},"27":{}},"tags":{}}],["endeavor",{"_index":871,"title":{},"content":{"17":{}},"tags":{}}],["endlessli",{"_index":1058,"title":{},"content":{"27":{}},"tags":{}}],["engag",{"_index":245,"title":{},"content":{"3":{},"4":{},"13":{},"16":{},"20":{}},"tags":{"4":{}}}],["enhanc",{"_index":775,"title":{},"content":{"16":{},"19":{},"26":{},"29":{},"40":{}},"tags":{}}],["enjoy",{"_index":133,"title":{},"content":{"1":{},"2":{},"26":{},"29":{},"38":{},"40":{}},"tags":{}}],["enough",{"_index":868,"title":{},"content":{"17":{}},"tags":{}}],["enrich",{"_index":85,"title":{},"content":{"1":{}},"tags":{}}],["ensur",{"_index":348,"title":{},"content":{"4":{},"6":{},"17":{},"19":{},"20":{},"26":{},"39":{}},"tags":{}}],["enterpris",{"_index":1074,"title":{},"content":{"29":{}},"tags":{}}],["enthusiasm",{"_index":834,"title":{},"content":{"17":{},"26":{}},"tags":{}}],["entir",{"_index":784,"title":{},"content":{"16":{}},"tags":{}}],["entireti",{"_index":725,"title":{},"content":{"15":{}},"tags":{}}],["environ",{"_index":199,"title":{},"content":{"2":{},"4":{}},"tags":{}}],["environment",{"_index":1225,"title":{},"content":{"33":{}},"tags":{}}],["epic",{"_index":25,"title":{},"content":{"1":{}},"tags":{}}],["equal",{"_index":631,"title":{},"content":{"13":{}},"tags":{}}],["escal",{"_index":255,"title":{},"content":{"4":{}},"tags":{}}],["especi",{"_index":468,"title":{},"content":{"3":{},"16":{}},"tags":{}}],["essenc",{"_index":211,"title":{},"content":{"2":{}},"tags":{}}],["etc",{"_index":923,"title":{},"content":{"20":{}},"tags":{}}],["even",{"_index":69,"title":{},"content":{"1":{},"3":{},"4":{},"6":{},"14":{},"16":{},"17":{},"26":{},"34":{},"37":{}},"tags":{}}],["everybodi",{"_index":656,"title":{},"content":{"14":{}},"tags":{}}],["everyon",{"_index":30,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"5":{},"16":{},"17":{},"19":{},"22":{},"26":{},"27":{},"29":{},"31":{}},"tags":{}}],["everyth",{"_index":993,"title":{},"content":{"22":{}},"tags":{}}],["exact",{"_index":1044,"title":{},"content":{"27":{}},"tags":{}}],["exampl",{"_index":406,"title":{},"content":{"3":{},"33":{}},"tags":{}}],["excit",{"_index":27,"title":{"31":{},"34":{}},"content":{"1":{},"5":{},"14":{},"16":{},"19":{},"20":{},"26":{},"29":{},"32":{},"34":{},"36":{}},"tags":{}}],["exclus",{"_index":649,"title":{},"content":{"13":{},"22":{}},"tags":{}}],["exclusive preview",{"_index":980,"title":{},"content":{},"tags":{"21":{}}}],["execut",{"_index":1316,"title":{},"content":{"38":{}},"tags":{}}],["exist",{"_index":607,"title":{},"content":{"10":{}},"tags":{}}],["expand",{"_index":553,"title":{},"content":{"6":{}},"tags":{}}],["experi",{"_index":61,"title":{},"content":{"1":{},"2":{},"4":{},"16":{},"17":{},"19":{},"26":{},"29":{},"34":{}},"tags":{}}],["experienc",{"_index":785,"title":{},"content":{"16":{}},"tags":{}}],["explain",{"_index":374,"title":{},"content":{"3":{},"33":{}},"tags":{}}],["exploit",{"_index":414,"title":{},"content":{"3":{}},"tags":{}}],["explor",{"_index":368,"title":{},"content":{"3":{},"19":{},"26":{}},"tags":{}}],["express",{"_index":768,"title":{},"content":{"16":{},"17":{}},"tags":{}}],["extend",{"_index":274,"title":{},"content":{"4":{},"14":{}},"tags":{}}],["extens",{"_index":636,"title":{},"content":{"13":{}},"tags":{}}],["extra",{"_index":862,"title":{},"content":{"17":{},"20":{}},"tags":{}}],["extract",{"_index":901,"title":{},"content":{"20":{}},"tags":{}}],["face",{"_index":1195,"title":{},"content":{"31":{}},"tags":{}}],["fact",{"_index":511,"title":{},"content":{"5":{}},"tags":{}}],["fact,quit",{"_index":1020,"title":{},"content":{"27":{}},"tags":{}}],["famili",{"_index":151,"title":{"2":{}},"content":{"2":{},"3":{},"6":{},"15":{},"16":{},"27":{},"38":{}},"tags":{}}],["family-friendli",{"_index":230,"title":{},"content":{},"tags":{"2":{}}}],["fantast",{"_index":838,"title":{},"content":{"17":{}},"tags":{}}],["far",{"_index":258,"title":{},"content":{"4":{},"16":{}},"tags":{}}],["favorit",{"_index":1151,"title":{},"content":{"19":{},"34":{}},"tags":{}}],["feasibl",{"_index":432,"title":{},"content":{"3":{}},"tags":{}}],["featur",{"_index":80,"title":{"16":{},"31":{},"34":{},"38":{}},"content":{"1":{},"3":{},"4":{},"8":{},"16":{},"17":{},"19":{},"20":{},"22":{},"26":{},"29":{},"30":{},"34":{},"38":{},"39":{},"40":{}},"tags":{"17":{},"26":{},"31":{}}}],["feature request",{"_index":357,"title":{},"content":{},"tags":{"4":{}}}],["fee",{"_index":1089,"title":{},"content":{"26":{},"29":{}},"tags":{}}],["feed",{"_index":1168,"title":{},"content":{"19":{}},"tags":{}}],["feedback",{"_index":116,"title":{},"content":{"1":{},"2":{},"3":{},"6":{},"13":{},"16":{},"17":{},"22":{},"26":{},"29":{}},"tags":{"2":{},"16":{},"17":{},"26":{}}}],["feel",{"_index":491,"title":{},"content":{"3":{},"17":{},"27":{},"36":{},"39":{}},"tags":{}}],["fellow",{"_index":960,"title":{},"content":{"20":{}},"tags":{}}],["fetch",{"_index":1221,"title":{},"content":{"33":{},"37":{}},"tags":{}}],["few",{"_index":551,"title":{},"content":{"6":{},"30":{}},"tags":{}}],["fierc",{"_index":1152,"title":{},"content":{"19":{}},"tags":{}}],["file",{"_index":39,"title":{},"content":{"1":{},"20":{},"27":{}},"tags":{}}],["file serv",{"_index":142,"title":{},"content":{},"tags":{"1":{}}}],["fill",{"_index":1280,"title":{},"content":{"37":{}},"tags":{}}],["filter",{"_index":101,"title":{},"content":{"1":{}},"tags":{}}],["final",{"_index":459,"title":{"15":{}},"content":{"3":{},"5":{},"18":{},"19":{},"30":{},"35":{}},"tags":{}}],["financi",{"_index":316,"title":{},"content":{"4":{},"27":{}},"tags":{}}],["financial assist",{"_index":355,"title":{},"content":{},"tags":{"4":{}}}],["find",{"_index":208,"title":{},"content":{"2":{},"6":{},"11":{},"15":{},"17":{},"27":{},"30":{},"35":{}},"tags":{}}],["finder",{"_index":912,"title":{},"content":{"20":{}},"tags":{}}],["fine",{"_index":992,"title":{},"content":{"22":{}},"tags":{}}],["fingertip",{"_index":1158,"title":{},"content":{"19":{}},"tags":{}}],["finish",{"_index":695,"title":{},"content":{"18":{}},"tags":{}}],["first",{"_index":312,"title":{},"content":{"4":{},"5":{},"16":{},"23":{},"27":{},"29":{},"37":{}},"tags":{}}],["five",{"_index":319,"title":{},"content":{"4":{}},"tags":{}}],["fix",{"_index":895,"title":{},"content":{"20":{}},"tags":{}}],["flex",{"_index":1243,"title":{},"content":{"35":{}},"tags":{}}],["flexibl",{"_index":50,"title":{},"content":{"1":{},"37":{}},"tags":{}}],["flood",{"_index":832,"title":{},"content":{"17":{}},"tags":{}}],["floor",{"_index":1188,"title":{},"content":{"26":{}},"tags":{}}],["focus",{"_index":1132,"title":{},"content":{"30":{}},"tags":{}}],["foe",{"_index":1153,"title":{},"content":{"19":{}},"tags":{}}],["folk",{"_index":240,"title":{},"content":{"4":{},"15":{}},"tags":{}}],["follow",{"_index":880,"title":{},"content":{"20":{}},"tags":{}}],["fool",{"_index":1178,"title":{},"content":{"19":{}},"tags":{}}],["footer",{"_index":131,"title":{},"content":{"1":{}},"tags":{}}],["foremost",{"_index":1271,"title":{},"content":{"37":{}},"tags":{}}],["forgotten",{"_index":1032,"title":{},"content":{"27":{}},"tags":{}}],["form",{"_index":994,"title":{},"content":{"23":{}},"tags":{}}],["format",{"_index":906,"title":{},"content":{"20":{},"38":{}},"tags":{}}],["forum",{"_index":797,"title":{},"content":{"16":{}},"tags":{}}],["forward",{"_index":492,"title":{"20":{}},"content":{"3":{},"16":{},"30":{},"32":{}},"tags":{}}],["found",{"_index":110,"title":{},"content":{"1":{},"18":{},"25":{},"32":{}},"tags":{}}],["framework",{"_index":1143,"title":{},"content":{"19":{},"37":{}},"tags":{}}],["frankli",{"_index":1030,"title":{},"content":{"27":{}},"tags":{}}],["free",{"_index":8,"title":{"1":{}},"content":{"1":{},"3":{},"13":{},"17":{},"27":{},"29":{},"39":{},"40":{}},"tags":{}}],["freedom",{"_index":385,"title":{},"content":{"3":{},"37":{}},"tags":{}}],["freeli",{"_index":388,"title":{},"content":{"3":{}},"tags":{}}],["frequent",{"_index":1198,"title":{},"content":{"31":{}},"tags":{}}],["fresh",{"_index":705,"title":{},"content":{"18":{}},"tags":{}}],["friend",{"_index":38,"title":{},"content":{"1":{},"6":{},"15":{},"16":{},"27":{}},"tags":{}}],["friendli",{"_index":152,"title":{"2":{}},"content":{"2":{},"16":{}},"tags":{}}],["frontend",{"_index":890,"title":{},"content":{"20":{}},"tags":{}}],["fuel",{"_index":810,"title":{},"content":{"16":{}},"tags":{}}],["full",{"_index":98,"title":{},"content":{"1":{},"3":{},"37":{}},"tags":{}}],["fulli",{"_index":104,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["function",{"_index":451,"title":{},"content":{"3":{},"38":{}},"tags":{}}],["further",{"_index":512,"title":{},"content":{"5":{},"6":{},"16":{},"17":{},"18":{},"19":{}},"tags":{}}],["furthermor",{"_index":683,"title":{},"content":{"18":{}},"tags":{}}],["futur",{"_index":177,"title":{},"content":{"2":{},"3":{},"16":{},"17":{},"20":{},"25":{},"26":{}},"tags":{}}],["future develop",{"_index":235,"title":{},"content":{},"tags":{"2":{}}}],["future featur",{"_index":970,"title":{},"content":{},"tags":{"20":{}}}],["gain",{"_index":1086,"title":{},"content":{"26":{},"29":{}},"tags":{}}],["game",{"_index":5,"title":{"1":{}},"content":{"1":{},"2":{},"9":{},"10":{},"12":{},"15":{},"16":{},"17":{},"19":{},"20":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"37":{},"38":{}},"tags":{"1":{},"21":{},"26":{},"27":{},"31":{}}}],["game develop",{"_index":964,"title":{},"content":{},"tags":{"20":{}}}],["gamehub",{"_index":520,"title":{"12":{}},"content":{"6":{},"12":{}},"tags":{"5":{}}}],["gamehubapp.d",{"_index":623,"title":{},"content":{"12":{}},"tags":{}}],["gameplay",{"_index":1304,"title":{},"content":{"38":{}},"tags":{}}],["gamer",{"_index":200,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["gameshelf",{"_index":518,"title":{"10":{}},"content":{"6":{},"10":{}},"tags":{"5":{}}}],["gameshelf.d",{"_index":606,"title":{},"content":{"10":{}},"tags":{}}],["gamestash",{"_index":517,"title":{"8":{}},"content":{"6":{},"8":{}},"tags":{"5":{}}}],["gamestash.d",{"_index":591,"title":{},"content":{"8":{}},"tags":{}}],["gamevau.lt",{"_index":598,"title":{},"content":{"9":{},"13":{},"18":{}},"tags":{}}],["gamevault",{"_index":1,"title":{"1":{},"3":{},"9":{},"19":{},"21":{},"26":{},"27":{},"28":{},"29":{},"35":{}},"content":{"1":{},"3":{},"4":{},"6":{},"9":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"24":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"40":{}},"tags":{"1":{},"2":{},"5":{},"17":{},"21":{},"26":{},"27":{},"31":{},"36":{}}}],["gamevault app",{"_index":356,"title":{},"content":{},"tags":{"4":{}}}],["gamevault domain",{"_index":523,"title":{},"content":{},"tags":{"5":{}}}],["gamevault journey",{"_index":971,"title":{},"content":{},"tags":{"20":{}}}],["gamevault mileston",{"_index":817,"title":{},"content":{},"tags":{"16":{}}}],["gamevault'",{"_index":777,"title":{"32":{}},"content":{"16":{},"17":{},"32":{}},"tags":{}}],["gamevault999",{"_index":603,"title":{},"content":{"9":{}},"tags":{}}],["gamevault’",{"_index":1331,"title":{},"content":{"40":{}},"tags":{}}],["gaming commun",{"_index":966,"title":{},"content":{},"tags":{"20":{}}}],["gaming experi",{"_index":876,"title":{},"content":{},"tags":{"17":{}}}],["gaming platform",{"_index":228,"title":{},"content":{},"tags":{"2":{}}}],["gaming serv",{"_index":982,"title":{},"content":{},"tags":{"21":{}}}],["gap",{"_index":1281,"title":{},"content":{"37":{}},"tags":{}}],["gather",{"_index":186,"title":{},"content":{"2":{},"27":{}},"tags":{}}],["gave",{"_index":657,"title":{},"content":{"14":{}},"tags":{}}],["gener",{"_index":173,"title":{},"content":{"2":{},"3":{},"27":{}},"tags":{}}],["genr",{"_index":88,"title":{},"content":{"1":{}},"tags":{}}],["genuin",{"_index":460,"title":{},"content":{"3":{},"17":{}},"tags":{}}],["get",{"_index":1015,"title":{},"content":{"25":{}},"tags":{}}],["github",{"_index":269,"title":{},"content":{"4":{},"16":{},"17":{},"27":{},"32":{}},"tags":{"17":{}}}],["github issu",{"_index":824,"title":{},"content":{},"tags":{"16":{}}}],["give",{"_index":57,"title":{},"content":{"1":{},"14":{},"29":{},"37":{},"38":{}},"tags":{}}],["glimps",{"_index":877,"title":{"20":{}},"content":{},"tags":{}}],["go",{"_index":322,"title":{},"content":{"4":{},"16":{},"17":{},"19":{},"29":{},"32":{}},"tags":{}}],["goal",{"_index":448,"title":{},"content":{"3":{},"16":{},"32":{}},"tags":{}}],["gog",{"_index":26,"title":{},"content":{"1":{}},"tags":{}}],["golden",{"_index":983,"title":{},"content":{"22":{}},"tags":{}}],["good",{"_index":706,"title":{},"content":{"18":{}},"tags":{}}],["goodby",{"_index":929,"title":{},"content":{"20":{}},"tags":{}}],["goodi",{"_index":1083,"title":{},"content":{"29":{}},"tags":{}}],["googl",{"_index":588,"title":{},"content":{"8":{},"9":{},"10":{},"11":{},"12":{},"37":{}},"tags":{}}],["grab",{"_index":1001,"title":{},"content":{"24":{}},"tags":{}}],["graphic",{"_index":703,"title":{},"content":{"18":{}},"tags":{}}],["grate",{"_index":114,"title":{},"content":{"1":{},"4":{},"20":{},"27":{}},"tags":{}}],["gratitud",{"_index":665,"title":{},"content":{"14":{},"16":{},"17":{}},"tags":{"16":{}}}],["great",{"_index":484,"title":{},"content":{"3":{},"15":{},"16":{},"33":{}},"tags":{}}],["greatli",{"_index":178,"title":{},"content":{"2":{}},"tags":{}}],["ground",{"_index":1258,"title":{},"content":{"36":{}},"tags":{}}],["group",{"_index":243,"title":{},"content":{"4":{},"22":{}},"tags":{}}],["grow",{"_index":561,"title":{},"content":{"6":{},"16":{},"20":{}},"tags":{}}],["growth",{"_index":454,"title":{},"content":{"3":{}},"tags":{}}],["guid",{"_index":1325,"title":{},"content":{"39":{}},"tags":{}}],["guy",{"_index":10,"title":{},"content":{"1":{},"18":{},"20":{},"21":{}},"tags":{}}],["halloween",{"_index":1309,"title":{},"content":{"38":{}},"tags":{}}],["handl",{"_index":294,"title":{},"content":{"4":{}},"tags":{}}],["happen",{"_index":398,"title":{},"content":{"3":{},"17":{},"20":{},"27":{},"33":{}},"tags":{}}],["happi",{"_index":227,"title":{},"content":{"2":{},"3":{},"19":{},"20":{},"26":{}},"tags":{}}],["harass",{"_index":237,"title":{"4":{}},"content":{"4":{}},"tags":{"4":{}}}],["harbor",{"_index":519,"title":{"11":{}},"content":{"6":{},"11":{}},"tags":{"5":{}}}],["harborapp.d",{"_index":613,"title":{},"content":{"11":{}},"tags":{}}],["hard",{"_index":301,"title":{},"content":{"3":{},"4":{},"16":{},"19":{},"36":{}},"tags":{}}],["harm",{"_index":541,"title":{},"content":{"6":{}},"tags":{}}],["have",{"_index":1025,"title":{},"content":{"27":{}},"tags":{}}],["haven't",{"_index":793,"title":{},"content":{"16":{}},"tags":{}}],["head",{"_index":675,"title":{},"content":{"14":{},"15":{},"19":{},"20":{}},"tags":{}}],["health",{"_index":96,"title":{},"content":{"1":{}},"tags":{}}],["health monitor",{"_index":145,"title":{},"content":{},"tags":{"1":{}}}],["hear",{"_index":490,"title":{},"content":{"3":{},"13":{},"14":{}},"tags":{}}],["heart",{"_index":927,"title":{},"content":{"20":{},"27":{}},"tags":{}}],["heartfelt",{"_index":803,"title":{},"content":{"16":{},"17":{}},"tags":{}}],["heavi",{"_index":1121,"title":{},"content":{"30":{}},"tags":{}}],["hello",{"_index":155,"title":{},"content":{"2":{},"17":{},"20":{},"36":{}},"tags":{}}],["help",{"_index":160,"title":{"17":{}},"content":{"2":{},"4":{},"6":{},"16":{},"17":{},"20":{},"22":{},"26":{},"29":{},"40":{}},"tags":{}}],["here",{"_index":563,"title":{},"content":{"6":{},"14":{},"16":{},"17":{},"19":{},"20":{},"24":{},"25":{},"26":{},"29":{}},"tags":{}}],["here'",{"_index":535,"title":{},"content":{"6":{},"20":{},"22":{}},"tags":{}}],["here’",{"_index":1293,"title":{},"content":{"38":{}},"tags":{}}],["hey",{"_index":9,"title":{},"content":{"1":{},"3":{},"4":{},"5":{},"15":{},"16":{},"18":{},"19":{},"21":{},"26":{},"27":{},"31":{}},"tags":{}}],["highli",{"_index":106,"title":{},"content":{"1":{},"16":{},"19":{}},"tags":{}}],["highlight",{"_index":898,"title":{},"content":{"20":{}},"tags":{}}],["hit",{"_index":886,"title":{},"content":{"20":{},"39":{}},"tags":{}}],["holodeck",{"_index":1166,"title":{},"content":{"19":{}},"tags":{}}],["home",{"_index":1027,"title":{},"content":{"27":{}},"tags":{}}],["hope",{"_index":134,"title":{},"content":{"1":{},"4":{},"17":{},"34":{},"40":{}},"tags":{}}],["hopefulli",{"_index":1118,"title":{},"content":{"30":{}},"tags":{}}],["horizon",{"_index":885,"title":{},"content":{"20":{}},"tags":{}}],["host",{"_index":4,"title":{"1":{}},"content":{"1":{},"3":{},"13":{},"14":{},"16":{},"27":{}},"tags":{}}],["hostabl",{"_index":1018,"title":{},"content":{"27":{}},"tags":{}}],["hoster",{"_index":961,"title":{},"content":{"20":{}},"tags":{}}],["https://api.rawg.io/api",{"_index":1233,"title":{},"content":{"33":{}},"tags":{}}],["https://forms.gle/cysurg6bqmxcxe3b8",{"_index":226,"title":{},"content":{"2":{}},"tags":{}}],["humbl",{"_index":315,"title":{},"content":{"4":{}},"tags":{}}],["hybrid model",{"_index":498,"title":{},"content":{},"tags":{"3":{}}}],["idea",{"_index":659,"title":{},"content":{"14":{},"17":{},"33":{}},"tags":{}}],["ident",{"_index":618,"title":{},"content":{"11":{}},"tags":{}}],["igdb",{"_index":1194,"title":{"31":{}},"content":{"32":{}},"tags":{"31":{}}}],["igdb'",{"_index":1212,"title":{},"content":{"32":{}},"tags":{}}],["igdb/twitch",{"_index":1277,"title":{},"content":{"37":{}},"tags":{}}],["imag",{"_index":904,"title":{},"content":{"20":{},"24":{},"37":{}},"tags":{}}],["imagin",{"_index":1029,"title":{},"content":{"27":{}},"tags":{}}],["immens",{"_index":769,"title":{},"content":{"16":{}},"tags":{}}],["impact",{"_index":333,"title":{},"content":{"4":{}},"tags":{}}],["implement",{"_index":95,"title":{"33":{}},"content":{"1":{},"17":{},"20":{},"33":{}},"tags":{}}],["import",{"_index":156,"title":{"25":{}},"content":{"2":{},"3":{},"4":{},"5":{}},"tags":{}}],["importantli",{"_index":1187,"title":{},"content":{"26":{}},"tags":{}}],["impos",{"_index":42,"title":{},"content":{"1":{}},"tags":{}}],["improv",{"_index":224,"title":{},"content":{"2":{},"3":{},"4":{},"6":{},"20":{},"26":{},"37":{},"38":{}},"tags":{"4":{},"26":{}}}],["incept",{"_index":1181,"title":{},"content":{"26":{}},"tags":{}}],["includ",{"_index":554,"title":{},"content":{"6":{},"19":{},"26":{},"29":{}},"tags":{}}],["inclus",{"_index":192,"title":{},"content":{"2":{},"4":{}},"tags":{"2":{}}}],["incorpor",{"_index":839,"title":{},"content":{"17":{}},"tags":{}}],["incorrect",{"_index":1200,"title":{},"content":{"31":{}},"tags":{}}],["incred",{"_index":329,"title":{},"content":{"4":{},"16":{},"17":{},"19":{},"26":{},"37":{},"38":{}},"tags":{}}],["indefinit",{"_index":431,"title":{},"content":{"3":{}},"tags":{}}],["index",{"_index":82,"title":{},"content":{"1":{}},"tags":{}}],["indi",{"_index":1047,"title":{},"content":{"27":{}},"tags":{}}],["individu",{"_index":244,"title":{},"content":{"4":{}},"tags":{}}],["influenc",{"_index":640,"title":{},"content":{"13":{}},"tags":{}}],["info",{"_index":1285,"title":{"39":{}},"content":{"37":{}},"tags":{}}],["inform",{"_index":261,"title":{},"content":{"4":{},"6":{},"16":{}},"tags":{}}],["infrastructur",{"_index":1111,"title":{},"content":{"29":{}},"tags":{}}],["innov",{"_index":1174,"title":{},"content":{"19":{}},"tags":{}}],["input",{"_index":188,"title":{},"content":{"2":{},"3":{},"4":{},"17":{},"26":{}},"tags":{}}],["inspir",{"_index":772,"title":{},"content":{"16":{},"17":{},"20":{}},"tags":{}}],["instal",{"_index":759,"title":{"16":{}},"content":{"16":{},"20":{},"24":{}},"tags":{}}],["installation pipelin",{"_index":822,"title":{},"content":{},"tags":{"16":{}}}],["instanc",{"_index":433,"title":{},"content":{"3":{}},"tags":{}}],["instead",{"_index":1222,"title":{},"content":{"33":{},"37":{}},"tags":{}}],["instruct",{"_index":1327,"title":{},"content":{"39":{}},"tags":{}}],["integr",{"_index":1102,"title":{},"content":{"19":{},"29":{},"33":{}},"tags":{}}],["intellig",{"_index":1282,"title":{},"content":{"37":{}},"tags":{}}],["intent",{"_index":480,"title":{},"content":{"3":{}},"tags":{}}],["interact",{"_index":991,"title":{},"content":{"22":{}},"tags":{}}],["interfac",{"_index":1101,"title":{},"content":{"19":{},"29":{}},"tags":{}}],["intern",{"_index":637,"title":{},"content":{"13":{}},"tags":{}}],["introduc",{"_index":0,"title":{"1":{}},"content":{"13":{},"17":{},"33":{},"34":{},"37":{}},"tags":{}}],["intuit",{"_index":643,"title":{},"content":{"13":{},"19":{}},"tags":{}}],["invalu",{"_index":804,"title":{},"content":{"16":{},"17":{}},"tags":{}}],["invest",{"_index":1064,"title":{},"content":{"27":{}},"tags":{}}],["invit",{"_index":111,"title":{},"content":{"1":{},"16":{},"17":{}},"tags":{}}],["involv",{"_index":870,"title":{},"content":{"17":{}},"tags":{}}],["isn't",{"_index":327,"title":{},"content":{"3":{},"4":{},"27":{}},"tags":{}}],["issu",{"_index":252,"title":{},"content":{"4":{},"16":{},"17":{},"31":{},"32":{}},"tags":{}}],["it'",{"_index":392,"title":{},"content":{"3":{},"15":{},"16":{},"20":{},"26":{},"27":{},"29":{},"31":{}},"tags":{}}],["jellyfin",{"_index":54,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["job",{"_index":474,"title":{},"content":{"3":{},"27":{}},"tags":{}}],["join",{"_index":127,"title":{"21":{},"23":{}},"content":{"1":{},"15":{},"16":{},"17":{},"20":{},"30":{}},"tags":{}}],["journey",{"_index":135,"title":{},"content":{"1":{},"14":{},"16":{},"17":{},"19":{},"26":{}},"tags":{}}],["joy",{"_index":303,"title":{},"content":{"4":{},"19":{}},"tags":{}}],["juggl",{"_index":1049,"title":{},"content":{"27":{}},"tags":{}}],["juli",{"_index":215,"title":{},"content":{"2":{}},"tags":{}}],["justifi",{"_index":1063,"title":{},"content":{"27":{}},"tags":{}}],["kairubyt",{"_index":664,"title":{},"content":{"14":{}},"tags":{}}],["kanban",{"_index":852,"title":{},"content":{"17":{}},"tags":{}}],["kanban board",{"_index":874,"title":{},"content":{},"tags":{"17":{}}}],["keep",{"_index":449,"title":{},"content":{"3":{},"14":{},"16":{},"20":{},"29":{},"30":{},"40":{}},"tags":{}}],["key",{"_index":536,"title":{},"content":{"6":{},"17":{},"20":{},"26":{},"32":{}},"tags":{}}],["keyhol",{"_index":741,"title":{},"content":{"15":{}},"tags":{}}],["keyhole represent",{"_index":756,"title":{},"content":{},"tags":{"15":{}}}],["kick",{"_index":996,"title":{},"content":{"23":{}},"tags":{}}],["kind",{"_index":330,"title":{},"content":{"4":{},"14":{}},"tags":{}}],["kindli",{"_index":180,"title":{},"content":{"2":{},"4":{},"16":{},"17":{}},"tags":{}}],["knee",{"_index":925,"title":{},"content":{"20":{}},"tags":{}}],["know",{"_index":654,"title":{},"content":{"14":{},"17":{},"27":{}},"tags":{}}],["known",{"_index":620,"title":{},"content":{"11":{}},"tags":{}}],["kofi",{"_index":321,"title":{},"content":{"4":{}},"tags":{}}],["larg",{"_index":976,"title":{},"content":{"21":{},"27":{}},"tags":{}}],["last",{"_index":670,"title":{},"content":{"14":{},"23":{},"27":{},"31":{}},"tags":{}}],["lastli",{"_index":689,"title":{},"content":{"18":{}},"tags":{}}],["later",{"_index":1012,"title":{},"content":{"25":{}},"tags":{}}],["latest",{"_index":988,"title":{},"content":{"22":{},"40":{}},"tags":{}}],["launch",{"_index":68,"title":{},"content":{"1":{},"16":{},"21":{},"26":{},"27":{}},"tags":{}}],["launch/instal",{"_index":1315,"title":{},"content":{"38":{}},"tags":{}}],["left",{"_index":940,"title":{},"content":{"20":{}},"tags":{}}],["lemmi",{"_index":130,"title":{},"content":{"1":{},"16":{},"18":{}},"tags":{}}],["lemmy commun",{"_index":720,"title":{},"content":{},"tags":{"18":{}}}],["lemmy community launch",{"_index":826,"title":{},"content":{},"tags":{"16":{}}}],["lemmy forum",{"_index":148,"title":{},"content":{},"tags":{"1":{}}}],["let'",{"_index":345,"title":{},"content":{"4":{},"5":{},"15":{},"16":{},"20":{}},"tags":{}}],["li",{"_index":410,"title":{},"content":{"3":{}},"tags":{}}],["librari",{"_index":624,"title":{},"content":{"12":{},"19":{},"20":{}},"tags":{}}],["life",{"_index":334,"title":{},"content":{"4":{},"30":{}},"tags":{}}],["light",{"_index":510,"title":{},"content":{"5":{},"20":{},"29":{}},"tags":{}}],["like",{"_index":1228,"title":{},"content":{"33":{}},"tags":{}}],["limit",{"_index":841,"title":{},"content":{"17":{},"25":{},"40":{}},"tags":{}}],["link",{"_index":122,"title":{},"content":{"1":{},"2":{},"33":{}},"tags":{}}],["linkedin",{"_index":260,"title":{},"content":{"4":{}},"tags":{}}],["list",{"_index":1014,"title":{},"content":{"25":{}},"tags":{}}],["listen",{"_index":158,"title":{},"content":{"2":{}},"tags":{}}],["live",{"_index":795,"title":{},"content":{"16":{},"19":{}},"tags":{}}],["local",{"_index":469,"title":{},"content":{"3":{}},"tags":{}}],["log",{"_index":94,"title":{},"content":{"1":{},"24":{}},"tags":{}}],["logo",{"_index":679,"title":{"18":{}},"content":{"15":{},"18":{}},"tags":{}}],["logo concept discuss",{"_index":757,"title":{},"content":{},"tags":{"15":{}}}],["logo deciph",{"_index":754,"title":{},"content":{},"tags":{"15":{}}}],["long",{"_index":323,"title":{},"content":{"3":{},"4":{},"27":{},"29":{}},"tags":{}}],["longer",{"_index":478,"title":{},"content":{"3":{},"19":{}},"tags":{}}],["look",{"_index":359,"title":{"3":{},"20":{}},"content":{"3":{},"16":{},"20":{},"30":{},"38":{}},"tags":{}}],["loss",{"_index":466,"title":{},"content":{"3":{}},"tags":{}}],["lot",{"_index":806,"title":{},"content":{"16":{},"20":{},"33":{}},"tags":{}}],["love",{"_index":770,"title":{},"content":{"16":{},"33":{},"35":{}},"tags":{}}],["love for gamevault",{"_index":820,"title":{},"content":{},"tags":{"16":{}}}],["loyal",{"_index":1054,"title":{},"content":{"27":{}},"tags":{}}],["ly",{"_index":1026,"title":{},"content":{"27":{}},"tags":{}}],["made",{"_index":309,"title":{},"content":{"4":{},"14":{}},"tags":{}}],["main",{"_index":447,"title":{},"content":{"3":{}},"tags":{}}],["mainli",{"_index":860,"title":{},"content":{"17":{}},"tags":{}}],["maintain",{"_index":295,"title":{},"content":{"3":{},"4":{},"27":{}},"tags":{}}],["major",{"_index":1248,"title":{"36":{},"38":{}},"content":{},"tags":{}}],["make",{"_index":165,"title":{},"content":{"2":{},"3":{},"4":{},"6":{},"11":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"40":{}},"tags":{}}],["manag",{"_index":625,"title":{},"content":{"12":{},"16":{},"34":{},"38":{}},"tags":{}}],["mani",{"_index":835,"title":{},"content":{"17":{}},"tags":{}}],["markdown",{"_index":1318,"title":{},"content":{"38":{}},"tags":{}}],["market",{"_index":576,"title":{"7":{}},"content":{"6":{},"11":{},"14":{},"19":{},"27":{}},"tags":{}}],["market analysi",{"_index":521,"title":{},"content":{},"tags":{"5":{}}}],["massiv",{"_index":1147,"title":{},"content":{"19":{},"36":{}},"tags":{}}],["master",{"_index":271,"title":{},"content":{"4":{}},"tags":{}}],["matter",{"_index":207,"title":{},"content":{"2":{}},"tags":{}}],["mean",{"_index":337,"title":{},"content":{"3":{},"4":{},"27":{}},"tags":{}}],["meantim",{"_index":674,"title":{},"content":{"14":{},"18":{}},"tags":{}}],["measur",{"_index":293,"title":{},"content":{"4":{}},"tags":{}}],["media",{"_index":1300,"title":{},"content":{"38":{}},"tags":{}}],["meet",{"_index":371,"title":{},"content":{"3":{},"17":{},"25":{}},"tags":{}}],["member",{"_index":277,"title":{},"content":{"3":{},"4":{},"16":{},"17":{},"20":{},"25":{},"33":{}},"tags":{}}],["memor",{"_index":647,"title":{},"content":{"13":{}},"tags":{}}],["mention",{"_index":573,"title":{},"content":{"6":{},"14":{},"20":{},"31":{}},"tags":{}}],["metadata",{"_index":86,"title":{"32":{}},"content":{"1":{},"31":{},"32":{},"37":{}},"tags":{"1":{},"31":{}}}],["metadata framework",{"_index":1262,"title":{},"content":{},"tags":{"36":{}}}],["metadata—if",{"_index":1284,"title":{},"content":{"37":{}},"tags":{}}],["metro",{"_index":1161,"title":{},"content":{"19":{}},"tags":{}}],["microsoft",{"_index":729,"title":{"19":{}},"content":{"15":{},"16":{},"19":{},"24":{}},"tags":{}}],["microsoft stor",{"_index":981,"title":{},"content":{},"tags":{"21":{}}}],["microsoft store publ",{"_index":750,"title":{},"content":{},"tags":{"15":{}}}],["migrat",{"_index":678,"title":{"15":{},"18":{}},"content":{"15":{},"18":{},"19":{},"37":{},"39":{}},"tags":{}}],["migration fin",{"_index":724,"title":{},"content":{},"tags":{"18":{}}}],["mile",{"_index":863,"title":{},"content":{"17":{}},"tags":{}}],["mileston",{"_index":763,"title":{},"content":{"16":{}},"tags":{}}],["million",{"_index":444,"title":{},"content":{"3":{}},"tags":{}}],["mimick",{"_index":1220,"title":{},"content":{"33":{}},"tags":{}}],["mind",{"_index":1036,"title":{},"content":{"27":{},"30":{}},"tags":{}}],["minim",{"_index":189,"title":{},"content":{"2":{},"33":{}},"tags":{}}],["mobil",{"_index":1146,"title":{},"content":{"19":{}},"tags":{}}],["mockup",{"_index":935,"title":{},"content":{"20":{}},"tags":{}}],["mod",{"_index":922,"title":{},"content":{"20":{}},"tags":{}}],["model",{"_index":1068,"title":{},"content":{"27":{}},"tags":{}}],["moder",{"_index":289,"title":{},"content":{"4":{}},"tags":{}}],["modern",{"_index":942,"title":{},"content":{"20":{}},"tags":{}}],["modifi",{"_index":369,"title":{},"content":{"3":{}},"tags":{}}],["moment",{"_index":373,"title":{},"content":{"3":{},"17":{},"19":{}},"tags":{}}],["monet",{"_index":455,"title":{},"content":{"3":{}},"tags":{}}],["monetari",{"_index":326,"title":{},"content":{"4":{}},"tags":{}}],["monitor",{"_index":97,"title":{},"content":{"1":{}},"tags":{}}],["month",{"_index":1138,"title":{},"content":{"19":{},"36":{},"37":{}},"tags":{}}],["monthli",{"_index":1055,"title":{},"content":{"26":{},"27":{},"29":{}},"tags":{}}],["more",{"_index":49,"title":{},"content":{"1":{},"2":{},"3":{},"16":{},"19":{},"20":{},"26":{},"29":{},"32":{},"38":{}},"tags":{}}],["moreov",{"_index":272,"title":{},"content":{"4":{},"17":{}},"tags":{}}],["mostli",{"_index":836,"title":{},"content":{"17":{}},"tags":{}}],["motiv",{"_index":325,"title":{},"content":{"4":{},"6":{},"29":{}},"tags":{"4":{}}}],["move",{"_index":807,"title":{},"content":{"16":{},"34":{},"37":{}},"tags":{}}],["much",{"_index":869,"title":{},"content":{"17":{},"33":{},"36":{},"37":{}},"tags":{}}],["multi",{"_index":91,"title":{},"content":{"1":{}},"tags":{}}],["multi-user authent",{"_index":143,"title":{},"content":{},"tags":{"1":{}}}],["multipl",{"_index":1050,"title":{},"content":{"27":{}},"tags":{}}],["mysteri",{"_index":738,"title":{},"content":{"15":{}},"tags":{}}],["name",{"_index":153,"title":{"2":{},"5":{}},"content":{"2":{},"3":{},"4":{},"5":{},"6":{},"10":{},"13":{},"14":{},"15":{},"18":{}},"tags":{}}],["name migration progress",{"_index":715,"title":{},"content":{},"tags":{"18":{}}}],["namedpip",{"_index":1100,"title":{},"content":{"29":{}},"tags":{}}],["narr",{"_index":281,"title":{},"content":{"4":{}},"tags":{}}],["natur",{"_index":360,"title":{"3":{}},"content":{},"tags":{}}],["navig",{"_index":780,"title":{},"content":{"16":{},"19":{}},"tags":{}}],["nearli",{"_index":694,"title":{},"content":{"18":{}},"tags":{}}],["necessarili",{"_index":1084,"title":{},"content":{"29":{}},"tags":{}}],["need",{"_index":108,"title":{},"content":{"1":{},"2":{},"3":{},"17":{},"19":{},"22":{},"27":{},"29":{},"30":{}},"tags":{}}],["neg",{"_index":280,"title":{},"content":{"4":{}},"tags":{}}],["negative narr",{"_index":352,"title":{},"content":{},"tags":{"4":{}}}],["neglect",{"_index":472,"title":{},"content":{"3":{}},"tags":{}}],["network",{"_index":736,"title":{},"content":{"15":{}},"tags":{}}],["never",{"_index":1028,"title":{},"content":{"19":{},"27":{}},"tags":{}}],["nevertheless",{"_index":882,"title":{},"content":{"20":{}},"tags":{}}],["new",{"_index":150,"title":{"2":{},"5":{},"18":{},"31":{},"32":{},"34":{},"37":{},"38":{}},"content":{"2":{},"5":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"27":{},"29":{},"33":{},"34":{},"36":{},"37":{},"38":{},"39":{}},"tags":{}}],["new logo",{"_index":722,"title":{},"content":{},"tags":{"18":{}}}],["new nam",{"_index":229,"title":{},"content":{},"tags":{"2":{}}}],["new name announc",{"_index":522,"title":{},"content":{},"tags":{"5":{}}}],["newslett",{"_index":671,"title":{},"content":{"14":{}},"tags":{}}],["next",{"_index":629,"title":{"13":{},"30":{}},"content":{"18":{},"25":{},"26":{},"30":{}},"tags":{}}],["nice",{"_index":1088,"title":{},"content":{"29":{}},"tags":{}}],["note",{"_index":1008,"title":{"25":{}},"content":{"38":{}},"tags":{"36":{}}}],["noth",{"_index":458,"title":{},"content":{"3":{}},"tags":{}}],["notif",{"_index":865,"title":{},"content":{"17":{}},"tags":{}}],["notifi",{"_index":1133,"title":{},"content":{"30":{}},"tags":{}}],["november upd",{"_index":973,"title":{},"content":{},"tags":{"20":{}}}],["now",{"_index":29,"title":{"19":{},"21":{},"26":{}},"content":{"1":{},"2":{},"3":{},"6":{},"15":{},"16":{},"18":{},"19":{},"20":{},"26":{},"29":{},"33":{},"34":{},"37":{},"38":{}},"tags":{}}],["number",{"_index":1009,"title":{},"content":{"25":{},"37":{}},"tags":{}}],["oblig",{"_index":471,"title":{},"content":{"3":{}},"tags":{}}],["offer",{"_index":56,"title":{},"content":{"1":{},"2":{},"3":{},"8":{},"26":{},"27":{},"29":{},"40":{}},"tags":{}}],["offici",{"_index":764,"title":{},"content":{"16":{},"26":{},"32":{},"37":{}},"tags":{}}],["official instal",{"_index":818,"title":{},"content":{},"tags":{"16":{}}}],["offlin",{"_index":74,"title":{},"content":{"1":{}},"tags":{}}],["old",{"_index":634,"title":{},"content":{"13":{}},"tags":{}}],["older",{"_index":1321,"title":{},"content":{"39":{}},"tags":{}}],["on",{"_index":382,"title":{},"content":{"3":{},"10":{},"13":{},"23":{},"27":{},"29":{},"33":{},"37":{},"40":{}},"tags":{}}],["onc",{"_index":713,"title":{},"content":{"18":{},"20":{},"30":{}},"tags":{}}],["ongo",{"_index":771,"title":{},"content":{"16":{},"17":{}},"tags":{}}],["onlin",{"_index":601,"title":{},"content":{"9":{}},"tags":{}}],["open",{"_index":51,"title":{},"content":{"1":{},"3":{},"4":{},"18":{},"26":{},"30":{}},"tags":{}}],["open-sourc",{"_index":495,"title":{},"content":{},"tags":{"3":{}}}],["opencollect",{"_index":438,"title":{},"content":{"3":{}},"tags":{}}],["opinion",{"_index":845,"title":{},"content":{"17":{}},"tags":{}}],["opportun",{"_index":559,"title":{},"content":{"6":{},"25":{}},"tags":{}}],["opposit",{"_index":1021,"title":{},"content":{"27":{}},"tags":{}}],["optim",{"_index":894,"title":{},"content":{"20":{},"26":{},"37":{}},"tags":{}}],["option",{"_index":1066,"title":{},"content":{"27":{}},"tags":{}}],["order",{"_index":453,"title":{},"content":{"3":{}},"tags":{}}],["organ",{"_index":851,"title":{},"content":{"17":{}},"tags":{}}],["origin",{"_index":24,"title":{},"content":{"1":{}},"tags":{}}],["other",{"_index":419,"title":{},"content":{"3":{},"16":{},"27":{}},"tags":{}}],["our",{"_index":595,"title":{},"content":{"8":{}},"tags":{}}],["ourselv",{"_index":633,"title":{},"content":{"13":{},"27":{}},"tags":{}}],["out",{"_index":789,"title":{"26":{}},"content":{"16":{},"20":{},"27":{},"29":{},"32":{},"39":{}},"tags":{}}],["outsid",{"_index":639,"title":{},"content":{"13":{}},"tags":{}}],["over",{"_index":60,"title":{},"content":{"1":{},"3":{},"5":{},"14":{},"16":{},"19":{},"20":{},"37":{},"38":{}},"tags":{}}],["overhaul",{"_index":1305,"title":{},"content":{"38":{}},"tags":{}}],["overwhelm",{"_index":1040,"title":{},"content":{"27":{}},"tags":{}}],["ownership",{"_index":648,"title":{},"content":{"13":{}},"tags":{}}],["page",{"_index":439,"title":{},"content":{"3":{},"29":{}},"tags":{}}],["pagin",{"_index":103,"title":{},"content":{"1":{}},"tags":{}}],["parent",{"_index":1295,"title":{},"content":{"38":{}},"tags":{}}],["parental control",{"_index":1264,"title":{},"content":{},"tags":{"36":{}}}],["part",{"_index":799,"title":{},"content":{"16":{},"17":{},"19":{},"20":{},"21":{},"22":{}},"tags":{}}],["parti",{"_index":1104,"title":{},"content":{"29":{},"37":{}},"tags":{}}],["particip",{"_index":175,"title":{},"content":{"2":{},"6":{},"14":{},"17":{},"24":{}},"tags":{}}],["particular",{"_index":1024,"title":{},"content":{"27":{}},"tags":{}}],["partnership",{"_index":1126,"title":{"31":{}},"content":{"26":{},"30":{},"32":{},"37":{}},"tags":{"26":{},"31":{}}}],["pass",{"_index":1156,"title":{},"content":{"19":{}},"tags":{}}],["passion",{"_index":132,"title":{},"content":{"1":{},"17":{},"40":{}},"tags":{}}],["password",{"_index":1240,"title":{},"content":{"34":{}},"tags":{}}],["past",{"_index":14,"title":{},"content":{"1":{}},"tags":{}}],["patienc",{"_index":1290,"title":{},"content":{"37":{}},"tags":{}}],["paus",{"_index":1238,"title":{},"content":{"34":{}},"tags":{}}],["pay",{"_index":896,"title":{},"content":{"20":{},"27":{}},"tags":{}}],["pc",{"_index":1140,"title":{},"content":{"19":{}},"tags":{}}],["peak",{"_index":1202,"title":{},"content":{"31":{}},"tags":{}}],["peek",{"_index":934,"title":{},"content":{"20":{},"22":{}},"tags":{}}],["penni",{"_index":958,"title":{},"content":{"20":{}},"tags":{}}],["peopl",{"_index":531,"title":{},"content":{"6":{},"27":{}},"tags":{}}],["per",{"_index":437,"title":{},"content":{"3":{}},"tags":{}}],["perform",{"_index":1186,"title":{},"content":{"26":{}},"tags":{}}],["period",{"_index":1241,"title":{},"content":{"34":{}},"tags":{}}],["person",{"_index":417,"title":{},"content":{"3":{},"16":{}},"tags":{}}],["perspect",{"_index":482,"title":{},"content":{"3":{}},"tags":{}}],["pet",{"_index":1171,"title":{},"content":{"19":{}},"tags":{}}],["phalcod",{"_index":1085,"title":{},"content":{"29":{},"35":{}},"tags":{}}],["phalcode/gamevault",{"_index":1002,"title":{},"content":{"24":{}},"tags":{}}],["phase",{"_index":995,"title":{},"content":{"23":{},"26":{},"37":{}},"tags":{}}],["phone",{"_index":1135,"title":{"19":{}},"content":{"19":{}},"tags":{}}],["pictur",{"_index":1095,"title":{},"content":{"26":{},"29":{},"35":{}},"tags":{}}],["piec",{"_index":746,"title":{},"content":{"15":{},"37":{}},"tags":{}}],["ping",{"_index":794,"title":{},"content":{"16":{}},"tags":{}}],["pipelin",{"_index":778,"title":{},"content":{"16":{}},"tags":{}}],["piraci",{"_index":539,"title":{},"content":{"6":{}},"tags":{}}],["place",{"_index":313,"title":{},"content":{"4":{},"27":{}},"tags":{}}],["plan",{"_index":850,"title":{},"content":{"17":{},"26":{},"29":{},"32":{},"33":{}},"tags":{}}],["platform",{"_index":6,"title":{"1":{}},"content":{"1":{},"2":{},"15":{},"17":{},"19":{},"26":{},"27":{}},"tags":{"17":{},"26":{}}}],["platform valu",{"_index":234,"title":{},"content":{},"tags":{"2":{}}}],["platform'",{"_index":163,"title":{},"content":{"2":{}},"tags":{}}],["play",{"_index":35,"title":{},"content":{"1":{},"16":{}},"tags":{}}],["playabl",{"_index":1297,"title":{},"content":{"38":{}},"tags":{}}],["player",{"_index":1301,"title":{},"content":{"38":{}},"tags":{}}],["playnit",{"_index":1106,"title":{},"content":{"29":{}},"tags":{}}],["playtim",{"_index":70,"title":{},"content":{"1":{}},"tags":{}}],["pleas",{"_index":126,"title":{"17":{}},"content":{"1":{},"2":{},"3":{},"6":{},"16":{},"35":{},"39":{}},"tags":{}}],["plex",{"_index":405,"title":{},"content":{"3":{}},"tags":{}}],["plug",{"_index":1209,"title":{},"content":{"32":{}},"tags":{}}],["plugin",{"_index":1276,"title":{},"content":{"37":{}},"tags":{}}],["plugin system",{"_index":1263,"title":{},"content":{},"tags":{"36":{}}}],["podcast",{"_index":667,"title":{},"content":{"14":{}},"tags":{}}],["point",{"_index":256,"title":{},"content":{"4":{}},"tags":{}}],["polish",{"_index":844,"title":{},"content":{"17":{},"30":{}},"tags":{}}],["poll",{"_index":169,"title":{},"content":{"2":{},"4":{},"5":{},"6":{},"17":{},"20":{},"30":{},"32":{}},"tags":{"2":{},"17":{}}}],["poll result",{"_index":514,"title":{},"content":{},"tags":{"5":{}}}],["pop",{"_index":1291,"title":{},"content":{"37":{}},"tags":{}}],["popular",{"_index":434,"title":{},"content":{"3":{},"9":{},"12":{}},"tags":{}}],["posit",{"_index":332,"title":{},"content":{"4":{}},"tags":{}}],["possibl",{"_index":328,"title":{},"content":{"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"35":{},"37":{}},"tags":{}}],["post",{"_index":205,"title":{},"content":{"2":{},"16":{},"18":{},"31":{}},"tags":{}}],["potenti",{"_index":171,"title":{},"content":{"2":{},"30":{}},"tags":{}}],["pour",{"_index":833,"title":{},"content":{"17":{},"27":{}},"tags":{}}],["power",{"_index":1139,"title":{},"content":{"19":{}},"tags":{}}],["prefer",{"_index":1210,"title":{},"content":{"32":{}},"tags":{}}],["premium",{"_index":1087,"title":{},"content":{"26":{},"29":{},"40":{}},"tags":{}}],["prerequisit",{"_index":1000,"title":{"24":{}},"content":{},"tags":{}}],["present",{"_index":481,"title":{},"content":{"3":{}},"tags":{}}],["prevent",{"_index":418,"title":{},"content":{"3":{}},"tags":{}}],["previou",{"_index":687,"title":{},"content":{"18":{}},"tags":{}}],["primari",{"_index":473,"title":{},"content":{"3":{}},"tags":{}}],["primarili",{"_index":1211,"title":{},"content":{"32":{}},"tags":{}}],["priorit",{"_index":831,"title":{"17":{}},"content":{"17":{},"25":{},"37":{}},"tags":{}}],["probabl",{"_index":1119,"title":{},"content":{"30":{}},"tags":{}}],["problem",{"_index":1023,"title":{},"content":{"27":{},"31":{}},"tags":{}}],["proceed",{"_index":580,"title":{},"content":{"6":{}},"tags":{}}],["process",{"_index":167,"title":{},"content":{"2":{},"5":{},"13":{},"16":{}},"tags":{}}],["product",{"_index":464,"title":{"36":{}},"content":{"3":{},"27":{},"29":{},"36":{}},"tags":{}}],["profil",{"_index":1094,"title":{},"content":{"26":{},"29":{},"35":{}},"tags":{}}],["profit",{"_index":420,"title":{},"content":{"3":{}},"tags":{}}],["program",{"_index":975,"title":{"21":{},"22":{}},"content":{"21":{},"25":{}},"tags":{}}],["progress",{"_index":71,"title":{},"content":{"1":{},"4":{},"18":{},"20":{},"30":{}},"tags":{}}],["project",{"_index":154,"title":{"2":{}},"content":{"2":{},"3":{},"4":{},"17":{},"20":{},"27":{},"29":{},"40":{}},"tags":{}}],["project'",{"_index":658,"title":{},"content":{"14":{}},"tags":{}}],["promot",{"_index":733,"title":{},"content":{"15":{},"20":{}},"tags":{}}],["promptli",{"_index":285,"title":{},"content":{"4":{}},"tags":{}}],["protect",{"_index":412,"title":{},"content":{"3":{},"34":{}},"tags":{}}],["provid",{"_index":44,"title":{"32":{}},"content":{"1":{},"2":{},"3":{},"6":{},"16":{},"32":{},"37":{}},"tags":{}}],["public",{"_index":310,"title":{},"content":{"4":{}},"tags":{"4":{}}}],["publish",{"_index":728,"title":{},"content":{"15":{}},"tags":{}}],["purpos",{"_index":390,"title":{},"content":{"3":{},"13":{}},"tags":{}}],["push",{"_index":773,"title":{},"content":{"16":{},"19":{}},"tags":{}}],["puzzl",{"_index":1157,"title":{},"content":{"19":{}},"tags":{}}],["q&a",{"_index":1110,"title":{},"content":{"29":{}},"tags":{}}],["qualiti",{"_index":1230,"title":{},"content":{"33":{}},"tags":{}}],["question",{"_index":124,"title":{},"content":{"1":{},"4":{}},"tags":{}}],["quick",{"_index":677,"title":{"18":{}},"content":{"19":{},"38":{}},"tags":{}}],["quit",{"_index":655,"title":{},"content":{"14":{},"27":{}},"tags":{}}],["r/phalcod",{"_index":691,"title":{},"content":{"18":{}},"tags":{}}],["racism",{"_index":265,"title":{},"content":{"4":{}},"tags":{}}],["racist",{"_index":298,"title":{},"content":{"4":{}},"tags":{"4":{}}}],["random",{"_index":911,"title":{},"content":{"20":{}},"tags":{}}],["rate",{"_index":813,"title":{},"content":{"16":{}},"tags":{}}],["rawg",{"_index":89,"title":{"31":{},"33":{}},"content":{"1":{},"30":{},"32":{},"33":{},"37":{}},"tags":{"31":{}}}],["rawg api",{"_index":144,"title":{},"content":{},"tags":{"1":{}}}],["rawg.io",{"_index":1196,"title":{},"content":{"31":{}},"tags":{}}],["rawg_api_url",{"_index":1224,"title":{},"content":{"33":{}},"tags":{}}],["reach",{"_index":762,"title":{},"content":{"16":{},"39":{}},"tags":{}}],["read",{"_index":787,"title":{},"content":{"16":{}},"tags":{}}],["readabl",{"_index":1320,"title":{},"content":{"38":{}},"tags":{}}],["realli",{"_index":1244,"title":{},"content":{"35":{}},"tags":{}}],["reason",{"_index":267,"title":{},"content":{"4":{}},"tags":{}}],["receiv",{"_index":273,"title":{},"content":{"4":{},"27":{}},"tags":{}}],["recent",{"_index":915,"title":{},"content":{"20":{},"32":{},"34":{}},"tags":{}}],["recogn",{"_index":381,"title":{},"content":{"3":{},"6":{}},"tags":{}}],["recommend",{"_index":546,"title":{},"content":{"6":{},"16":{}},"tags":{}}],["reddit",{"_index":129,"title":{},"content":{"1":{},"6":{}},"tags":{}}],["reddit forum",{"_index":147,"title":{},"content":{},"tags":{"1":{}}}],["redesign",{"_index":917,"title":{},"content":{"20":{},"38":{}},"tags":{}}],["redirect",{"_index":686,"title":{},"content":{"18":{},"33":{}},"tags":{}}],["reel",{"_index":899,"title":{},"content":{"20":{}},"tags":{}}],["refactor",{"_index":1128,"title":{},"content":{"26":{},"30":{}},"tags":{}}],["referr",{"_index":801,"title":{},"content":{"16":{}},"tags":{}}],["refin",{"_index":843,"title":{},"content":{"17":{},"26":{},"29":{}},"tags":{}}],["reflect",{"_index":162,"title":{},"content":{"2":{}},"tags":{}}],["refresh",{"_index":1306,"title":{},"content":{"38":{}},"tags":{}}],["regard",{"_index":692,"title":{},"content":{"18":{},"27":{}},"tags":{}}],["regardless",{"_index":72,"title":{},"content":{"1":{}},"tags":{}}],["regist",{"_index":650,"title":{},"content":{"13":{}},"tags":{}}],["registr",{"_index":1201,"title":{},"content":{"31":{}},"tags":{}}],["regular",{"_index":990,"title":{},"content":{"22":{}},"tags":{}}],["regularli",{"_index":796,"title":{},"content":{"16":{},"29":{}},"tags":{}}],["relat",{"_index":538,"title":{},"content":{"6":{},"11":{}},"tags":{}}],["releas",{"_index":672,"title":{},"content":{"14":{},"16":{},"19":{},"20":{},"22":{},"27":{},"30":{},"34":{},"36":{}},"tags":{"26":{}}}],["reli",{"_index":344,"title":{},"content":{"4":{},"27":{}},"tags":{}}],["reliabl",{"_index":948,"title":{},"content":{"20":{}},"tags":{}}],["relianc",{"_index":1122,"title":{},"content":{"30":{}},"tags":{}}],["remain",{"_index":696,"title":{},"content":{"18":{},"20":{},"29":{},"33":{}},"tags":{}}],["rememb",{"_index":342,"title":{},"content":{"4":{},"20":{}},"tags":{}}],["remov",{"_index":1013,"title":{},"content":{"25":{},"32":{}},"tags":{}}],["renam",{"_index":548,"title":{},"content":{"6":{}},"tags":{}}],["renaming app",{"_index":515,"title":{},"content":{},"tags":{"5":{}}}],["replac",{"_index":1214,"title":{"33":{}},"content":{"33":{}},"tags":{}}],["report",{"_index":118,"title":{},"content":{"1":{},"4":{},"17":{},"20":{}},"tags":{}}],["repositori",{"_index":1033,"title":{},"content":{"27":{}},"tags":{}}],["repres",{"_index":209,"title":{},"content":{"2":{},"15":{},"18":{}},"tags":{}}],["reput",{"_index":1185,"title":{},"content":{"26":{}},"tags":{}}],["request",{"_index":119,"title":{},"content":{"1":{},"2":{},"4":{},"16":{},"17":{},"20":{}},"tags":{}}],["requir",{"_index":425,"title":{},"content":{"3":{},"20":{},"25":{},"33":{},"39":{}},"tags":{}}],["reson",{"_index":584,"title":{},"content":{"6":{},"27":{}},"tags":{}}],["resourc",{"_index":426,"title":{},"content":{"3":{}},"tags":{}}],["respect",{"_index":341,"title":{},"content":{"4":{},"6":{}},"tags":{}}],["respons",{"_index":1038,"title":{},"content":{"27":{}},"tags":{}}],["restor",{"_index":909,"title":{},"content":{"20":{}},"tags":{}}],["restrict",{"_index":41,"title":{},"content":{"1":{},"38":{}},"tags":{}}],["result",{"_index":212,"title":{},"content":{"2":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"20":{},"31":{}},"tags":{}}],["resum",{"_index":726,"title":{},"content":{"15":{},"34":{}},"tags":{}}],["reveal",{"_index":711,"title":{},"content":{"18":{}},"tags":{}}],["revenu",{"_index":452,"title":{},"content":{"3":{}},"tags":{}}],["revenue gener",{"_index":500,"title":{},"content":{},"tags":{"3":{}}}],["revolution",{"_index":779,"title":{},"content":{"16":{}},"tags":{}}],["rewrit",{"_index":943,"title":{},"content":{"20":{}},"tags":{}}],["ride",{"_index":1115,"title":{},"content":{"29":{}},"tags":{}}],["right",{"_index":311,"title":{},"content":{"4":{},"16":{},"17":{},"20":{}},"tags":{}}],["rigor",{"_index":1288,"title":{},"content":{"37":{}},"tags":{}}],["roadmap",{"_index":840,"title":{},"content":{"17":{}},"tags":{"17":{}}}],["role",{"_index":792,"title":{},"content":{"16":{},"17":{}},"tags":{}}],["roll",{"_index":956,"title":{},"content":{"20":{},"29":{}},"tags":{}}],["rom",{"_index":919,"title":{},"content":{"20":{}},"tags":{}}],["room",{"_index":1108,"title":{},"content":{"29":{}},"tags":{}}],["rough",{"_index":1116,"title":{},"content":{"30":{}},"tags":{}}],["rugpul",{"_index":1075,"title":{},"content":{"29":{}},"tags":{}}],["run",{"_index":866,"title":{},"content":{"17":{},"24":{},"37":{},"39":{}},"tags":{}}],["rundown",{"_index":1294,"title":{},"content":{"38":{}},"tags":{}}],["safe",{"_index":296,"title":{},"content":{"4":{}},"tags":{}}],["safe environ",{"_index":353,"title":{},"content":{},"tags":{"4":{}}}],["save",{"_index":1286,"title":{},"content":{"37":{}},"tags":{}}],["savvi",{"_index":782,"title":{},"content":{"16":{}},"tags":{}}],["say",{"_index":1081,"title":{},"content":{"26":{},"29":{}},"tags":{}}],["scammi",{"_index":1073,"title":{},"content":{"29":{}},"tags":{}}],["scene",{"_index":400,"title":{},"content":{"3":{},"27":{}},"tags":{}}],["scraper",{"_index":1273,"title":{},"content":{"37":{}},"tags":{}}],["scratch",{"_index":1249,"title":{"36":{}},"content":{},"tags":{}}],["scratch—there’",{"_index":1257,"title":{},"content":{"36":{}},"tags":{}}],["seamless",{"_index":1159,"title":{},"content":{"19":{}},"tags":{}}],["seamlessli",{"_index":701,"title":{},"content":{"18":{},"32":{}},"tags":{}}],["search",{"_index":100,"title":{},"content":{"1":{},"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"31":{}},"tags":{}}],["season",{"_index":1311,"title":{},"content":{"38":{}},"tags":{}}],["secur",{"_index":66,"title":{},"content":{"1":{},"13":{}},"tags":{}}],["see",{"_index":364,"title":{},"content":{"3":{},"17":{},"19":{},"29":{},"30":{}},"tags":{}}],["seem",{"_index":1042,"title":{},"content":{"27":{}},"tags":{}}],["select",{"_index":181,"title":{},"content":{"2":{}},"tags":{}}],["self",{"_index":3,"title":{"1":{}},"content":{"1":{},"3":{},"13":{},"14":{},"16":{},"20":{},"27":{}},"tags":{}}],["self-host",{"_index":139,"title":{},"content":{},"tags":{"1":{},"26":{}}}],["self-hosted newslett",{"_index":526,"title":{},"content":{},"tags":{"5":{}}}],["selfhost",{"_index":666,"title":{},"content":{"14":{}},"tags":{}}],["selfhosted podcast",{"_index":525,"title":{},"content":{},"tags":{"5":{}}}],["sell",{"_index":421,"title":{},"content":{"3":{}},"tags":{}}],["separ",{"_index":1287,"title":{},"content":{"37":{}},"tags":{}}],["server",{"_index":40,"title":{},"content":{"1":{},"3":{},"4":{},"13":{},"14":{},"15":{},"16":{},"18":{},"24":{},"27":{},"33":{},"35":{},"36":{},"38":{},"39":{}},"tags":{}}],["server upd",{"_index":1261,"title":{},"content":{},"tags":{"36":{}}}],["server'",{"_index":64,"title":{},"content":{"1":{}},"tags":{}}],["servic",{"_index":1062,"title":{},"content":{"27":{},"31":{}},"tags":{}}],["set",{"_index":685,"title":{},"content":{"18":{},"20":{},"40":{}},"tags":{}}],["shadi",{"_index":1072,"title":{},"content":{"29":{}},"tags":{}}],["shape",{"_index":176,"title":{},"content":{"2":{},"17":{},"26":{}},"tags":{}}],["share",{"_index":28,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"14":{},"15":{},"16":{},"18":{},"19":{}},"tags":{}}],["sharing blog post",{"_index":827,"title":{},"content":{},"tags":{"16":{}}}],["shed",{"_index":509,"title":{},"content":{"5":{}},"tags":{}}],["ship",{"_index":939,"title":{},"content":{"20":{}},"tags":{}}],["shortli",{"_index":652,"title":{},"content":{"13":{}},"tags":{}}],["shoutout",{"_index":663,"title":{},"content":{"14":{},"18":{},"27":{}},"tags":{}}],["showcas",{"_index":891,"title":{},"content":{"20":{}},"tags":{}}],["signifi",{"_index":745,"title":{},"content":{"15":{}},"tags":{}}],["signific",{"_index":442,"title":{},"content":{"3":{},"6":{},"16":{},"32":{}},"tags":{}}],["silenc",{"_index":1019,"title":{},"content":{"27":{}},"tags":{}}],["silverlight",{"_index":1137,"title":{"19":{}},"content":{"19":{}},"tags":{}}],["similar",{"_index":594,"title":{},"content":{"8":{}},"tags":{}}],["simpl",{"_index":812,"title":{},"content":{"16":{},"27":{}},"tags":{}}],["simpli",{"_index":1155,"title":{},"content":{"19":{}},"tags":{}}],["simplifi",{"_index":783,"title":{},"content":{"16":{}},"tags":{}}],["simplifying game instal",{"_index":823,"title":{},"content":{},"tags":{"16":{}}}],["simultan",{"_index":744,"title":{},"content":{"15":{}},"tags":{}}],["sincer",{"_index":218,"title":{},"content":{"2":{}},"tags":{}}],["site",{"_index":628,"title":{},"content":{"12":{}},"tags":{}}],["situat",{"_index":254,"title":{},"content":{"4":{},"31":{}},"tags":{}}],["six",{"_index":1250,"title":{},"content":{"36":{}},"tags":{}}],["skin",{"_index":1312,"title":{},"content":{"38":{}},"tags":{}}],["slack",{"_index":945,"title":{},"content":{"20":{},"27":{}},"tags":{}}],["sleeker",{"_index":931,"title":{},"content":{"20":{},"38":{}},"tags":{}}],["slight",{"_index":1065,"title":{},"content":{"27":{}},"tags":{}}],["slightli",{"_index":377,"title":{},"content":{"3":{}},"tags":{}}],["slot",{"_index":1010,"title":{},"content":{"25":{}},"tags":{}}],["small",{"_index":318,"title":{},"content":{"3":{},"4":{},"16":{},"26":{},"27":{},"29":{}},"tags":{}}],["smooth",{"_index":1324,"title":{},"content":{"39":{}},"tags":{}}],["smoother",{"_index":1160,"title":{},"content":{"19":{}},"tags":{}}],["snag",{"_index":1329,"title":{},"content":{"39":{}},"tags":{}}],["sneak",{"_index":933,"title":{},"content":{"20":{},"22":{}},"tags":{}}],["social",{"_index":735,"title":{},"content":{"15":{}},"tags":{}}],["softwar",{"_index":366,"title":{},"content":{"3":{}},"tags":{"27":{}}}],["software develop",{"_index":496,"title":{},"content":{},"tags":{"3":{}}}],["software licens",{"_index":499,"title":{},"content":{},"tags":{"3":{}}}],["software upd",{"_index":965,"title":{},"content":{},"tags":{"20":{}}}],["sole",{"_index":429,"title":{},"content":{"3":{},"6":{},"16":{},"27":{}},"tags":{}}],["solut",{"_index":46,"title":{"31":{},"33":{}},"content":{"1":{},"27":{},"30":{},"33":{}},"tags":{"31":{}}}],["someth",{"_index":811,"title":{},"content":{"16":{},"20":{},"37":{}},"tags":{}}],["sometim",{"_index":401,"title":{},"content":{"3":{}},"tags":{}}],["soon",{"_index":505,"title":{"27":{}},"content":{"5":{},"13":{},"15":{},"16":{},"18":{},"19":{},"20":{},"30":{}},"tags":{}}],["sort",{"_index":102,"title":{},"content":{"1":{}},"tags":{}}],["sought",{"_index":641,"title":{},"content":{"13":{}},"tags":{}}],["soul",{"_index":1051,"title":{},"content":{"27":{}},"tags":{}}],["sound",{"_index":626,"title":{},"content":{"12":{}},"tags":{}}],["soundtrack",{"_index":921,"title":{},"content":{"20":{}},"tags":{}}],["sourc",{"_index":17,"title":{"3":{}},"content":{"1":{},"2":{},"3":{},"37":{}},"tags":{}}],["source-avail",{"_index":138,"title":{},"content":{},"tags":{"1":{},"2":{}}}],["source-available softwar",{"_index":494,"title":{},"content":{},"tags":{"3":{}}}],["spam",{"_index":251,"title":{},"content":{"4":{}},"tags":{"4":{}}}],["spare",{"_index":1053,"title":{},"content":{"27":{}},"tags":{}}],["special",{"_index":653,"title":{"14":{}},"content":{"14":{}},"tags":{}}],["special thank",{"_index":524,"title":{},"content":{},"tags":{"5":{}}}],["specif",{"_index":1082,"title":{},"content":{"29":{}},"tags":{}}],["specul",{"_index":708,"title":{},"content":{"18":{}},"tags":{"18":{}}}],["speed",{"_index":881,"title":{},"content":{"20":{}},"tags":{}}],["spill",{"_index":949,"title":{},"content":{"20":{}},"tags":{}}],["spooki",{"_index":1310,"title":{},"content":{"38":{}},"tags":{}}],["sporad",{"_index":1060,"title":{},"content":{"27":{}},"tags":{}}],["spot",{"_index":883,"title":{},"content":{"20":{}},"tags":{}}],["spread",{"_index":279,"title":{},"content":{"4":{},"6":{},"15":{},"16":{}},"tags":{}}],["spreading the word",{"_index":753,"title":{},"content":{},"tags":{"15":{},"16":{}}}],["stabl",{"_index":989,"title":{},"content":{"22":{}},"tags":{}}],["stand",{"_index":346,"title":{},"content":{"4":{}},"tags":{}}],["standpoint",{"_index":669,"title":{},"content":{"14":{}},"tags":{}}],["start",{"_index":1175,"title":{},"content":{"19":{},"26":{}},"tags":{}}],["startup",{"_index":1069,"title":{},"content":{},"tags":{"27":{}}}],["starv",{"_index":1172,"title":{},"content":{"19":{}},"tags":{}}],["stat",{"_index":77,"title":{},"content":{"1":{}},"tags":{}}],["state",{"_index":78,"title":{},"content":{"1":{}},"tags":{}}],["stay",{"_index":220,"title":{},"content":{"2":{},"14":{},"16":{},"20":{},"26":{},"30":{}},"tags":{}}],["steam",{"_index":23,"title":{},"content":{"1":{},"27":{},"33":{}},"tags":{"31":{}}}],["still",{"_index":936,"title":{},"content":{"20":{}},"tags":{}}],["stop",{"_index":1183,"title":{},"content":{"26":{},"33":{}},"tags":{}}],["store",{"_index":730,"title":{},"content":{"15":{},"16":{},"19":{},"24":{}},"tags":{}}],["strategi",{"_index":1207,"title":{"32":{}},"content":{},"tags":{}}],["streamlin",{"_index":1317,"title":{},"content":{"38":{}},"tags":{}}],["stress",{"_index":867,"title":{},"content":{"17":{}},"tags":{}}],["strictli",{"_index":476,"title":{},"content":{"3":{}},"tags":{}}],["strive",{"_index":463,"title":{},"content":{"3":{},"27":{}},"tags":{}}],["submit",{"_index":340,"title":{},"content":{"4":{}},"tags":{}}],["subreddit",{"_index":690,"title":{},"content":{"18":{}},"tags":{}}],["subreddit migr",{"_index":719,"title":{},"content":{},"tags":{"18":{}}}],["subscrib",{"_index":791,"title":{},"content":{"16":{},"29":{},"40":{}},"tags":{}}],["subscript",{"_index":1067,"title":{},"content":{"27":{}},"tags":{"26":{}}}],["subscription model",{"_index":1070,"title":{},"content":{},"tags":{"27":{}}}],["subscription to updates rol",{"_index":825,"title":{},"content":{},"tags":{"16":{}}}],["success",{"_index":343,"title":{},"content":{"4":{},"16":{},"17":{}},"tags":{"4":{}}}],["successfulli",{"_index":681,"title":{},"content":{"15":{},"18":{}},"tags":{}}],["such",{"_index":307,"title":{},"content":{"3":{},"4":{}},"tags":{}}],["suddenli",{"_index":1216,"title":{},"content":{"33":{}},"tags":{}}],["suggest",{"_index":172,"title":{},"content":{"2":{},"13":{},"14":{},"16":{},"17":{},"26":{}},"tags":{}}],["suit",{"_index":107,"title":{},"content":{"1":{}},"tags":{}}],["suitabl",{"_index":616,"title":{},"content":{"11":{}},"tags":{}}],["summar",{"_index":586,"title":{},"content":{"6":{}},"tags":{}}],["summari",{"_index":528,"title":{"6":{}},"content":{"6":{}},"tags":{}}],["support",{"_index":120,"title":{"35":{},"40":{}},"content":{"1":{},"2":{},"3":{},"4":{},"14":{},"16":{},"19":{},"20":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"34":{},"37":{},"38":{},"40":{}},"tags":{"4":{}}}],["support request",{"_index":828,"title":{},"content":{},"tags":{"16":{}}}],["sure",{"_index":790,"title":{},"content":{"16":{},"20":{},"30":{},"33":{},"37":{}},"tags":{}}],["surg",{"_index":731,"title":{},"content":{"15":{}},"tags":{}}],["surge of new us",{"_index":751,"title":{},"content":{},"tags":{"15":{}}}],["surround",{"_index":1148,"title":{},"content":{"19":{}},"tags":{}}],["sustain",{"_index":428,"title":{},"content":{"3":{},"26":{},"27":{}},"tags":{"26":{}}}],["swap",{"_index":1274,"title":{},"content":{"37":{}},"tags":{}}],["switch",{"_index":1145,"title":{},"content":{"19":{},"33":{}},"tags":{}}],["symbol",{"_index":742,"title":{},"content":{"15":{}},"tags":{}}],["system",{"_index":83,"title":{},"content":{"1":{},"29":{},"32":{},"37":{}},"tags":{}}],["tab",{"_index":918,"title":{},"content":{"20":{},"38":{}},"tags":{}}],["tag",{"_index":87,"title":{},"content":{"1":{},"33":{}},"tags":{}}],["take",{"_index":291,"title":{},"content":{"3":{},"4":{},"13":{},"17":{},"20":{},"33":{}},"tags":{}}],["taken",{"_index":376,"title":{},"content":{"3":{}},"tags":{}}],["task",{"_index":697,"title":{},"content":{"17":{},"18":{},"20":{}},"tags":{}}],["tax",{"_index":470,"title":{},"content":{"3":{}},"tags":{}}],["team",{"_index":11,"title":{},"content":{"1":{},"4":{},"17":{},"19":{},"27":{}},"tags":{}}],["teaser",{"_index":937,"title":{},"content":{"20":{}},"tags":{}}],["tech",{"_index":781,"title":{},"content":{"16":{}},"tags":{}}],["tech progress",{"_index":969,"title":{},"content":{},"tags":{"20":{}}}],["technic",{"_index":941,"title":{},"content":{"20":{}},"tags":{}}],["technolog",{"_index":1142,"title":{},"content":{"19":{}},"tags":{}}],["temporari",{"_index":1192,"title":{"31":{},"33":{}},"content":{},"tags":{}}],["term",{"_index":467,"title":{},"content":{"3":{},"6":{},"9":{},"27":{}},"tags":{}}],["test",{"_index":699,"title":{},"content":{"18":{},"19":{},"20":{},"22":{},"25":{},"29":{},"33":{},"37":{}},"tags":{"18":{}}}],["tester",{"_index":1005,"title":{},"content":{"24":{}},"tags":{}}],["text",{"_index":99,"title":{},"content":{"1":{}},"tags":{}}],["thank",{"_index":349,"title":{"14":{}},"content":{"4":{},"14":{},"17":{},"19":{},"20":{},"26":{},"29":{},"30":{},"35":{},"40":{}},"tags":{}}],["that'",{"_index":848,"title":{},"content":{"17":{},"26":{}},"tags":{}}],["theme",{"_index":1097,"title":{},"content":{"26":{},"29":{},"38":{}},"tags":{"36":{}}}],["theori",{"_index":709,"title":{},"content":{"18":{}},"tags":{}}],["there'",{"_index":592,"title":{},"content":{"8":{},"11":{},"20":{},"27":{}},"tags":{}}],["therefor",{"_index":475,"title":{},"content":{"3":{}},"tags":{}}],["they'll",{"_index":802,"title":{},"content":{"16":{}},"tags":{}}],["thing",{"_index":1007,"title":{},"content":{"24":{}},"tags":{}}],["think",{"_index":53,"title":{},"content":{"1":{},"3":{},"29":{}},"tags":{}}],["third",{"_index":767,"title":{},"content":{"16":{},"37":{}},"tags":{}}],["those",{"_index":47,"title":{},"content":{"1":{}},"tags":{}}],["though",{"_index":955,"title":{},"content":{"20":{},"35":{}},"tags":{}}],["thought",{"_index":486,"title":{},"content":{"3":{},"13":{},"14":{},"15":{},"27":{}},"tags":{}}],["thousand",{"_index":1041,"title":{},"content":{"27":{}},"tags":{}}],["threat",{"_index":351,"title":{},"content":{},"tags":{"4":{}}}],["threaten",{"_index":247,"title":{},"content":{"4":{}},"tags":{}}],["three",{"_index":914,"title":{},"content":{"20":{}},"tags":{}}],["thrill",{"_index":109,"title":{},"content":{"1":{},"5":{},"16":{},"19":{},"26":{},"27":{}},"tags":{}}],["through",{"_index":430,"title":{},"content":{"3":{},"16":{},"19":{},"20":{},"26":{},"34":{}},"tags":{}}],["thumb",{"_index":853,"title":{},"content":{"17":{}},"tags":{}}],["ticket",{"_index":984,"title":{},"content":{"22":{},"32":{}},"tags":{}}],["tile",{"_index":1162,"title":{},"content":{"19":{}},"tags":{}}],["time",{"_index":707,"title":{},"content":{"17":{},"18":{},"19":{},"27":{},"33":{},"38":{},"40":{}},"tags":{}}],["timelin",{"_index":847,"title":{},"content":{"17":{}},"tags":{}}],["timer",{"_index":1169,"title":{},"content":{"19":{}},"tags":{}}],["tip",{"_index":1061,"title":{},"content":{"27":{}},"tags":{}}],["tirelessli",{"_index":13,"title":{},"content":{"1":{}},"tags":{}}],["today",{"_index":113,"title":{},"content":{"1":{},"3":{},"19":{},"26":{},"27":{},"29":{},"33":{}},"tags":{}}],["togeth",{"_index":37,"title":{},"content":{"1":{},"2":{},"4":{},"16":{},"17":{}},"tags":{}}],["ton",{"_index":946,"title":{},"content":{"20":{}},"tags":{}}],["tool",{"_index":1105,"title":{},"content":{"29":{},"37":{}},"tags":{}}],["top",{"_index":564,"title":{},"content":{"6":{},"20":{},"37":{}},"tags":{}}],["topic",{"_index":488,"title":{},"content":{"3":{}},"tags":{}}],["total",{"_index":529,"title":{},"content":{"6":{}},"tags":{}}],["touch",{"_index":963,"title":{},"content":{"19":{},"20":{}},"tags":{}}],["toward",{"_index":249,"title":{},"content":{"4":{},"27":{}},"tags":{}}],["toylerrr",{"_index":1218,"title":{},"content":{"33":{}},"tags":{}}],["track",{"_index":36,"title":{},"content":{"1":{}},"tags":{}}],["tracker",{"_index":253,"title":{},"content":{"4":{},"17":{}},"tags":{}}],["tradit",{"_index":20,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["trailer",{"_index":1303,"title":{},"content":{"38":{}},"tags":{}}],["transit",{"_index":502,"title":{},"content":{"5":{},"13":{},"14":{},"34":{}},"tags":{}}],["transition process",{"_index":527,"title":{},"content":{},"tags":{"5":{}}}],["transpar",{"_index":394,"title":{},"content":{"3":{}},"tags":{"3":{}}}],["travel",{"_index":1215,"title":{},"content":{"33":{}},"tags":{}}],["tri",{"_index":112,"title":{},"content":{"1":{},"16":{}},"tags":{}}],["trivial",{"_index":266,"title":{},"content":{"4":{}},"tags":{}}],["troll",{"_index":238,"title":{"4":{}},"content":{"4":{}},"tags":{"4":{}}}],["truli",{"_index":137,"title":{},"content":{"1":{},"2":{},"3":{},"17":{},"20":{}},"tags":{}}],["trust",{"_index":1011,"title":{},"content":{"25":{},"27":{},"32":{}},"tags":{}}],["tune",{"_index":221,"title":{},"content":{"2":{},"14":{},"16":{},"20":{},"22":{},"26":{},"30":{}},"tags":{}}],["tweak",{"_index":1112,"title":{},"content":{"29":{},"37":{}},"tags":{}}],["twitch.tv",{"_index":1205,"title":{},"content":{"32":{}},"tags":{"31":{}}}],["two",{"_index":462,"title":{},"content":{"3":{},"10":{},"27":{}},"tags":{}}],["ui",{"_index":916,"title":{},"content":{"20":{},"21":{},"38":{}},"tags":{}}],["ui redesign",{"_index":967,"title":{},"content":{},"tags":{"20":{}}}],["ui upd",{"_index":978,"title":{},"content":{},"tags":{"21":{}}}],["ultim",{"_index":872,"title":{},"content":{"17":{}},"tags":{}}],["unauthor",{"_index":413,"title":{},"content":{"3":{}},"tags":{}}],["unawar",{"_index":396,"title":{},"content":{"3":{}},"tags":{}}],["under",{"_index":547,"title":{},"content":{"6":{},"13":{},"17":{}},"tags":{}}],["understand",{"_index":350,"title":{},"content":{"3":{},"4":{},"6":{},"13":{},"16":{},"19":{}},"tags":{}}],["unexpectedli",{"_index":1039,"title":{},"content":{"27":{}},"tags":{}}],["unfold",{"_index":673,"title":{},"content":{"14":{}},"tags":{}}],["unfortun",{"_index":305,"title":{},"content":{"4":{},"31":{}},"tags":{}}],["uninstal",{"_index":902,"title":{},"content":{"20":{}},"tags":{}}],["uniqu",{"_index":45,"title":{},"content":{"1":{}},"tags":{}}],["unlimit",{"_index":1279,"title":{},"content":{"37":{}},"tags":{}}],["unmaintain",{"_index":1124,"title":{},"content":{"30":{},"31":{}},"tags":{}}],["unnecessari",{"_index":858,"title":{},"content":{"17":{}},"tags":{}}],["unreli",{"_index":1272,"title":{},"content":{"37":{}},"tags":{}}],["until",{"_index":714,"title":{},"content":{"18":{},"20":{},"29":{}},"tags":{}}],["unveil",{"_index":1252,"title":{},"content":{"36":{}},"tags":{}}],["up",{"_index":259,"title":{},"content":{"4":{},"14":{},"15":{},"17":{},"18":{},"20":{},"26":{},"27":{},"37":{}},"tags":{}}],["upcom",{"_index":760,"title":{"16":{}},"content":{"16":{},"21":{},"22":{},"27":{},"29":{}},"tags":{}}],["upcoming upd",{"_index":821,"title":{},"content":{},"tags":{"16":{}}}],["updat",{"_index":222,"title":{"18":{},"36":{},"39":{}},"content":{"2":{},"3":{},"4":{},"5":{},"14":{},"16":{},"18":{},"20":{},"21":{},"22":{},"26":{},"30":{},"33":{},"34":{},"36":{},"38":{},"39":{}},"tags":{"26":{},"31":{}}}],["upgrad",{"_index":1242,"title":{},"content":{"35":{}},"tags":{}}],["upload",{"_index":903,"title":{},"content":{"20":{},"29":{}},"tags":{}}],["upon",{"_index":809,"title":{},"content":{"16":{}},"tags":{}}],["up—mastillk",{"_index":1292,"title":{},"content":{"37":{}},"tags":{}}],["urgent",{"_index":1120,"title":{},"content":{"30":{}},"tags":{}}],["uri",{"_index":1099,"title":{},"content":{"29":{}},"tags":{}}],["url",{"_index":1223,"title":{},"content":{"33":{}},"tags":{}}],["us",{"_index":31,"title":{},"content":{"1":{},"3":{},"6":{},"10":{},"18":{},"27":{},"29":{},"31":{},"32":{},"33":{},"39":{},"40":{}},"tags":{}}],["user",{"_index":79,"title":{},"content":{"1":{},"2":{},"3":{},"6":{},"15":{},"16":{},"17":{},"19":{},"20":{},"29":{},"32":{},"37":{},"38":{}},"tags":{}}],["user engag",{"_index":501,"title":{},"content":{},"tags":{"3":{}}}],["user particip",{"_index":232,"title":{},"content":{},"tags":{"2":{}}}],["usher",{"_index":930,"title":{},"content":{"20":{}},"tags":{}}],["usual",{"_index":893,"title":{},"content":{"20":{}},"tags":{}}],["util",{"_index":304,"title":{},"content":{"4":{}},"tags":{}}],["v1.12",{"_index":1254,"title":{},"content":{"36":{},"39":{}},"tags":{}}],["v12.1.0",{"_index":1236,"title":{},"content":{"33":{}},"tags":{}}],["v13",{"_index":1255,"title":{},"content":{"36":{},"39":{}},"tags":{}}],["valu",{"_index":164,"title":{},"content":{"2":{},"3":{},"17":{}},"tags":{}}],["valuabl",{"_index":225,"title":{},"content":{"2":{},"3":{},"4":{},"6":{},"33":{}},"tags":{}}],["variabl",{"_index":1226,"title":{},"content":{"33":{}},"tags":{}}],["varieti",{"_index":182,"title":{},"content":{"2":{}},"tags":{}}],["vast",{"_index":1154,"title":{},"content":{"19":{}},"tags":{}}],["vault",{"_index":740,"title":{},"content":{"15":{}},"tags":{}}],["vault.d",{"_index":599,"title":{},"content":{"9":{}},"tags":{}}],["vendor",{"_index":1213,"title":{},"content":{"32":{}},"tags":{}}],["veri",{"_index":504,"title":{},"content":{"5":{},"11":{},"27":{}},"tags":{}}],["version",{"_index":887,"title":{},"content":{"19":{},"20":{},"27":{},"39":{}},"tags":{}}],["video",{"_index":1127,"title":{},"content":{"26":{},"30":{},"32":{},"34":{},"37":{},"38":{}},"tags":{}}],["video gam",{"_index":1190,"title":{},"content":{},"tags":{"26":{}}}],["videogam",{"_index":55,"title":{},"content":{"1":{},"20":{},"27":{},"31":{}},"tags":{"31":{}}}],["view",{"_index":932,"title":{},"content":{"20":{}},"tags":{}}],["viewabl",{"_index":1298,"title":{},"content":{"38":{}},"tags":{}}],["viewer",{"_index":609,"title":{},"content":{"10":{}},"tags":{}}],["virtual",{"_index":1034,"title":{},"content":{"19":{},"27":{}},"tags":{}}],["vision",{"_index":585,"title":{},"content":{"6":{},"16":{}},"tags":{}}],["voic",{"_index":206,"title":{},"content":{"2":{}},"tags":{}}],["volunt",{"_index":465,"title":{},"content":{"3":{}},"tags":{}}],["vote",{"_index":202,"title":{},"content":{"2":{},"6":{},"14":{},"17":{},"30":{}},"tags":{"2":{},"17":{}}}],["wait",{"_index":507,"title":{},"content":{"5":{},"19":{},"29":{}},"tags":{}}],["want",{"_index":48,"title":{},"content":{"1":{},"3":{},"6":{},"14":{},"16":{},"17":{},"20":{},"21":{},"26":{},"29":{},"35":{},"37":{}},"tags":{}}],["warn",{"_index":1170,"title":{},"content":{"19":{}},"tags":{}}],["wasn't",{"_index":550,"title":{},"content":{"6":{}},"tags":{}}],["watch",{"_index":1302,"title":{},"content":{"38":{}},"tags":{}}],["wave",{"_index":928,"title":{},"content":{"20":{}},"tags":{}}],["way",{"_index":324,"title":{},"content":{"3":{},"4":{},"16":{},"20":{},"26":{},"29":{}},"tags":{}}],["we'd",{"_index":489,"title":{},"content":{"3":{}},"tags":{}}],["we'll",{"_index":710,"title":{},"content":{"16":{},"18":{},"20":{},"29":{},"30":{}},"tags":{}}],["we'r",{"_index":693,"title":{},"content":{"16":{},"18":{},"19":{},"20":{},"21":{},"26":{},"27":{},"29":{},"32":{},"33":{},"34":{}},"tags":{}}],["we'v",{"_index":375,"title":{},"content":{"3":{},"15":{},"18":{},"19":{},"20":{},"27":{},"31":{},"40":{}},"tags":{}}],["websit",{"_index":123,"title":{},"content":{"1":{},"30":{}},"tags":{}}],["week",{"_index":999,"title":{},"content":{"23":{},"30":{}},"tags":{}}],["weird",{"_index":661,"title":{},"content":{"14":{}},"tags":{}}],["welcom",{"_index":198,"title":{},"content":{"2":{},"15":{}},"tags":{}}],["well",{"_index":619,"title":{},"content":{"11":{},"14":{},"17":{},"18":{},"19":{},"26":{},"29":{}},"tags":{}}],["went",{"_index":257,"title":{},"content":{"4":{},"31":{}},"tags":{}}],["we’r",{"_index":1046,"title":{},"content":{"27":{},"36":{}},"tags":{}}],["we’v",{"_index":1270,"title":{},"content":{"37":{},"38":{}},"tags":{}}],["what'",{"_index":397,"title":{"13":{},"22":{},"30":{}},"content":{"3":{},"16":{},"20":{}},"tags":{}}],["what’",{"_index":1269,"title":{"37":{}},"content":{"38":{}},"tags":{}}],["whenev",{"_index":1107,"title":{},"content":{"29":{}},"tags":{}}],["wherev",{"_index":651,"title":{},"content":{"13":{},"19":{}},"tags":{}}],["whether",{"_index":73,"title":{},"content":{"1":{},"4":{},"16":{},"19":{}},"tags":{}}],["wide",{"_index":380,"title":{},"content":{"3":{}},"tags":{}}],["window",{"_index":1134,"title":{"19":{}},"content":{"19":{}},"tags":{}}],["winner",{"_index":567,"title":{},"content":{"6":{}},"tags":{}}],["winner(",{"_index":712,"title":{},"content":{"18":{}},"tags":{}}],["within",{"_index":1080,"title":{},"content":{"26":{},"29":{},"34":{}},"tags":{}}],["without",{"_index":422,"title":{},"content":{"3":{},"5":{},"6":{},"26":{},"37":{}},"tags":{}}],["woe",{"_index":1193,"title":{"31":{}},"content":{},"tags":{}}],["wonder",{"_index":407,"title":{},"content":{"3":{}},"tags":{}}],["won’t",{"_index":1322,"title":{},"content":{"39":{}},"tags":{}}],["word",{"_index":331,"title":{},"content":{"4":{},"6":{},"11":{},"15":{},"16":{}},"tags":{}}],["work",{"_index":12,"title":{},"content":{"1":{},"3":{},"4":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"30":{},"33":{},"36":{},"39":{}},"tags":{}}],["world",{"_index":338,"title":{},"content":{"4":{},"19":{}},"tags":{}}],["wouldn't",{"_index":558,"title":{},"content":{"6":{}},"tags":{}}],["wpf",{"_index":944,"title":{},"content":{"20":{}},"tags":{}}],["wrap",{"_index":951,"title":{},"content":{"20":{}},"tags":{}}],["write",{"_index":1278,"title":{},"content":{"37":{}},"tags":{}}],["written",{"_index":947,"title":{},"content":{"20":{}},"tags":{}}],["wrong",{"_index":543,"title":{},"content":{"6":{},"27":{}},"tags":{}}],["year",{"_index":15,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["you'll",{"_index":700,"title":{},"content":{"18":{},"22":{},"26":{},"29":{}},"tags":{}}],["you'r",{"_index":734,"title":{},"content":{"15":{},"16":{},"17":{},"19":{},"20":{},"25":{}},"tags":{}}],["you'v",{"_index":879,"title":{},"content":{"19":{},"20":{}},"tags":{}}],["you’d",{"_index":1330,"title":{},"content":{"40":{}},"tags":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file +{"documents":[{"id":2,"pageTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionTitle":"Introducing GameVault 🚀 - The self-hosted gaming platform for DRM-free games","sectionRoute":"/blog/2023/07/01/","type":"blog"},{"id":1,"pageTitle":"Choosing a New, Family-Friendly Name for this project!","sectionTitle":"Choosing a New, Family-Friendly Name for this project!","sectionRoute":"/blog/2023/07/08/","type":"blog"},{"id":3,"pageTitle":"Battling Harassment and Trolls in Our App Community","sectionTitle":"Battling Harassment and Trolls in Our App Community","sectionRoute":"/blog/2023/07/09/","type":"blog"},{"id":16,"pageTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionTitle":"A Closer Look at GameVaults 'Source-Available' Nature","sectionRoute":"/blog/2023/07/13/","type":"blog"},{"id":4,"pageTitle":"A New Name","sectionTitle":"A New Name","sectionRoute":"/blog/2023/07/15/","type":"blog"},{"id":5,"pageTitle":"A New Name","sectionTitle":"Summary","sectionRoute":"/blog/2023/07/15/#summary","type":"blog"},{"id":6,"pageTitle":"A New Name","sectionTitle":"Market Analysis","sectionRoute":"/blog/2023/07/15/#market-analysis","type":"blog"},{"id":7,"pageTitle":"A New Name","sectionTitle":"1. GameStash","sectionRoute":"/blog/2023/07/15/#1-gamestash","type":"blog"},{"id":8,"pageTitle":"A New Name","sectionTitle":"2. GameVault","sectionRoute":"/blog/2023/07/15/#2-gamevault","type":"blog"},{"id":9,"pageTitle":"A New Name","sectionTitle":"3. GameShelf","sectionRoute":"/blog/2023/07/15/#3-gameshelf","type":"blog"},{"id":10,"pageTitle":"A New Name","sectionTitle":"4. Harbor","sectionRoute":"/blog/2023/07/15/#4-harbor","type":"blog"},{"id":11,"pageTitle":"A New Name","sectionTitle":"5. GameHub","sectionRoute":"/blog/2023/07/15/#5-gamehub","type":"blog"},{"id":12,"pageTitle":"A New Name","sectionTitle":"What's Next?","sectionRoute":"/blog/2023/07/15/#whats-next","type":"blog"},{"id":13,"pageTitle":"A New Name","sectionTitle":"Special Thanks ❤️","sectionRoute":"/blog/2023/07/15/#special-thanks-️","type":"blog"},{"id":15,"pageTitle":"Quick Migration Update and new Logo","sectionTitle":"Quick Migration Update and new Logo","sectionRoute":"/blog/2023/07/19/","type":"blog"},{"id":14,"pageTitle":"The Migrations are finally completed","sectionTitle":"The Migrations are finally completed","sectionRoute":"/blog/2023/07/20/","type":"blog"},{"id":22,"pageTitle":"Celebrating 600+ Installations and announcing the upcoming big feature","sectionTitle":"Celebrating 600+ Installations and announcing the upcoming big feature","sectionRoute":"/blog/2023/07/24/","type":"blog"},{"id":23,"pageTitle":"Please help us prioritize!","sectionTitle":"Please help us prioritize!","sectionRoute":"/blog/2023/07/29/","type":"blog"},{"id":24,"pageTitle":"A Look Back and a Glimpse Forward","sectionTitle":"A Look Back and a Glimpse Forward","sectionRoute":"/blog/2023/11/20/","type":"blog"},{"id":17,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Join the GameVault Early-Access Program Now!","sectionRoute":"/blog/2023/12/09/","type":"blog"},{"id":18,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"What's the Early-Access Program?","sectionRoute":"/blog/2023/12/09/#whats-the-early-access-program","type":"blog"},{"id":19,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"How to Join","sectionRoute":"/blog/2023/12/09/#how-to-join","type":"blog"},{"id":20,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Prerequisites","sectionRoute":"/blog/2023/12/09/#prerequisites","type":"blog"},{"id":21,"pageTitle":"Join the GameVault Early-Access Program Now!","sectionTitle":"Important Note","sectionRoute":"/blog/2023/12/09/#important-note","type":"blog"},{"id":31,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"Announcing GameVault+ (coming soon)","sectionRoute":"/blog/2024/03/28/","type":"blog"},{"id":32,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"GameVault+","sectionRoute":"/blog/2024/03/28/#gamevault","type":"blog"},{"id":33,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"What is GameVault+?","sectionRoute":"/blog/2024/03/28/#what-is-gamevault","type":"blog"},{"id":34,"pageTitle":"Announcing GameVault+ (coming soon)","sectionTitle":"So what's next?","sectionRoute":"/blog/2024/03/28/#so-whats-next","type":"blog"},{"id":25,"pageTitle":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","sectionTitle":"GameVault Client is now available on Windows Phone 7 based on Microsoft Silverlight!","sectionRoute":"/blog/2024/04/01/2024-04-01/","type":"blog"},{"id":40,"pageTitle":"GameVault+ out now","sectionTitle":"GameVault+ out now","sectionRoute":"/blog/2024/04/14/","type":"blog"},{"id":26,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionRoute":"/blog/2024/05/07/","type":"blog"},{"id":27,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"GameVault's new metadata provider strategy","sectionRoute":"/blog/2024/05/07/#gamevaults-new-metadata-provider-strategy","type":"blog"},{"id":28,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Temporary solution: Implementing a RAWG replacement","sectionRoute":"/blog/2024/05/07/#temporary-solution-implementing-a-rawg-replacement","type":"blog"},{"id":29,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Exciting new features","sectionRoute":"/blog/2024/05/07/#exciting-new-features","type":"blog"},{"id":30,"pageTitle":"Temporary Solution to RAWG Woes, IGDB Partnership, and Exciting New Features!","sectionTitle":"Supporting GameVault","sectionRoute":"/blog/2024/05/07/#supporting-gamevault","type":"blog"},{"id":35,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"An update so major, we could have built the product from scratch.","sectionRoute":"/blog/2024/10/20/","type":"blog"},{"id":36,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"What’s New?","sectionRoute":"/blog/2024/10/20/#whats-new","type":"blog"},{"id":37,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Major New Features","sectionRoute":"/blog/2024/10/20/#major-new-features","type":"blog"},{"id":38,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Critical Update Info","sectionRoute":"/blog/2024/10/20/#critical-update-info","type":"blog"},{"id":39,"pageTitle":"An update so major, we could have built the product from scratch.","sectionTitle":"Support Us","sectionRoute":"/blog/2024/10/20/#support-us","type":"blog"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/2",[0,1.056,1,0.064,2,0.522,3,0.903,4,0.974,5,0.469,6,0.781,7,1.412,8,0.839]],["content/2",[1,0.191,3,1.613,4,1.741,5,0.963,6,2.055,7,1.644,8,1.824,9,0.794,10,1.476,11,1.342,12,1.139,13,2.211,14,2.211,15,1.869,16,2.523,17,2.059,18,2.045,19,2.059,20,3.489,21,2.211,22,1.231,23,1.476,24,2.211,25,2.211,26,2.211,27,0.742,28,1.303,29,0.532,30,1.139,31,1.481,32,2.211,33,1.869,34,0.762,35,3.489,36,3.391,37,1.342,38,1.342,39,2.523,40,1.36,41,1.869,42,2.211,43,1.231,44,1.613,45,2.211,46,1.135,47,2.211,48,0.794,49,1.396,50,2.868,51,1.888,52,2.868,53,1.644,54,1.869,55,1.342,56,1.613,57,1.342,58,1.135,59,1.135,60,0.977,61,1.824,62,1.869,63,1.869,64,2.211,65,1.644,66,1.869,67,1.644,68,1.342,69,0.91,70,2.211,71,1.342,72,2.211,73,1.476,74,2.211,75,1.476,76,1.869,77,2.211,78,2.211,79,1.385,80,0.571,81,1.869,82,2.211,83,1.476,84,1.135,85,2.211,86,1.135,87,1.869,88,2.211,89,1.051,90,1.741,91,2.211,92,2.211,93,3.391,94,1.869,95,1.342,96,2.211,97,2.211,98,1.644,99,2.211,100,1.051,101,2.211,102,2.211,103,2.211,104,1.869,105,1.644,106,1.644,107,2.211,108,0.977,109,1.231,110,1.476,111,1.644,112,1.869,113,1.135,114,1.476,115,1.135,116,0.695,117,1.231,118,1.476,119,1.231,120,0.431,121,1.342,122,2.523,123,1.869,124,1.869,125,1.869,126,1.051,127,1.613,128,0.569,129,1.869,130,1.644,131,2.211,132,1.644,133,1.231,134,1.342,135,1.231,136,1.869,137,1.342]],["tags/2",[1,0.061,5,0.281,19,1.097,86,0.927,90,0.927,138,1.527,139,1.527,140,1.806,141,1.806,142,1.806,143,1.806,144,1.806,145,1.806,146,1.806,147,1.806,148,1.806]],["title/1",[149,1.919,150,0.311,151,1.227,152,1.919,153,0.926,154,1.14]],["content/1",[5,0.727,6,2.246,16,3.477,17,2.407,18,1.752,22,1.517,28,1.047,29,0.655,30,0.915,37,1.654,44,1.296,49,1.122,56,1.296,61,1.204,79,0.915,108,1.204,115,1.399,116,1.246,119,1.517,120,0.774,122,2.949,126,1.296,128,0.701,133,1.517,137,1.654,149,2.949,150,0.564,151,1.886,152,2.949,153,2.162,154,1.204,155,1.82,156,1.654,157,1.331,158,2.724,159,2.304,160,1.047,161,1.517,162,2.724,163,2.724,164,2.026,165,0.831,166,2.026,167,1.82,168,2.026,169,1.925,170,2.724,171,2.304,172,1.517,173,2.026,174,2.724,175,1.654,176,2.026,177,1.399,178,2.724,179,2.207,180,1.82,181,3.964,182,2.724,183,1.654,184,3.964,185,2.724,186,2.304,187,2.724,188,1.654,189,2.304,190,2.724,191,2.304,192,2.026,193,2.724,194,1.204,195,2.304,196,2.724,197,1.399,198,2.304,199,2.304,200,2.304,201,2.724,202,2.036,203,2.724,204,2.026,205,1.82,206,2.724,207,2.724,208,1.296,209,2.026,210,2.304,211,2.724,212,1.122,213,1.82,214,1.82,215,2.724,216,2.724,217,2.724,218,2.724,219,1.654,220,1.517,221,1.399,222,0.494,223,1.122,224,1.122,225,1.654,226,2.724,227,1.654]],["tags/1",[1,0.061,34,0.406,116,0.567,138,1.527,157,0.606,169,0.744,192,1.343,202,0.927,228,1.806,229,1.806,230,1.806,231,1.806,232,1.806,233,1.806,234,1.806,235,1.806]],["title/3",[34,0.637,236,2.397,237,2.108,238,2.108,239,0.78]],["content/3",[1,0.075,2,0.61,9,0.796,11,1.346,12,1.141,19,1.346,28,1.588,30,0.745,34,0.929,37,1.346,40,0.999,51,1.235,61,0.98,69,1.4,71,1.346,73,1.481,80,0.373,100,1.055,114,1.481,115,1.139,117,1.235,118,2.761,119,1.892,120,0.807,124,1.875,128,0.875,134,1.346,153,0.796,154,1.827,156,1.346,160,0.852,161,1.235,165,0.465,166,1.649,169,0.913,179,1.235,180,1.481,183,1.346,188,1.346,192,1.649,199,1.875,219,2.064,222,0.402,223,1.4,224,0.913,225,1.346,237,1.649,238,3.075,239,1.137,240,1.875,241,1.481,242,2.874,243,1.875,244,4.133,245,1.892,246,1.875,247,3.399,248,2.874,249,1.875,250,1.875,251,1.875,252,2.064,253,2.874,254,2.874,255,2.217,256,2.217,257,1.875,258,1.875,259,1.503,260,2.217,261,1.649,262,2.217,263,2.217,264,2.217,265,2.217,266,2.217,267,2.217,268,2.217,269,1.892,270,1.346,271,2.217,272,1.875,273,1.875,274,1.875,275,1.875,276,1.875,277,1.139,278,2.217,279,1.481,280,2.217,281,2.217,282,2.217,283,2.217,284,1.481,285,2.217,286,4.133,287,1.649,288,2.27,289,2.217,290,1.875,291,1.235,292,1.875,293,2.217,294,2.217,295,2.529,296,2.217,297,1.875,298,1.875,299,0.796,300,1.481,301,1.346,302,1.875,303,1.875,304,2.217,305,1.875,306,1.649,307,1.875,308,2.217,309,2.874,310,1.875,311,1.481,312,1.139,313,1.875,314,1.649,315,2.217,316,1.875,317,2.217,318,1.235,319,2.217,320,2.217,321,2.217,322,1.235,323,1.481,324,1.235,325,1.481,326,2.217,327,1.649,328,0.98,329,1.139,330,1.875,331,1.346,332,3.399,333,2.217,334,1.875,335,1.649,336,1.139,337,1.649,338,1.875,339,1.346,340,2.217,341,1.875,342,1.875,343,1.481,344,1.875,345,1.346,346,2.217,347,1.875,348,1.139,349,0.852,350,1.235]],["tags/3",[117,0.83,120,0.291,224,0.614,237,1.109,238,1.109,239,0.41,245,0.83,246,1.26,251,1.26,298,1.26,299,0.535,310,1.26,325,0.995,343,0.995,351,1.49,352,1.49,353,1.49,354,1.49,355,1.49,356,1.49,357,1.49]],["title/16",[1,0.087,17,1.567,18,1.14,358,2.58,359,1.325,360,2.58]],["content/16",[1,0.168,3,0.816,4,0.881,8,1.546,9,0.616,12,0.576,15,1.45,17,3.537,18,0.758,19,1.042,20,1.45,28,1.067,29,0.413,30,0.576,31,1.443,33,1.45,34,0.385,40,0.816,44,1.32,48,1.585,49,0.706,51,2.979,52,1.45,53,1.276,54,1.45,56,1.32,59,0.881,60,1.227,69,0.706,79,0.932,80,0.289,98,1.276,104,2.347,108,0.758,113,0.881,115,0.881,116,0.539,120,0.542,121,1.042,126,0.816,128,0.441,137,1.686,151,0.816,153,0.616,154,1.227,156,1.042,164,1.276,165,0.359,168,1.276,173,2.065,177,1.425,179,0.955,188,1.042,194,0.758,197,0.881,214,1.146,219,1.042,222,0.311,223,0.706,224,0.706,225,1.686,227,1.042,239,0.764,245,0.955,270,1.042,277,0.881,291,0.955,295,1.276,299,0.997,301,1.042,307,1.45,318,0.955,323,1.146,324,0.955,327,1.276,337,2.601,339,1.042,350,1.947,359,0.881,361,1.715,362,2.684,363,3.497,364,1.042,365,1.042,366,3.995,367,4.414,368,2.065,369,3.497,370,1.276,371,1.276,372,1.715,373,1.276,374,1.45,375,0.816,376,1.715,377,1.715,378,1.146,379,2.776,380,1.715,381,1.45,382,0.758,383,0.539,384,1.715,385,1.45,386,1.146,387,1.715,388,1.715,389,2.776,390,1.45,391,1.276,392,1.32,393,1.715,394,2.347,395,1.715,396,1.715,397,0.955,398,1.042,399,1.276,400,1.45,401,1.715,402,1.715,403,2.776,404,1.256,405,2.776,406,1.45,407,1.715,408,1.715,409,1.45,410,1.715,411,1.146,412,1.45,413,1.715,414,1.715,415,1.715,416,1.715,417,1.45,418,1.715,419,1.276,420,1.715,421,1.715,422,1.042,423,1.715,424,1.715,425,1.042,426,1.715,427,1.715,428,2.336,429,1.146,430,0.955,431,2.776,432,1.715,433,1.715,434,1.276,435,1.715,436,1.715,437,1.715,438,1.715,439,1.45,440,1.715,441,1.715,442,1.146,443,1.715,444,1.715,445,1.715,446,1.715,447,1.715,448,1.276,449,0.881,450,1.276,451,1.45,452,1.715,453,1.715,454,1.715,455,1.715,456,0.659,457,1.276,458,1.715,459,0.881,460,1.45,461,1.276,462,1.276,463,1.45,464,1.042,465,1.715,466,1.715,467,1.146,468,1.45,469,1.715,470,1.715,471,1.715,472,1.715,473,1.715,474,1.45,475,1.715,476,1.715,477,1.276,478,1.45,479,1.715,480,1.715,481,1.715,482,1.715,483,1.715,484,1.146,485,1.45,486,1.042,487,1.715,488,1.715,489,1.715,490,1.276,491,1.042,492,1.042,493,1.146]],["tags/16",[59,1.243,394,2.047,494,2.421,495,2.421,496,2.421,497,2.421,498,2.421,499,2.421,500,2.421,501,2.421]],["title/4",[150,0.486,153,1.446]],["content/4",[9,1.583,27,1.481,28,1.695,30,1.481,60,1.949,109,2.455,149,3.28,150,0.663,153,1.972,156,2.678,157,1.481,167,2.945,169,2.261,212,1.816,222,0.8,239,1.213,312,2.264,345,2.678,422,2.678,459,2.264,502,2.945,503,3.729,504,3.28,505,1.949,506,3.28,507,3.28,508,3.729,509,4.41,510,3.28,511,4.41,512,2.455,513,4.41]],["tags/4",[1,0.064,514,1.886,515,1.886,516,1.595,517,1.26,518,1.26,519,1.26,520,1.26,521,1.886,522,1.886,523,1.886,524,1.886,525,1.886,526,1.886,527,1.886]],["title/5",[528,3.961]],["content/5",[1,0.093,28,1.059,29,0.663,31,0.989,34,1.159,38,1.673,44,1.311,48,0.989,69,1.135,79,0.925,115,2.052,116,0.866,126,1.311,129,2.33,136,2.33,151,1.311,153,2.117,160,1.059,165,0.577,166,2.05,169,2.125,175,2.427,194,1.218,202,2.052,208,1.311,212,1.135,219,1.673,224,1.135,225,1.673,239,1.42,261,2.05,279,1.84,325,1.84,331,1.673,341,2.33,347,2.33,348,1.415,350,1.534,378,1.84,381,2.33,386,1.84,422,2.427,429,1.84,442,1.84,461,2.05,467,1.84,512,1.534,517,1.84,518,1.84,519,1.84,520,1.84,528,2.33,529,2.755,530,2.755,531,3.38,532,1.84,533,2.755,534,2.755,535,2.05,536,1.673,537,2.755,538,2.33,539,3.997,540,2.755,541,2.755,542,2.755,543,2.33,544,2.755,545,2.755,546,2.33,547,2.05,548,2.755,549,2.755,550,2.755,551,2.33,552,2.33,553,2.755,554,1.84,555,2.33,556,1.415,557,2.755,558,2.755,559,2.33,560,2.33,561,2.05,562,2.755,563,1.135,564,2.05,565,2.33,566,2.755,567,2.755,568,2.755,569,2.755,570,2.755,571,2.755,572,2.755,573,1.84,574,2.755,575,3.997,576,2.225,577,3.38,578,2.755,579,2.755,580,2.755,581,2.755,582,2.755,583,2.755,584,2.33,585,2.33,586,2.755]],["tags/5",[]],["title/6",[576,2.242,577,3.406]],["content/6",[]],["tags/6",[]],["title/7",[517,2.69,587,4.027]],["content/7",[56,2.371,80,0.839,100,2.371,212,2.052,239,1.371,328,2.203,365,3.027,517,3.329,588,2.775,589,4.984,590,2.559,591,4.984,592,3.329,593,2.052,594,4.984,595,4.984]],["tags/7",[]],["title/8",[1,0.136,596,4.027]],["content/8",[1,0.166,5,0.765,100,2.339,212,2.025,328,2.173,365,2.986,404,1.765,434,3.657,467,3.284,588,2.737,590,2.525,597,4.917,598,3.657,599,4.917,600,4.917,601,4.917,602,4.917,603,4.917]],["tags/8",[]],["title/9",[518,2.69,604,4.027]],["content/9",[5,0.899,31,1.719,65,3.561,100,2.277,153,1.719,212,1.971,239,1.317,328,2.116,382,2.116,404,1.719,462,3.561,518,3.197,588,2.665,590,2.458,593,1.971,605,4.787,606,4.787,607,4.787,608,3.561,609,4.787,610,4.787]],["tags/9",[]],["title/10",[519,2.69,611,4.027]],["content/10",[75,3.057,100,2.177,165,0.959,208,2.177,212,1.884,239,1.259,328,2.023,331,2.779,365,2.779,477,3.404,504,3.404,519,3.753,538,3.87,576,2.548,588,2.548,590,2.885,592,3.057,612,4.576,613,4.576,614,4.576,615,3.404,616,4.576,617,3.404,618,4.576,619,2.35,620,4.576,621,4.576]],["tags/10",[]],["title/11",[520,2.69,565,3.406]],["content/11",[2,1.362,5,0.77,100,2.355,212,2.038,328,2.188,434,4.383,520,3.306,588,2.756,590,2.542,622,4.95,623,4.95,624,3.682,625,3.306,626,4.95,627,4.95,628,4.95]],["tags/11",[]],["title/12",[397,2.242,629,2.242]],["content/12",[0,2.046,1,0.124,3,1.748,4,1.887,8,1.624,18,1.624,40,1.08,59,1.887,66,4.129,75,2.454,116,1.154,150,0.662,153,2.292,167,2.454,172,2.046,191,3.107,197,1.887,239,1.011,245,2.046,291,2.046,297,3.107,328,1.624,350,2.046,382,1.624,390,3.107,486,2.231,490,2.733,502,2.454,503,3.107,505,1.624,547,2.733,590,2.507,593,1.513,598,2.733,630,3.262,631,3.674,632,3.674,633,3.107,634,3.674,635,3.107,636,3.674,637,3.674,638,3.674,639,3.674,640,3.674,641,3.674,642,3.674,643,3.107,644,2.733,645,3.674,646,3.107,647,3.674,648,3.674,649,3.107,650,3.674,651,3.107,652,3.674]],["tags/12",[]],["title/13",[2,0.972,349,1.357,653,2.987]],["content/13",[1,0.119,2,0.972,3,1.68,4,1.813,27,1.186,28,1.357,40,1.038,48,1.268,57,2.144,60,1.561,69,1.454,120,0.689,128,1.384,135,1.966,150,0.574,153,2.065,172,1.966,175,2.144,202,1.813,220,1.966,221,1.813,222,0.641,223,1.454,239,0.972,241,2.359,259,1.561,274,2.986,309,2.986,330,2.986,336,1.813,349,2.066,449,1.813,486,2.888,490,2.627,502,2.359,563,1.454,573,2.359,576,1.966,619,1.813,653,4.021,654,2.627,655,2.986,656,5.377,657,3.531,658,3.531,659,2.627,660,3.531,661,3.531,662,3.176,663,2.627,664,3.531,665,2.359,666,3.531,667,3.531,668,3.531,669,3.531,670,2.359,671,3.531,672,1.454,673,3.531,674,2.986,675,2.359,676,2.627]],["tags/13",[]],["title/15",[150,0.342,222,0.514,677,2.108,678,1.455,679,2.108]],["content/15",[1,0.182,2,0.837,9,1.093,10,2.033,12,1.022,28,1.17,29,0.732,31,1.093,34,0.684,40,0.895,43,1.694,51,1.694,58,1.563,71,2.606,105,2.264,110,2.033,128,0.783,130,2.264,150,0.652,153,1.785,165,0.638,194,1.345,205,2.033,209,2.264,213,2.033,222,0.902,259,1.897,299,1.093,335,2.264,336,1.563,375,2.365,383,0.956,404,1.785,409,2.574,456,1.649,459,1.563,493,2.033,505,1.345,512,1.694,590,2.204,598,2.264,619,1.563,629,1.694,662,2.033,663,2.264,674,2.574,678,3.034,679,3.193,680,3.044,681,2.574,682,2.606,683,3.044,684,3.044,685,2.264,686,2.574,687,3.044,688,3.044,689,3.044,690,3.044,691,3.044,692,2.574,693,1.649,694,3.044,695,3.044,696,2.033,697,2.264,698,1.848,699,1.345,700,2.033,701,2.574,702,3.044,703,3.044,704,3.044,705,3.044,706,3.044,707,1.563,708,2.574,709,3.044,710,1.848,711,3.044,712,3.044,713,2.264,714,2.264]],["tags/15",[699,0.961,708,1.838,715,2.174,716,2.174,717,2.174,718,2.174,719,2.174,720,2.174,721,2.174,722,2.174,723,1.838,724,2.174]],["title/14",[58,1.814,459,1.814,678,1.814]],["content/14",[1,0.164,5,0.758,6,1.505,9,1.313,18,1.616,28,1.405,29,0.879,38,2.22,40,1.075,79,1.228,127,2.315,128,1.253,150,0.661,151,1.739,153,1.313,198,3.091,208,1.739,209,3.62,239,1.006,240,3.091,259,1.616,279,2.442,331,2.22,345,2.22,375,1.739,392,1.739,399,2.719,484,2.442,486,2.22,505,1.616,555,3.091,675,2.442,678,1.877,679,3.62,681,3.091,725,3.656,726,3.091,727,3.656,728,3.656,729,2.22,730,2.442,731,3.656,732,3.656,733,3.091,734,2.035,735,3.656,736,3.656,737,3.656,738,3.656,739,2.719,740,3.656,741,5.471,742,3.656,743,3.656,744,3.656,745,3.656,746,3.091,747,3.656,748,3.656]],["tags/14",[723,2.047,749,2.421,750,2.421,751,2.421,752,2.421,753,2.047,754,2.421,755,2.421,756,2.421,757,2.421]],["title/22",[80,0.398,157,0.795,676,1.761,758,2.002,759,1.581,760,1.318,761,1.437]],["content/22",[1,0.163,2,0.497,3,0.858,4,0.927,5,0.644,9,0.648,12,0.971,27,1.215,28,1.591,29,0.696,30,0.606,34,1.086,35,1.526,37,1.096,38,1.096,40,0.85,43,1.005,44,0.858,48,1.038,49,1.704,60,0.798,61,1.278,68,1.096,69,1.191,73,1.205,79,0.971,80,0.487,106,1.342,109,1.005,111,1.342,112,1.526,116,0.567,119,1.005,120,0.884,125,3.06,126,0.858,127,1.721,128,0.931,130,2.692,135,1.61,150,0.349,151,1.376,152,1.342,157,0.971,160,1.111,165,0.758,167,1.932,172,1.005,177,0.927,179,1.005,180,1.205,183,1.096,194,0.798,200,1.526,205,1.205,213,1.205,214,1.205,219,1.756,220,2.304,221,1.485,222,0.751,223,1.49,239,0.497,245,1.005,252,1.096,258,1.526,261,1.342,269,1.61,270,1.096,277,1.485,279,1.205,288,1.205,301,1.096,306,2.151,311,1.205,312,0.927,314,1.342,318,1.005,322,1.005,324,1.61,329,1.485,331,1.096,335,1.342,343,1.205,345,1.096,350,1.005,359,0.927,362,1.205,378,1.205,391,2.151,392,0.858,397,1.005,404,0.648,417,1.526,419,1.342,429,1.205,430,1.005,442,1.205,448,1.342,449,0.927,456,0.693,468,1.526,484,1.205,492,1.756,505,0.798,512,1.005,546,1.526,561,1.342,563,0.743,585,1.526,593,0.743,615,1.342,625,1.205,662,1.205,665,1.205,672,1.191,676,2.151,693,1.591,710,1.756,729,1.096,730,1.205,734,1.005,758,1.526,759,3.636,760,1.005,762,1.526,763,2.892,764,1.932,765,2.151,766,1.805,767,1.526,768,2.445,769,1.805,770,2.151,771,1.526,772,1.342,773,1.526,774,1.526,775,1.096,776,2.892,777,2.417,778,4.139,779,1.805,780,1.526,781,1.805,782,1.805,783,1.805,784,1.805,785,1.805,786,1.805,787,1.805,788,1.205,789,0.927,790,1.096,791,1.342,792,2.445,793,1.805,794,1.805,795,1.526,796,1.526,797,1.805,798,1.205,799,1.005,800,2.892,801,1.805,802,1.805,803,1.526,804,1.526,805,1.342,806,1.342,807,1.342,808,1.005,809,1.805,810,1.805,811,1.342,812,1.526,813,1.805,814,1.096,815,1.805,816,1.805]],["tags/22",[116,0.544,665,1.157,753,1.465,817,1.733,818,1.733,819,1.733,820,1.733,821,1.733,822,1.733,823,1.733,824,1.733,825,1.733,826,1.733,827,1.733,828,1.733,829,1.733,830,1.733]],["title/23",[126,1.68,160,1.357,831,2.359]],["content/23",[0,1.25,1,0.17,2,0.618,5,0.349,6,0.924,8,0.992,11,1.363,12,1.152,16,1.67,30,0.754,34,0.771,37,1.363,48,1.804,61,0.992,62,1.898,69,0.924,79,0.754,80,0.701,95,1.363,108,0.992,111,1.67,115,1.153,116,0.705,117,1.25,118,1.499,119,1.91,127,1.068,128,0.578,132,2.552,134,1.363,135,1.25,137,1.363,150,0.414,154,1.517,155,1.499,160,0.863,161,1.91,164,1.67,165,0.719,169,1.413,172,1.25,175,1.363,176,2.552,177,1.153,179,1.25,180,1.499,188,1.363,197,1.153,202,1.153,208,1.632,252,2.832,253,1.898,259,0.992,269,1.25,270,1.363,272,1.898,277,1.762,288,2.292,290,1.898,291,2.319,299,1.232,311,1.499,322,1.25,329,1.153,336,1.153,343,1.499,348,1.762,349,0.863,364,1.363,371,1.67,373,1.67,391,1.67,398,1.363,411,1.499,457,1.67,460,1.898,477,1.67,491,1.363,512,1.25,536,1.363,547,1.67,563,0.924,593,0.924,608,1.67,619,1.762,630,1.499,644,1.67,654,1.67,659,1.67,665,1.499,697,1.67,698,2.084,707,2.58,734,1.91,765,1.67,768,1.898,771,1.898,772,1.67,777,1.499,792,1.898,798,2.292,799,1.25,803,1.898,804,1.898,805,1.67,831,1.499,832,2.245,833,1.898,834,1.898,835,2.245,836,2.245,837,2.245,838,2.245,839,2.245,840,2.901,841,1.67,842,2.245,843,1.67,844,1.898,845,4.165,846,1.898,847,2.245,848,1.898,849,2.245,850,2.084,851,2.245,852,2.245,853,3.431,854,1.898,855,2.245,856,2.245,857,2.245,858,2.245,859,2.245,860,2.245,861,2.901,862,1.898,863,2.245,864,2.552,865,3.431,866,1.499,867,2.245,868,2.245,869,1.499,870,2.245,871,2.245,872,2.245,873,1.898]],["tags/23",[1,0.064,6,0.777,34,0.424,80,0.317,116,0.593,128,0.485,169,0.777,202,0.968,269,1.05,299,0.677,805,1.403,840,1.595,874,1.886,875,1.886,876,1.886]],["title/24",[359,1.615,492,1.91,814,1.91,877,3.145]],["content/24",[1,0.141,2,1.256,3,0.871,5,0.795,10,1.223,12,0.983,27,0.615,29,0.704,34,0.412,39,1.363,48,1.051,49,0.754,55,1.112,59,1.877,60,0.81,71,1.112,79,0.615,80,0.615,84,0.941,95,1.777,114,1.223,115,0.941,117,1.02,118,1.223,119,1.02,120,0.713,121,1.112,127,0.871,128,1.074,137,1.112,150,0.221,154,0.81,155,1.223,160,1.125,165,0.384,169,0.754,177,0.941,183,1.112,194,0.81,197,0.941,204,2.177,210,1.549,212,0.754,213,1.223,220,1.02,221,0.941,222,0.663,223,0.754,224,0.754,227,1.112,242,1.549,245,1.02,259,1.616,270,1.112,275,1.549,277,1.503,291,1.02,299,0.658,311,1.223,314,1.363,324,1.63,342,1.549,345,1.112,348,0.941,349,0.704,359,0.941,375,1.739,378,1.223,392,0.871,397,2.035,398,1.112,404,0.658,411,1.223,425,1.112,430,1.02,449,0.941,450,1.363,505,0.81,508,1.549,510,1.363,535,1.363,536,1.112,556,0.941,561,1.363,563,1.719,564,1.363,573,1.223,592,1.223,593,0.754,624,3.395,630,1.223,672,0.754,675,1.223,682,1.777,685,2.177,693,1.87,696,1.223,697,1.363,699,0.81,710,1.112,713,1.363,714,1.363,733,1.549,734,1.02,759,2.441,761,1.112,772,1.363,789,0.941,790,1.112,798,1.223,799,1.02,806,2.719,811,1.363,814,1.112,862,1.549,864,1.363,878,1.549,879,1.549,880,1.832,881,1.832,882,1.832,883,1.832,884,1.832,885,1.832,886,1.549,887,1.223,888,1.832,889,1.832,890,1.832,891,1.832,892,1.832,893,1.832,894,1.363,895,1.832,896,1.549,897,1.832,898,1.832,899,1.832,900,1.549,901,1.832,902,1.832,903,1.549,904,1.363,905,1.549,906,1.549,907,1.832,908,1.832,909,1.832,910,1.832,911,1.832,912,1.832,913,1.832,914,1.832,915,1.363,916,3.106,917,2.475,918,2.475,919,1.832,920,1.832,921,1.832,922,1.832,923,1.832,924,1.549,925,1.832,926,1.832,927,1.549,928,1.832,929,1.832,930,1.832,931,1.549,932,1.832,933,1.549,934,1.549,935,4.175,936,1.832,937,1.832,938,1.832,939,2.927,940,1.832,941,1.832,942,1.832,943,1.832,944,1.832,945,1.549,946,1.832,947,1.832,948,1.832,949,1.832,950,1.832,951,1.832,952,1.832,953,1.832,954,1.832,955,1.549,956,1.549,957,1.832,958,1.832,959,1.832,960,1.832,961,1.832,962,1.832,963,1.549]],["tags/24",[964,2.421,965,2.421,966,2.421,967,2.421,968,2.421,969,2.421,970,2.421,971,2.421,972,2.421,973,2.421]],["title/17",[1,0.087,29,0.621,127,1.227,383,0.811,974,1.14,975,1.723]],["content/17",[1,0.199,9,1.777,10,3.306,48,1.777,68,3.006,150,0.598,222,0.898,383,1.555,617,3.682,693,1.902,760,2.756,799,2.756,916,3.682,974,2.188,975,3.306,976,4.186]],["tags/17",[1,0.082,5,0.377,128,0.623,516,2.047,977,2.047,978,2.421,979,2.421,980,2.421,981,2.421,982,2.421]],["title/18",[383,0.988,397,1.751,974,1.39,975,2.101]],["content/18",[1,0.148,2,1.206,30,1.472,80,0.737,108,1.937,116,1.377,160,1.684,221,2.251,222,0.795,243,3.706,383,1.377,485,3.706,535,3.261,649,3.706,672,2.253,699,1.937,700,2.928,760,2.44,761,2.662,799,2.44,933,3.706,934,3.706,974,1.937,983,4.383,984,3.706,985,4.383,986,3.654,987,4.383,988,3.706,989,4.383,990,4.383,991,4.383,992,4.383,993,4.383]],["tags/18",[]],["title/19",[127,2.228]],["content/19",[2,1.635,58,2.577,312,2.577,382,2.218,383,1.577,404,1.802,670,3.352,974,2.218,994,5.019,995,3.733,996,5.019,997,5.019,998,5.019,999,4.244]],["tags/19",[]],["title/20",[1000,4.685]],["content/20",[1,0.19,2,1.673,40,1.346,43,2.548,94,3.87,128,1.178,175,2.779,336,2.35,383,1.438,563,1.884,635,3.87,698,2.779,729,3.412,730,3.057,759,3.057,866,3.753,904,3.404,1001,4.576,1002,4.576,1003,4.576,1004,3.87,1005,4.576,1006,4.576,1007,4.576]],["tags/20",[]],["title/21",[156,2.446,1008,2.996]],["content/21",[110,3.115,120,0.91,177,2.395,277,2.395,371,3.47,383,1.466,404,1.675,425,2.832,559,3.944,563,1.921,629,2.597,699,2.062,734,2.597,831,3.115,841,3.47,974,2.062,975,3.115,1004,3.944,1009,3.944,1010,4.664,1011,3.47,1012,4.664,1013,3.944,1014,4.664,1015,4.664,1016,3.944]],["tags/21",[]],["title/31",[1,0.106,157,1.056,241,2.101,505,1.39]],["content/31",[1,0.122,2,0.663,3,1.721,4,1.237,5,0.563,6,1.79,7,1.792,8,1.065,9,0.865,11,1.462,19,1.462,23,1.609,30,0.809,31,0.865,38,1.462,39,1.792,40,0.708,46,1.237,55,1.462,56,1.146,58,1.237,68,1.462,108,1.6,109,1.341,113,1.237,114,1.609,120,0.47,121,1.462,150,0.291,151,1.146,154,1.065,157,0.809,173,1.792,186,2.036,204,2.692,208,1.146,239,0.663,249,2.036,259,1.6,269,1.341,273,2.036,295,1.792,299,0.865,312,1.237,313,2.036,316,2.036,318,1.341,323,1.609,327,1.792,337,1.792,344,2.036,365,1.462,370,1.792,375,2.299,382,1.065,392,2.068,398,1.462,399,1.792,400,2.036,404,1.3,419,1.792,428,1.609,429,1.609,456,0.925,462,2.692,463,2.036,464,1.462,467,1.609,474,2.036,486,2.198,491,1.462,504,1.792,531,2.036,543,2.036,556,1.237,576,1.341,584,2.036,592,1.609,633,2.036,654,1.792,655,2.036,663,1.792,670,1.609,672,0.992,692,2.036,693,1.671,707,2.232,760,1.341,789,2.232,812,2.036,833,2.036,878,2.036,887,1.609,896,2.036,927,2.036,945,2.036,976,2.036,1011,1.792,1017,2.036,1018,2.408,1019,2.408,1020,2.408,1021,2.408,1022,2.408,1023,2.036,1024,2.408,1025,2.408,1026,2.408,1027,2.408,1028,2.036,1029,2.408,1030,2.408,1031,2.036,1032,2.408,1033,2.408,1034,2.036,1035,2.408,1036,2.036,1037,2.408,1038,2.408,1039,2.408,1040,2.408,1041,2.408,1042,2.408,1043,2.408,1044,2.408,1045,2.408,1046,2.036,1047,2.408,1048,2.408,1049,2.408,1050,2.408,1051,2.408,1052,2.408,1053,2.408,1054,2.408,1055,1.792,1056,2.408,1057,2.408,1058,2.408,1059,2.036,1060,2.408,1061,2.408,1062,2.036,1063,2.408,1064,2.408,1065,2.408,1066,2.408,1067,2.036,1068,2.408]],["tags/31",[1,0.092,5,0.425,34,0.614,157,0.917,299,0.981,366,2.309,1069,2.731,1070,2.731]],["title/32",[1,0.158]],["content/32",[]],["tags/32",[]],["title/33",[1,0.158]],["content/33",[1,0.2,8,1.128,18,1.128,22,1.421,27,0.857,29,0.614,30,0.857,31,1.357,34,0.573,43,2.104,48,0.916,49,1.853,53,1.898,56,1.214,57,1.55,61,1.128,75,1.705,79,0.857,80,0.936,83,1.705,90,1.31,108,1.128,113,1.31,116,0.802,120,0.878,133,1.421,150,0.456,154,1.128,160,0.981,165,0.535,194,1.128,214,1.705,241,1.705,312,1.94,318,1.421,322,1.421,323,1.705,324,1.421,325,1.705,349,0.981,364,1.55,382,1.128,383,1.187,392,1.797,439,2.158,449,1.94,450,1.898,456,1.452,464,2.295,506,2.811,507,1.898,510,1.898,554,1.705,563,1.051,608,1.898,619,1.31,646,2.158,662,1.705,693,0.981,696,1.705,698,1.55,699,1.128,700,1.705,710,1.55,714,1.898,760,1.421,775,2.295,788,1.705,789,1.31,791,1.898,796,2.158,814,2.295,843,1.898,850,1.55,903,2.158,956,2.158,974,1.128,986,1.705,1016,2.158,1055,2.811,1059,2.158,1071,2.552,1072,2.552,1073,2.552,1074,2.552,1075,2.552,1076,1.898,1077,2.552,1078,2.552,1079,2.552,1080,1.898,1081,2.158,1082,2.552,1083,2.552,1084,2.552,1085,2.158,1086,2.158,1087,1.898,1088,2.552,1089,2.158,1090,2.552,1091,2.552,1092,2.552,1093,1.898,1094,1.898,1095,1.898,1096,1.898,1097,1.705,1098,2.552,1099,2.552,1100,2.552,1101,2.158,1102,1.898,1103,2.552,1104,2.158,1105,2.158,1106,2.552,1107,2.552,1108,2.552,1109,2.552,1110,2.552,1111,2.552,1112,2.158,1113,2.552,1114,2.158,1115,2.552]],["tags/33",[]],["title/34",[397,2.242,629,2.242]],["content/34",[1,0.119,5,0.55,12,1.186,34,0.793,46,1.813,51,1.966,71,2.144,80,0.8,84,2.442,89,1.68,105,2.627,108,2.102,120,0.689,123,2.986,127,1.68,128,0.909,157,1.186,165,0.74,169,1.454,171,2.986,202,1.813,208,1.68,220,1.966,221,1.813,222,0.641,300,2.359,302,2.986,334,2.986,336,1.813,349,1.357,359,1.813,364,2.888,411,2.359,449,1.813,456,1.357,459,2.442,492,2.144,505,1.561,551,2.986,593,1.958,629,2.993,672,1.454,710,2.144,713,2.627,761,2.144,790,2.144,844,2.986,864,2.627,999,2.986,1036,2.986,1116,3.531,1117,3.531,1118,3.531,1119,3.531,1120,3.531,1121,3.531,1122,3.531,1123,3.531,1124,2.986,1125,3.531,1126,1.813,1127,1.966,1128,2.986,1129,3.531,1130,3.531,1131,2.627,1132,3.531,1133,3.531]],["tags/34",[]],["title/25",[1,0.064,18,0.839,22,1.056,29,0.456,456,0.729,729,1.152,1134,1.605,1135,1.605,1136,1.605,1137,1.605]],["content/25",[1,0.173,5,0.871,6,0.966,9,0.842,11,1.425,12,1.192,18,1.569,27,1.192,28,0.902,29,0.564,30,0.788,49,0.966,60,1.037,61,1.037,63,1.984,65,1.745,67,1.745,73,1.567,76,1.984,79,0.788,80,0.597,81,1.984,106,1.745,108,1.037,109,1.976,113,1.205,120,0.458,135,1.306,150,0.517,157,0.788,165,0.492,194,1.037,223,0.966,227,1.425,236,3,300,1.567,301,2.155,303,1.984,306,2.64,322,1.306,329,1.205,338,1.984,348,1.822,349,0.902,350,1.306,364,1.425,368,1.745,373,1.745,375,1.116,404,0.842,430,1.976,456,0.902,459,1.205,478,1.984,493,1.567,505,1.037,507,2.64,512,1.306,554,1.567,563,0.966,576,1.306,593,0.966,619,1.205,624,1.745,630,1.567,643,1.984,651,1.984,672,0.966,675,1.567,677,1.745,678,1.205,693,1.364,699,1.037,707,1.205,729,2.599,730,2.37,734,1.306,773,1.984,774,1.984,775,2.155,780,1.984,795,1.984,799,1.306,846,1.984,873,1.984,879,1.984,887,1.567,924,1.984,963,1.984,1028,1.984,1034,1.984,1076,1.745,1101,1.984,1102,3.183,1134,4.034,1135,4.034,1136,3.619,1137,3.619,1138,1.745,1139,2.346,1140,3.548,1141,2.346,1142,2.346,1143,1.984,1144,1.984,1145,1.984,1146,2.346,1147,1.984,1148,2.346,1149,2.346,1150,2.346,1151,1.984,1152,2.346,1153,2.346,1154,2.346,1155,2.346,1156,2.346,1157,2.346,1158,2.346,1159,2.346,1160,2.346,1161,2.346,1162,2.346,1163,2.346,1164,2.346,1165,2.346,1166,2.346,1167,2.346,1168,2.346,1169,2.346,1170,2.346,1171,2.346,1172,2.346,1173,2.346,1174,2.346,1175,1.984,1176,2.346,1177,2.346,1178,2.346]],["tags/25",[1179,4.949]],["title/40",[1,0.119,29,0.85,789,1.814]],["content/40",[1,0.203,5,0.798,6,1.628,9,0.975,12,0.911,22,1.511,27,1.328,29,0.653,30,1.328,34,0.61,43,1.511,48,0.975,49,1.92,51,1.511,56,1.291,61,1.2,68,1.648,69,1.118,80,0.785,84,1.394,90,1.394,109,1.511,113,1.394,116,0.853,120,0.91,128,0.698,133,1.511,135,2.201,157,0.911,160,1.043,165,0.569,172,1.511,176,2.019,177,2.03,188,1.648,197,1.394,220,1.511,221,1.394,222,0.717,223,1.118,224,1.118,227,1.648,259,1.2,284,1.813,288,1.813,318,1.511,324,1.511,329,1.394,336,1.394,339,1.648,348,1.394,349,1.519,368,2.019,370,2.019,383,1.242,392,1.291,404,0.975,422,1.648,428,1.813,430,1.511,456,1.519,532,1.813,536,1.648,554,1.813,563,1.118,619,1.394,629,1.511,693,2.184,698,1.648,700,1.813,761,1.648,764,1.813,765,2.019,775,2.401,834,2.295,843,2.019,848,2.295,850,1.648,861,2.295,894,2.019,974,1.2,995,2.019,1055,2.019,1080,2.019,1081,2.295,1086,2.295,1087,2.019,1089,2.295,1093,2.019,1094,2.019,1095,2.019,1096,2.019,1097,1.813,1126,1.394,1127,1.511,1128,2.295,1131,2.019,1175,2.295,1180,2.714,1181,2.714,1182,2.714,1183,2.295,1184,2.714,1185,2.714,1186,2.714,1187,2.714,1188,2.714]],["tags/40",[1,0.086,5,0.24,6,0.636,80,0.26,116,0.485,128,0.397,139,1.306,157,0.519,222,0.28,224,0.636,299,0.555,428,1.032,672,0.636,977,1.306,1067,1.306,1126,0.793,1189,1.544,1190,1.544,1191,1.544]],["title/26",[27,0.682,46,1.043,80,0.342,89,0.967,150,0.245,1126,1.043,1192,1.718,1193,2.032,1194,1.512]],["content/26",[9,1.574,30,1.472,31,1.574,55,2.662,58,2.251,84,2.251,86,2.251,100,2.085,195,3.706,205,2.928,212,1.805,252,2.662,254,3.706,257,3.706,305,3.706,375,2.602,392,2.085,573,2.928,615,3.261,670,2.928,798,2.928,854,3.706,1023,3.706,1062,3.706,1124,3.706,1195,4.383,1196,4.383,1197,4.383,1198,4.383,1199,4.383,1200,4.383,1201,4.383,1202,4.383,1203,4.383,1204,4.383]],["tags/26",[1,0.092,5,0.259,23,1.112,34,0.374,46,0.855,55,1.011,80,0.28,84,0.855,86,0.855,89,0.792,90,0.855,222,0.302,682,1.011,1126,0.855,1194,1.239,1205,1.408,1206,1.665]],["title/27",[44,1.348,86,1.455,150,0.342,777,1.893,1207,2.834]],["content/27",[1,0.169,5,0.593,27,1.279,31,1.796,44,2.379,49,1.568,79,1.279,83,2.544,84,1.956,86,2.867,89,1.812,90,2.568,110,2.544,120,0.976,157,1.279,165,1.048,169,1.568,223,1.568,252,2.313,269,2.121,284,2.544,300,2.544,322,2.121,386,2.544,442,2.544,448,2.833,492,2.313,536,2.313,556,1.956,693,1.922,701,3.221,739,2.833,764,2.544,777,2.544,788,2.544,789,1.956,850,3.037,915,2.833,984,3.221,1011,2.833,1013,3.221,1126,1.956,1127,2.121,1194,2.833,1205,3.221,1208,3.809,1209,3.809,1210,3.809,1211,3.809,1212,3.809,1213,3.809]],["tags/27",[]],["title/28",[46,1.455,89,1.348,95,1.721,1192,2.397,1214,2.397]],["content/28",[0,1.746,1,0.106,5,0.488,12,1.837,23,3.375,29,0.754,31,1.126,34,0.704,40,0.922,46,2.595,87,2.651,89,2.738,90,1.61,95,1.904,113,1.61,122,2.332,150,0.379,159,2.651,161,1.746,165,0.657,189,2.651,194,1.386,197,1.61,222,0.569,225,1.904,248,2.651,250,2.651,277,1.61,284,2.094,287,2.332,291,1.746,299,1.126,374,2.651,382,1.937,398,1.904,404,1.126,406,2.651,425,1.904,461,2.332,484,2.927,532,2.094,556,2.25,593,1.291,659,3.26,682,2.661,686,2.651,693,1.205,696,2.094,699,1.386,707,2.25,739,2.332,770,2.332,790,1.904,806,2.332,808,1.746,850,1.904,869,2.094,1102,2.332,1145,2.651,1183,2.651,1214,3.706,1215,3.135,1216,3.135,1217,2.651,1218,3.135,1219,3.135,1220,3.135,1221,2.651,1222,2.651,1223,3.135,1224,4.383,1225,3.135,1226,3.135,1227,2.651,1228,3.135,1229,3.135,1230,3.135,1231,3.135,1232,3.135,1233,3.135,1234,2.651,1235,2.651,1236,3.135]],["tags/28",[]],["title/29",[27,1.186,80,0.594,150,0.426]],["content/29",[0,2.25,1,0.205,2,1.581,5,0.809,27,1.357,29,1.382,61,1.787,67,3.866,69,1.664,80,0.68,120,1.014,134,2.454,150,0.488,161,2.25,165,0.847,222,0.733,339,2.454,412,3.418,430,2.25,502,2.7,556,2.076,625,2.7,672,1.664,693,1.553,726,4.395,807,3.007,900,3.418,905,4.395,915,3.007,1080,3.007,1127,2.25,1151,3.418,1237,5.197,1238,4.042,1239,4.042,1240,4.042,1241,4.042]],["tags/29",[]],["title/30",[1,0.136,120,0.786]],["content/30",[1,0.191,2,1.267,40,1.354,48,1.654,126,2.191,165,0.965,179,2.564,208,2.191,328,2.036,349,1.77,362,3.076,459,2.365,506,3.426,593,1.896,770,3.426,955,3.894,1085,3.894,1093,3.426,1094,3.426,1095,3.426,1131,3.426,1242,4.605,1243,4.605,1244,4.605,1245,4.605,1246,4.605,1247,4.605]],["tags/30",[]],["title/35",[222,0.514,464,1.721,808,1.578,1248,2.397,1249,2.834]],["content/35",[1,0.205,12,1.527,27,1.527,34,1.022,40,1.337,150,0.549,155,3.037,222,0.825,301,2.762,456,1.748,464,2.762,491,2.762,672,1.873,808,2.532,869,3.037,1046,3.845,1138,3.383,1147,3.845,1250,4.548,1251,4.548,1252,4.548,1253,4.548,1254,3.845,1255,3.845,1256,4.548,1257,4.548,1258,4.548,1259,4.548]],["tags/35",[1,0.073,1008,1.617,1097,1.452,1260,2.174,1261,2.174,1262,2.174,1263,2.174,1264,2.174,1265,2.174,1266,2.174,1267,2.174,1268,2.174]],["title/36",[150,0.486,1269,3.406]],["content/36",[0,1.653,5,0.656,17,1.803,29,0.714,44,2.333,48,1.066,50,2.511,57,1.803,58,1.525,59,1.525,60,1.312,69,1.223,79,1.416,83,2.817,86,2.166,89,1.412,98,3.137,117,1.653,120,0.579,150,0.509,161,1.653,165,0.622,183,1.803,224,1.223,259,1.312,312,1.525,328,1.312,329,1.525,382,1.312,383,0.933,385,2.511,386,1.983,422,1.803,493,2.817,532,2.817,556,2.166,560,2.511,564,2.209,588,1.653,617,2.209,644,2.209,678,1.525,682,1.803,699,1.312,746,2.511,764,1.983,767,2.511,790,1.803,807,2.209,808,1.653,811,2.209,814,1.803,831,1.983,866,1.983,869,2.817,894,2.209,904,2.209,974,1.312,986,1.983,995,2.209,1009,2.511,1031,2.511,1096,2.209,1104,2.511,1105,2.511,1112,2.511,1126,1.525,1127,1.653,1138,3.137,1143,2.511,1217,2.511,1221,2.511,1222,2.511,1270,4.77,1271,2.969,1272,2.969,1273,2.969,1274,2.969,1275,2.969,1276,4.905,1277,2.969,1278,2.969,1279,2.969,1280,2.969,1281,2.969,1282,2.969,1283,2.969,1284,2.969,1285,2.511,1286,2.969,1287,2.969,1288,2.969,1289,2.969,1290,2.969,1291,2.969,1292,2.969]],["tags/36",[]],["title/37",[80,0.594,150,0.426,1248,2.987]],["content/37",[1,0.155,2,0.922,5,0.522,22,1.866,29,1.259,34,0.753,40,0.986,41,2.835,49,1.38,57,2.036,59,2.357,60,1.482,79,1.126,80,0.564,120,0.896,133,1.866,150,0.405,151,1.595,165,0.702,168,2.494,222,0.608,224,1.38,239,1.263,276,2.835,287,2.494,292,2.835,329,1.721,339,2.036,359,1.721,383,1.053,451,2.835,625,2.239,677,2.494,707,1.721,808,1.866,906,2.835,916,2.494,917,2.835,918,2.835,931,2.835,1008,2.494,1017,3.881,1097,3.066,1114,2.835,1127,1.866,1234,2.835,1269,2.835,1270,3.881,1293,3.352,1294,3.352,1295,3.352,1296,3.352,1297,3.352,1298,3.352,1299,3.352,1300,3.352,1301,3.352,1302,3.352,1303,3.352,1304,3.352,1305,3.352,1306,3.352,1307,3.352,1308,3.352,1309,4.59,1310,3.352,1311,3.352,1312,3.352,1313,2.835,1314,3.352,1315,3.352,1316,3.352,1317,3.352,1318,4.59,1319,3.352,1320,3.352]],["tags/37",[]],["title/38",[222,0.641,552,2.987,1285,2.987]],["content/38",[8,1.817,12,1.38,31,1.476,40,1.794,80,0.692,126,1.955,128,1.058,150,0.496,222,0.953,348,2.111,425,2.496,456,2.225,491,2.496,678,2.111,762,3.476,788,2.745,789,2.698,866,3.509,886,3.476,887,2.745,986,3.509,1076,3.058,1144,3.476,1227,4.442,1235,3.476,1254,4.442,1255,3.476,1321,4.111,1322,4.111,1323,4.111,1324,4.111,1325,4.111,1326,4.111,1327,4.111,1328,4.111,1329,4.111]],["tags/38",[]],["title/39",[120,0.914]],["content/39",[1,0.181,8,1.881,31,1.528,56,2.024,80,0.99,120,1.148,121,2.584,132,3.165,133,2.369,134,2.584,154,1.881,160,2.064,165,1.125,223,1.752,239,1.171,299,1.528,349,1.635,362,2.842,375,2.024,382,1.881,383,1.337,449,2.185,457,3.165,685,3.165,707,2.758,775,2.584,791,3.165,841,3.165,988,3.598,1087,3.165,1313,3.598,1330,4.255,1331,4.255]],["tags/39",[]]],"invertedIndex":[["",{"_index":2,"title":{"2":{},"13":{}},"content":{"3":{},"11":{},"13":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"37":{}},"tags":{}}],["1",{"_index":587,"title":{"7":{}},"content":{},"tags":{}}],["1.7",{"_index":889,"title":{},"content":{"24":{}},"tags":{}}],["10",{"_index":184,"title":{},"content":{"1":{}},"tags":{}}],["100",{"_index":170,"title":{},"content":{"1":{}},"tags":{}}],["13",{"_index":1323,"title":{},"content":{"38":{}},"tags":{}}],["13,500",{"_index":436,"title":{},"content":{"16":{}},"tags":{}}],["15",{"_index":216,"title":{},"content":{"1":{}},"tags":{}}],["17",{"_index":998,"title":{},"content":{"19":{}},"tags":{}}],["2",{"_index":596,"title":{"8":{}},"content":{},"tags":{}}],["200",{"_index":766,"title":{},"content":{"22":{}},"tags":{}}],["2000",{"_index":953,"title":{},"content":{"24":{}},"tags":{}}],["2023",{"_index":217,"title":{},"content":{"1":{}},"tags":{}}],["28.2",{"_index":572,"title":{},"content":{"5":{}},"tags":{}}],["29.6",{"_index":571,"title":{},"content":{"5":{}},"tags":{}}],["2–3",{"_index":1289,"title":{},"content":{"36":{}},"tags":{}}],["3",{"_index":604,"title":{"9":{}},"content":{},"tags":{}}],["31",{"_index":570,"title":{},"content":{"5":{}},"tags":{}}],["33,600",{"_index":589,"title":{},"content":{"7":{}},"tags":{}}],["35.2",{"_index":569,"title":{},"content":{"5":{}},"tags":{}}],["350",{"_index":954,"title":{},"content":{"24":{}},"tags":{}}],["36.6",{"_index":557,"title":{},"content":{"5":{}},"tags":{}}],["38",{"_index":568,"title":{},"content":{"5":{}},"tags":{}}],["393,000,000",{"_index":612,"title":{},"content":{"10":{}},"tags":{}}],["3rd",{"_index":1103,"title":{},"content":{"33":{}},"tags":{}}],["4",{"_index":611,"title":{"10":{}},"content":{},"tags":{}}],["4,99",{"_index":1090,"title":{},"content":{"33":{}},"tags":{}}],["42.3",{"_index":545,"title":{},"content":{"5":{}},"tags":{}}],["49.90",{"_index":1091,"title":{},"content":{"33":{}},"tags":{}}],["5",{"_index":565,"title":{"11":{}},"content":{"5":{}},"tags":{}}],["5,690,000",{"_index":622,"title":{},"content":{"11":{}},"tags":{}}],["52.1",{"_index":537,"title":{},"content":{"5":{}},"tags":{}}],["560,000",{"_index":605,"title":{},"content":{"9":{}},"tags":{}}],["5th",{"_index":1203,"title":{},"content":{"26":{}},"tags":{}}],["600",{"_index":758,"title":{"22":{}},"content":{"22":{}},"tags":{}}],["667",{"_index":1229,"title":{},"content":{"28":{}},"tags":{}}],["7",{"_index":1136,"title":{"25":{}},"content":{"25":{}},"tags":{}}],["71",{"_index":530,"title":{},"content":{"5":{}},"tags":{}}],["8.5",{"_index":443,"title":{},"content":{"16":{}},"tags":{}}],["800,000",{"_index":597,"title":{},"content":{"8":{}},"tags":{}}],["9",{"_index":888,"title":{},"content":{"24":{}},"tags":{}}],["abandonwar",{"_index":1197,"title":{},"content":{"26":{}},"tags":{}}],["abov",{"_index":1227,"title":{},"content":{"28":{},"38":{}},"tags":{}}],["absolut",{"_index":415,"title":{},"content":{"16":{}},"tags":{}}],["accept",{"_index":1004,"title":{},"content":{"20":{},"21":{}},"tags":{}}],["access",{"_index":383,"title":{"17":{},"18":{}},"content":{"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"33":{},"36":{},"37":{},"39":{},"40":{}},"tags":{}}],["accord",{"_index":379,"title":{},"content":{"16":{}},"tags":{}}],["account",{"_index":635,"title":{},"content":{"12":{},"20":{}},"tags":{}}],["accus",{"_index":264,"title":{},"content":{"3":{}},"tags":{}}],["achiev",{"_index":816,"title":{},"content":{"22":{}},"tags":{}}],["acknowledg",{"_index":424,"title":{},"content":{"16":{}},"tags":{}}],["acquir",{"_index":684,"title":{},"content":{"15":{}},"tags":{}}],["action",{"_index":275,"title":{},"content":{"3":{},"24":{}},"tags":{}}],["activ",{"_index":698,"title":{},"content":{"15":{},"20":{},"23":{},"33":{},"40":{}},"tags":{}}],["ad",{"_index":1313,"title":{},"content":{"37":{},"39":{}},"tags":{}}],["add",{"_index":846,"title":{},"content":{"23":{},"25":{}},"tags":{}}],["addit",{"_index":339,"title":{},"content":{"3":{},"16":{},"29":{},"37":{},"40":{}},"tags":{}}],["addition",{"_index":75,"title":{},"content":{"2":{},"10":{},"12":{},"33":{}},"tags":{}}],["address",{"_index":284,"title":{},"content":{"3":{},"27":{},"28":{},"40":{}},"tags":{}}],["admin",{"_index":1307,"title":{},"content":{"37":{}},"tags":{}}],["admir",{"_index":427,"title":{},"content":{"16":{}},"tags":{}}],["ado",{"_index":562,"title":{},"content":{"5":{}},"tags":{}}],["adult",{"_index":627,"title":{},"content":{"11":{}},"tags":{}}],["adventur",{"_index":1176,"title":{},"content":{"25":{}},"tags":{}}],["advertis",{"_index":727,"title":{},"content":{"14":{}},"tags":{}}],["affili",{"_index":544,"title":{},"content":{"5":{}},"tags":{}}],["afford",{"_index":1079,"title":{},"content":{"33":{}},"tags":{}}],["ag",{"_index":1017,"title":{},"content":{"31":{},"37":{}},"tags":{}}],["again",{"_index":1275,"title":{},"content":{"36":{}},"tags":{}}],["against",{"_index":347,"title":{},"content":{"3":{},"5":{}},"tags":{}}],["age restrict",{"_index":1265,"title":{},"content":{},"tags":{"35":{}}}],["agnost",{"_index":1208,"title":{},"content":{"27":{}},"tags":{}}],["ai",{"_index":174,"title":{},"content":{"1":{}},"tags":{}}],["ai-generated nam",{"_index":231,"title":{},"content":{},"tags":{"1":{}}}],["aim",{"_index":191,"title":{},"content":{"1":{},"12":{}},"tags":{}}],["align",{"_index":477,"title":{},"content":{"10":{},"16":{},"23":{}},"tags":{}}],["aliv",{"_index":1109,"title":{},"content":{"33":{}},"tags":{}}],["allow",{"_index":386,"title":{},"content":{"5":{},"16":{},"27":{},"36":{}},"tags":{}}],["along",{"_index":1114,"title":{},"content":{"33":{},"37":{}},"tags":{}}],["alongsid",{"_index":892,"title":{},"content":{"24":{}},"tags":{}}],["alreadi",{"_index":593,"title":{},"content":{"7":{},"9":{},"12":{},"22":{},"23":{},"24":{},"25":{},"28":{},"30":{},"34":{}},"tags":{}}],["altern",{"_index":19,"title":{},"content":{"2":{},"3":{},"16":{},"31":{}},"tags":{"2":{}}}],["although",{"_index":457,"title":{},"content":{"16":{},"23":{},"39":{}},"tags":{}}],["alway",{"_index":1076,"title":{},"content":{"25":{},"33":{},"38":{}},"tags":{}}],["amaz",{"_index":765,"title":{},"content":{"22":{},"23":{},"40":{}},"tags":{}}],["analysi",{"_index":577,"title":{"6":{}},"content":{"5":{}},"tags":{}}],["analyt",{"_index":1267,"title":{},"content":{},"tags":{"35":{}}}],["analyz",{"_index":581,"title":{},"content":{"5":{}},"tags":{}}],["anim",{"_index":1093,"title":{},"content":{"30":{},"33":{},"40":{}},"tags":{}}],["announ",{"_index":884,"title":{},"content":{"24":{}},"tags":{}}],["announc",{"_index":157,"title":{"22":{},"31":{}},"content":{"1":{},"4":{},"22":{},"25":{},"27":{},"31":{},"34":{},"40":{}},"tags":{"1":{},"31":{},"40":{}}}],["annual",{"_index":445,"title":{},"content":{"16":{}},"tags":{}}],["anoth",{"_index":1031,"title":{},"content":{"31":{},"36":{}},"tags":{}}],["answer",{"_index":409,"title":{},"content":{"15":{},"16":{}},"tags":{}}],["anticip",{"_index":306,"title":{},"content":{"3":{},"22":{},"25":{}},"tags":{}}],["anual",{"_index":1092,"title":{},"content":{"33":{}},"tags":{}}],["anyon",{"_index":987,"title":{},"content":{"18":{}},"tags":{}}],["anyth",{"_index":938,"title":{},"content":{"24":{}},"tags":{}}],["api",{"_index":90,"title":{},"content":{"2":{},"27":{},"28":{},"33":{},"40":{}},"tags":{"2":{},"26":{}}}],["apolog",{"_index":193,"title":{},"content":{"1":{}},"tags":{}}],["app",{"_index":239,"title":{"3":{}},"content":{"3":{},"4":{},"5":{},"7":{},"9":{},"10":{},"12":{},"13":{},"14":{},"16":{},"22":{},"31":{},"37":{},"39":{}},"tags":{"3":{}}}],["app name migr",{"_index":749,"title":{},"content":{},"tags":{"14":{}}}],["app optim",{"_index":1266,"title":{},"content":{},"tags":{"35":{}}}],["app'",{"_index":210,"title":{},"content":{"1":{},"24":{}},"tags":{}}],["appeal",{"_index":185,"title":{},"content":{"1":{}},"tags":{}}],["appear",{"_index":702,"title":{},"content":{"15":{}},"tags":{}}],["appli",{"_index":1016,"title":{},"content":{"21":{},"33":{}},"tags":{}}],["applic",{"_index":404,"title":{},"content":{"8":{},"9":{},"15":{},"16":{},"19":{},"21":{},"22":{},"24":{},"25":{},"28":{},"31":{},"40":{}},"tags":{}}],["application'",{"_index":1129,"title":{},"content":{"34":{}},"tags":{}}],["appreci",{"_index":179,"title":{},"content":{"1":{},"3":{},"16":{},"22":{},"23":{},"30":{}},"tags":{}}],["approach",{"_index":52,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["appropri",{"_index":292,"title":{},"content":{"3":{},"37":{}},"tags":{}}],["april",{"_index":1177,"title":{},"content":{"25":{}},"tags":{}}],["april fool",{"_index":1179,"title":{},"content":{},"tags":{"25":{}}}],["architectur",{"_index":1130,"title":{},"content":{"34":{}},"tags":{}}],["archiv",{"_index":905,"title":{},"content":{"24":{},"29":{}},"tags":{}}],["area",{"_index":1184,"title":{},"content":{"40":{}},"tags":{}}],["argument",{"_index":1314,"title":{},"content":{"37":{}},"tags":{}}],["around",{"_index":214,"title":{},"content":{"1":{},"16":{},"22":{},"33":{}},"tags":{}}],["art",{"_index":1231,"title":{},"content":{"28":{}},"tags":{}}],["ask",{"_index":183,"title":{},"content":{"1":{},"3":{},"22":{},"24":{},"36":{}},"tags":{}}],["aspect",{"_index":856,"title":{},"content":{"23":{}},"tags":{}}],["assist",{"_index":317,"title":{},"content":{"3":{}},"tags":{}}],["associ",{"_index":600,"title":{},"content":{"8":{}},"tags":{}}],["aswel",{"_index":924,"title":{},"content":{"24":{},"25":{}},"tags":{}}],["atmospher",{"_index":283,"title":{},"content":{"3":{}},"tags":{}}],["attempt",{"_index":278,"title":{},"content":{"3":{}},"tags":{}}],["attent",{"_index":242,"title":{},"content":{"3":{},"24":{}},"tags":{}}],["attract",{"_index":542,"title":{},"content":{"5":{}},"tags":{}}],["authent",{"_index":92,"title":{},"content":{"2":{}},"tags":{}}],["auto",{"_index":900,"title":{},"content":{"24":{},"29":{}},"tags":{}}],["automat",{"_index":81,"title":{},"content":{"2":{},"25":{}},"tags":{}}],["avail",{"_index":18,"title":{"16":{},"25":{}},"content":{"1":{},"2":{},"12":{},"14":{},"16":{},"25":{},"33":{}},"tags":{}}],["away",{"_index":1217,"title":{},"content":{"28":{},"36":{}},"tags":{}}],["awesom",{"_index":776,"title":{},"content":{"22":{}},"tags":{}}],["back",{"_index":814,"title":{"24":{}},"content":{"22":{},"24":{},"33":{},"36":{}},"tags":{}}],["backend",{"_index":682,"title":{},"content":{"15":{},"24":{},"28":{},"36":{}},"tags":{"26":{}}}],["backend application migr",{"_index":716,"title":{},"content":{},"tags":{"15":{}}}],["backend:earli",{"_index":1003,"title":{},"content":{"20":{}},"tags":{}}],["backlog",{"_index":610,"title":{},"content":{"9":{}},"tags":{}}],["backup",{"_index":908,"title":{},"content":{"24":{}},"tags":{}}],["bandwidth",{"_index":907,"title":{},"content":{"24":{}},"tags":{}}],["bar",{"_index":1308,"title":{},"content":{"37":{}},"tags":{}}],["base",{"_index":22,"title":{"25":{}},"content":{"1":{},"2":{},"33":{},"37":{},"40":{}},"tags":{}}],["baseless",{"_index":263,"title":{},"content":{"3":{}},"tags":{}}],["battl",{"_index":236,"title":{"3":{}},"content":{"25":{}},"tags":{}}],["be",{"_index":270,"title":{},"content":{"3":{},"16":{},"22":{},"23":{},"24":{}},"tags":{}}],["bean",{"_index":950,"title":{},"content":{"24":{}},"tags":{}}],["becom",{"_index":798,"title":{},"content":{"22":{},"23":{},"24":{},"26":{}},"tags":{}}],["befor",{"_index":986,"title":{},"content":{"18":{},"33":{},"36":{},"38":{}},"tags":{}}],["beforehand",{"_index":578,"title":{},"content":{"5":{}},"tags":{}}],["began",{"_index":250,"title":{},"content":{"3":{},"28":{}},"tags":{}}],["begin",{"_index":1165,"title":{},"content":{"25":{}},"tags":{}}],["behavior",{"_index":248,"title":{},"content":{"3":{},"28":{}},"tags":{}}],["behind",{"_index":399,"title":{},"content":{"14":{},"16":{},"31":{}},"tags":{}}],["believ",{"_index":391,"title":{},"content":{"16":{},"22":{},"23":{}},"tags":{}}],["benefit",{"_index":136,"title":{},"content":{"2":{},"5":{}},"tags":{}}],["best",{"_index":873,"title":{},"content":{"23":{},"25":{}},"tags":{}}],["bet",{"_index":1245,"title":{},"content":{"30":{}},"tags":{}}],["beta test",{"_index":979,"title":{},"content":{},"tags":{"17":{}}}],["better",{"_index":161,"title":{},"content":{"1":{},"3":{},"23":{},"28":{},"29":{},"36":{}},"tags":{}}],["between",{"_index":1235,"title":{},"content":{"28":{},"38":{}},"tags":{}}],["beyond",{"_index":1251,"title":{},"content":{"35":{}},"tags":{}}],["bia",{"_index":190,"title":{},"content":{"1":{}},"tags":{}}],["big",{"_index":761,"title":{"22":{}},"content":{"18":{},"24":{},"34":{},"40":{}},"tags":{}}],["biggest",{"_index":1253,"title":{},"content":{"35":{}},"tags":{}}],["bird",{"_index":1167,"title":{},"content":{"25":{}},"tags":{}}],["blackmail",{"_index":246,"title":{},"content":{"3":{}},"tags":{"3":{}}}],["bloat",{"_index":859,"title":{},"content":{"23":{}},"tags":{}}],["blog",{"_index":213,"title":{},"content":{"1":{},"15":{},"22":{},"24":{}},"tags":{}}],["board",{"_index":608,"title":{},"content":{"9":{},"23":{},"33":{}},"tags":{}}],["bookmark",{"_index":1237,"title":{},"content":{"29":{}},"tags":{}}],["bore",{"_index":962,"title":{},"content":{"24":{}},"tags":{}}],["born",{"_index":1022,"title":{},"content":{"31":{}},"tags":{}}],["both",{"_index":287,"title":{},"content":{"3":{},"28":{},"37":{}},"tags":{}}],["bothersom",{"_index":857,"title":{},"content":{"23":{}},"tags":{}}],["boundari",{"_index":774,"title":{},"content":{"22":{},"25":{}},"tags":{}}],["box",{"_index":739,"title":{},"content":{"14":{},"27":{},"28":{}},"tags":{}}],["box represent",{"_index":755,"title":{},"content":{},"tags":{"14":{}}}],["boy",{"_index":1037,"title":{},"content":{"31":{}},"tags":{}}],["brainstorm",{"_index":638,"title":{},"content":{"12":{}},"tags":{}}],["branch",{"_index":268,"title":{},"content":{"3":{}},"tags":{}}],["brand",{"_index":617,"title":{},"content":{"10":{},"17":{},"36":{}},"tags":{}}],["break",{"_index":1006,"title":{},"content":{"20":{}},"tags":{}}],["breez",{"_index":1319,"title":{},"content":{"37":{}},"tags":{}}],["brent",{"_index":668,"title":{},"content":{"13":{}},"tags":{}}],["brief",{"_index":680,"title":{},"content":{"15":{}},"tags":{}}],["bring",{"_index":302,"title":{},"content":{"3":{},"34":{}},"tags":{}}],["brows",{"_index":63,"title":{},"content":{"2":{},"25":{}},"tags":{}}],["btw",{"_index":1057,"title":{},"content":{"31":{}},"tags":{}}],["buck",{"_index":320,"title":{},"content":{"3":{}},"tags":{}}],["bug",{"_index":117,"title":{},"content":{"2":{},"3":{},"23":{},"24":{},"36":{}},"tags":{"3":{}}}],["build",{"_index":1045,"title":{},"content":{"31":{}},"tags":{}}],["built",{"_index":808,"title":{"35":{}},"content":{"22":{},"28":{},"35":{},"36":{},"37":{}},"tags":{}}],["bunch",{"_index":897,"title":{},"content":{"24":{}},"tags":{}}],["busi",{"_index":461,"title":{},"content":{"5":{},"16":{},"28":{}},"tags":{}}],["bypass",{"_index":1077,"title":{},"content":{"33":{}},"tags":{}}],["call",{"_index":365,"title":{},"content":{"7":{},"8":{},"10":{},"16":{},"31":{}},"tags":{}}],["can't",{"_index":506,"title":{},"content":{"4":{},"30":{},"33":{}},"tags":{}}],["capac",{"_index":842,"title":{},"content":{"23":{}},"tags":{}}],["carri",{"_index":1150,"title":{},"content":{"25":{}},"tags":{}}],["case",{"_index":402,"title":{},"content":{"16":{}},"tags":{}}],["casino/gambl",{"_index":602,"title":{},"content":{"8":{}},"tags":{}}],["cast",{"_index":201,"title":{},"content":{"1":{}},"tags":{}}],["caught",{"_index":878,"title":{},"content":{"24":{},"31":{}},"tags":{}}],["caus",{"_index":195,"title":{},"content":{"1":{},"26":{}},"tags":{}}],["celebr",{"_index":676,"title":{"22":{}},"content":{"13":{},"22":{}},"tags":{}}],["celebration of achiev",{"_index":830,"title":{},"content":{},"tags":{"22":{}}}],["certain",{"_index":384,"title":{},"content":{"16":{}},"tags":{}}],["challeng",{"_index":615,"title":{},"content":{"10":{},"22":{},"26":{}},"tags":{}}],["chanc",{"_index":660,"title":{},"content":{"13":{}},"tags":{}}],["chang",{"_index":556,"title":{},"content":{"5":{},"24":{},"27":{},"28":{},"29":{},"31":{},"36":{}},"tags":{}}],["changelog",{"_index":1328,"title":{},"content":{"38":{}},"tags":{}}],["channel",{"_index":336,"title":{},"content":{"3":{},"13":{},"15":{},"20":{},"23":{},"34":{},"40":{}},"tags":{}}],["chapter",{"_index":1113,"title":{},"content":{"33":{}},"tags":{}}],["character",{"_index":479,"title":{},"content":{"16":{}},"tags":{}}],["chat",{"_index":335,"title":{},"content":{"3":{},"15":{},"22":{}},"tags":{}}],["check",{"_index":1326,"title":{},"content":{"38":{}},"tags":{}}],["cherri",{"_index":1283,"title":{},"content":{"36":{}},"tags":{}}],["children",{"_index":1299,"title":{},"content":{"37":{}},"tags":{}}],["choic",{"_index":540,"title":{},"content":{"5":{}},"tags":{}}],["choos",{"_index":149,"title":{"1":{}},"content":{"1":{},"4":{}},"tags":{}}],["chosen",{"_index":583,"title":{},"content":{"5":{}},"tags":{}}],["clarifi",{"_index":361,"title":{},"content":{"16":{}},"tags":{}}],["clear",{"_index":1059,"title":{},"content":{"31":{},"33":{}},"tags":{}}],["cli",{"_index":1098,"title":{},"content":{"33":{}},"tags":{}}],["click",{"_index":203,"title":{},"content":{"1":{}},"tags":{}}],["client",{"_index":456,"title":{"25":{}},"content":{"15":{},"16":{},"22":{},"25":{},"31":{},"33":{},"34":{},"35":{},"38":{},"40":{}},"tags":{}}],["client application upd",{"_index":721,"title":{},"content":{},"tags":{"15":{}}}],["client upd",{"_index":1260,"title":{},"content":{},"tags":{"35":{}}}],["close",{"_index":403,"title":{},"content":{"16":{}},"tags":{}}],["closer",{"_index":358,"title":{"16":{}},"content":{},"tags":{}}],["cloud",{"_index":21,"title":{},"content":{"2":{}},"tags":{}}],["cloud-based game platform",{"_index":140,"title":{},"content":{},"tags":{"2":{}}}],["code",{"_index":367,"title":{},"content":{"16":{}},"tags":{}}],["code access",{"_index":497,"title":{},"content":{},"tags":{"16":{}}}],["coding chronicl",{"_index":972,"title":{},"content":{},"tags":{"24":{}}}],["collabor",{"_index":805,"title":{},"content":{"22":{},"23":{}},"tags":{"23":{}}}],["colleagu",{"_index":555,"title":{},"content":{"5":{},"14":{}},"tags":{}}],["collect",{"_index":65,"title":{},"content":{"2":{},"9":{},"25":{}},"tags":{}}],["come",{"_index":241,"title":{"31":{}},"content":{"3":{},"13":{},"33":{}},"tags":{}}],["commenc",{"_index":503,"title":{},"content":{"4":{},"12":{}},"tags":{}}],["comment",{"_index":487,"title":{},"content":{"16":{}},"tags":{}}],["commerci",{"_index":389,"title":{},"content":{"16":{}},"tags":{}}],["commit",{"_index":197,"title":{},"content":{"1":{},"12":{},"16":{},"23":{},"24":{},"28":{},"40":{}},"tags":{}}],["common",{"_index":614,"title":{},"content":{"10":{}},"tags":{}}],["commun",{"_index":34,"title":{"3":{}},"content":{"2":{},"3":{},"5":{},"15":{},"16":{},"22":{},"23":{},"24":{},"28":{},"33":{},"34":{},"35":{},"37":{},"40":{}},"tags":{"1":{},"23":{},"26":{},"31":{}}}],["community feedback",{"_index":516,"title":{},"content":{},"tags":{"4":{},"17":{}}}],["community manag",{"_index":1268,"title":{},"content":{},"tags":{"35":{}}}],["community-driven",{"_index":1191,"title":{},"content":{},"tags":{"40":{}}}],["company'",{"_index":446,"title":{},"content":{"16":{}},"tags":{}}],["compar",{"_index":76,"title":{},"content":{"2":{},"25":{}},"tags":{}}],["compat",{"_index":1144,"title":{},"content":{"25":{},"38":{}},"tags":{}}],["complet",{"_index":58,"title":{"14":{}},"content":{"2":{},"15":{},"19":{},"26":{},"31":{},"36":{}},"tags":{}}],["concept",{"_index":747,"title":{},"content":{"14":{}},"tags":{}}],["concern",{"_index":159,"title":{},"content":{"1":{},"28":{}},"tags":{}}],["conclud",{"_index":1180,"title":{},"content":{"40":{}},"tags":{}}],["conclus",{"_index":534,"title":{},"content":{"5":{}},"tags":{}}],["conduct",{"_index":575,"title":{},"content":{"5":{}},"tags":{}}],["configur",{"_index":93,"title":{},"content":{"2":{}},"tags":{}}],["confirm",{"_index":549,"title":{},"content":{"5":{}},"tags":{}}],["confus",{"_index":1071,"title":{},"content":{"33":{}},"tags":{}}],["connect",{"_index":125,"title":{},"content":{"2":{},"22":{}},"tags":{}}],["consent",{"_index":423,"title":{},"content":{"16":{}},"tags":{}}],["consequ",{"_index":579,"title":{},"content":{"5":{}},"tags":{}}],["consid",{"_index":362,"title":{},"content":{"16":{},"22":{},"30":{},"39":{}},"tags":{}}],["contact",{"_index":1125,"title":{},"content":{"34":{}},"tags":{}}],["content",{"_index":1296,"title":{},"content":{"37":{}},"tags":{}}],["continu",{"_index":223,"title":{},"content":{"1":{},"3":{},"13":{},"16":{},"22":{},"24":{},"25":{},"27":{},"39":{},"40":{}},"tags":{}}],["continued support",{"_index":829,"title":{},"content":{},"tags":{"22":{}}}],["contrast",{"_index":440,"title":{},"content":{"16":{}},"tags":{}}],["contribut",{"_index":115,"title":{},"content":{"1":{},"2":{},"3":{},"5":{},"16":{},"23":{},"24":{}},"tags":{}}],["control",{"_index":59,"title":{},"content":{"2":{},"12":{},"16":{},"24":{},"36":{},"37":{}},"tags":{"16":{}}}],["conveni",{"_index":168,"title":{},"content":{"1":{},"16":{},"37":{}},"tags":{}}],["convey",{"_index":645,"title":{},"content":{"12":{}},"tags":{}}],["convinc",{"_index":837,"title":{},"content":{"23":{}},"tags":{}}],["cook",{"_index":913,"title":{},"content":{"24":{}},"tags":{}}],["copi",{"_index":416,"title":{},"content":{"16":{}},"tags":{}}],["core",{"_index":450,"title":{},"content":{"16":{},"24":{},"33":{}},"tags":{}}],["couldn't",{"_index":1182,"title":{},"content":{"40":{}},"tags":{}}],["could’v",{"_index":1256,"title":{},"content":{"35":{}},"tags":{}}],["council",{"_index":864,"title":{},"content":{"23":{},"24":{},"34":{}},"tags":{}}],["council memb",{"_index":875,"title":{},"content":{},"tags":{"23":{}}}],["count",{"_index":959,"title":{},"content":{"24":{}},"tags":{}}],["cover",{"_index":1259,"title":{},"content":{"35":{}},"tags":{}}],["craft",{"_index":704,"title":{},"content":{"15":{}},"tags":{}}],["crash",{"_index":910,"title":{},"content":{"24":{}},"tags":{}}],["creat",{"_index":16,"title":{},"content":{"1":{},"2":{},"23":{}},"tags":{}}],["creativ",{"_index":748,"title":{},"content":{"14":{}},"tags":{}}],["creepi",{"_index":308,"title":{},"content":{"3":{}},"tags":{}}],["creepy behavior",{"_index":354,"title":{},"content":{},"tags":{"3":{}}}],["criteria",{"_index":372,"title":{},"content":{"16":{}},"tags":{}}],["critic",{"_index":552,"title":{"38":{}},"content":{"5":{}},"tags":{}}],["cross",{"_index":952,"title":{},"content":{"24":{}},"tags":{}}],["crucial",{"_index":855,"title":{},"content":{"23":{}},"tags":{}}],["crucual",{"_index":393,"title":{},"content":{"16":{}},"tags":{}}],["current",{"_index":194,"title":{},"content":{"1":{},"5":{},"15":{},"16":{},"22":{},"24":{},"25":{},"28":{},"33":{}},"tags":{}}],["custom",{"_index":1096,"title":{},"content":{"33":{},"36":{},"40":{}},"tags":{}}],["data",{"_index":532,"title":{},"content":{"5":{},"28":{},"36":{},"40":{}},"tags":{}}],["databas",{"_index":84,"title":{},"content":{"2":{},"24":{},"26":{},"27":{},"34":{},"40":{}},"tags":{"26":{}}}],["day",{"_index":1204,"title":{},"content":{"26":{}},"tags":{}}],["deal",{"_index":485,"title":{},"content":{"16":{},"18":{}},"tags":{}}],["decad",{"_index":435,"title":{},"content":{"16":{}},"tags":{}}],["decemb",{"_index":997,"title":{},"content":{"19":{}},"tags":{}}],["decid",{"_index":300,"title":{},"content":{"3":{},"25":{},"27":{},"34":{}},"tags":{}}],["deciph",{"_index":737,"title":{},"content":{"14":{}},"tags":{}}],["decis",{"_index":166,"title":{},"content":{"1":{},"3":{},"5":{}},"tags":{}}],["decision-mak",{"_index":233,"title":{},"content":{},"tags":{"1":{}}}],["dedic",{"_index":288,"title":{},"content":{"3":{},"22":{},"23":{},"40":{}},"tags":{}}],["deep",{"_index":926,"title":{},"content":{"24":{}},"tags":{}}],["default",{"_index":1234,"title":{},"content":{"28":{},"37":{}},"tags":{}}],["definit",{"_index":363,"title":{},"content":{"16":{}},"tags":{}}],["degrad",{"_index":1123,"title":{},"content":{"34":{}},"tags":{}}],["delay",{"_index":513,"title":{},"content":{"4":{}},"tags":{}}],["delight",{"_index":32,"title":{},"content":{"2":{}},"tags":{}}],["demand",{"_index":1043,"title":{},"content":{"31":{}},"tags":{}}],["demo",{"_index":688,"title":{},"content":{"15":{}},"tags":{}}],["depend",{"_index":560,"title":{},"content":{"5":{},"36":{}},"tags":{}}],["descript",{"_index":642,"title":{},"content":{"12":{}},"tags":{}}],["design",{"_index":43,"title":{},"content":{"2":{},"15":{},"20":{},"22":{},"33":{},"40":{}},"tags":{}}],["desir",{"_index":411,"title":{},"content":{"16":{},"23":{},"24":{},"34":{}},"tags":{}}],["despit",{"_index":1048,"title":{},"content":{"31":{}},"tags":{}}],["detail",{"_index":788,"title":{},"content":{"22":{},"27":{},"33":{},"38":{}},"tags":{}}],["develop",{"_index":299,"title":{},"content":{"3":{},"15":{},"16":{},"23":{},"24":{},"28":{},"31":{},"39":{}},"tags":{"3":{},"23":{},"31":{},"40":{}}}],["development mileston",{"_index":968,"title":{},"content":{},"tags":{"24":{}}}],["devic",{"_index":1149,"title":{},"content":{"25":{}},"tags":{}}],["dice",{"_index":743,"title":{},"content":{"14":{}},"tags":{}}],["didn't",{"_index":408,"title":{},"content":{"16":{}},"tags":{}}],["differ",{"_index":378,"title":{},"content":{"5":{},"16":{},"22":{},"24":{}},"tags":{}}],["direct",{"_index":861,"title":{},"content":{"23":{},"40":{}},"tags":{}}],["directli",{"_index":276,"title":{},"content":{"3":{},"37":{}},"tags":{}}],["disclos",{"_index":33,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["discomfort",{"_index":196,"title":{},"content":{"1":{}},"tags":{}}],["discontinu",{"_index":1141,"title":{},"content":{"25":{}},"tags":{}}],["discord",{"_index":128,"title":{},"content":{"1":{},"2":{},"3":{},"13":{},"14":{},"15":{},"16":{},"20":{},"22":{},"23":{},"24":{},"34":{},"38":{},"40":{}},"tags":{"17":{},"23":{},"40":{}}}],["discord channel",{"_index":723,"title":{},"content":{},"tags":{"14":{},"15":{}}}],["discord community growth",{"_index":819,"title":{},"content":{},"tags":{"22":{}}}],["discord serv",{"_index":146,"title":{},"content":{},"tags":{"2":{}}}],["discord server promot",{"_index":752,"title":{},"content":{},"tags":{"14":{}}}],["discov",{"_index":1164,"title":{},"content":{"25":{}},"tags":{}}],["discuss",{"_index":662,"title":{},"content":{"13":{},"15":{},"22":{},"33":{}},"tags":{}}],["display",{"_index":849,"title":{},"content":{"23":{}},"tags":{}}],["disrupt",{"_index":282,"title":{},"content":{"3":{}},"tags":{}}],["distanc",{"_index":632,"title":{},"content":{"12":{}},"tags":{}}],["distribut",{"_index":387,"title":{},"content":{"16":{}},"tags":{}}],["dive",{"_index":508,"title":{},"content":{"4":{},"24":{}},"tags":{}}],["divers",{"_index":187,"title":{},"content":{"1":{}},"tags":{}}],["do",{"_index":290,"title":{},"content":{"3":{},"23":{}},"tags":{}}],["docker/kubernet",{"_index":621,"title":{},"content":{"10":{}},"tags":{}}],["document",{"_index":105,"title":{},"content":{"2":{},"15":{},"34":{}},"tags":{}}],["documentation migr",{"_index":717,"title":{},"content":{},"tags":{"15":{}}}],["doesn't",{"_index":370,"title":{},"content":{"16":{},"31":{},"40":{}},"tags":{}}],["domain",{"_index":590,"title":{},"content":{"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"15":{}},"tags":{}}],["domain acquisit",{"_index":718,"title":{},"content":{},"tags":{"15":{}}}],["don't",{"_index":395,"title":{},"content":{"16":{}},"tags":{}}],["donat",{"_index":121,"title":{},"content":{"2":{},"16":{},"24":{},"31":{},"39":{}},"tags":{}}],["done",{"_index":1131,"title":{},"content":{"30":{},"34":{},"40":{}},"tags":{}}],["donor",{"_index":1056,"title":{},"content":{"31":{}},"tags":{}}],["dont",{"_index":1078,"title":{},"content":{"33":{}},"tags":{}}],["dough",{"_index":957,"title":{},"content":{"24":{}},"tags":{}}],["down",{"_index":854,"title":{},"content":{"23":{},"26":{}},"tags":{}}],["download",{"_index":67,"title":{},"content":{"2":{},"25":{},"29":{}},"tags":{}}],["downtim",{"_index":1199,"title":{},"content":{"26":{}},"tags":{}}],["draw",{"_index":533,"title":{},"content":{"5":{}},"tags":{}}],["drawback",{"_index":1232,"title":{},"content":{"28":{}},"tags":{}}],["drive",{"_index":985,"title":{},"content":{"18":{}},"tags":{}}],["drm",{"_index":7,"title":{"2":{}},"content":{"2":{},"31":{}},"tags":{}}],["drm-free",{"_index":1189,"title":{},"content":{},"tags":{"40":{}}}],["drm-free gam",{"_index":141,"title":{},"content":{},"tags":{"2":{}}}],["drop",{"_index":1219,"title":{},"content":{"28":{}},"tags":{}}],["due",{"_index":732,"title":{},"content":{"14":{}},"tags":{}}],["dure",{"_index":1052,"title":{},"content":{"31":{}},"tags":{}}],["dust",{"_index":1035,"title":{},"content":{"31":{}},"tags":{}}],["each",{"_index":582,"title":{},"content":{"5":{}},"tags":{}}],["eager",{"_index":630,"title":{},"content":{"12":{},"23":{},"24":{},"25":{}},"tags":{}}],["eagerli",{"_index":800,"title":{},"content":{"22":{}},"tags":{}}],["earli",{"_index":974,"title":{"17":{},"18":{}},"content":{"17":{},"18":{},"19":{},"21":{},"33":{},"36":{},"40":{}},"tags":{}}],["earlier",{"_index":574,"title":{},"content":{"5":{}},"tags":{}}],["early access",{"_index":977,"title":{},"content":{},"tags":{"17":{},"40":{}}}],["earn",{"_index":441,"title":{},"content":{"16":{}},"tags":{}}],["easier",{"_index":786,"title":{},"content":{"22":{}},"tags":{}}],["easili",{"_index":646,"title":{},"content":{"12":{},"33":{}},"tags":{}}],["easter",{"_index":1246,"title":{},"content":{"30":{}},"tags":{}}],["easter egg",{"_index":1206,"title":{},"content":{},"tags":{"26":{}}}],["edg",{"_index":1117,"title":{},"content":{"34":{}},"tags":{}}],["edit",{"_index":493,"title":{},"content":{"15":{},"16":{},"25":{},"36":{}},"tags":{}}],["effect",{"_index":644,"title":{},"content":{"12":{},"23":{},"36":{}},"tags":{}}],["effort",{"_index":314,"title":{},"content":{"3":{},"22":{},"24":{}},"tags":{}}],["egg",{"_index":1247,"title":{},"content":{"30":{}},"tags":{}}],["eleg",{"_index":1163,"title":{},"content":{"25":{}},"tags":{}}],["embark",{"_index":1173,"title":{},"content":{"25":{}},"tags":{}}],["emerg",{"_index":566,"title":{},"content":{"5":{}},"tags":{}}],["empathi",{"_index":483,"title":{},"content":{"16":{}},"tags":{}}],["emphas",{"_index":297,"title":{},"content":{"3":{},"12":{}},"tags":{}}],["employ",{"_index":262,"title":{},"content":{"3":{}},"tags":{}}],["empow",{"_index":815,"title":{},"content":{"22":{}},"tags":{}}],["emul",{"_index":920,"title":{},"content":{"24":{}},"tags":{}}],["enabl",{"_index":62,"title":{},"content":{"2":{},"23":{}},"tags":{}}],["encount",{"_index":286,"title":{},"content":{"3":{}},"tags":{}}],["encourag",{"_index":219,"title":{},"content":{"1":{},"3":{},"5":{},"16":{},"22":{}},"tags":{}}],["encrypt",{"_index":1239,"title":{},"content":{"29":{}},"tags":{}}],["end",{"_index":204,"title":{},"content":{"1":{},"24":{},"31":{}},"tags":{}}],["endeavor",{"_index":871,"title":{},"content":{"23":{}},"tags":{}}],["endlessli",{"_index":1058,"title":{},"content":{"31":{}},"tags":{}}],["engag",{"_index":245,"title":{},"content":{"3":{},"12":{},"16":{},"22":{},"24":{}},"tags":{"3":{}}}],["enhanc",{"_index":775,"title":{},"content":{"22":{},"25":{},"33":{},"39":{},"40":{}},"tags":{}}],["enjoy",{"_index":133,"title":{},"content":{"1":{},"2":{},"33":{},"37":{},"39":{},"40":{}},"tags":{}}],["enough",{"_index":868,"title":{},"content":{"23":{}},"tags":{}}],["enrich",{"_index":85,"title":{},"content":{"2":{}},"tags":{}}],["ensur",{"_index":348,"title":{},"content":{"3":{},"5":{},"23":{},"24":{},"25":{},"38":{},"40":{}},"tags":{}}],["enterpris",{"_index":1074,"title":{},"content":{"33":{}},"tags":{}}],["enthusiasm",{"_index":834,"title":{},"content":{"23":{},"40":{}},"tags":{}}],["entir",{"_index":784,"title":{},"content":{"22":{}},"tags":{}}],["entireti",{"_index":725,"title":{},"content":{"14":{}},"tags":{}}],["environ",{"_index":199,"title":{},"content":{"1":{},"3":{}},"tags":{}}],["environment",{"_index":1225,"title":{},"content":{"28":{}},"tags":{}}],["epic",{"_index":25,"title":{},"content":{"2":{}},"tags":{}}],["equal",{"_index":631,"title":{},"content":{"12":{}},"tags":{}}],["escal",{"_index":255,"title":{},"content":{"3":{}},"tags":{}}],["especi",{"_index":468,"title":{},"content":{"16":{},"22":{}},"tags":{}}],["essenc",{"_index":211,"title":{},"content":{"1":{}},"tags":{}}],["etc",{"_index":923,"title":{},"content":{"24":{}},"tags":{}}],["even",{"_index":69,"title":{},"content":{"2":{},"3":{},"5":{},"13":{},"16":{},"22":{},"23":{},"29":{},"36":{},"40":{}},"tags":{}}],["everybodi",{"_index":656,"title":{},"content":{"13":{}},"tags":{}}],["everyon",{"_index":30,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"16":{},"18":{},"22":{},"23":{},"25":{},"26":{},"31":{},"33":{},"40":{}},"tags":{}}],["everyth",{"_index":993,"title":{},"content":{"18":{}},"tags":{}}],["exact",{"_index":1044,"title":{},"content":{"31":{}},"tags":{}}],["exampl",{"_index":406,"title":{},"content":{"16":{},"28":{}},"tags":{}}],["excit",{"_index":27,"title":{"26":{},"29":{}},"content":{"2":{},"4":{},"13":{},"22":{},"24":{},"25":{},"27":{},"29":{},"33":{},"35":{},"40":{}},"tags":{}}],["exclus",{"_index":649,"title":{},"content":{"12":{},"18":{}},"tags":{}}],["exclusive preview",{"_index":980,"title":{},"content":{},"tags":{"17":{}}}],["execut",{"_index":1316,"title":{},"content":{"37":{}},"tags":{}}],["exist",{"_index":607,"title":{},"content":{"9":{}},"tags":{}}],["expand",{"_index":553,"title":{},"content":{"5":{}},"tags":{}}],["experi",{"_index":61,"title":{},"content":{"1":{},"2":{},"3":{},"22":{},"23":{},"25":{},"29":{},"33":{},"40":{}},"tags":{}}],["experienc",{"_index":785,"title":{},"content":{"22":{}},"tags":{}}],["explain",{"_index":374,"title":{},"content":{"16":{},"28":{}},"tags":{}}],["exploit",{"_index":414,"title":{},"content":{"16":{}},"tags":{}}],["explor",{"_index":368,"title":{},"content":{"16":{},"25":{},"40":{}},"tags":{}}],["express",{"_index":768,"title":{},"content":{"22":{},"23":{}},"tags":{}}],["extend",{"_index":274,"title":{},"content":{"3":{},"13":{}},"tags":{}}],["extens",{"_index":636,"title":{},"content":{"12":{}},"tags":{}}],["extra",{"_index":862,"title":{},"content":{"23":{},"24":{}},"tags":{}}],["extract",{"_index":901,"title":{},"content":{"24":{}},"tags":{}}],["face",{"_index":1195,"title":{},"content":{"26":{}},"tags":{}}],["fact",{"_index":511,"title":{},"content":{"4":{}},"tags":{}}],["fact,quit",{"_index":1020,"title":{},"content":{"31":{}},"tags":{}}],["famili",{"_index":151,"title":{"1":{}},"content":{"1":{},"5":{},"14":{},"16":{},"22":{},"31":{},"37":{}},"tags":{}}],["family-friendli",{"_index":230,"title":{},"content":{},"tags":{"1":{}}}],["fantast",{"_index":838,"title":{},"content":{"23":{}},"tags":{}}],["far",{"_index":258,"title":{},"content":{"3":{},"22":{}},"tags":{}}],["favorit",{"_index":1151,"title":{},"content":{"25":{},"29":{}},"tags":{}}],["feasibl",{"_index":432,"title":{},"content":{"16":{}},"tags":{}}],["featur",{"_index":80,"title":{"22":{},"26":{},"29":{},"37":{}},"content":{"2":{},"3":{},"7":{},"16":{},"18":{},"22":{},"23":{},"24":{},"25":{},"29":{},"33":{},"34":{},"37":{},"38":{},"39":{},"40":{}},"tags":{"23":{},"26":{},"40":{}}}],["feature request",{"_index":357,"title":{},"content":{},"tags":{"3":{}}}],["fee",{"_index":1089,"title":{},"content":{"33":{},"40":{}},"tags":{}}],["feed",{"_index":1168,"title":{},"content":{"25":{}},"tags":{}}],["feedback",{"_index":116,"title":{},"content":{"1":{},"2":{},"5":{},"12":{},"16":{},"18":{},"22":{},"23":{},"33":{},"40":{}},"tags":{"1":{},"22":{},"23":{},"40":{}}}],["feel",{"_index":491,"title":{},"content":{"16":{},"23":{},"31":{},"35":{},"38":{}},"tags":{}}],["fellow",{"_index":960,"title":{},"content":{"24":{}},"tags":{}}],["fetch",{"_index":1221,"title":{},"content":{"28":{},"36":{}},"tags":{}}],["few",{"_index":551,"title":{},"content":{"5":{},"34":{}},"tags":{}}],["fierc",{"_index":1152,"title":{},"content":{"25":{}},"tags":{}}],["file",{"_index":39,"title":{},"content":{"2":{},"24":{},"31":{}},"tags":{}}],["file serv",{"_index":142,"title":{},"content":{},"tags":{"2":{}}}],["fill",{"_index":1280,"title":{},"content":{"36":{}},"tags":{}}],["filter",{"_index":101,"title":{},"content":{"2":{}},"tags":{}}],["final",{"_index":459,"title":{"14":{}},"content":{"4":{},"15":{},"16":{},"25":{},"30":{},"34":{}},"tags":{}}],["financi",{"_index":316,"title":{},"content":{"3":{},"31":{}},"tags":{}}],["financial assist",{"_index":355,"title":{},"content":{},"tags":{"3":{}}}],["find",{"_index":208,"title":{},"content":{"1":{},"5":{},"10":{},"14":{},"23":{},"30":{},"31":{},"34":{}},"tags":{}}],["finder",{"_index":912,"title":{},"content":{"24":{}},"tags":{}}],["fine",{"_index":992,"title":{},"content":{"18":{}},"tags":{}}],["fingertip",{"_index":1158,"title":{},"content":{"25":{}},"tags":{}}],["finish",{"_index":695,"title":{},"content":{"15":{}},"tags":{}}],["first",{"_index":312,"title":{},"content":{"3":{},"4":{},"19":{},"22":{},"31":{},"33":{},"36":{}},"tags":{}}],["five",{"_index":319,"title":{},"content":{"3":{}},"tags":{}}],["fix",{"_index":895,"title":{},"content":{"24":{}},"tags":{}}],["flex",{"_index":1243,"title":{},"content":{"30":{}},"tags":{}}],["flexibl",{"_index":50,"title":{},"content":{"2":{},"36":{}},"tags":{}}],["flood",{"_index":832,"title":{},"content":{"23":{}},"tags":{}}],["floor",{"_index":1188,"title":{},"content":{"40":{}},"tags":{}}],["focus",{"_index":1132,"title":{},"content":{"34":{}},"tags":{}}],["foe",{"_index":1153,"title":{},"content":{"25":{}},"tags":{}}],["folk",{"_index":240,"title":{},"content":{"3":{},"14":{}},"tags":{}}],["follow",{"_index":880,"title":{},"content":{"24":{}},"tags":{}}],["fool",{"_index":1178,"title":{},"content":{"25":{}},"tags":{}}],["footer",{"_index":131,"title":{},"content":{"2":{}},"tags":{}}],["foremost",{"_index":1271,"title":{},"content":{"36":{}},"tags":{}}],["forgotten",{"_index":1032,"title":{},"content":{"31":{}},"tags":{}}],["form",{"_index":994,"title":{},"content":{"19":{}},"tags":{}}],["format",{"_index":906,"title":{},"content":{"24":{},"37":{}},"tags":{}}],["forum",{"_index":797,"title":{},"content":{"22":{}},"tags":{}}],["forward",{"_index":492,"title":{"24":{}},"content":{"16":{},"22":{},"27":{},"34":{}},"tags":{}}],["found",{"_index":110,"title":{},"content":{"2":{},"15":{},"21":{},"27":{}},"tags":{}}],["framework",{"_index":1143,"title":{},"content":{"25":{},"36":{}},"tags":{}}],["frankli",{"_index":1030,"title":{},"content":{"31":{}},"tags":{}}],["free",{"_index":8,"title":{"2":{}},"content":{"2":{},"12":{},"16":{},"23":{},"31":{},"33":{},"38":{},"39":{}},"tags":{}}],["freedom",{"_index":385,"title":{},"content":{"16":{},"36":{}},"tags":{}}],["freeli",{"_index":388,"title":{},"content":{"16":{}},"tags":{}}],["frequent",{"_index":1198,"title":{},"content":{"26":{}},"tags":{}}],["fresh",{"_index":705,"title":{},"content":{"15":{}},"tags":{}}],["friend",{"_index":38,"title":{},"content":{"2":{},"5":{},"14":{},"22":{},"31":{}},"tags":{}}],["friendli",{"_index":152,"title":{"1":{}},"content":{"1":{},"22":{}},"tags":{}}],["frontend",{"_index":890,"title":{},"content":{"24":{}},"tags":{}}],["fuel",{"_index":810,"title":{},"content":{"22":{}},"tags":{}}],["full",{"_index":98,"title":{},"content":{"2":{},"16":{},"36":{}},"tags":{}}],["fulli",{"_index":104,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["function",{"_index":451,"title":{},"content":{"16":{},"37":{}},"tags":{}}],["further",{"_index":512,"title":{},"content":{"4":{},"5":{},"15":{},"22":{},"23":{},"25":{}},"tags":{}}],["furthermor",{"_index":683,"title":{},"content":{"15":{}},"tags":{}}],["futur",{"_index":177,"title":{},"content":{"1":{},"16":{},"21":{},"22":{},"23":{},"24":{},"40":{}},"tags":{}}],["future develop",{"_index":235,"title":{},"content":{},"tags":{"1":{}}}],["future featur",{"_index":970,"title":{},"content":{},"tags":{"24":{}}}],["gain",{"_index":1086,"title":{},"content":{"33":{},"40":{}},"tags":{}}],["game",{"_index":5,"title":{"2":{}},"content":{"1":{},"2":{},"8":{},"9":{},"11":{},"14":{},"22":{},"23":{},"24":{},"25":{},"27":{},"28":{},"29":{},"31":{},"34":{},"36":{},"37":{},"40":{}},"tags":{"2":{},"17":{},"26":{},"31":{},"40":{}}}],["game develop",{"_index":964,"title":{},"content":{},"tags":{"24":{}}}],["gamehub",{"_index":520,"title":{"11":{}},"content":{"5":{},"11":{}},"tags":{"4":{}}}],["gamehubapp.d",{"_index":623,"title":{},"content":{"11":{}},"tags":{}}],["gameplay",{"_index":1304,"title":{},"content":{"37":{}},"tags":{}}],["gamer",{"_index":200,"title":{},"content":{"1":{},"22":{}},"tags":{}}],["gameshelf",{"_index":518,"title":{"9":{}},"content":{"5":{},"9":{}},"tags":{"4":{}}}],["gameshelf.d",{"_index":606,"title":{},"content":{"9":{}},"tags":{}}],["gamestash",{"_index":517,"title":{"7":{}},"content":{"5":{},"7":{}},"tags":{"4":{}}}],["gamestash.d",{"_index":591,"title":{},"content":{"7":{}},"tags":{}}],["gamevau.lt",{"_index":598,"title":{},"content":{"8":{},"12":{},"15":{}},"tags":{}}],["gamevault",{"_index":1,"title":{"2":{},"8":{},"16":{},"17":{},"25":{},"30":{},"31":{},"32":{},"33":{},"40":{}},"content":{"2":{},"3":{},"5":{},"8":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"22":{},"23":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"39":{},"40":{}},"tags":{"1":{},"2":{},"4":{},"17":{},"23":{},"26":{},"31":{},"35":{},"40":{}}}],["gamevault app",{"_index":356,"title":{},"content":{},"tags":{"3":{}}}],["gamevault domain",{"_index":523,"title":{},"content":{},"tags":{"4":{}}}],["gamevault journey",{"_index":971,"title":{},"content":{},"tags":{"24":{}}}],["gamevault mileston",{"_index":817,"title":{},"content":{},"tags":{"22":{}}}],["gamevault'",{"_index":777,"title":{"27":{}},"content":{"22":{},"23":{},"27":{}},"tags":{}}],["gamevault999",{"_index":603,"title":{},"content":{"8":{}},"tags":{}}],["gamevault’",{"_index":1331,"title":{},"content":{"39":{}},"tags":{}}],["gaming commun",{"_index":966,"title":{},"content":{},"tags":{"24":{}}}],["gaming experi",{"_index":876,"title":{},"content":{},"tags":{"23":{}}}],["gaming platform",{"_index":228,"title":{},"content":{},"tags":{"1":{}}}],["gaming serv",{"_index":982,"title":{},"content":{},"tags":{"17":{}}}],["gap",{"_index":1281,"title":{},"content":{"36":{}},"tags":{}}],["gather",{"_index":186,"title":{},"content":{"1":{},"31":{}},"tags":{}}],["gave",{"_index":657,"title":{},"content":{"13":{}},"tags":{}}],["gener",{"_index":173,"title":{},"content":{"1":{},"16":{},"31":{}},"tags":{}}],["genr",{"_index":88,"title":{},"content":{"2":{}},"tags":{}}],["genuin",{"_index":460,"title":{},"content":{"16":{},"23":{}},"tags":{}}],["get",{"_index":1015,"title":{},"content":{"21":{}},"tags":{}}],["github",{"_index":269,"title":{},"content":{"3":{},"22":{},"23":{},"27":{},"31":{}},"tags":{"23":{}}}],["github issu",{"_index":824,"title":{},"content":{},"tags":{"22":{}}}],["give",{"_index":57,"title":{},"content":{"2":{},"13":{},"33":{},"36":{},"37":{}},"tags":{}}],["glimps",{"_index":877,"title":{"24":{}},"content":{},"tags":{}}],["go",{"_index":322,"title":{},"content":{"3":{},"22":{},"23":{},"25":{},"27":{},"33":{}},"tags":{}}],["goal",{"_index":448,"title":{},"content":{"16":{},"22":{},"27":{}},"tags":{}}],["gog",{"_index":26,"title":{},"content":{"2":{}},"tags":{}}],["golden",{"_index":983,"title":{},"content":{"18":{}},"tags":{}}],["good",{"_index":706,"title":{},"content":{"15":{}},"tags":{}}],["goodby",{"_index":929,"title":{},"content":{"24":{}},"tags":{}}],["goodi",{"_index":1083,"title":{},"content":{"33":{}},"tags":{}}],["googl",{"_index":588,"title":{},"content":{"7":{},"8":{},"9":{},"10":{},"11":{},"36":{}},"tags":{}}],["grab",{"_index":1001,"title":{},"content":{"20":{}},"tags":{}}],["graphic",{"_index":703,"title":{},"content":{"15":{}},"tags":{}}],["grate",{"_index":114,"title":{},"content":{"2":{},"3":{},"24":{},"31":{}},"tags":{}}],["gratitud",{"_index":665,"title":{},"content":{"13":{},"22":{},"23":{}},"tags":{"22":{}}}],["great",{"_index":484,"title":{},"content":{"14":{},"16":{},"22":{},"28":{}},"tags":{}}],["greatli",{"_index":178,"title":{},"content":{"1":{}},"tags":{}}],["ground",{"_index":1258,"title":{},"content":{"35":{}},"tags":{}}],["group",{"_index":243,"title":{},"content":{"3":{},"18":{}},"tags":{}}],["grow",{"_index":561,"title":{},"content":{"5":{},"22":{},"24":{}},"tags":{}}],["growth",{"_index":454,"title":{},"content":{"16":{}},"tags":{}}],["guid",{"_index":1325,"title":{},"content":{"38":{}},"tags":{}}],["guy",{"_index":10,"title":{},"content":{"2":{},"15":{},"17":{},"24":{}},"tags":{}}],["halloween",{"_index":1309,"title":{},"content":{"37":{}},"tags":{}}],["handl",{"_index":294,"title":{},"content":{"3":{}},"tags":{}}],["happen",{"_index":398,"title":{},"content":{"16":{},"23":{},"24":{},"28":{},"31":{}},"tags":{}}],["happi",{"_index":227,"title":{},"content":{"1":{},"16":{},"24":{},"25":{},"40":{}},"tags":{}}],["harass",{"_index":237,"title":{"3":{}},"content":{"3":{}},"tags":{"3":{}}}],["harbor",{"_index":519,"title":{"10":{}},"content":{"5":{},"10":{}},"tags":{"4":{}}}],["harborapp.d",{"_index":613,"title":{},"content":{"10":{}},"tags":{}}],["hard",{"_index":301,"title":{},"content":{"3":{},"16":{},"22":{},"25":{},"35":{}},"tags":{}}],["harm",{"_index":541,"title":{},"content":{"5":{}},"tags":{}}],["have",{"_index":1025,"title":{},"content":{"31":{}},"tags":{}}],["haven't",{"_index":793,"title":{},"content":{"22":{}},"tags":{}}],["head",{"_index":675,"title":{},"content":{"13":{},"14":{},"24":{},"25":{}},"tags":{}}],["health",{"_index":96,"title":{},"content":{"2":{}},"tags":{}}],["health monitor",{"_index":145,"title":{},"content":{},"tags":{"2":{}}}],["hear",{"_index":490,"title":{},"content":{"12":{},"13":{},"16":{}},"tags":{}}],["heart",{"_index":927,"title":{},"content":{"24":{},"31":{}},"tags":{}}],["heartfelt",{"_index":803,"title":{},"content":{"22":{},"23":{}},"tags":{}}],["heavi",{"_index":1121,"title":{},"content":{"34":{}},"tags":{}}],["hello",{"_index":155,"title":{},"content":{"1":{},"23":{},"24":{},"35":{}},"tags":{}}],["help",{"_index":160,"title":{"23":{}},"content":{"1":{},"3":{},"5":{},"18":{},"22":{},"23":{},"24":{},"33":{},"39":{},"40":{}},"tags":{}}],["here",{"_index":563,"title":{},"content":{"5":{},"13":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"33":{},"40":{}},"tags":{}}],["here'",{"_index":535,"title":{},"content":{"5":{},"18":{},"24":{}},"tags":{}}],["here’",{"_index":1293,"title":{},"content":{"37":{}},"tags":{}}],["hey",{"_index":9,"title":{},"content":{"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"17":{},"22":{},"25":{},"26":{},"31":{},"40":{}},"tags":{}}],["highli",{"_index":106,"title":{},"content":{"2":{},"22":{},"25":{}},"tags":{}}],["highlight",{"_index":898,"title":{},"content":{"24":{}},"tags":{}}],["hit",{"_index":886,"title":{},"content":{"24":{},"38":{}},"tags":{}}],["holodeck",{"_index":1166,"title":{},"content":{"25":{}},"tags":{}}],["home",{"_index":1027,"title":{},"content":{"31":{}},"tags":{}}],["hope",{"_index":134,"title":{},"content":{"2":{},"3":{},"23":{},"29":{},"39":{}},"tags":{}}],["hopefulli",{"_index":1118,"title":{},"content":{"34":{}},"tags":{}}],["horizon",{"_index":885,"title":{},"content":{"24":{}},"tags":{}}],["host",{"_index":4,"title":{"2":{}},"content":{"2":{},"12":{},"13":{},"16":{},"22":{},"31":{}},"tags":{}}],["hostabl",{"_index":1018,"title":{},"content":{"31":{}},"tags":{}}],["hoster",{"_index":961,"title":{},"content":{"24":{}},"tags":{}}],["https://api.rawg.io/api",{"_index":1233,"title":{},"content":{"28":{}},"tags":{}}],["https://forms.gle/cysurg6bqmxcxe3b8",{"_index":226,"title":{},"content":{"1":{}},"tags":{}}],["humbl",{"_index":315,"title":{},"content":{"3":{}},"tags":{}}],["hybrid model",{"_index":498,"title":{},"content":{},"tags":{"16":{}}}],["idea",{"_index":659,"title":{},"content":{"13":{},"23":{},"28":{}},"tags":{}}],["ident",{"_index":618,"title":{},"content":{"10":{}},"tags":{}}],["igdb",{"_index":1194,"title":{"26":{}},"content":{"27":{}},"tags":{"26":{}}}],["igdb'",{"_index":1212,"title":{},"content":{"27":{}},"tags":{}}],["igdb/twitch",{"_index":1277,"title":{},"content":{"36":{}},"tags":{}}],["imag",{"_index":904,"title":{},"content":{"20":{},"24":{},"36":{}},"tags":{}}],["imagin",{"_index":1029,"title":{},"content":{"31":{}},"tags":{}}],["immens",{"_index":769,"title":{},"content":{"22":{}},"tags":{}}],["impact",{"_index":333,"title":{},"content":{"3":{}},"tags":{}}],["implement",{"_index":95,"title":{"28":{}},"content":{"2":{},"23":{},"24":{},"28":{}},"tags":{}}],["import",{"_index":156,"title":{"21":{}},"content":{"1":{},"3":{},"4":{},"16":{}},"tags":{}}],["importantli",{"_index":1187,"title":{},"content":{"40":{}},"tags":{}}],["impos",{"_index":42,"title":{},"content":{"2":{}},"tags":{}}],["improv",{"_index":224,"title":{},"content":{"1":{},"3":{},"5":{},"16":{},"24":{},"36":{},"37":{},"40":{}},"tags":{"3":{},"40":{}}}],["incept",{"_index":1181,"title":{},"content":{"40":{}},"tags":{}}],["includ",{"_index":554,"title":{},"content":{"5":{},"25":{},"33":{},"40":{}},"tags":{}}],["inclus",{"_index":192,"title":{},"content":{"1":{},"3":{}},"tags":{"1":{}}}],["incorpor",{"_index":839,"title":{},"content":{"23":{}},"tags":{}}],["incorrect",{"_index":1200,"title":{},"content":{"26":{}},"tags":{}}],["incred",{"_index":329,"title":{},"content":{"3":{},"22":{},"23":{},"25":{},"36":{},"37":{},"40":{}},"tags":{}}],["indefinit",{"_index":431,"title":{},"content":{"16":{}},"tags":{}}],["index",{"_index":82,"title":{},"content":{"2":{}},"tags":{}}],["indi",{"_index":1047,"title":{},"content":{"31":{}},"tags":{}}],["individu",{"_index":244,"title":{},"content":{"3":{}},"tags":{}}],["influenc",{"_index":640,"title":{},"content":{"12":{}},"tags":{}}],["info",{"_index":1285,"title":{"38":{}},"content":{"36":{}},"tags":{}}],["inform",{"_index":261,"title":{},"content":{"3":{},"5":{},"22":{}},"tags":{}}],["infrastructur",{"_index":1111,"title":{},"content":{"33":{}},"tags":{}}],["innov",{"_index":1174,"title":{},"content":{"25":{}},"tags":{}}],["input",{"_index":188,"title":{},"content":{"1":{},"3":{},"16":{},"23":{},"40":{}},"tags":{}}],["inspir",{"_index":772,"title":{},"content":{"22":{},"23":{},"24":{}},"tags":{}}],["instal",{"_index":759,"title":{"22":{}},"content":{"20":{},"22":{},"24":{}},"tags":{}}],["installation pipelin",{"_index":822,"title":{},"content":{},"tags":{"22":{}}}],["instanc",{"_index":433,"title":{},"content":{"16":{}},"tags":{}}],["instead",{"_index":1222,"title":{},"content":{"28":{},"36":{}},"tags":{}}],["instruct",{"_index":1327,"title":{},"content":{"38":{}},"tags":{}}],["integr",{"_index":1102,"title":{},"content":{"25":{},"28":{},"33":{}},"tags":{}}],["intellig",{"_index":1282,"title":{},"content":{"36":{}},"tags":{}}],["intent",{"_index":480,"title":{},"content":{"16":{}},"tags":{}}],["interact",{"_index":991,"title":{},"content":{"18":{}},"tags":{}}],["interfac",{"_index":1101,"title":{},"content":{"25":{},"33":{}},"tags":{}}],["intern",{"_index":637,"title":{},"content":{"12":{}},"tags":{}}],["introduc",{"_index":0,"title":{"2":{}},"content":{"12":{},"23":{},"28":{},"29":{},"36":{}},"tags":{}}],["intuit",{"_index":643,"title":{},"content":{"12":{},"25":{}},"tags":{}}],["invalu",{"_index":804,"title":{},"content":{"22":{},"23":{}},"tags":{}}],["invest",{"_index":1064,"title":{},"content":{"31":{}},"tags":{}}],["invit",{"_index":111,"title":{},"content":{"2":{},"22":{},"23":{}},"tags":{}}],["involv",{"_index":870,"title":{},"content":{"23":{}},"tags":{}}],["isn't",{"_index":327,"title":{},"content":{"3":{},"16":{},"31":{}},"tags":{}}],["issu",{"_index":252,"title":{},"content":{"3":{},"22":{},"23":{},"26":{},"27":{}},"tags":{}}],["it'",{"_index":392,"title":{},"content":{"14":{},"16":{},"22":{},"24":{},"26":{},"31":{},"33":{},"40":{}},"tags":{}}],["jellyfin",{"_index":54,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["job",{"_index":474,"title":{},"content":{"16":{},"31":{}},"tags":{}}],["join",{"_index":127,"title":{"17":{},"19":{}},"content":{"2":{},"14":{},"22":{},"23":{},"24":{},"34":{}},"tags":{}}],["journey",{"_index":135,"title":{},"content":{"2":{},"13":{},"22":{},"23":{},"25":{},"40":{}},"tags":{}}],["joy",{"_index":303,"title":{},"content":{"3":{},"25":{}},"tags":{}}],["juggl",{"_index":1049,"title":{},"content":{"31":{}},"tags":{}}],["juli",{"_index":215,"title":{},"content":{"1":{}},"tags":{}}],["justifi",{"_index":1063,"title":{},"content":{"31":{}},"tags":{}}],["kairubyt",{"_index":664,"title":{},"content":{"13":{}},"tags":{}}],["kanban",{"_index":852,"title":{},"content":{"23":{}},"tags":{}}],["kanban board",{"_index":874,"title":{},"content":{},"tags":{"23":{}}}],["keep",{"_index":449,"title":{},"content":{"13":{},"16":{},"22":{},"24":{},"33":{},"34":{},"39":{}},"tags":{}}],["key",{"_index":536,"title":{},"content":{"5":{},"23":{},"24":{},"27":{},"40":{}},"tags":{}}],["keyhol",{"_index":741,"title":{},"content":{"14":{}},"tags":{}}],["keyhole represent",{"_index":756,"title":{},"content":{},"tags":{"14":{}}}],["kick",{"_index":996,"title":{},"content":{"19":{}},"tags":{}}],["kind",{"_index":330,"title":{},"content":{"3":{},"13":{}},"tags":{}}],["kindli",{"_index":180,"title":{},"content":{"1":{},"3":{},"22":{},"23":{}},"tags":{}}],["knee",{"_index":925,"title":{},"content":{"24":{}},"tags":{}}],["know",{"_index":654,"title":{},"content":{"13":{},"23":{},"31":{}},"tags":{}}],["known",{"_index":620,"title":{},"content":{"10":{}},"tags":{}}],["kofi",{"_index":321,"title":{},"content":{"3":{}},"tags":{}}],["larg",{"_index":976,"title":{},"content":{"17":{},"31":{}},"tags":{}}],["last",{"_index":670,"title":{},"content":{"13":{},"19":{},"26":{},"31":{}},"tags":{}}],["lastli",{"_index":689,"title":{},"content":{"15":{}},"tags":{}}],["later",{"_index":1012,"title":{},"content":{"21":{}},"tags":{}}],["latest",{"_index":988,"title":{},"content":{"18":{},"39":{}},"tags":{}}],["launch",{"_index":68,"title":{},"content":{"2":{},"17":{},"22":{},"31":{},"40":{}},"tags":{}}],["launch/instal",{"_index":1315,"title":{},"content":{"37":{}},"tags":{}}],["left",{"_index":940,"title":{},"content":{"24":{}},"tags":{}}],["lemmi",{"_index":130,"title":{},"content":{"2":{},"15":{},"22":{}},"tags":{}}],["lemmy commun",{"_index":720,"title":{},"content":{},"tags":{"15":{}}}],["lemmy community launch",{"_index":826,"title":{},"content":{},"tags":{"22":{}}}],["lemmy forum",{"_index":148,"title":{},"content":{},"tags":{"2":{}}}],["let'",{"_index":345,"title":{},"content":{"3":{},"4":{},"14":{},"22":{},"24":{}},"tags":{}}],["li",{"_index":410,"title":{},"content":{"16":{}},"tags":{}}],["librari",{"_index":624,"title":{},"content":{"11":{},"24":{},"25":{}},"tags":{}}],["life",{"_index":334,"title":{},"content":{"3":{},"34":{}},"tags":{}}],["light",{"_index":510,"title":{},"content":{"4":{},"24":{},"33":{}},"tags":{}}],["like",{"_index":1228,"title":{},"content":{"28":{}},"tags":{}}],["limit",{"_index":841,"title":{},"content":{"21":{},"23":{},"39":{}},"tags":{}}],["link",{"_index":122,"title":{},"content":{"1":{},"2":{},"28":{}},"tags":{}}],["linkedin",{"_index":260,"title":{},"content":{"3":{}},"tags":{}}],["list",{"_index":1014,"title":{},"content":{"21":{}},"tags":{}}],["listen",{"_index":158,"title":{},"content":{"1":{}},"tags":{}}],["live",{"_index":795,"title":{},"content":{"22":{},"25":{}},"tags":{}}],["local",{"_index":469,"title":{},"content":{"16":{}},"tags":{}}],["log",{"_index":94,"title":{},"content":{"2":{},"20":{}},"tags":{}}],["logo",{"_index":679,"title":{"15":{}},"content":{"14":{},"15":{}},"tags":{}}],["logo concept discuss",{"_index":757,"title":{},"content":{},"tags":{"14":{}}}],["logo deciph",{"_index":754,"title":{},"content":{},"tags":{"14":{}}}],["long",{"_index":323,"title":{},"content":{"3":{},"16":{},"31":{},"33":{}},"tags":{}}],["longer",{"_index":478,"title":{},"content":{"16":{},"25":{}},"tags":{}}],["look",{"_index":359,"title":{"16":{},"24":{}},"content":{"16":{},"22":{},"24":{},"34":{},"37":{}},"tags":{}}],["loss",{"_index":466,"title":{},"content":{"16":{}},"tags":{}}],["lot",{"_index":806,"title":{},"content":{"22":{},"24":{},"28":{}},"tags":{}}],["love",{"_index":770,"title":{},"content":{"22":{},"28":{},"30":{}},"tags":{}}],["love for gamevault",{"_index":820,"title":{},"content":{},"tags":{"22":{}}}],["loyal",{"_index":1054,"title":{},"content":{"31":{}},"tags":{}}],["ly",{"_index":1026,"title":{},"content":{"31":{}},"tags":{}}],["made",{"_index":309,"title":{},"content":{"3":{},"13":{}},"tags":{}}],["main",{"_index":447,"title":{},"content":{"16":{}},"tags":{}}],["mainli",{"_index":860,"title":{},"content":{"23":{}},"tags":{}}],["maintain",{"_index":295,"title":{},"content":{"3":{},"16":{},"31":{}},"tags":{}}],["major",{"_index":1248,"title":{"35":{},"37":{}},"content":{},"tags":{}}],["make",{"_index":165,"title":{},"content":{"1":{},"3":{},"5":{},"10":{},"15":{},"16":{},"22":{},"23":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"33":{},"34":{},"36":{},"37":{},"39":{},"40":{}},"tags":{}}],["manag",{"_index":625,"title":{},"content":{"11":{},"22":{},"29":{},"37":{}},"tags":{}}],["mani",{"_index":835,"title":{},"content":{"23":{}},"tags":{}}],["markdown",{"_index":1318,"title":{},"content":{"37":{}},"tags":{}}],["market",{"_index":576,"title":{"6":{}},"content":{"5":{},"10":{},"13":{},"25":{},"31":{}},"tags":{}}],["market analysi",{"_index":521,"title":{},"content":{},"tags":{"4":{}}}],["massiv",{"_index":1147,"title":{},"content":{"25":{},"35":{}},"tags":{}}],["master",{"_index":271,"title":{},"content":{"3":{}},"tags":{}}],["matter",{"_index":207,"title":{},"content":{"1":{}},"tags":{}}],["mean",{"_index":337,"title":{},"content":{"3":{},"16":{},"31":{}},"tags":{}}],["meantim",{"_index":674,"title":{},"content":{"13":{},"15":{}},"tags":{}}],["measur",{"_index":293,"title":{},"content":{"3":{}},"tags":{}}],["media",{"_index":1300,"title":{},"content":{"37":{}},"tags":{}}],["meet",{"_index":371,"title":{},"content":{"16":{},"21":{},"23":{}},"tags":{}}],["member",{"_index":277,"title":{},"content":{"3":{},"16":{},"21":{},"22":{},"23":{},"24":{},"28":{}},"tags":{}}],["memor",{"_index":647,"title":{},"content":{"12":{}},"tags":{}}],["mention",{"_index":573,"title":{},"content":{"5":{},"13":{},"24":{},"26":{}},"tags":{}}],["metadata",{"_index":86,"title":{"27":{}},"content":{"2":{},"26":{},"27":{},"36":{}},"tags":{"2":{},"26":{}}}],["metadata framework",{"_index":1262,"title":{},"content":{},"tags":{"35":{}}}],["metadata—if",{"_index":1284,"title":{},"content":{"36":{}},"tags":{}}],["metro",{"_index":1161,"title":{},"content":{"25":{}},"tags":{}}],["microsoft",{"_index":729,"title":{"25":{}},"content":{"14":{},"20":{},"22":{},"25":{}},"tags":{}}],["microsoft stor",{"_index":981,"title":{},"content":{},"tags":{"17":{}}}],["microsoft store publ",{"_index":750,"title":{},"content":{},"tags":{"14":{}}}],["migrat",{"_index":678,"title":{"14":{},"15":{}},"content":{"14":{},"15":{},"25":{},"36":{},"38":{}},"tags":{}}],["migration fin",{"_index":724,"title":{},"content":{},"tags":{"15":{}}}],["mile",{"_index":863,"title":{},"content":{"23":{}},"tags":{}}],["mileston",{"_index":763,"title":{},"content":{"22":{}},"tags":{}}],["million",{"_index":444,"title":{},"content":{"16":{}},"tags":{}}],["mimick",{"_index":1220,"title":{},"content":{"28":{}},"tags":{}}],["mind",{"_index":1036,"title":{},"content":{"31":{},"34":{}},"tags":{}}],["minim",{"_index":189,"title":{},"content":{"1":{},"28":{}},"tags":{}}],["mobil",{"_index":1146,"title":{},"content":{"25":{}},"tags":{}}],["mockup",{"_index":935,"title":{},"content":{"24":{}},"tags":{}}],["mod",{"_index":922,"title":{},"content":{"24":{}},"tags":{}}],["model",{"_index":1068,"title":{},"content":{"31":{}},"tags":{}}],["moder",{"_index":289,"title":{},"content":{"3":{}},"tags":{}}],["modern",{"_index":942,"title":{},"content":{"24":{}},"tags":{}}],["modifi",{"_index":369,"title":{},"content":{"16":{}},"tags":{}}],["moment",{"_index":373,"title":{},"content":{"16":{},"23":{},"25":{}},"tags":{}}],["monet",{"_index":455,"title":{},"content":{"16":{}},"tags":{}}],["monetari",{"_index":326,"title":{},"content":{"3":{}},"tags":{}}],["monitor",{"_index":97,"title":{},"content":{"2":{}},"tags":{}}],["month",{"_index":1138,"title":{},"content":{"25":{},"35":{},"36":{}},"tags":{}}],["monthli",{"_index":1055,"title":{},"content":{"31":{},"33":{},"40":{}},"tags":{}}],["more",{"_index":49,"title":{},"content":{"1":{},"2":{},"16":{},"22":{},"24":{},"25":{},"27":{},"33":{},"37":{},"40":{}},"tags":{}}],["moreov",{"_index":272,"title":{},"content":{"3":{},"23":{}},"tags":{}}],["mostli",{"_index":836,"title":{},"content":{"23":{}},"tags":{}}],["motiv",{"_index":325,"title":{},"content":{"3":{},"5":{},"33":{}},"tags":{"3":{}}}],["move",{"_index":807,"title":{},"content":{"22":{},"29":{},"36":{}},"tags":{}}],["much",{"_index":869,"title":{},"content":{"23":{},"28":{},"35":{},"36":{}},"tags":{}}],["multi",{"_index":91,"title":{},"content":{"2":{}},"tags":{}}],["multi-user authent",{"_index":143,"title":{},"content":{},"tags":{"2":{}}}],["multipl",{"_index":1050,"title":{},"content":{"31":{}},"tags":{}}],["mysteri",{"_index":738,"title":{},"content":{"14":{}},"tags":{}}],["name",{"_index":153,"title":{"1":{},"4":{}},"content":{"1":{},"3":{},"4":{},"5":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{}},"tags":{}}],["name migration progress",{"_index":715,"title":{},"content":{},"tags":{"15":{}}}],["namedpip",{"_index":1100,"title":{},"content":{"33":{}},"tags":{}}],["narr",{"_index":281,"title":{},"content":{"3":{}},"tags":{}}],["natur",{"_index":360,"title":{"16":{}},"content":{},"tags":{}}],["navig",{"_index":780,"title":{},"content":{"22":{},"25":{}},"tags":{}}],["nearli",{"_index":694,"title":{},"content":{"15":{}},"tags":{}}],["necessarili",{"_index":1084,"title":{},"content":{"33":{}},"tags":{}}],["need",{"_index":108,"title":{},"content":{"1":{},"2":{},"16":{},"18":{},"23":{},"25":{},"31":{},"33":{},"34":{}},"tags":{}}],["neg",{"_index":280,"title":{},"content":{"3":{}},"tags":{}}],["negative narr",{"_index":352,"title":{},"content":{},"tags":{"3":{}}}],["neglect",{"_index":472,"title":{},"content":{"16":{}},"tags":{}}],["network",{"_index":736,"title":{},"content":{"14":{}},"tags":{}}],["never",{"_index":1028,"title":{},"content":{"25":{},"31":{}},"tags":{}}],["nevertheless",{"_index":882,"title":{},"content":{"24":{}},"tags":{}}],["new",{"_index":150,"title":{"1":{},"4":{},"15":{},"26":{},"27":{},"29":{},"36":{},"37":{}},"content":{"1":{},"4":{},"12":{},"13":{},"14":{},"15":{},"17":{},"22":{},"23":{},"24":{},"25":{},"28":{},"29":{},"31":{},"33":{},"35":{},"36":{},"37":{},"38":{}},"tags":{}}],["new logo",{"_index":722,"title":{},"content":{},"tags":{"15":{}}}],["new nam",{"_index":229,"title":{},"content":{},"tags":{"1":{}}}],["new name announc",{"_index":522,"title":{},"content":{},"tags":{"4":{}}}],["newslett",{"_index":671,"title":{},"content":{"13":{}},"tags":{}}],["next",{"_index":629,"title":{"12":{},"34":{}},"content":{"15":{},"21":{},"34":{},"40":{}},"tags":{}}],["nice",{"_index":1088,"title":{},"content":{"33":{}},"tags":{}}],["note",{"_index":1008,"title":{"21":{}},"content":{"37":{}},"tags":{"35":{}}}],["noth",{"_index":458,"title":{},"content":{"16":{}},"tags":{}}],["notif",{"_index":865,"title":{},"content":{"23":{}},"tags":{}}],["notifi",{"_index":1133,"title":{},"content":{"34":{}},"tags":{}}],["november upd",{"_index":973,"title":{},"content":{},"tags":{"24":{}}}],["now",{"_index":29,"title":{"17":{},"25":{},"40":{}},"content":{"1":{},"2":{},"5":{},"14":{},"15":{},"16":{},"22":{},"24":{},"25":{},"28":{},"29":{},"33":{},"36":{},"37":{},"40":{}},"tags":{}}],["number",{"_index":1009,"title":{},"content":{"21":{},"36":{}},"tags":{}}],["oblig",{"_index":471,"title":{},"content":{"16":{}},"tags":{}}],["offer",{"_index":56,"title":{},"content":{"1":{},"2":{},"7":{},"16":{},"31":{},"33":{},"39":{},"40":{}},"tags":{}}],["offici",{"_index":764,"title":{},"content":{"22":{},"27":{},"36":{},"40":{}},"tags":{}}],["official instal",{"_index":818,"title":{},"content":{},"tags":{"22":{}}}],["offlin",{"_index":74,"title":{},"content":{"2":{}},"tags":{}}],["old",{"_index":634,"title":{},"content":{"12":{}},"tags":{}}],["older",{"_index":1321,"title":{},"content":{"38":{}},"tags":{}}],["on",{"_index":382,"title":{},"content":{"9":{},"12":{},"16":{},"19":{},"28":{},"31":{},"33":{},"36":{},"39":{}},"tags":{}}],["onc",{"_index":713,"title":{},"content":{"15":{},"24":{},"34":{}},"tags":{}}],["ongo",{"_index":771,"title":{},"content":{"22":{},"23":{}},"tags":{}}],["onlin",{"_index":601,"title":{},"content":{"8":{}},"tags":{}}],["open",{"_index":51,"title":{},"content":{"2":{},"3":{},"15":{},"16":{},"34":{},"40":{}},"tags":{}}],["open-sourc",{"_index":495,"title":{},"content":{},"tags":{"16":{}}}],["opencollect",{"_index":438,"title":{},"content":{"16":{}},"tags":{}}],["opinion",{"_index":845,"title":{},"content":{"23":{}},"tags":{}}],["opportun",{"_index":559,"title":{},"content":{"5":{},"21":{}},"tags":{}}],["opposit",{"_index":1021,"title":{},"content":{"31":{}},"tags":{}}],["optim",{"_index":894,"title":{},"content":{"24":{},"36":{},"40":{}},"tags":{}}],["option",{"_index":1066,"title":{},"content":{"31":{}},"tags":{}}],["order",{"_index":453,"title":{},"content":{"16":{}},"tags":{}}],["organ",{"_index":851,"title":{},"content":{"23":{}},"tags":{}}],["origin",{"_index":24,"title":{},"content":{"2":{}},"tags":{}}],["other",{"_index":419,"title":{},"content":{"16":{},"22":{},"31":{}},"tags":{}}],["our",{"_index":595,"title":{},"content":{"7":{}},"tags":{}}],["ourselv",{"_index":633,"title":{},"content":{"12":{},"31":{}},"tags":{}}],["out",{"_index":789,"title":{"40":{}},"content":{"22":{},"24":{},"27":{},"31":{},"33":{},"38":{}},"tags":{}}],["outsid",{"_index":639,"title":{},"content":{"12":{}},"tags":{}}],["over",{"_index":60,"title":{},"content":{"2":{},"4":{},"13":{},"16":{},"22":{},"24":{},"25":{},"36":{},"37":{}},"tags":{}}],["overhaul",{"_index":1305,"title":{},"content":{"37":{}},"tags":{}}],["overwhelm",{"_index":1040,"title":{},"content":{"31":{}},"tags":{}}],["ownership",{"_index":648,"title":{},"content":{"12":{}},"tags":{}}],["page",{"_index":439,"title":{},"content":{"16":{},"33":{}},"tags":{}}],["pagin",{"_index":103,"title":{},"content":{"2":{}},"tags":{}}],["parent",{"_index":1295,"title":{},"content":{"37":{}},"tags":{}}],["parental control",{"_index":1264,"title":{},"content":{},"tags":{"35":{}}}],["part",{"_index":799,"title":{},"content":{"17":{},"18":{},"22":{},"23":{},"24":{},"25":{}},"tags":{}}],["parti",{"_index":1104,"title":{},"content":{"33":{},"36":{}},"tags":{}}],["particip",{"_index":175,"title":{},"content":{"1":{},"5":{},"13":{},"20":{},"23":{}},"tags":{}}],["particular",{"_index":1024,"title":{},"content":{"31":{}},"tags":{}}],["partnership",{"_index":1126,"title":{"26":{}},"content":{"27":{},"34":{},"36":{},"40":{}},"tags":{"26":{},"40":{}}}],["pass",{"_index":1156,"title":{},"content":{"25":{}},"tags":{}}],["passion",{"_index":132,"title":{},"content":{"2":{},"23":{},"39":{}},"tags":{}}],["password",{"_index":1240,"title":{},"content":{"29":{}},"tags":{}}],["past",{"_index":14,"title":{},"content":{"2":{}},"tags":{}}],["patienc",{"_index":1290,"title":{},"content":{"36":{}},"tags":{}}],["paus",{"_index":1238,"title":{},"content":{"29":{}},"tags":{}}],["pay",{"_index":896,"title":{},"content":{"24":{},"31":{}},"tags":{}}],["pc",{"_index":1140,"title":{},"content":{"25":{}},"tags":{}}],["peak",{"_index":1202,"title":{},"content":{"26":{}},"tags":{}}],["peek",{"_index":934,"title":{},"content":{"18":{},"24":{}},"tags":{}}],["penni",{"_index":958,"title":{},"content":{"24":{}},"tags":{}}],["peopl",{"_index":531,"title":{},"content":{"5":{},"31":{}},"tags":{}}],["per",{"_index":437,"title":{},"content":{"16":{}},"tags":{}}],["perform",{"_index":1186,"title":{},"content":{"40":{}},"tags":{}}],["period",{"_index":1241,"title":{},"content":{"29":{}},"tags":{}}],["person",{"_index":417,"title":{},"content":{"16":{},"22":{}},"tags":{}}],["perspect",{"_index":482,"title":{},"content":{"16":{}},"tags":{}}],["pet",{"_index":1171,"title":{},"content":{"25":{}},"tags":{}}],["phalcod",{"_index":1085,"title":{},"content":{"30":{},"33":{}},"tags":{}}],["phalcode/gamevault",{"_index":1002,"title":{},"content":{"20":{}},"tags":{}}],["phase",{"_index":995,"title":{},"content":{"19":{},"36":{},"40":{}},"tags":{}}],["phone",{"_index":1135,"title":{"25":{}},"content":{"25":{}},"tags":{}}],["pictur",{"_index":1095,"title":{},"content":{"30":{},"33":{},"40":{}},"tags":{}}],["piec",{"_index":746,"title":{},"content":{"14":{},"36":{}},"tags":{}}],["ping",{"_index":794,"title":{},"content":{"22":{}},"tags":{}}],["pipelin",{"_index":778,"title":{},"content":{"22":{}},"tags":{}}],["piraci",{"_index":539,"title":{},"content":{"5":{}},"tags":{}}],["place",{"_index":313,"title":{},"content":{"3":{},"31":{}},"tags":{}}],["plan",{"_index":850,"title":{},"content":{"23":{},"27":{},"28":{},"33":{},"40":{}},"tags":{}}],["platform",{"_index":6,"title":{"2":{}},"content":{"1":{},"2":{},"14":{},"23":{},"25":{},"31":{},"40":{}},"tags":{"23":{},"40":{}}}],["platform valu",{"_index":234,"title":{},"content":{},"tags":{"1":{}}}],["platform'",{"_index":163,"title":{},"content":{"1":{}},"tags":{}}],["play",{"_index":35,"title":{},"content":{"2":{},"22":{}},"tags":{}}],["playabl",{"_index":1297,"title":{},"content":{"37":{}},"tags":{}}],["player",{"_index":1301,"title":{},"content":{"37":{}},"tags":{}}],["playnit",{"_index":1106,"title":{},"content":{"33":{}},"tags":{}}],["playtim",{"_index":70,"title":{},"content":{"2":{}},"tags":{}}],["pleas",{"_index":126,"title":{"23":{}},"content":{"1":{},"2":{},"5":{},"16":{},"22":{},"30":{},"38":{}},"tags":{}}],["plex",{"_index":405,"title":{},"content":{"16":{}},"tags":{}}],["plug",{"_index":1209,"title":{},"content":{"27":{}},"tags":{}}],["plugin",{"_index":1276,"title":{},"content":{"36":{}},"tags":{}}],["plugin system",{"_index":1263,"title":{},"content":{},"tags":{"35":{}}}],["podcast",{"_index":667,"title":{},"content":{"13":{}},"tags":{}}],["point",{"_index":256,"title":{},"content":{"3":{}},"tags":{}}],["polish",{"_index":844,"title":{},"content":{"23":{},"34":{}},"tags":{}}],["poll",{"_index":169,"title":{},"content":{"1":{},"3":{},"4":{},"5":{},"23":{},"24":{},"27":{},"34":{}},"tags":{"1":{},"23":{}}}],["poll result",{"_index":514,"title":{},"content":{},"tags":{"4":{}}}],["pop",{"_index":1291,"title":{},"content":{"36":{}},"tags":{}}],["popular",{"_index":434,"title":{},"content":{"8":{},"11":{},"16":{}},"tags":{}}],["posit",{"_index":332,"title":{},"content":{"3":{}},"tags":{}}],["possibl",{"_index":328,"title":{},"content":{"3":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"30":{},"36":{}},"tags":{}}],["post",{"_index":205,"title":{},"content":{"1":{},"15":{},"22":{},"26":{}},"tags":{}}],["potenti",{"_index":171,"title":{},"content":{"1":{},"34":{}},"tags":{}}],["pour",{"_index":833,"title":{},"content":{"23":{},"31":{}},"tags":{}}],["power",{"_index":1139,"title":{},"content":{"25":{}},"tags":{}}],["prefer",{"_index":1210,"title":{},"content":{"27":{}},"tags":{}}],["premium",{"_index":1087,"title":{},"content":{"33":{},"39":{},"40":{}},"tags":{}}],["prerequisit",{"_index":1000,"title":{"20":{}},"content":{},"tags":{}}],["present",{"_index":481,"title":{},"content":{"16":{}},"tags":{}}],["prevent",{"_index":418,"title":{},"content":{"16":{}},"tags":{}}],["previou",{"_index":687,"title":{},"content":{"15":{}},"tags":{}}],["primari",{"_index":473,"title":{},"content":{"16":{}},"tags":{}}],["primarili",{"_index":1211,"title":{},"content":{"27":{}},"tags":{}}],["priorit",{"_index":831,"title":{"23":{}},"content":{"21":{},"23":{},"36":{}},"tags":{}}],["probabl",{"_index":1119,"title":{},"content":{"34":{}},"tags":{}}],["problem",{"_index":1023,"title":{},"content":{"26":{},"31":{}},"tags":{}}],["proceed",{"_index":580,"title":{},"content":{"5":{}},"tags":{}}],["process",{"_index":167,"title":{},"content":{"1":{},"4":{},"12":{},"22":{}},"tags":{}}],["product",{"_index":464,"title":{"35":{}},"content":{"16":{},"31":{},"33":{},"35":{}},"tags":{}}],["profil",{"_index":1094,"title":{},"content":{"30":{},"33":{},"40":{}},"tags":{}}],["profit",{"_index":420,"title":{},"content":{"16":{}},"tags":{}}],["program",{"_index":975,"title":{"17":{},"18":{}},"content":{"17":{},"21":{}},"tags":{}}],["progress",{"_index":71,"title":{},"content":{"2":{},"3":{},"15":{},"24":{},"34":{}},"tags":{}}],["project",{"_index":154,"title":{"1":{}},"content":{"1":{},"3":{},"16":{},"23":{},"24":{},"31":{},"33":{},"39":{}},"tags":{}}],["project'",{"_index":658,"title":{},"content":{"13":{}},"tags":{}}],["promot",{"_index":733,"title":{},"content":{"14":{},"24":{}},"tags":{}}],["promptli",{"_index":285,"title":{},"content":{"3":{}},"tags":{}}],["protect",{"_index":412,"title":{},"content":{"16":{},"29":{}},"tags":{}}],["provid",{"_index":44,"title":{"27":{}},"content":{"1":{},"2":{},"5":{},"16":{},"22":{},"27":{},"36":{}},"tags":{}}],["public",{"_index":310,"title":{},"content":{"3":{}},"tags":{"3":{}}}],["publish",{"_index":728,"title":{},"content":{"14":{}},"tags":{}}],["purpos",{"_index":390,"title":{},"content":{"12":{},"16":{}},"tags":{}}],["push",{"_index":773,"title":{},"content":{"22":{},"25":{}},"tags":{}}],["puzzl",{"_index":1157,"title":{},"content":{"25":{}},"tags":{}}],["q&a",{"_index":1110,"title":{},"content":{"33":{}},"tags":{}}],["qualiti",{"_index":1230,"title":{},"content":{"28":{}},"tags":{}}],["question",{"_index":124,"title":{},"content":{"2":{},"3":{}},"tags":{}}],["quick",{"_index":677,"title":{"15":{}},"content":{"25":{},"37":{}},"tags":{}}],["quit",{"_index":655,"title":{},"content":{"13":{},"31":{}},"tags":{}}],["r/phalcod",{"_index":691,"title":{},"content":{"15":{}},"tags":{}}],["racism",{"_index":265,"title":{},"content":{"3":{}},"tags":{}}],["racist",{"_index":298,"title":{},"content":{"3":{}},"tags":{"3":{}}}],["random",{"_index":911,"title":{},"content":{"24":{}},"tags":{}}],["rate",{"_index":813,"title":{},"content":{"22":{}},"tags":{}}],["rawg",{"_index":89,"title":{"26":{},"28":{}},"content":{"2":{},"27":{},"28":{},"34":{},"36":{}},"tags":{"26":{}}}],["rawg api",{"_index":144,"title":{},"content":{},"tags":{"2":{}}}],["rawg.io",{"_index":1196,"title":{},"content":{"26":{}},"tags":{}}],["rawg_api_url",{"_index":1224,"title":{},"content":{"28":{}},"tags":{}}],["reach",{"_index":762,"title":{},"content":{"22":{},"38":{}},"tags":{}}],["read",{"_index":787,"title":{},"content":{"22":{}},"tags":{}}],["readabl",{"_index":1320,"title":{},"content":{"37":{}},"tags":{}}],["realli",{"_index":1244,"title":{},"content":{"30":{}},"tags":{}}],["reason",{"_index":267,"title":{},"content":{"3":{}},"tags":{}}],["receiv",{"_index":273,"title":{},"content":{"3":{},"31":{}},"tags":{}}],["recent",{"_index":915,"title":{},"content":{"24":{},"27":{},"29":{}},"tags":{}}],["recogn",{"_index":381,"title":{},"content":{"5":{},"16":{}},"tags":{}}],["recommend",{"_index":546,"title":{},"content":{"5":{},"22":{}},"tags":{}}],["reddit",{"_index":129,"title":{},"content":{"2":{},"5":{}},"tags":{}}],["reddit forum",{"_index":147,"title":{},"content":{},"tags":{"2":{}}}],["redesign",{"_index":917,"title":{},"content":{"24":{},"37":{}},"tags":{}}],["redirect",{"_index":686,"title":{},"content":{"15":{},"28":{}},"tags":{}}],["reel",{"_index":899,"title":{},"content":{"24":{}},"tags":{}}],["refactor",{"_index":1128,"title":{},"content":{"34":{},"40":{}},"tags":{}}],["referr",{"_index":801,"title":{},"content":{"22":{}},"tags":{}}],["refin",{"_index":843,"title":{},"content":{"23":{},"33":{},"40":{}},"tags":{}}],["reflect",{"_index":162,"title":{},"content":{"1":{}},"tags":{}}],["refresh",{"_index":1306,"title":{},"content":{"37":{}},"tags":{}}],["regard",{"_index":692,"title":{},"content":{"15":{},"31":{}},"tags":{}}],["regardless",{"_index":72,"title":{},"content":{"2":{}},"tags":{}}],["regist",{"_index":650,"title":{},"content":{"12":{}},"tags":{}}],["registr",{"_index":1201,"title":{},"content":{"26":{}},"tags":{}}],["regular",{"_index":990,"title":{},"content":{"18":{}},"tags":{}}],["regularli",{"_index":796,"title":{},"content":{"22":{},"33":{}},"tags":{}}],["relat",{"_index":538,"title":{},"content":{"5":{},"10":{}},"tags":{}}],["releas",{"_index":672,"title":{},"content":{"13":{},"18":{},"22":{},"24":{},"25":{},"29":{},"31":{},"34":{},"35":{}},"tags":{"40":{}}}],["reli",{"_index":344,"title":{},"content":{"3":{},"31":{}},"tags":{}}],["reliabl",{"_index":948,"title":{},"content":{"24":{}},"tags":{}}],["relianc",{"_index":1122,"title":{},"content":{"34":{}},"tags":{}}],["remain",{"_index":696,"title":{},"content":{"15":{},"24":{},"28":{},"33":{}},"tags":{}}],["rememb",{"_index":342,"title":{},"content":{"3":{},"24":{}},"tags":{}}],["remov",{"_index":1013,"title":{},"content":{"21":{},"27":{}},"tags":{}}],["renam",{"_index":548,"title":{},"content":{"5":{}},"tags":{}}],["renaming app",{"_index":515,"title":{},"content":{},"tags":{"4":{}}}],["replac",{"_index":1214,"title":{"28":{}},"content":{"28":{}},"tags":{}}],["report",{"_index":118,"title":{},"content":{"2":{},"3":{},"23":{},"24":{}},"tags":{}}],["repositori",{"_index":1033,"title":{},"content":{"31":{}},"tags":{}}],["repres",{"_index":209,"title":{},"content":{"1":{},"14":{},"15":{}},"tags":{}}],["reput",{"_index":1185,"title":{},"content":{"40":{}},"tags":{}}],["request",{"_index":119,"title":{},"content":{"1":{},"2":{},"3":{},"22":{},"23":{},"24":{}},"tags":{}}],["requir",{"_index":425,"title":{},"content":{"16":{},"21":{},"24":{},"28":{},"38":{}},"tags":{}}],["reson",{"_index":584,"title":{},"content":{"5":{},"31":{}},"tags":{}}],["resourc",{"_index":426,"title":{},"content":{"16":{}},"tags":{}}],["respect",{"_index":341,"title":{},"content":{"3":{},"5":{}},"tags":{}}],["respons",{"_index":1038,"title":{},"content":{"31":{}},"tags":{}}],["restor",{"_index":909,"title":{},"content":{"24":{}},"tags":{}}],["restrict",{"_index":41,"title":{},"content":{"2":{},"37":{}},"tags":{}}],["result",{"_index":212,"title":{},"content":{"1":{},"4":{},"5":{},"7":{},"8":{},"9":{},"10":{},"11":{},"24":{},"26":{}},"tags":{}}],["resum",{"_index":726,"title":{},"content":{"14":{},"29":{}},"tags":{}}],["reveal",{"_index":711,"title":{},"content":{"15":{}},"tags":{}}],["revenu",{"_index":452,"title":{},"content":{"16":{}},"tags":{}}],["revenue gener",{"_index":500,"title":{},"content":{},"tags":{"16":{}}}],["revolution",{"_index":779,"title":{},"content":{"22":{}},"tags":{}}],["rewrit",{"_index":943,"title":{},"content":{"24":{}},"tags":{}}],["ride",{"_index":1115,"title":{},"content":{"33":{}},"tags":{}}],["right",{"_index":311,"title":{},"content":{"3":{},"22":{},"23":{},"24":{}},"tags":{}}],["rigor",{"_index":1288,"title":{},"content":{"36":{}},"tags":{}}],["roadmap",{"_index":840,"title":{},"content":{"23":{}},"tags":{"23":{}}}],["role",{"_index":792,"title":{},"content":{"22":{},"23":{}},"tags":{}}],["roll",{"_index":956,"title":{},"content":{"24":{},"33":{}},"tags":{}}],["rom",{"_index":919,"title":{},"content":{"24":{}},"tags":{}}],["room",{"_index":1108,"title":{},"content":{"33":{}},"tags":{}}],["rough",{"_index":1116,"title":{},"content":{"34":{}},"tags":{}}],["rugpul",{"_index":1075,"title":{},"content":{"33":{}},"tags":{}}],["run",{"_index":866,"title":{},"content":{"20":{},"23":{},"36":{},"38":{}},"tags":{}}],["rundown",{"_index":1294,"title":{},"content":{"37":{}},"tags":{}}],["safe",{"_index":296,"title":{},"content":{"3":{}},"tags":{}}],["safe environ",{"_index":353,"title":{},"content":{},"tags":{"3":{}}}],["save",{"_index":1286,"title":{},"content":{"36":{}},"tags":{}}],["savvi",{"_index":782,"title":{},"content":{"22":{}},"tags":{}}],["say",{"_index":1081,"title":{},"content":{"33":{},"40":{}},"tags":{}}],["scammi",{"_index":1073,"title":{},"content":{"33":{}},"tags":{}}],["scene",{"_index":400,"title":{},"content":{"16":{},"31":{}},"tags":{}}],["scraper",{"_index":1273,"title":{},"content":{"36":{}},"tags":{}}],["scratch",{"_index":1249,"title":{"35":{}},"content":{},"tags":{}}],["scratch—there’",{"_index":1257,"title":{},"content":{"35":{}},"tags":{}}],["seamless",{"_index":1159,"title":{},"content":{"25":{}},"tags":{}}],["seamlessli",{"_index":701,"title":{},"content":{"15":{},"27":{}},"tags":{}}],["search",{"_index":100,"title":{},"content":{"2":{},"3":{},"7":{},"8":{},"9":{},"10":{},"11":{},"26":{}},"tags":{}}],["season",{"_index":1311,"title":{},"content":{"37":{}},"tags":{}}],["secur",{"_index":66,"title":{},"content":{"2":{},"12":{}},"tags":{}}],["see",{"_index":364,"title":{},"content":{"16":{},"23":{},"25":{},"33":{},"34":{}},"tags":{}}],["seem",{"_index":1042,"title":{},"content":{"31":{}},"tags":{}}],["select",{"_index":181,"title":{},"content":{"1":{}},"tags":{}}],["self",{"_index":3,"title":{"2":{}},"content":{"2":{},"12":{},"13":{},"16":{},"22":{},"24":{},"31":{}},"tags":{}}],["self-host",{"_index":139,"title":{},"content":{},"tags":{"2":{},"40":{}}}],["self-hosted newslett",{"_index":526,"title":{},"content":{},"tags":{"4":{}}}],["selfhost",{"_index":666,"title":{},"content":{"13":{}},"tags":{}}],["selfhosted podcast",{"_index":525,"title":{},"content":{},"tags":{"4":{}}}],["sell",{"_index":421,"title":{},"content":{"16":{}},"tags":{}}],["separ",{"_index":1287,"title":{},"content":{"36":{}},"tags":{}}],["server",{"_index":40,"title":{},"content":{"2":{},"3":{},"12":{},"13":{},"14":{},"15":{},"16":{},"20":{},"22":{},"28":{},"30":{},"31":{},"35":{},"37":{},"38":{}},"tags":{}}],["server upd",{"_index":1261,"title":{},"content":{},"tags":{"35":{}}}],["server'",{"_index":64,"title":{},"content":{"2":{}},"tags":{}}],["servic",{"_index":1062,"title":{},"content":{"26":{},"31":{}},"tags":{}}],["set",{"_index":685,"title":{},"content":{"15":{},"24":{},"39":{}},"tags":{}}],["shadi",{"_index":1072,"title":{},"content":{"33":{}},"tags":{}}],["shape",{"_index":176,"title":{},"content":{"1":{},"23":{},"40":{}},"tags":{}}],["share",{"_index":28,"title":{},"content":{"1":{},"2":{},"3":{},"4":{},"5":{},"13":{},"14":{},"15":{},"16":{},"22":{},"25":{}},"tags":{}}],["sharing blog post",{"_index":827,"title":{},"content":{},"tags":{"22":{}}}],["shed",{"_index":509,"title":{},"content":{"4":{}},"tags":{}}],["ship",{"_index":939,"title":{},"content":{"24":{}},"tags":{}}],["shortli",{"_index":652,"title":{},"content":{"12":{}},"tags":{}}],["shoutout",{"_index":663,"title":{},"content":{"13":{},"15":{},"31":{}},"tags":{}}],["showcas",{"_index":891,"title":{},"content":{"24":{}},"tags":{}}],["signifi",{"_index":745,"title":{},"content":{"14":{}},"tags":{}}],["signific",{"_index":442,"title":{},"content":{"5":{},"16":{},"22":{},"27":{}},"tags":{}}],["silenc",{"_index":1019,"title":{},"content":{"31":{}},"tags":{}}],["silverlight",{"_index":1137,"title":{"25":{}},"content":{"25":{}},"tags":{}}],["similar",{"_index":594,"title":{},"content":{"7":{}},"tags":{}}],["simpl",{"_index":812,"title":{},"content":{"22":{},"31":{}},"tags":{}}],["simpli",{"_index":1155,"title":{},"content":{"25":{}},"tags":{}}],["simplifi",{"_index":783,"title":{},"content":{"22":{}},"tags":{}}],["simplifying game instal",{"_index":823,"title":{},"content":{},"tags":{"22":{}}}],["simultan",{"_index":744,"title":{},"content":{"14":{}},"tags":{}}],["sincer",{"_index":218,"title":{},"content":{"1":{}},"tags":{}}],["site",{"_index":628,"title":{},"content":{"11":{}},"tags":{}}],["situat",{"_index":254,"title":{},"content":{"3":{},"26":{}},"tags":{}}],["six",{"_index":1250,"title":{},"content":{"35":{}},"tags":{}}],["skin",{"_index":1312,"title":{},"content":{"37":{}},"tags":{}}],["slack",{"_index":945,"title":{},"content":{"24":{},"31":{}},"tags":{}}],["sleeker",{"_index":931,"title":{},"content":{"24":{},"37":{}},"tags":{}}],["slight",{"_index":1065,"title":{},"content":{"31":{}},"tags":{}}],["slightli",{"_index":377,"title":{},"content":{"16":{}},"tags":{}}],["slot",{"_index":1010,"title":{},"content":{"21":{}},"tags":{}}],["small",{"_index":318,"title":{},"content":{"3":{},"16":{},"22":{},"31":{},"33":{},"40":{}},"tags":{}}],["smooth",{"_index":1324,"title":{},"content":{"38":{}},"tags":{}}],["smoother",{"_index":1160,"title":{},"content":{"25":{}},"tags":{}}],["snag",{"_index":1329,"title":{},"content":{"38":{}},"tags":{}}],["sneak",{"_index":933,"title":{},"content":{"18":{},"24":{}},"tags":{}}],["social",{"_index":735,"title":{},"content":{"14":{}},"tags":{}}],["softwar",{"_index":366,"title":{},"content":{"16":{}},"tags":{"31":{}}}],["software develop",{"_index":496,"title":{},"content":{},"tags":{"16":{}}}],["software licens",{"_index":499,"title":{},"content":{},"tags":{"16":{}}}],["software upd",{"_index":965,"title":{},"content":{},"tags":{"24":{}}}],["sole",{"_index":429,"title":{},"content":{"5":{},"16":{},"22":{},"31":{}},"tags":{}}],["solut",{"_index":46,"title":{"26":{},"28":{}},"content":{"2":{},"28":{},"31":{},"34":{}},"tags":{"26":{}}}],["someth",{"_index":811,"title":{},"content":{"22":{},"24":{},"36":{}},"tags":{}}],["sometim",{"_index":401,"title":{},"content":{"16":{}},"tags":{}}],["soon",{"_index":505,"title":{"31":{}},"content":{"4":{},"12":{},"14":{},"15":{},"22":{},"24":{},"25":{},"34":{}},"tags":{}}],["sort",{"_index":102,"title":{},"content":{"2":{}},"tags":{}}],["sought",{"_index":641,"title":{},"content":{"12":{}},"tags":{}}],["soul",{"_index":1051,"title":{},"content":{"31":{}},"tags":{}}],["sound",{"_index":626,"title":{},"content":{"11":{}},"tags":{}}],["soundtrack",{"_index":921,"title":{},"content":{"24":{}},"tags":{}}],["sourc",{"_index":17,"title":{"16":{}},"content":{"1":{},"2":{},"16":{},"36":{}},"tags":{}}],["source-avail",{"_index":138,"title":{},"content":{},"tags":{"1":{},"2":{}}}],["source-available softwar",{"_index":494,"title":{},"content":{},"tags":{"16":{}}}],["spam",{"_index":251,"title":{},"content":{"3":{}},"tags":{"3":{}}}],["spare",{"_index":1053,"title":{},"content":{"31":{}},"tags":{}}],["special",{"_index":653,"title":{"13":{}},"content":{"13":{}},"tags":{}}],["special thank",{"_index":524,"title":{},"content":{},"tags":{"4":{}}}],["specif",{"_index":1082,"title":{},"content":{"33":{}},"tags":{}}],["specul",{"_index":708,"title":{},"content":{"15":{}},"tags":{"15":{}}}],["speed",{"_index":881,"title":{},"content":{"24":{}},"tags":{}}],["spill",{"_index":949,"title":{},"content":{"24":{}},"tags":{}}],["spooki",{"_index":1310,"title":{},"content":{"37":{}},"tags":{}}],["sporad",{"_index":1060,"title":{},"content":{"31":{}},"tags":{}}],["spot",{"_index":883,"title":{},"content":{"24":{}},"tags":{}}],["spread",{"_index":279,"title":{},"content":{"3":{},"5":{},"14":{},"22":{}},"tags":{}}],["spreading the word",{"_index":753,"title":{},"content":{},"tags":{"14":{},"22":{}}}],["stabl",{"_index":989,"title":{},"content":{"18":{}},"tags":{}}],["stand",{"_index":346,"title":{},"content":{"3":{}},"tags":{}}],["standpoint",{"_index":669,"title":{},"content":{"13":{}},"tags":{}}],["start",{"_index":1175,"title":{},"content":{"25":{},"40":{}},"tags":{}}],["startup",{"_index":1069,"title":{},"content":{},"tags":{"31":{}}}],["starv",{"_index":1172,"title":{},"content":{"25":{}},"tags":{}}],["stat",{"_index":77,"title":{},"content":{"2":{}},"tags":{}}],["state",{"_index":78,"title":{},"content":{"2":{}},"tags":{}}],["stay",{"_index":220,"title":{},"content":{"1":{},"13":{},"22":{},"24":{},"34":{},"40":{}},"tags":{}}],["steam",{"_index":23,"title":{},"content":{"2":{},"28":{},"31":{}},"tags":{"26":{}}}],["still",{"_index":936,"title":{},"content":{"24":{}},"tags":{}}],["stop",{"_index":1183,"title":{},"content":{"28":{},"40":{}},"tags":{}}],["store",{"_index":730,"title":{},"content":{"14":{},"20":{},"22":{},"25":{}},"tags":{}}],["strategi",{"_index":1207,"title":{"27":{}},"content":{},"tags":{}}],["streamlin",{"_index":1317,"title":{},"content":{"37":{}},"tags":{}}],["stress",{"_index":867,"title":{},"content":{"23":{}},"tags":{}}],["strictli",{"_index":476,"title":{},"content":{"16":{}},"tags":{}}],["strive",{"_index":463,"title":{},"content":{"16":{},"31":{}},"tags":{}}],["submit",{"_index":340,"title":{},"content":{"3":{}},"tags":{}}],["subreddit",{"_index":690,"title":{},"content":{"15":{}},"tags":{}}],["subreddit migr",{"_index":719,"title":{},"content":{},"tags":{"15":{}}}],["subscrib",{"_index":791,"title":{},"content":{"22":{},"33":{},"39":{}},"tags":{}}],["subscript",{"_index":1067,"title":{},"content":{"31":{}},"tags":{"40":{}}}],["subscription model",{"_index":1070,"title":{},"content":{},"tags":{"31":{}}}],["subscription to updates rol",{"_index":825,"title":{},"content":{},"tags":{"22":{}}}],["success",{"_index":343,"title":{},"content":{"3":{},"22":{},"23":{}},"tags":{"3":{}}}],["successfulli",{"_index":681,"title":{},"content":{"14":{},"15":{}},"tags":{}}],["such",{"_index":307,"title":{},"content":{"3":{},"16":{}},"tags":{}}],["suddenli",{"_index":1216,"title":{},"content":{"28":{}},"tags":{}}],["suggest",{"_index":172,"title":{},"content":{"1":{},"12":{},"13":{},"22":{},"23":{},"40":{}},"tags":{}}],["suit",{"_index":107,"title":{},"content":{"2":{}},"tags":{}}],["suitabl",{"_index":616,"title":{},"content":{"10":{}},"tags":{}}],["summar",{"_index":586,"title":{},"content":{"5":{}},"tags":{}}],["summari",{"_index":528,"title":{"5":{}},"content":{"5":{}},"tags":{}}],["support",{"_index":120,"title":{"30":{},"39":{}},"content":{"1":{},"2":{},"3":{},"13":{},"16":{},"21":{},"22":{},"24":{},"25":{},"27":{},"29":{},"31":{},"33":{},"34":{},"36":{},"37":{},"39":{},"40":{}},"tags":{"3":{}}}],["support request",{"_index":828,"title":{},"content":{},"tags":{"22":{}}}],["sure",{"_index":790,"title":{},"content":{"22":{},"24":{},"28":{},"34":{},"36":{}},"tags":{}}],["surg",{"_index":731,"title":{},"content":{"14":{}},"tags":{}}],["surge of new us",{"_index":751,"title":{},"content":{},"tags":{"14":{}}}],["surround",{"_index":1148,"title":{},"content":{"25":{}},"tags":{}}],["sustain",{"_index":428,"title":{},"content":{"16":{},"31":{},"40":{}},"tags":{"40":{}}}],["swap",{"_index":1274,"title":{},"content":{"36":{}},"tags":{}}],["switch",{"_index":1145,"title":{},"content":{"25":{},"28":{}},"tags":{}}],["symbol",{"_index":742,"title":{},"content":{"14":{}},"tags":{}}],["system",{"_index":83,"title":{},"content":{"2":{},"27":{},"33":{},"36":{}},"tags":{}}],["tab",{"_index":918,"title":{},"content":{"24":{},"37":{}},"tags":{}}],["tag",{"_index":87,"title":{},"content":{"2":{},"28":{}},"tags":{}}],["take",{"_index":291,"title":{},"content":{"3":{},"12":{},"16":{},"23":{},"24":{},"28":{}},"tags":{}}],["taken",{"_index":376,"title":{},"content":{"16":{}},"tags":{}}],["task",{"_index":697,"title":{},"content":{"15":{},"23":{},"24":{}},"tags":{}}],["tax",{"_index":470,"title":{},"content":{"16":{}},"tags":{}}],["team",{"_index":11,"title":{},"content":{"2":{},"3":{},"23":{},"25":{},"31":{}},"tags":{}}],["teaser",{"_index":937,"title":{},"content":{"24":{}},"tags":{}}],["tech",{"_index":781,"title":{},"content":{"22":{}},"tags":{}}],["tech progress",{"_index":969,"title":{},"content":{},"tags":{"24":{}}}],["technic",{"_index":941,"title":{},"content":{"24":{}},"tags":{}}],["technolog",{"_index":1142,"title":{},"content":{"25":{}},"tags":{}}],["temporari",{"_index":1192,"title":{"26":{},"28":{}},"content":{},"tags":{}}],["term",{"_index":467,"title":{},"content":{"5":{},"8":{},"16":{},"31":{}},"tags":{}}],["test",{"_index":699,"title":{},"content":{"15":{},"18":{},"21":{},"24":{},"25":{},"28":{},"33":{},"36":{}},"tags":{"15":{}}}],["tester",{"_index":1005,"title":{},"content":{"20":{}},"tags":{}}],["text",{"_index":99,"title":{},"content":{"2":{}},"tags":{}}],["thank",{"_index":349,"title":{"13":{}},"content":{"3":{},"13":{},"23":{},"24":{},"25":{},"30":{},"33":{},"34":{},"39":{},"40":{}},"tags":{}}],["that'",{"_index":848,"title":{},"content":{"23":{},"40":{}},"tags":{}}],["theme",{"_index":1097,"title":{},"content":{"33":{},"37":{},"40":{}},"tags":{"35":{}}}],["theori",{"_index":709,"title":{},"content":{"15":{}},"tags":{}}],["there'",{"_index":592,"title":{},"content":{"7":{},"10":{},"24":{},"31":{}},"tags":{}}],["therefor",{"_index":475,"title":{},"content":{"16":{}},"tags":{}}],["they'll",{"_index":802,"title":{},"content":{"22":{}},"tags":{}}],["thing",{"_index":1007,"title":{},"content":{"20":{}},"tags":{}}],["think",{"_index":53,"title":{},"content":{"2":{},"16":{},"33":{}},"tags":{}}],["third",{"_index":767,"title":{},"content":{"22":{},"36":{}},"tags":{}}],["those",{"_index":47,"title":{},"content":{"2":{}},"tags":{}}],["though",{"_index":955,"title":{},"content":{"24":{},"30":{}},"tags":{}}],["thought",{"_index":486,"title":{},"content":{"12":{},"13":{},"14":{},"16":{},"31":{}},"tags":{}}],["thousand",{"_index":1041,"title":{},"content":{"31":{}},"tags":{}}],["threat",{"_index":351,"title":{},"content":{},"tags":{"3":{}}}],["threaten",{"_index":247,"title":{},"content":{"3":{}},"tags":{}}],["three",{"_index":914,"title":{},"content":{"24":{}},"tags":{}}],["thrill",{"_index":109,"title":{},"content":{"2":{},"4":{},"22":{},"25":{},"31":{},"40":{}},"tags":{}}],["through",{"_index":430,"title":{},"content":{"16":{},"22":{},"24":{},"25":{},"29":{},"40":{}},"tags":{}}],["thumb",{"_index":853,"title":{},"content":{"23":{}},"tags":{}}],["ticket",{"_index":984,"title":{},"content":{"18":{},"27":{}},"tags":{}}],["tile",{"_index":1162,"title":{},"content":{"25":{}},"tags":{}}],["time",{"_index":707,"title":{},"content":{"15":{},"23":{},"25":{},"28":{},"31":{},"37":{},"39":{}},"tags":{}}],["timelin",{"_index":847,"title":{},"content":{"23":{}},"tags":{}}],["timer",{"_index":1169,"title":{},"content":{"25":{}},"tags":{}}],["tip",{"_index":1061,"title":{},"content":{"31":{}},"tags":{}}],["tirelessli",{"_index":13,"title":{},"content":{"2":{}},"tags":{}}],["today",{"_index":113,"title":{},"content":{"2":{},"16":{},"25":{},"28":{},"31":{},"33":{},"40":{}},"tags":{}}],["togeth",{"_index":37,"title":{},"content":{"1":{},"2":{},"3":{},"22":{},"23":{}},"tags":{}}],["ton",{"_index":946,"title":{},"content":{"24":{}},"tags":{}}],["tool",{"_index":1105,"title":{},"content":{"33":{},"36":{}},"tags":{}}],["top",{"_index":564,"title":{},"content":{"5":{},"24":{},"36":{}},"tags":{}}],["topic",{"_index":488,"title":{},"content":{"16":{}},"tags":{}}],["total",{"_index":529,"title":{},"content":{"5":{}},"tags":{}}],["touch",{"_index":963,"title":{},"content":{"24":{},"25":{}},"tags":{}}],["toward",{"_index":249,"title":{},"content":{"3":{},"31":{}},"tags":{}}],["toylerrr",{"_index":1218,"title":{},"content":{"28":{}},"tags":{}}],["track",{"_index":36,"title":{},"content":{"2":{}},"tags":{}}],["tracker",{"_index":253,"title":{},"content":{"3":{},"23":{}},"tags":{}}],["tradit",{"_index":20,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["trailer",{"_index":1303,"title":{},"content":{"37":{}},"tags":{}}],["transit",{"_index":502,"title":{},"content":{"4":{},"12":{},"13":{},"29":{}},"tags":{}}],["transition process",{"_index":527,"title":{},"content":{},"tags":{"4":{}}}],["transpar",{"_index":394,"title":{},"content":{"16":{}},"tags":{"16":{}}}],["travel",{"_index":1215,"title":{},"content":{"28":{}},"tags":{}}],["tri",{"_index":112,"title":{},"content":{"2":{},"22":{}},"tags":{}}],["trivial",{"_index":266,"title":{},"content":{"3":{}},"tags":{}}],["troll",{"_index":238,"title":{"3":{}},"content":{"3":{}},"tags":{"3":{}}}],["truli",{"_index":137,"title":{},"content":{"1":{},"2":{},"16":{},"23":{},"24":{}},"tags":{}}],["trust",{"_index":1011,"title":{},"content":{"21":{},"27":{},"31":{}},"tags":{}}],["tune",{"_index":221,"title":{},"content":{"1":{},"13":{},"18":{},"22":{},"24":{},"34":{},"40":{}},"tags":{}}],["tweak",{"_index":1112,"title":{},"content":{"33":{},"36":{}},"tags":{}}],["twitch.tv",{"_index":1205,"title":{},"content":{"27":{}},"tags":{"26":{}}}],["two",{"_index":462,"title":{},"content":{"9":{},"16":{},"31":{}},"tags":{}}],["ui",{"_index":916,"title":{},"content":{"17":{},"24":{},"37":{}},"tags":{}}],["ui redesign",{"_index":967,"title":{},"content":{},"tags":{"24":{}}}],["ui upd",{"_index":978,"title":{},"content":{},"tags":{"17":{}}}],["ultim",{"_index":872,"title":{},"content":{"23":{}},"tags":{}}],["unauthor",{"_index":413,"title":{},"content":{"16":{}},"tags":{}}],["unawar",{"_index":396,"title":{},"content":{"16":{}},"tags":{}}],["under",{"_index":547,"title":{},"content":{"5":{},"12":{},"23":{}},"tags":{}}],["understand",{"_index":350,"title":{},"content":{"3":{},"5":{},"12":{},"16":{},"22":{},"25":{}},"tags":{}}],["unexpectedli",{"_index":1039,"title":{},"content":{"31":{}},"tags":{}}],["unfold",{"_index":673,"title":{},"content":{"13":{}},"tags":{}}],["unfortun",{"_index":305,"title":{},"content":{"3":{},"26":{}},"tags":{}}],["uninstal",{"_index":902,"title":{},"content":{"24":{}},"tags":{}}],["uniqu",{"_index":45,"title":{},"content":{"2":{}},"tags":{}}],["unlimit",{"_index":1279,"title":{},"content":{"36":{}},"tags":{}}],["unmaintain",{"_index":1124,"title":{},"content":{"26":{},"34":{}},"tags":{}}],["unnecessari",{"_index":858,"title":{},"content":{"23":{}},"tags":{}}],["unreli",{"_index":1272,"title":{},"content":{"36":{}},"tags":{}}],["until",{"_index":714,"title":{},"content":{"15":{},"24":{},"33":{}},"tags":{}}],["unveil",{"_index":1252,"title":{},"content":{"35":{}},"tags":{}}],["up",{"_index":259,"title":{},"content":{"3":{},"13":{},"14":{},"15":{},"23":{},"24":{},"31":{},"36":{},"40":{}},"tags":{}}],["upcom",{"_index":760,"title":{"22":{}},"content":{"17":{},"18":{},"22":{},"31":{},"33":{}},"tags":{}}],["upcoming upd",{"_index":821,"title":{},"content":{},"tags":{"22":{}}}],["updat",{"_index":222,"title":{"15":{},"35":{},"38":{}},"content":{"1":{},"3":{},"4":{},"13":{},"15":{},"16":{},"17":{},"18":{},"22":{},"24":{},"28":{},"29":{},"34":{},"35":{},"37":{},"38":{},"40":{}},"tags":{"26":{},"40":{}}}],["upgrad",{"_index":1242,"title":{},"content":{"30":{}},"tags":{}}],["upload",{"_index":903,"title":{},"content":{"24":{},"33":{}},"tags":{}}],["upon",{"_index":809,"title":{},"content":{"22":{}},"tags":{}}],["up—mastillk",{"_index":1292,"title":{},"content":{"36":{}},"tags":{}}],["urgent",{"_index":1120,"title":{},"content":{"34":{}},"tags":{}}],["uri",{"_index":1099,"title":{},"content":{"33":{}},"tags":{}}],["url",{"_index":1223,"title":{},"content":{"28":{}},"tags":{}}],["us",{"_index":31,"title":{},"content":{"2":{},"5":{},"9":{},"15":{},"16":{},"26":{},"27":{},"28":{},"31":{},"33":{},"38":{},"39":{}},"tags":{}}],["user",{"_index":79,"title":{},"content":{"1":{},"2":{},"5":{},"14":{},"16":{},"22":{},"23":{},"24":{},"25":{},"27":{},"33":{},"36":{},"37":{}},"tags":{}}],["user engag",{"_index":501,"title":{},"content":{},"tags":{"16":{}}}],["user particip",{"_index":232,"title":{},"content":{},"tags":{"1":{}}}],["usher",{"_index":930,"title":{},"content":{"24":{}},"tags":{}}],["usual",{"_index":893,"title":{},"content":{"24":{}},"tags":{}}],["util",{"_index":304,"title":{},"content":{"3":{}},"tags":{}}],["v1.12",{"_index":1254,"title":{},"content":{"35":{},"38":{}},"tags":{}}],["v12.1.0",{"_index":1236,"title":{},"content":{"28":{}},"tags":{}}],["v13",{"_index":1255,"title":{},"content":{"35":{},"38":{}},"tags":{}}],["valu",{"_index":164,"title":{},"content":{"1":{},"16":{},"23":{}},"tags":{}}],["valuabl",{"_index":225,"title":{},"content":{"1":{},"3":{},"5":{},"16":{},"28":{}},"tags":{}}],["variabl",{"_index":1226,"title":{},"content":{"28":{}},"tags":{}}],["varieti",{"_index":182,"title":{},"content":{"1":{}},"tags":{}}],["vast",{"_index":1154,"title":{},"content":{"25":{}},"tags":{}}],["vault",{"_index":740,"title":{},"content":{"14":{}},"tags":{}}],["vault.d",{"_index":599,"title":{},"content":{"8":{}},"tags":{}}],["vendor",{"_index":1213,"title":{},"content":{"27":{}},"tags":{}}],["veri",{"_index":504,"title":{},"content":{"4":{},"10":{},"31":{}},"tags":{}}],["version",{"_index":887,"title":{},"content":{"24":{},"25":{},"31":{},"38":{}},"tags":{}}],["video",{"_index":1127,"title":{},"content":{"27":{},"29":{},"34":{},"36":{},"37":{},"40":{}},"tags":{}}],["video gam",{"_index":1190,"title":{},"content":{},"tags":{"40":{}}}],["videogam",{"_index":55,"title":{},"content":{"2":{},"24":{},"26":{},"31":{}},"tags":{"26":{}}}],["view",{"_index":932,"title":{},"content":{"24":{}},"tags":{}}],["viewabl",{"_index":1298,"title":{},"content":{"37":{}},"tags":{}}],["viewer",{"_index":609,"title":{},"content":{"9":{}},"tags":{}}],["virtual",{"_index":1034,"title":{},"content":{"25":{},"31":{}},"tags":{}}],["vision",{"_index":585,"title":{},"content":{"5":{},"22":{}},"tags":{}}],["voic",{"_index":206,"title":{},"content":{"1":{}},"tags":{}}],["volunt",{"_index":465,"title":{},"content":{"16":{}},"tags":{}}],["vote",{"_index":202,"title":{},"content":{"1":{},"5":{},"13":{},"23":{},"34":{}},"tags":{"1":{},"23":{}}}],["wait",{"_index":507,"title":{},"content":{"4":{},"25":{},"33":{}},"tags":{}}],["want",{"_index":48,"title":{},"content":{"2":{},"5":{},"13":{},"16":{},"17":{},"22":{},"23":{},"24":{},"30":{},"33":{},"36":{},"40":{}},"tags":{}}],["warn",{"_index":1170,"title":{},"content":{"25":{}},"tags":{}}],["wasn't",{"_index":550,"title":{},"content":{"5":{}},"tags":{}}],["watch",{"_index":1302,"title":{},"content":{"37":{}},"tags":{}}],["wave",{"_index":928,"title":{},"content":{"24":{}},"tags":{}}],["way",{"_index":324,"title":{},"content":{"3":{},"16":{},"22":{},"24":{},"33":{},"40":{}},"tags":{}}],["we'd",{"_index":489,"title":{},"content":{"16":{}},"tags":{}}],["we'll",{"_index":710,"title":{},"content":{"15":{},"22":{},"24":{},"33":{},"34":{}},"tags":{}}],["we'r",{"_index":693,"title":{},"content":{"15":{},"17":{},"22":{},"24":{},"25":{},"27":{},"28":{},"29":{},"31":{},"33":{},"40":{}},"tags":{}}],["we'v",{"_index":375,"title":{},"content":{"14":{},"15":{},"16":{},"24":{},"25":{},"26":{},"31":{},"39":{}},"tags":{}}],["websit",{"_index":123,"title":{},"content":{"2":{},"34":{}},"tags":{}}],["week",{"_index":999,"title":{},"content":{"19":{},"34":{}},"tags":{}}],["weird",{"_index":661,"title":{},"content":{"13":{}},"tags":{}}],["welcom",{"_index":198,"title":{},"content":{"1":{},"14":{}},"tags":{}}],["well",{"_index":619,"title":{},"content":{"10":{},"13":{},"15":{},"23":{},"25":{},"33":{},"40":{}},"tags":{}}],["went",{"_index":257,"title":{},"content":{"3":{},"26":{}},"tags":{}}],["we’r",{"_index":1046,"title":{},"content":{"31":{},"35":{}},"tags":{}}],["we’v",{"_index":1270,"title":{},"content":{"36":{},"37":{}},"tags":{}}],["what'",{"_index":397,"title":{"12":{},"18":{},"34":{}},"content":{"16":{},"22":{},"24":{}},"tags":{}}],["what’",{"_index":1269,"title":{"36":{}},"content":{"37":{}},"tags":{}}],["whenev",{"_index":1107,"title":{},"content":{"33":{}},"tags":{}}],["wherev",{"_index":651,"title":{},"content":{"12":{},"25":{}},"tags":{}}],["whether",{"_index":73,"title":{},"content":{"2":{},"3":{},"22":{},"25":{}},"tags":{}}],["wide",{"_index":380,"title":{},"content":{"16":{}},"tags":{}}],["window",{"_index":1134,"title":{"25":{}},"content":{"25":{}},"tags":{}}],["winner",{"_index":567,"title":{},"content":{"5":{}},"tags":{}}],["winner(",{"_index":712,"title":{},"content":{"15":{}},"tags":{}}],["within",{"_index":1080,"title":{},"content":{"29":{},"33":{},"40":{}},"tags":{}}],["without",{"_index":422,"title":{},"content":{"4":{},"5":{},"16":{},"36":{},"40":{}},"tags":{}}],["woe",{"_index":1193,"title":{"26":{}},"content":{},"tags":{}}],["wonder",{"_index":407,"title":{},"content":{"16":{}},"tags":{}}],["won’t",{"_index":1322,"title":{},"content":{"38":{}},"tags":{}}],["word",{"_index":331,"title":{},"content":{"3":{},"5":{},"10":{},"14":{},"22":{}},"tags":{}}],["work",{"_index":12,"title":{},"content":{"2":{},"3":{},"15":{},"16":{},"22":{},"23":{},"24":{},"25":{},"28":{},"34":{},"35":{},"38":{},"40":{}},"tags":{}}],["world",{"_index":338,"title":{},"content":{"3":{},"25":{}},"tags":{}}],["wouldn't",{"_index":558,"title":{},"content":{"5":{}},"tags":{}}],["wpf",{"_index":944,"title":{},"content":{"24":{}},"tags":{}}],["wrap",{"_index":951,"title":{},"content":{"24":{}},"tags":{}}],["write",{"_index":1278,"title":{},"content":{"36":{}},"tags":{}}],["written",{"_index":947,"title":{},"content":{"24":{}},"tags":{}}],["wrong",{"_index":543,"title":{},"content":{"5":{},"31":{}},"tags":{}}],["year",{"_index":15,"title":{},"content":{"2":{},"16":{}},"tags":{}}],["you'll",{"_index":700,"title":{},"content":{"15":{},"18":{},"33":{},"40":{}},"tags":{}}],["you'r",{"_index":734,"title":{},"content":{"14":{},"21":{},"22":{},"23":{},"24":{},"25":{}},"tags":{}}],["you'v",{"_index":879,"title":{},"content":{"24":{},"25":{}},"tags":{}}],["you’d",{"_index":1330,"title":{},"content":{"39":{}},"tags":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file diff --git a/search-index-docs-default-current.json b/search-index-docs-default-current.json index a2ca3c941..49347e7e3 100644 --- a/search-index-docs-default-current.json +++ b/search-index-docs-default-current.json @@ -1 +1 @@ -{"documents":[{"id":47,"pageTitle":"Early Access Program","sectionTitle":"Early Access Program","sectionRoute":"/docs/advanced-usage/early-access-program","type":"docs"},{"id":48,"pageTitle":"Early Access Program","sectionTitle":"Welcome","sectionRoute":"/docs/advanced-usage/early-access-program#welcome","type":"docs"},{"id":49,"pageTitle":"Early Access Program","sectionTitle":"Participation Requirements","sectionRoute":"/docs/advanced-usage/early-access-program#participation-requirements","type":"docs"},{"id":50,"pageTitle":"Early Access Program","sectionTitle":"How to Join","sectionRoute":"/docs/advanced-usage/early-access-program#how-to-join","type":"docs"},{"id":51,"pageTitle":"Early Access Program","sectionTitle":"Important Information","sectionRoute":"/docs/advanced-usage/early-access-program#important-information","type":"docs"},{"id":52,"pageTitle":"Early Access Program","sectionTitle":"FAQ for Early Access Testers","sectionRoute":"/docs/advanced-usage/early-access-program#faq-for-early-access-testers","type":"docs"},{"id":53,"pageTitle":"Early Access Program","sectionTitle":"How to switch to an early access version?","sectionRoute":"/docs/advanced-usage/early-access-program#how-to-switch-to-an-early-access-version","type":"docs"},{"id":54,"pageTitle":"Early Access Program","sectionTitle":"How to return to a stable version?","sectionRoute":"/docs/advanced-usage/early-access-program#how-to-return-to-a-stable-version","type":"docs"},{"id":55,"pageTitle":"Early Access Program","sectionTitle":"Where to report bugs and suggest/discuss changes?","sectionRoute":"/docs/advanced-usage/early-access-program#where-to-report-bugs-and-suggestdiscuss-changes","type":"docs"},{"id":56,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"Configuring Fail2Ban for GameVault","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide","type":"docs"},{"id":57,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"Introduction","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#introduction","type":"docs"},{"id":58,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"Prerequisites","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#prerequisites","type":"docs"},{"id":59,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"Steps","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#steps","type":"docs"},{"id":60,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"1. Enable Log Files and Map a Volume","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#1-enable-log-files-and-map-a-volume","type":"docs"},{"id":61,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"2. Identify Failed Authentication Attempts","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#2-identify-failed-authentication-attempts","type":"docs"},{"id":62,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"3. Create a Fail2Ban Filter","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#3-create-a-fail2ban-filter","type":"docs"},{"id":63,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"4. Configure Fail2Ban Jail","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#4-configure-fail2ban-jail","type":"docs"},{"id":64,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"5. Restart Fail2Ban","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#5-restart-fail2ban","type":"docs"},{"id":65,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"6. Verify Jail Status","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#6-verify-jail-status","type":"docs"},{"id":66,"pageTitle":"Configuring Fail2Ban for GameVault","sectionTitle":"Conclusion","sectionRoute":"/docs/advanced-usage/fail2ban-gamevault-guide#conclusion","type":"docs"},{"id":67,"pageTitle":"Running the Client on Linux","sectionTitle":"Running the Client on Linux","sectionRoute":"/docs/advanced-usage/linux-client","type":"docs"},{"id":68,"pageTitle":"Running the Client on Linux","sectionTitle":"Getting the application","sectionRoute":"/docs/advanced-usage/linux-client#getting-the-application","type":"docs"},{"id":69,"pageTitle":"Running the Client on Linux","sectionTitle":"Setting up with Wine","sectionRoute":"/docs/advanced-usage/linux-client#setting-up-with-wine","type":"docs"},{"id":70,"pageTitle":"Running the Client on Linux","sectionTitle":"Setting up with Bottles","sectionRoute":"/docs/advanced-usage/linux-client#setting-up-with-bottles","type":"docs"},{"id":71,"pageTitle":"Running the Client on Linux","sectionTitle":"Updating the Client","sectionRoute":"/docs/advanced-usage/linux-client#updating-the-client","type":"docs"},{"id":72,"pageTitle":"Running the Client on Linux","sectionTitle":"Known issues","sectionRoute":"/docs/advanced-usage/linux-client#known-issues","type":"docs"},{"id":73,"pageTitle":"REST API Usage","sectionTitle":"REST API Usage","sectionRoute":"/docs/advanced-usage/rest-api","type":"docs"},{"id":74,"pageTitle":"REST API Usage","sectionTitle":"Register a Bot User","sectionRoute":"/docs/advanced-usage/rest-api#register-a-bot-user","type":"docs"},{"id":75,"pageTitle":"REST API Usage","sectionTitle":"OpenAPI Specification","sectionRoute":"/docs/advanced-usage/rest-api#openapi-specification","type":"docs"},{"id":76,"pageTitle":"REST API Usage","sectionTitle":"Authentication","sectionRoute":"/docs/advanced-usage/rest-api#authentication","type":"docs"},{"id":87,"pageTitle":"Running the Client on Steamdeck","sectionTitle":"Running the Client on Steamdeck","sectionRoute":"/docs/advanced-usage/steamdeck","type":"docs"},{"id":88,"pageTitle":"Running the Client on Steamdeck","sectionTitle":"App Setup Guide","sectionRoute":"/docs/advanced-usage/steamdeck#app-setup-guide","type":"docs"},{"id":89,"pageTitle":"Running the Client on Steamdeck","sectionTitle":"Updating the Client","sectionRoute":"/docs/advanced-usage/steamdeck#updating-the-client","type":"docs"},{"id":77,"pageTitle":"Data Management","sectionTitle":"Data Management","sectionRoute":"/docs/client-docs/data","type":"docs"},{"id":78,"pageTitle":"Data Management","sectionTitle":"Image Cache","sectionRoute":"/docs/client-docs/data#image-cache","type":"docs"},{"id":79,"pageTitle":"Data Management","sectionTitle":"Image Cache Optimization","sectionRoute":"/docs/client-docs/data#image-cache-optimization","type":"docs"},{"id":80,"pageTitle":"Data Management","sectionTitle":"Offline Cache (Progresses)","sectionRoute":"/docs/client-docs/data#offline-cache-progresses","type":"docs"},{"id":81,"pageTitle":"Data Management","sectionTitle":"Offline Cache (Game Metadata)","sectionRoute":"/docs/client-docs/data#offline-cache-game-metadata","type":"docs"},{"id":82,"pageTitle":"Data Management","sectionTitle":"Settings","sectionRoute":"/docs/client-docs/data#settings","type":"docs"},{"id":83,"pageTitle":"Data Management","sectionTitle":"Embedded Browser Settings","sectionRoute":"/docs/client-docs/data#embedded-browser-settings","type":"docs"},{"id":84,"pageTitle":"Data Management","sectionTitle":"Ignore List","sectionRoute":"/docs/client-docs/data#ignore-list","type":"docs"},{"id":85,"pageTitle":"Data Management","sectionTitle":"Crash Logs","sectionRoute":"/docs/client-docs/data#crash-logs","type":"docs"},{"id":86,"pageTitle":"Data Management","sectionTitle":"Themes","sectionRoute":"/docs/client-docs/data#themes","type":"docs"},{"id":90,"pageTitle":"GUI Overview","sectionTitle":"GUI Overview","sectionRoute":"/docs/client-docs/gui","type":"docs"},{"id":91,"pageTitle":"GUI Overview","sectionTitle":"Setup Wizard","sectionRoute":"/docs/client-docs/gui#setup-wizard","type":"docs"},{"id":92,"pageTitle":"GUI Overview","sectionTitle":"Library","sectionRoute":"/docs/client-docs/gui#library","type":"docs"},{"id":93,"pageTitle":"GUI Overview","sectionTitle":"Game","sectionRoute":"/docs/client-docs/gui#game","type":"docs"},{"id":94,"pageTitle":"GUI Overview","sectionTitle":"Game Settings","sectionRoute":"/docs/client-docs/gui#game-settings","type":"docs"},{"id":95,"pageTitle":"GUI Overview","sectionTitle":"Your Computer","sectionRoute":"/docs/client-docs/gui#your-computer","type":"docs"},{"id":96,"pageTitle":"GUI Overview","sectionTitle":"Server","sectionRoute":"/docs/client-docs/gui#server","type":"docs"},{"id":97,"pageTitle":"GUI Overview","sectionTitle":"Downloads","sectionRoute":"/docs/client-docs/gui#downloads","type":"docs"},{"id":98,"pageTitle":"GUI Overview","sectionTitle":"Community","sectionRoute":"/docs/client-docs/gui#community","type":"docs"},{"id":99,"pageTitle":"GUI Overview","sectionTitle":"User Settings","sectionRoute":"/docs/client-docs/gui#user-settings","type":"docs"},{"id":100,"pageTitle":"GUI Overview","sectionTitle":"Edit User Images","sectionRoute":"/docs/client-docs/gui#edit-user-images","type":"docs"},{"id":101,"pageTitle":"GUI Overview","sectionTitle":"Edit Details","sectionRoute":"/docs/client-docs/gui#edit-details","type":"docs"},{"id":102,"pageTitle":"GUI Overview","sectionTitle":"Settings","sectionRoute":"/docs/client-docs/gui#settings","type":"docs"},{"id":103,"pageTitle":"GUI Overview","sectionTitle":"Application","sectionRoute":"/docs/client-docs/gui#application","type":"docs"},{"id":104,"pageTitle":"GUI Overview","sectionTitle":"Installation","sectionRoute":"/docs/client-docs/gui#installation-1","type":"docs"},{"id":105,"pageTitle":"GUI Overview","sectionTitle":"User","sectionRoute":"/docs/client-docs/gui#user","type":"docs"},{"id":106,"pageTitle":"GUI Overview","sectionTitle":"Data","sectionRoute":"/docs/client-docs/gui#data","type":"docs"},{"id":107,"pageTitle":"GUI Overview","sectionTitle":"Administration","sectionRoute":"/docs/client-docs/gui#administration","type":"docs"},{"id":108,"pageTitle":"GUI Overview","sectionTitle":"News","sectionRoute":"/docs/client-docs/gui#news","type":"docs"},{"id":109,"pageTitle":"How to Use","sectionTitle":"How to Use","sectionRoute":"/docs/client-docs/how-to-use","type":"docs"},{"id":110,"pageTitle":"How to Use","sectionTitle":"File & Folder Structure","sectionRoute":"/docs/client-docs/how-to-use#file--folder-structure","type":"docs"},{"id":111,"pageTitle":"How to Use","sectionTitle":"Downloading Games","sectionRoute":"/docs/client-docs/how-to-use#downloading-games","type":"docs"},{"id":112,"pageTitle":"How to Use","sectionTitle":"1. Extracting the Game","sectionRoute":"/docs/client-docs/how-to-use#1-extracting-the-game","type":"docs"},{"id":113,"pageTitle":"How to Use","sectionTitle":"2. Installing the Game","sectionRoute":"/docs/client-docs/how-to-use#2-installing-the-game","type":"docs"},{"id":114,"pageTitle":"How to Use","sectionTitle":"Playing a Game","sectionRoute":"/docs/client-docs/how-to-use#playing-a-game","type":"docs"},{"id":115,"pageTitle":"How to Use","sectionTitle":"Tracking Your Game Progress","sectionRoute":"/docs/client-docs/how-to-use#tracking-your-game-progress","type":"docs"},{"id":116,"pageTitle":"How to Use","sectionTitle":"Modifying Games","sectionRoute":"/docs/client-docs/how-to-use#modifying-games","type":"docs"},{"id":117,"pageTitle":"How to Use","sectionTitle":"Modifying Users","sectionRoute":"/docs/client-docs/how-to-use#modifying-users","type":"docs"},{"id":118,"pageTitle":"How to Use","sectionTitle":"Exiting or Relaunching the App","sectionRoute":"/docs/client-docs/how-to-use#exiting-or-relaunching-the-app","type":"docs"},{"id":119,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Setting up a GameVault Client","sectionRoute":"/docs/client-docs/setup","type":"docs"},{"id":120,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Installation","sectionRoute":"/docs/client-docs/setup#installation","type":"docs"},{"id":121,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Recommended Installation Option","sectionRoute":"/docs/client-docs/setup#recommended-installation-option","type":"docs"},{"id":122,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Alternative Installation Options","sectionRoute":"/docs/client-docs/setup#alternative-installation-options","type":"docs"},{"id":123,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Initial Configuration","sectionRoute":"/docs/client-docs/setup#initial-configuration","type":"docs"},{"id":124,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Step 1: Select the Root Folder","sectionRoute":"/docs/client-docs/setup#step-1-select-the-root-folder","type":"docs"},{"id":125,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Step 2: Entering the Selfhosted Backend Server URL","sectionRoute":"/docs/client-docs/setup#step-2-entering-the-selfhosted-backend-server-url","type":"docs"},{"id":126,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Step 3: Log In or Register","sectionRoute":"/docs/client-docs/setup#step-3-log-in-or-register","type":"docs"},{"id":127,"pageTitle":"Setting up a GameVault Client","sectionTitle":"Conclusion","sectionRoute":"/docs/client-docs/setup#conclusion","type":"docs"},{"id":131,"pageTitle":"Themes","sectionTitle":"Themes","sectionRoute":"/docs/client-docs/themes","type":"docs"},{"id":132,"pageTitle":"Themes","sectionTitle":"Free Themes","sectionRoute":"/docs/client-docs/themes#free-themes","type":"docs"},{"id":133,"pageTitle":"Themes","sectionTitle":"Premium Themes","sectionRoute":"/docs/client-docs/themes#premium-themes","type":"docs"},{"id":134,"pageTitle":"Themes","sectionTitle":"Custom Themes","sectionRoute":"/docs/client-docs/themes#custom-themes","type":"docs"},{"id":128,"pageTitle":"Updating the Client","sectionTitle":"Updating the Client","sectionRoute":"/docs/client-docs/updating-client","type":"docs"},{"id":129,"pageTitle":"Updating the Client","sectionTitle":"Microsoft Store","sectionRoute":"/docs/client-docs/updating-client#microsoft-store","type":"docs"},{"id":130,"pageTitle":"Updating the Client","sectionTitle":"Other Sources","sectionRoute":"/docs/client-docs/updating-client#other-sources","type":"docs"},{"id":141,"pageTitle":"Client APIs","sectionTitle":"Client APIs","sectionRoute":"/docs/gamevault-plus/client-apis","type":"docs"},{"id":142,"pageTitle":"Client APIs","sectionTitle":"Available APIs","sectionRoute":"/docs/gamevault-plus/client-apis#available-apis","type":"docs"},{"id":143,"pageTitle":"Client APIs","sectionTitle":"CLI","sectionRoute":"/docs/gamevault-plus/client-apis#cli","type":"docs"},{"id":144,"pageTitle":"Client APIs","sectionTitle":"URI","sectionRoute":"/docs/gamevault-plus/client-apis#uri","type":"docs"},{"id":145,"pageTitle":"Client APIs","sectionTitle":"NamedPipe","sectionRoute":"/docs/gamevault-plus/client-apis#namedpipe","type":"docs"},{"id":146,"pageTitle":"Client APIs","sectionTitle":"Usage","sectionRoute":"/docs/gamevault-plus/client-apis#usage","type":"docs"},{"id":147,"pageTitle":"Client APIs","sectionTitle":"Available Actions & Parameters","sectionRoute":"/docs/gamevault-plus/client-apis#available-actions--parameters","type":"docs"},{"id":148,"pageTitle":"Client APIs","sectionTitle":"URI \"Query\" Action","sectionRoute":"/docs/gamevault-plus/client-apis#uri-query-action","type":"docs"},{"id":149,"pageTitle":"Client APIs","sectionTitle":"Command-line Examples","sectionRoute":"/docs/gamevault-plus/client-apis#command-line-examples","type":"docs"},{"id":150,"pageTitle":"Client APIs","sectionTitle":"URI Examples","sectionRoute":"/docs/gamevault-plus/client-apis#uri-examples","type":"docs"},{"id":151,"pageTitle":"Client APIs","sectionTitle":"Query Examples","sectionRoute":"/docs/gamevault-plus/client-apis#query-examples","type":"docs"},{"id":152,"pageTitle":"Client APIs","sectionTitle":"C# Code Example","sectionRoute":"/docs/gamevault-plus/client-apis#c-code-example","type":"docs"},{"id":172,"pageTitle":"Client Setup","sectionTitle":"Client Setup","sectionRoute":"/docs/gamevault-plus/client-setup","type":"docs"},{"id":173,"pageTitle":"Client Setup","sectionTitle":"Linking Your Phalcode Account","sectionRoute":"/docs/gamevault-plus/client-setup#linking-your-phalcode-account","type":"docs"},{"id":174,"pageTitle":"Client Setup","sectionTitle":"Retrieving Your License","sectionRoute":"/docs/gamevault-plus/client-setup#retrieving-your-license","type":"docs"},{"id":175,"pageTitle":"Client Setup","sectionTitle":"Offline Usage","sectionRoute":"/docs/gamevault-plus/client-setup#offline-usage","type":"docs"},{"id":153,"pageTitle":"","sectionTitle":"Introduction","sectionRoute":"/docs/gamevault-plus/introduction#introduction","type":"docs"},{"id":154,"pageTitle":"","sectionTitle":"Feature List","sectionRoute":"/docs/gamevault-plus/introduction#feature-list","type":"docs"},{"id":155,"pageTitle":"","sectionTitle":"Pricing","sectionRoute":"/docs/gamevault-plus/introduction#pricing","type":"docs"},{"id":156,"pageTitle":"","sectionTitle":"Get Started","sectionRoute":"/docs/gamevault-plus/introduction#get-started","type":"docs"},{"id":157,"pageTitle":"","sectionTitle":"Questions and Answers","sectionRoute":"/docs/gamevault-plus/introduction#questions-and-answers","type":"docs"},{"id":158,"pageTitle":"","sectionTitle":"What is Phalcode?","sectionRoute":"/docs/gamevault-plus/introduction#what-is-phalcode","type":"docs"},{"id":159,"pageTitle":"","sectionTitle":"I have trouble with GameVault+ and I need support. How can I contact you?","sectionRoute":"/docs/gamevault-plus/introduction#i-have-trouble-with-gamevault-and-i-need-support-how-can-i-contact-you","type":"docs"},{"id":160,"pageTitle":"","sectionTitle":"How do I manage billing and payments?","sectionRoute":"/docs/gamevault-plus/introduction#how-do-i-manage-billing-and-payments","type":"docs"},{"id":161,"pageTitle":"","sectionTitle":"What payment methods are accepted for GameVault+ subscriptions?","sectionRoute":"/docs/gamevault-plus/introduction#what-payment-methods-are-accepted-for-gamevault-subscriptions","type":"docs"},{"id":162,"pageTitle":"","sectionTitle":"Are there going to be more features added to GameVault+?","sectionRoute":"/docs/gamevault-plus/introduction#are-there-going-to-be-more-features-added-to-gamevault","type":"docs"},{"id":163,"pageTitle":"","sectionTitle":"Can GameVault+ be shared with multiple users?","sectionRoute":"/docs/gamevault-plus/introduction#can-gamevault-be-shared-with-multiple-users","type":"docs"},{"id":164,"pageTitle":"","sectionTitle":"How many devices can I have in my GameVault+ subscription?","sectionRoute":"/docs/gamevault-plus/introduction#how-many-devices-can-i-have-in-my-gamevault-subscription","type":"docs"},{"id":165,"pageTitle":"","sectionTitle":"Can GameVault+ be used offline?","sectionRoute":"/docs/gamevault-plus/introduction#can-gamevault-be-used-offline","type":"docs"},{"id":166,"pageTitle":"","sectionTitle":"How does GameVault+ ensure user privacy protection?","sectionRoute":"/docs/gamevault-plus/introduction#how-does-gamevault-ensure-user-privacy-protection","type":"docs"},{"id":167,"pageTitle":"","sectionTitle":"Will GameVault+ support more integrations with other software in the future?","sectionRoute":"/docs/gamevault-plus/introduction#will-gamevault-support-more-integrations-with-other-software-in-the-future","type":"docs"},{"id":168,"pageTitle":"","sectionTitle":"Can users suggest or vote on new features for GameVault+?","sectionRoute":"/docs/gamevault-plus/introduction#can-users-suggest-or-vote-on-new-features-for-gamevault","type":"docs"},{"id":169,"pageTitle":"","sectionTitle":"Which Client Application versions are supported?","sectionRoute":"/docs/gamevault-plus/introduction#which-client-application-versions-are-supported","type":"docs"},{"id":170,"pageTitle":"","sectionTitle":"Are commercial licenses available for GameVault+?","sectionRoute":"/docs/gamevault-plus/introduction#are-commercial-licenses-available-for-gamevault","type":"docs"},{"id":171,"pageTitle":"","sectionTitle":"What if i cant afford GameVault+?","sectionRoute":"/docs/gamevault-plus/introduction#what-if-i-cant-afford-gamevault","type":"docs"},{"id":135,"pageTitle":"Themes","sectionTitle":"Themes","sectionRoute":"/docs/gamevault-plus/themes","type":"docs"},{"id":136,"pageTitle":"Themes","sectionTitle":"Premium Themes","sectionRoute":"/docs/gamevault-plus/themes#premium-themes","type":"docs"},{"id":137,"pageTitle":"Themes","sectionTitle":"Custom Themes","sectionRoute":"/docs/gamevault-plus/themes#custom-themes","type":"docs"},{"id":138,"pageTitle":"Themes","sectionTitle":"How to Install and Apply a Custom Theme","sectionRoute":"/docs/gamevault-plus/themes#how-to-install-and-apply-a-custom-theme","type":"docs"},{"id":139,"pageTitle":"Themes","sectionTitle":"Creating a Custom Theme","sectionRoute":"/docs/gamevault-plus/themes#creating-a-custom-theme","type":"docs"},{"id":140,"pageTitle":"Themes","sectionTitle":"Sharing Custom Themes","sectionRoute":"/docs/gamevault-plus/themes#sharing-custom-themes","type":"docs"},{"id":195,"pageTitle":"Introduction","sectionTitle":"Introduction","sectionRoute":"/docs/intro","type":"docs"},{"id":196,"pageTitle":"Introduction","sectionTitle":"What is GameVault?","sectionRoute":"/docs/intro#what-is-gamevault","type":"docs"},{"id":197,"pageTitle":"Introduction","sectionTitle":"Who Can Enjoy GameVault?","sectionRoute":"/docs/intro#who-can-enjoy-gamevault","type":"docs"},{"id":198,"pageTitle":"Introduction","sectionTitle":"What GameVault is not","sectionRoute":"/docs/intro#what-gamevault-is-not","type":"docs"},{"id":199,"pageTitle":"Introduction","sectionTitle":"Features","sectionRoute":"/docs/intro#features","type":"docs"},{"id":200,"pageTitle":"Introduction","sectionTitle":"Client Features","sectionRoute":"/docs/intro#client-features","type":"docs"},{"id":201,"pageTitle":"Introduction","sectionTitle":"Server Features","sectionRoute":"/docs/intro#server-features","type":"docs"},{"id":202,"pageTitle":"Introduction","sectionTitle":"Support","sectionRoute":"/docs/intro#support","type":"docs"},{"id":203,"pageTitle":"Introduction","sectionTitle":"License","sectionRoute":"/docs/intro#license","type":"docs"},{"id":204,"pageTitle":"Introduction","sectionTitle":"Legal Disclaimer","sectionRoute":"/docs/intro#legal-disclaimer","type":"docs"},{"id":176,"pageTitle":"Licensing and Contributions","sectionTitle":"Licensing and Contributions","sectionRoute":"/docs/license-contribute","type":"docs"},{"id":177,"pageTitle":"Licensing and Contributions","sectionTitle":"License","sectionRoute":"/docs/license-contribute#license","type":"docs"},{"id":178,"pageTitle":"Licensing and Contributions","sectionTitle":"Why is GameVault not open-source?","sectionRoute":"/docs/license-contribute#why-is-gamevault-not-open-source","type":"docs"},{"id":179,"pageTitle":"Licensing and Contributions","sectionTitle":"Contributing to GameVault","sectionRoute":"/docs/license-contribute#contributing-to-gamevault","type":"docs"},{"id":180,"pageTitle":"Licensing and Contributions","sectionTitle":"Publishing Adaptations of GameVault","sectionRoute":"/docs/license-contribute#publishing-adaptations-of-gamevault","type":"docs"},{"id":181,"pageTitle":"Licensing and Contributions","sectionTitle":"Community Forks","sectionRoute":"/docs/license-contribute#community-forks","type":"docs"},{"id":182,"pageTitle":"Licensing and Contributions","sectionTitle":"gamevault-app","sectionRoute":"/docs/license-contribute#gamevault-app","type":"docs"},{"id":183,"pageTitle":"Licensing and Contributions","sectionTitle":"gamevault-backend","sectionRoute":"/docs/license-contribute#gamevault-backend","type":"docs"},{"id":184,"pageTitle":"Licensing and Contributions","sectionTitle":"Contributors to this Documentation","sectionRoute":"/docs/license-contribute#contributors-to-this-documentation","type":"docs"},{"id":185,"pageTitle":"Adding Games to GameVault","sectionTitle":"Adding Games to GameVault","sectionRoute":"/docs/server-docs/adding-games","type":"docs"},{"id":186,"pageTitle":"Adding Games to GameVault","sectionTitle":"Before You Begin","sectionRoute":"/docs/server-docs/adding-games#before-you-begin","type":"docs"},{"id":187,"pageTitle":"Adding Games to GameVault","sectionTitle":"Step 1: Preparing","sectionRoute":"/docs/server-docs/adding-games#step-1-preparing","type":"docs"},{"id":188,"pageTitle":"Adding Games to GameVault","sectionTitle":"Step 2: Compression","sectionRoute":"/docs/server-docs/adding-games#step-2-compression","type":"docs"},{"id":189,"pageTitle":"Adding Games to GameVault","sectionTitle":"Method 1: The Fast Way","sectionRoute":"/docs/server-docs/adding-games#method-1-the-fast-way","type":"docs"},{"id":190,"pageTitle":"Adding Games to GameVault","sectionTitle":"Method 2: The Hardcore Way","sectionRoute":"/docs/server-docs/adding-games#method-2-the-hardcore-way","type":"docs"},{"id":191,"pageTitle":"Adding Games to GameVault","sectionTitle":"Method 3: The Balanced Way","sectionRoute":"/docs/server-docs/adding-games#method-3-the-balanced-way","type":"docs"},{"id":192,"pageTitle":"Adding Games to GameVault","sectionTitle":"Step 3: Naming the Archive","sectionRoute":"/docs/server-docs/adding-games#step-3-naming-the-archive","type":"docs"},{"id":193,"pageTitle":"Adding Games to GameVault","sectionTitle":"Adding the same game multiple times","sectionRoute":"/docs/server-docs/adding-games#adding-the-same-game-multiple-times","type":"docs"},{"id":194,"pageTitle":"Adding Games to GameVault","sectionTitle":"Step 4: Deploy 🥳","sectionRoute":"/docs/server-docs/adding-games#step-4-deploy-","type":"docs"},{"id":372,"pageTitle":"Database Backup & Restoration","sectionTitle":"Database Backup & Restoration","sectionRoute":"/docs/server-docs/backup-and-restore","type":"docs"},{"id":373,"pageTitle":"Database Backup & Restoration","sectionTitle":"Backup","sectionRoute":"/docs/server-docs/backup-and-restore#backup","type":"docs"},{"id":374,"pageTitle":"Database Backup & Restoration","sectionTitle":"Restoration","sectionRoute":"/docs/server-docs/backup-and-restore#restoration","type":"docs"},{"id":211,"pageTitle":"Configuration","sectionTitle":"Configuration","sectionRoute":"/docs/server-docs/configuration","type":"docs"},{"id":212,"pageTitle":"Configuration","sectionTitle":"Configuration Properties","sectionRoute":"/docs/server-docs/configuration#configuration-properties","type":"docs"},{"id":213,"pageTitle":"Configuration","sectionTitle":"SERVER","sectionRoute":"/docs/server-docs/configuration#server","type":"docs"},{"id":214,"pageTitle":"Configuration","sectionTitle":"VOLUMES","sectionRoute":"/docs/server-docs/configuration#volumes","type":"docs"},{"id":215,"pageTitle":"Configuration","sectionTitle":"DB","sectionRoute":"/docs/server-docs/configuration#db","type":"docs"},{"id":216,"pageTitle":"Configuration","sectionTitle":"USERS","sectionRoute":"/docs/server-docs/configuration#users","type":"docs"},{"id":217,"pageTitle":"Configuration","sectionTitle":"PARENTAL","sectionRoute":"/docs/server-docs/configuration#parental","type":"docs"},{"id":218,"pageTitle":"Configuration","sectionTitle":"GAMES","sectionRoute":"/docs/server-docs/configuration#games","type":"docs"},{"id":219,"pageTitle":"Configuration","sectionTitle":"MEDIA","sectionRoute":"/docs/server-docs/configuration#media","type":"docs"},{"id":220,"pageTitle":"Configuration","sectionTitle":"METADATA","sectionRoute":"/docs/server-docs/configuration#metadata","type":"docs"},{"id":221,"pageTitle":"Configuration","sectionTitle":"TESTING","sectionRoute":"/docs/server-docs/configuration#testing","type":"docs"},{"id":206,"pageTitle":"Game Types","sectionTitle":"Game Types","sectionRoute":"/docs/server-docs/game-types","type":"docs"},{"id":207,"pageTitle":"Game Types","sectionTitle":"Supported Game Types","sectionRoute":"/docs/server-docs/game-types#supported-game-types","type":"docs"},{"id":208,"pageTitle":"Game Types","sectionTitle":"Windows","sectionRoute":"/docs/server-docs/game-types#windows","type":"docs"},{"id":209,"pageTitle":"Game Types","sectionTitle":"Linux","sectionRoute":"/docs/server-docs/game-types#linux","type":"docs"},{"id":210,"pageTitle":"Game Types","sectionTitle":"Undetected","sectionRoute":"/docs/server-docs/game-types#undetected","type":"docs"},{"id":205,"pageTitle":"Game Indexing","sectionTitle":"Game Indexing","sectionRoute":"/docs/server-docs/indexing","type":"docs"},{"id":222,"pageTitle":"Media","sectionTitle":"Media","sectionRoute":"/docs/server-docs/media","type":"docs"},{"id":223,"pageTitle":"Media","sectionTitle":"Supported Formats","sectionRoute":"/docs/server-docs/media#supported-formats","type":"docs"},{"id":224,"pageTitle":"Media","sectionTitle":"Supported Image Formats","sectionRoute":"/docs/server-docs/media#supported-image-formats","type":"docs"},{"id":225,"pageTitle":"Media","sectionTitle":"Supported Audio Formats","sectionRoute":"/docs/server-docs/media#supported-audio-formats","type":"docs"},{"id":226,"pageTitle":"Media","sectionTitle":"Supported Video Formats","sectionRoute":"/docs/server-docs/media#supported-video-formats","type":"docs"},{"id":227,"pageTitle":"Media","sectionTitle":"Media Persistence","sectionRoute":"/docs/server-docs/media#media-persistence","type":"docs"},{"id":228,"pageTitle":"Media","sectionTitle":"Media that is stored on the filesystem","sectionRoute":"/docs/server-docs/media#media-that-is-stored-on-the-filesystem","type":"docs"},{"id":229,"pageTitle":"Media","sectionTitle":"Media that is stored as an external resource","sectionRoute":"/docs/server-docs/media#media-that-is-stored-as-an-external-resource","type":"docs"},{"id":230,"pageTitle":"Media","sectionTitle":"Duplicate Media","sectionRoute":"/docs/server-docs/media#duplicate-media","type":"docs"},{"id":231,"pageTitle":"Media","sectionTitle":"Media Garbage Collection","sectionRoute":"/docs/server-docs/media#media-garbage-collection","type":"docs"},{"id":232,"pageTitle":"Media","sectionTitle":"Turning off Garbage Collection","sectionRoute":"/docs/server-docs/media#turning-off-garbage-collection","type":"docs"},{"id":233,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Enriching your Games with Metadata","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata","type":"docs"},{"id":234,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Setting Up a Metadata Provider","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#setting-up-a-metadata-provider","type":"docs"},{"id":235,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Built-In Metadata Providers","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#built-in-metadata-providers","type":"docs"},{"id":236,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Community-Maintained Metadata Providers","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#community-maintained-metadata-providers","type":"docs"},{"id":237,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"How Metadata Enrichment in GameVault Works","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#how-metadata-enrichment-in-gamevault-works","type":"docs"},{"id":238,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Editing Metadata","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#editing-metadata","type":"docs"},{"id":239,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Remapping a Game","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#remapping-a-game","type":"docs"},{"id":240,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Unmapping a Game","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#unmapping-a-game","type":"docs"},{"id":241,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"How GameVault Merges Metadata","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#how-gamevault-merges-metadata","type":"docs"},{"id":242,"pageTitle":"Enriching your Games with Metadata","sectionTitle":"Developing a New Metadata Provider Plugin","sectionRoute":"/docs/server-docs/metadata-enrichment/metadata#developing-a-new-metadata-provider-plugin","type":"docs"},{"id":243,"pageTitle":"Provider: IGDB","sectionTitle":"Provider: IGDB","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb","type":"docs"},{"id":244,"pageTitle":"Provider: IGDB","sectionTitle":"Overview","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#overview","type":"docs"},{"id":245,"pageTitle":"Provider: IGDB","sectionTitle":"Setup","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#setup","type":"docs"},{"id":246,"pageTitle":"Provider: IGDB","sectionTitle":"Configurations","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#configurations","type":"docs"},{"id":247,"pageTitle":"Provider: IGDB","sectionTitle":"Mappings","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#mappings","type":"docs"},{"id":248,"pageTitle":"Provider: IGDB","sectionTitle":"Fields","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#fields","type":"docs"},{"id":249,"pageTitle":"Provider: IGDB","sectionTitle":"Age Rating","sectionRoute":"/docs/server-docs/metadata-enrichment/provider-igdb#age-rating","type":"docs"},{"id":250,"pageTitle":"Parental Control","sectionTitle":"Parental Control","sectionRoute":"/docs/server-docs/parental-control","type":"docs"},{"id":251,"pageTitle":"Parental Control","sectionTitle":"Enabling Parental Control","sectionRoute":"/docs/server-docs/parental-control#enabling-parental-control","type":"docs"},{"id":252,"pageTitle":"Parental Control","sectionTitle":"Changing the Age of Majority","sectionRoute":"/docs/server-docs/parental-control#changing-the-age-of-majority","type":"docs"},{"id":253,"pageTitle":"Parental Control","sectionTitle":"Overriding the Age Rating of a Game","sectionRoute":"/docs/server-docs/parental-control#overriding-the-age-rating-of-a-game","type":"docs"},{"id":271,"pageTitle":"Plugins","sectionTitle":"Plugins","sectionRoute":"/docs/server-docs/plugins","type":"docs"},{"id":272,"pageTitle":"Plugins","sectionTitle":"Introduction","sectionRoute":"/docs/server-docs/plugins#introduction","type":"docs"},{"id":273,"pageTitle":"Plugins","sectionTitle":"Where to Find Plugins","sectionRoute":"/docs/server-docs/plugins#where-to-find-plugins","type":"docs"},{"id":274,"pageTitle":"Plugins","sectionTitle":"How to Install Plugins","sectionRoute":"/docs/server-docs/plugins#how-to-install-plugins","type":"docs"},{"id":275,"pageTitle":"Plugins","sectionTitle":"How to Develop GameVault Plugins","sectionRoute":"/docs/server-docs/plugins#how-to-develop-gamevault-plugins","type":"docs"},{"id":276,"pageTitle":"Plugins","sectionTitle":"Step 1: Clone the Backend Repository","sectionRoute":"/docs/server-docs/plugins#step-1-clone-the-backend-repository","type":"docs"},{"id":277,"pageTitle":"Plugins","sectionTitle":"Step 2: Understand the Architecture","sectionRoute":"/docs/server-docs/plugins#step-2-understand-the-architecture","type":"docs"},{"id":278,"pageTitle":"Plugins","sectionTitle":"Step 3: Set Up a Plugin","sectionRoute":"/docs/server-docs/plugins#step-3-set-up-a-plugin","type":"docs"},{"id":279,"pageTitle":"Plugins","sectionTitle":"Step 4: Document Your Plugin","sectionRoute":"/docs/server-docs/plugins#step-4-document-your-plugin","type":"docs"},{"id":280,"pageTitle":"Plugins","sectionTitle":"Step 5: Implement Your Plugin's Logic","sectionRoute":"/docs/server-docs/plugins#step-5-implement-your-plugins-logic","type":"docs"},{"id":281,"pageTitle":"Plugins","sectionTitle":"Step 6: Test Your Plugin","sectionRoute":"/docs/server-docs/plugins#step-6-test-your-plugin","type":"docs"},{"id":282,"pageTitle":"Plugins","sectionTitle":"Step 7: Compile Your Plugin","sectionRoute":"/docs/server-docs/plugins#step-7-compile-your-plugin","type":"docs"},{"id":283,"pageTitle":"Plugins","sectionTitle":"Step 8: Release Your Plugin","sectionRoute":"/docs/server-docs/plugins#step-8-release-your-plugin","type":"docs"},{"id":284,"pageTitle":"Plugins","sectionTitle":"Step 9: Get Featured","sectionRoute":"/docs/server-docs/plugins#step-9-get-featured","type":"docs"},{"id":285,"pageTitle":"Plugins","sectionTitle":"Metadata Provider Plugin Specifics","sectionRoute":"/docs/server-docs/plugins#metadata-provider-plugin-specifics","type":"docs"},{"id":286,"pageTitle":"Plugins","sectionTitle":"Example Plugins","sectionRoute":"/docs/server-docs/plugins#example-plugins","type":"docs"},{"id":254,"pageTitle":"Server News","sectionTitle":"Server News","sectionRoute":"/docs/server-docs/server-news","type":"docs"},{"id":255,"pageTitle":"Setting up a GameVault Server","sectionTitle":"Setting up a GameVault Server","sectionRoute":"/docs/server-docs/setup/","type":"docs"},{"id":256,"pageTitle":"Setting up a GameVault Server","sectionTitle":"Supported Methods","sectionRoute":"/docs/server-docs/setup/#supported-methods","type":"docs"},{"id":257,"pageTitle":"Setting up a GameVault Server","sectionTitle":"More Methods","sectionRoute":"/docs/server-docs/setup/#more-methods","type":"docs"},{"id":258,"pageTitle":"Setting up a GameVault Server","sectionTitle":"What Next?","sectionRoute":"/docs/server-docs/setup/#what-next","type":"docs"},{"id":259,"pageTitle":"Using CapRover","sectionTitle":"Using CapRover","sectionRoute":"/docs/server-docs/setup/caprover","type":"docs"},{"id":260,"pageTitle":"Using CapRover","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/caprover#prerequisites","type":"docs"},{"id":261,"pageTitle":"Using CapRover","sectionTitle":"Step 1: Log in to your CapRover Dashboard","sectionRoute":"/docs/server-docs/setup/caprover#step-1-log-in-to-your-caprover-dashboard","type":"docs"},{"id":262,"pageTitle":"Using CapRover","sectionTitle":"Step 2: Navigate to the One-Click-Apps/Databases","sectionRoute":"/docs/server-docs/setup/caprover#step-2-navigate-to-the-one-click-appsdatabases","type":"docs"},{"id":263,"pageTitle":"Using CapRover","sectionTitle":"Step 3: Connect Phalcode's third-party repository","sectionRoute":"/docs/server-docs/setup/caprover#step-3-connect-phalcodes-third-party-repository","type":"docs"},{"id":264,"pageTitle":"Using CapRover","sectionTitle":"Step 4: Install our GameVault One-Click-App","sectionRoute":"/docs/server-docs/setup/caprover#step-4-install-our-gamevault-one-click-app","type":"docs"},{"id":265,"pageTitle":"Using CapRover","sectionTitle":"Step 5: Enable WebSocket Support","sectionRoute":"/docs/server-docs/setup/caprover#step-5-enable-websocket-support","type":"docs"},{"id":266,"pageTitle":"Using CapRover","sectionTitle":"Step 6: Configuring Volumes","sectionRoute":"/docs/server-docs/setup/caprover#step-6-configuring-volumes","type":"docs"},{"id":267,"pageTitle":"Using CapRover","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/caprover#conclusion","type":"docs"},{"id":268,"pageTitle":"Using CapRover","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/caprover#additional-info","type":"docs"},{"id":269,"pageTitle":"Using CapRover","sectionTitle":"Stopping the Server","sectionRoute":"/docs/server-docs/setup/caprover#stopping-the-server","type":"docs"},{"id":270,"pageTitle":"Using CapRover","sectionTitle":"Reading the Logs","sectionRoute":"/docs/server-docs/setup/caprover#reading-the-logs","type":"docs"},{"id":307,"pageTitle":"Using Docker Compose","sectionTitle":"Using Docker Compose","sectionRoute":"/docs/server-docs/setup/docker-compose","type":"docs"},{"id":308,"pageTitle":"Using Docker Compose","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/docker-compose#prerequisites","type":"docs"},{"id":309,"pageTitle":"Using Docker Compose","sectionTitle":"Step 1: Creating a Docker Compose file","sectionRoute":"/docs/server-docs/setup/docker-compose#step-1-creating-a-docker-compose-file","type":"docs"},{"id":310,"pageTitle":"Using Docker Compose","sectionTitle":"Tips for Running Docker on Windows","sectionRoute":"/docs/server-docs/setup/docker-compose#tips-for-running-docker-on-windows","type":"docs"},{"id":311,"pageTitle":"Using Docker Compose","sectionTitle":"Alternative Step 1: Running without a PostgreSQL Database","sectionRoute":"/docs/server-docs/setup/docker-compose#alternative-step-1-running-without-a-postgresql-database","type":"docs"},{"id":312,"pageTitle":"Using Docker Compose","sectionTitle":"Step 2: Start the Service","sectionRoute":"/docs/server-docs/setup/docker-compose#step-2-start-the-service","type":"docs"},{"id":313,"pageTitle":"Using Docker Compose","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/docker-compose#conclusion","type":"docs"},{"id":314,"pageTitle":"Using Docker Compose","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/docker-compose#additional-info","type":"docs"},{"id":315,"pageTitle":"Using Docker Compose","sectionTitle":"Stopping the server","sectionRoute":"/docs/server-docs/setup/docker-compose#stopping-the-server","type":"docs"},{"id":316,"pageTitle":"Using Docker Compose","sectionTitle":"Reading the logs","sectionRoute":"/docs/server-docs/setup/docker-compose#reading-the-logs","type":"docs"},{"id":287,"pageTitle":"Using Native Approach","sectionTitle":"Using Native Approach","sectionRoute":"/docs/server-docs/setup/native","type":"docs"},{"id":288,"pageTitle":"Using Native Approach","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/native#prerequisites","type":"docs"},{"id":289,"pageTitle":"Using Native Approach","sectionTitle":"Step 1: Clone the Source Code","sectionRoute":"/docs/server-docs/setup/native#step-1-clone-the-source-code","type":"docs"},{"id":290,"pageTitle":"Using Native Approach","sectionTitle":"Step 2: Install Dependencies","sectionRoute":"/docs/server-docs/setup/native#step-2-install-dependencies","type":"docs"},{"id":291,"pageTitle":"Using Native Approach","sectionTitle":"Step 3: Set up an .env File","sectionRoute":"/docs/server-docs/setup/native#step-3-set-up-an-env-file","type":"docs"},{"id":292,"pageTitle":"Using Native Approach","sectionTitle":"Step 4: Build and Start the Server","sectionRoute":"/docs/server-docs/setup/native#step-4-build-and-start-the-server","type":"docs"},{"id":293,"pageTitle":"Using Native Approach","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/native#conclusion","type":"docs"},{"id":294,"pageTitle":"Using Native Approach","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/native#additional-info","type":"docs"},{"id":295,"pageTitle":"Using Native Approach","sectionTitle":"Stopping the Server","sectionRoute":"/docs/server-docs/setup/native#stopping-the-server","type":"docs"},{"id":296,"pageTitle":"Using Native Approach","sectionTitle":"Updating the Server","sectionRoute":"/docs/server-docs/setup/native#updating-the-server","type":"docs"},{"id":297,"pageTitle":"Using Synology Container Manager","sectionTitle":"Using Synology Container Manager","sectionRoute":"/docs/server-docs/setup/synology-container-manager","type":"docs"},{"id":298,"pageTitle":"Using Synology Container Manager","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/synology-container-manager#prerequisites","type":"docs"},{"id":299,"pageTitle":"Using Synology Container Manager","sectionTitle":"Step 1: Create Necessary Folders","sectionRoute":"/docs/server-docs/setup/synology-container-manager#step-1-create-necessary-folders","type":"docs"},{"id":300,"pageTitle":"Using Synology Container Manager","sectionTitle":"Step 2: Set Up a Project in Container Manager","sectionRoute":"/docs/server-docs/setup/synology-container-manager#step-2-set-up-a-project-in-container-manager","type":"docs"},{"id":301,"pageTitle":"Using Synology Container Manager","sectionTitle":"Step 3: Create Docker Compose File","sectionRoute":"/docs/server-docs/setup/synology-container-manager#step-3-create-docker-compose-file","type":"docs"},{"id":302,"pageTitle":"Using Synology Container Manager","sectionTitle":"Alternative Step 3: Running without a PostgreSQL Database","sectionRoute":"/docs/server-docs/setup/synology-container-manager#alternative-step-3-running-without-a-postgresql-database","type":"docs"},{"id":303,"pageTitle":"Using Synology Container Manager","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/synology-container-manager#conclusion","type":"docs"},{"id":304,"pageTitle":"Using Synology Container Manager","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/synology-container-manager#additional-info","type":"docs"},{"id":305,"pageTitle":"Using Synology Container Manager","sectionTitle":"Stopping the Server","sectionRoute":"/docs/server-docs/setup/synology-container-manager#stopping-the-server","type":"docs"},{"id":306,"pageTitle":"Using Synology Container Manager","sectionTitle":"Reading the Logs","sectionRoute":"/docs/server-docs/setup/synology-container-manager#reading-the-logs","type":"docs"},{"id":328,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Using TrueNAS Scale","sectionRoute":"/docs/server-docs/setup/truenas-scale","type":"docs"},{"id":329,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/truenas-scale#prerequisites","type":"docs"},{"id":330,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Step 1: Log in to your TrueNAS Scale Dashboard","sectionRoute":"/docs/server-docs/setup/truenas-scale#step-1-log-in-to-your-truenas-scale-dashboard","type":"docs"},{"id":331,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Step 2: Navigate to the catalog Page in TrueNas Scale","sectionRoute":"/docs/server-docs/setup/truenas-scale#step-2-navigate-to-the-catalog-page-in-truenas-scale","type":"docs"},{"id":332,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Step 3: Navigate to Apps and Disover Page","sectionRoute":"/docs/server-docs/setup/truenas-scale#step-3-navigate-to-apps-and-disover-page","type":"docs"},{"id":333,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Step 4: Configure and Install gamevault-backend","sectionRoute":"/docs/server-docs/setup/truenas-scale#step-4-configure-and-install-gamevault-backend","type":"docs"},{"id":334,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/truenas-scale#conclusion","type":"docs"},{"id":335,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/truenas-scale#additional-info","type":"docs"},{"id":336,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Stopping the Server","sectionRoute":"/docs/server-docs/setup/truenas-scale#stopping-the-server","type":"docs"},{"id":337,"pageTitle":"Using TrueNAS Scale","sectionTitle":"Reading the Logs","sectionRoute":"/docs/server-docs/setup/truenas-scale#reading-the-logs","type":"docs"},{"id":317,"pageTitle":"Using UNRAID","sectionTitle":"Using UNRAID","sectionRoute":"/docs/server-docs/setup/unraid","type":"docs"},{"id":318,"pageTitle":"Using UNRAID","sectionTitle":"Prerequisites","sectionRoute":"/docs/server-docs/setup/unraid#prerequisites","type":"docs"},{"id":319,"pageTitle":"Using UNRAID","sectionTitle":"Step 1: Setting up the Database","sectionRoute":"/docs/server-docs/setup/unraid#step-1-setting-up-the-database","type":"docs"},{"id":320,"pageTitle":"Using UNRAID","sectionTitle":"Step 2: Install POSTGRES","sectionRoute":"/docs/server-docs/setup/unraid#step-2-install-postgres","type":"docs"},{"id":321,"pageTitle":"Using UNRAID","sectionTitle":"Step 3: Setting up your GameVault Backend server","sectionRoute":"/docs/server-docs/setup/unraid#step-3-setting-up-your-gamevault-backend-server","type":"docs"},{"id":322,"pageTitle":"Using UNRAID","sectionTitle":"Alternative Step 3: Running without a PostgreSQL Database","sectionRoute":"/docs/server-docs/setup/unraid#alternative-step-3-running-without-a-postgresql-database","type":"docs"},{"id":323,"pageTitle":"Using UNRAID","sectionTitle":"Step 4: Configure install","sectionRoute":"/docs/server-docs/setup/unraid#step-4-configure-install","type":"docs"},{"id":324,"pageTitle":"Using UNRAID","sectionTitle":"Conclusion","sectionRoute":"/docs/server-docs/setup/unraid#conclusion","type":"docs"},{"id":325,"pageTitle":"Using UNRAID","sectionTitle":"Additional Info","sectionRoute":"/docs/server-docs/setup/unraid#additional-info","type":"docs"},{"id":326,"pageTitle":"Using UNRAID","sectionTitle":"Stopping the Server","sectionRoute":"/docs/server-docs/setup/unraid#stopping-the-server","type":"docs"},{"id":327,"pageTitle":"Using UNRAID","sectionTitle":"Reading the Logs","sectionRoute":"/docs/server-docs/setup/unraid#reading-the-logs","type":"docs"},{"id":342,"pageTitle":"File and Folder Structure","sectionTitle":"File and Folder Structure","sectionRoute":"/docs/server-docs/structure","type":"docs"},{"id":343,"pageTitle":"File and Folder Structure","sectionTitle":"Supported Archive Formats","sectionRoute":"/docs/server-docs/structure#supported-archive-formats","type":"docs"},{"id":344,"pageTitle":"File and Folder Structure","sectionTitle":"Single File Executable","sectionRoute":"/docs/server-docs/structure#single-file-executable","type":"docs"},{"id":345,"pageTitle":"File and Folder Structure","sectionTitle":"Naming Convention for Games","sectionRoute":"/docs/server-docs/structure#naming-convention-for-games","type":"docs"},{"id":346,"pageTitle":"File and Folder Structure","sectionTitle":"Other Examples","sectionRoute":"/docs/server-docs/structure#other-examples","type":"docs"},{"id":338,"pageTitle":"Updating Games","sectionTitle":"Updating Games","sectionRoute":"/docs/server-docs/updating-games","type":"docs"},{"id":339,"pageTitle":"Updating Games","sectionTitle":"Applying an Update to a Game","sectionRoute":"/docs/server-docs/updating-games#applying-an-update-to-a-game","type":"docs"},{"id":340,"pageTitle":"Updating Games","sectionTitle":"Example","sectionRoute":"/docs/server-docs/updating-games#example","type":"docs"},{"id":341,"pageTitle":"Updating Games","sectionTitle":"Changing or Moving a Game","sectionRoute":"/docs/server-docs/updating-games#changing-or-moving-a-game","type":"docs"},{"id":347,"pageTitle":"User Management","sectionTitle":"User Management","sectionRoute":"/docs/server-docs/user-management","type":"docs"},{"id":348,"pageTitle":"User Management","sectionTitle":"Admin User","sectionRoute":"/docs/server-docs/user-management#admin-user","type":"docs"},{"id":349,"pageTitle":"User Management","sectionTitle":"Initial Setup","sectionRoute":"/docs/server-docs/user-management#initial-setup","type":"docs"},{"id":350,"pageTitle":"User Management","sectionTitle":"Admin Role Recovery","sectionRoute":"/docs/server-docs/user-management#admin-role-recovery","type":"docs"},{"id":351,"pageTitle":"User Management","sectionTitle":"Admin Password Recovery","sectionRoute":"/docs/server-docs/user-management#admin-password-recovery","type":"docs"},{"id":352,"pageTitle":"User Management","sectionTitle":"User Registration","sectionRoute":"/docs/server-docs/user-management#user-registration","type":"docs"},{"id":353,"pageTitle":"User Management","sectionTitle":"User Activation","sectionRoute":"/docs/server-docs/user-management#user-activation","type":"docs"},{"id":354,"pageTitle":"User Management","sectionTitle":"User Roles","sectionRoute":"/docs/server-docs/user-management#user-roles","type":"docs"},{"id":355,"pageTitle":"WebSockets","sectionTitle":"WebSockets","sectionRoute":"/docs/server-docs/websockets","type":"docs"},{"id":356,"pageTitle":"WebSockets","sectionTitle":"Activities","sectionRoute":"/docs/server-docs/websockets#activities","type":"docs"},{"id":357,"pageTitle":"WebSockets","sectionTitle":"Disabling Activities","sectionRoute":"/docs/server-docs/websockets#disabling-activities","type":"docs"},{"id":358,"pageTitle":"WebSockets","sectionTitle":"Security","sectionRoute":"/docs/server-docs/websockets#security","type":"docs"},{"id":359,"pageTitle":"Troubleshooting","sectionTitle":"Troubleshooting","sectionRoute":"/docs/troubleshooting","type":"docs"},{"id":360,"pageTitle":"Troubleshooting","sectionTitle":"All-Rounder Solutions that Fix Most Problems","sectionRoute":"/docs/troubleshooting#all-rounder-solutions-that-fix-most-problems","type":"docs"},{"id":361,"pageTitle":"Troubleshooting","sectionTitle":"Common Problems and Solutions","sectionRoute":"/docs/troubleshooting#common-problems-and-solutions","type":"docs"},{"id":362,"pageTitle":"Troubleshooting","sectionTitle":"Incorrect Game Mapping","sectionRoute":"/docs/troubleshooting#incorrect-game-mapping","type":"docs"},{"id":363,"pageTitle":"Troubleshooting","sectionTitle":"Server fails to save media / create SQLITE Database / index games / throws a Permissions Denied / No Permission / EACCES error","sectionRoute":"/docs/troubleshooting#server-fails-to-save-media--create-sqlite-database--index-games--throws-a-permissions-denied--no-permission--eacces-error","type":"docs"},{"id":364,"pageTitle":"Troubleshooting","sectionTitle":"Unable to Connect to Server / 500 Internal Server Error","sectionRoute":"/docs/troubleshooting#unable-to-connect-to-server--500-internal-server-error","type":"docs"},{"id":365,"pageTitle":"Troubleshooting","sectionTitle":"Initial Admin User is not working","sectionRoute":"/docs/troubleshooting#initial-admin-user-is-not-working","type":"docs"},{"id":366,"pageTitle":"Troubleshooting","sectionTitle":"Games Not Appearing in the Installations / Servers List","sectionRoute":"/docs/troubleshooting#games-not-appearing-in-the-installations--servers-list","type":"docs"},{"id":367,"pageTitle":"Troubleshooting","sectionTitle":"Missing Box Arts","sectionRoute":"/docs/troubleshooting#missing-box-arts","type":"docs"},{"id":368,"pageTitle":"Troubleshooting","sectionTitle":"Lack of Metadata in Games","sectionRoute":"/docs/troubleshooting#lack-of-metadata-in-games","type":"docs"},{"id":369,"pageTitle":"Troubleshooting","sectionTitle":"Lost my Admin Role","sectionRoute":"/docs/troubleshooting#lost-my-admin-role","type":"docs"},{"id":370,"pageTitle":"Troubleshooting","sectionTitle":"Forgot my Admin Password","sectionRoute":"/docs/troubleshooting#forgot-my-admin-password","type":"docs"},{"id":371,"pageTitle":"Troubleshooting","sectionTitle":"Game Downloads are slow","sectionRoute":"/docs/troubleshooting#game-downloads-are-slow","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/47",[0,2.926,1,2.03,2,3.918]],["content/47",[]],["tags/47",[]],["title/48",[3,5.514]],["content/48",[0,3.911,1,1.914,2,3.693,3,3.693,4,0.548,5,4.405,6,4.866,7,2.598,8,2.818,9,3.2,10,4.866,11,2.177,12,3.756,13,4.989,14,3.543,15,3.693,16,4.101,17,4.101,18,3.543,19,4.866,20,3.2,21,2.118,22,2.208,23,4.866,24,2.422,25,2.422,26,2.649,27,3.2,28,4.101,29,4.101,30,2.208,31,2.551,32,4.101,33,3.875,34,3.413,35,3.413,36,4.866,37,4.405,38,3.693,39,3.413,40,3.543]],["tags/48",[]],["title/49",[32,5.087,41,3.054]],["content/49",[0,3.802,1,3.084,2,5.091,4,0.532,25,2.327,31,2.451,32,5.654,41,3.395,42,3.724,43,2.063,44,2.408,45,3.549,46,2.237,47,3.404,48,2.988,49,3.172,50,4.677,51,3.549,52,1.99,53,4.411,54,2.092,55,1.817,56,2.77,57,4.677,58,1.908,59,2.545,60,3.942,61,1.661,62,1.38,63,3.404,64,4.677,65,3.232,66,0.886,67,1.221,68,3.28,69,3.942,70,4.233,71,2.596]],["tags/49",[]],["title/50",[42,5.784]],["content/50",[0,3.746,1,2.599,2,5.016,5,5.983,46,2.204,48,4.223,49,4.483,60,5.57,72,5.016,73,5.262,74,4.223,75,1.998,76,5.016,77,3.403,78,2.227,79,5.262,80,5.016,81,4.636,82,2.999,83,3.597]],["tags/50",[]],["title/51",[84,3.755,85,2.955]],["content/51",[0,3.55,1,2.463,2,4.754,7,3.345,15,4.754,41,3.17,45,4.754,68,4.394,78,2.111,86,4.754,87,6.264,88,4.003,89,6.264,90,2.378,91,5.28,92,5.67,93,4.56,94,4.754,95,4.754,96,4.119,97,4.248,98,3.018,99,4.003,100,4.56]],["tags/51",[]],["title/52",[0,2.556,1,1.773,69,3.801,101,4.51]],["content/52",[]],["tags/52",[]],["title/53",[0,2.556,1,1.773,30,2.046,102,3.801]],["content/53",[0,5.495,1,3.812,11,2.802,30,2.843,49,4.248,60,5.28,68,4.394,80,4.754,103,3.95,104,3.43,105,3.628,106,3.067,107,1.462,108,2.884,109,4.754,110,3.284]],["tags/53",[]],["title/54",[28,4.351,30,2.343,111,4.351]],["content/54",[0,2.969,1,2.06,4,0.577,11,2.344,24,2.607,28,4.415,30,2.377,48,3.347,49,3.553,52,1.554,53,3.445,54,2.344,61,1.86,69,4.415,94,3.976,98,2.524,103,2.524,104,3.04,106,2.564,107,1.223,108,2.412,109,3.976,110,2.746,112,3.553,113,3.103,114,4.171,115,2.797,116,4.171,117,5.29,118,6.578,119,5.238,120,4.415,121,2.412,122,5.238,123,3.674]],["tags/54",[]],["title/55",[124,3.423,125,3.591,126,4.51,127,2.107]],["content/55",[0,3.964,1,2.751,17,5.895,48,4.47,49,4.744,68,4.906,110,3.666,124,5.309,125,5.569,127,3.268,128,6.995,129,5.569,130,3.602,131,5.092,132,5.309,133,5.895]],["tags/55",[]],["title/56",[4,0.41,134,2.006,135,3.132]],["content/56",[15,4.633,66,1.156,96,5.3,114,4.861,135,3.704,136,3.946,137,3.06,138,4.818,139,5.526,140,3.616,141,6.105,142,4.633,143,3.323,144,4.444,145,3.323,146,4.861,147,3.798,148,3.535,149,4.014,150,3.2,151,6.105]],["tags/56",[]],["title/57",[152,5.784]],["content/57",[1,2.432,4,0.491,55,2.403,78,2.084,107,1.443,135,4.931,138,3.302,153,5.211,154,2.321,155,6.183,156,5.597,157,4.693,158,4.337,159,4.693,160,5.597,161,1.644,162,4.693,163,4.923,164,4.194,165,6.183,166,6.183,167,5.597,168,3.241,169,5.597]],["tags/57",[]],["title/58",[170,4.927]],["content/58",[4,0.599,52,2.238,61,2.68,62,1.553,135,4.577,171,5.117,172,3.579,173,5.292,174,5.492,175,4.106,176,3.885]],["tags/58",[]],["title/59",[75,2.196]],["content/59",[]],["tags/59",[]],["title/60",[55,1.399,161,0.957,177,1.791,178,1.887,179,2.367,180,2.085]],["content/60",[4,0.532,12,2.545,43,2.063,44,2.408,55,3.048,63,3.404,65,2.253,105,2.708,107,1.091,108,2.153,161,1.783,178,2.451,179,3.075,180,3.885,181,2.545,182,2.462,183,2.837,184,2.843,185,2.253,186,3.549,187,3.611,188,3.549,189,3.28,190,2.651,191,2.327,192,4.233,193,2.408,194,3.974,195,2.008,196,4.677,197,4.677,198,3.075,199,4.677,200,3.942,201,2.596]],["tags/60",[]],["title/61",[158,2.808,202,2.026,203,3.039,204,3.374,205,2.372]],["content/61",[46,2.145,55,2.499,158,4.512,161,1.71,164,4.362,187,3.36,204,5.421,205,3.81,206,4.362,207,3.099,208,4.002,209,6.432,210,6.432,211,4.23,212,6.432,213,5.823,214,6.432,215,5.421,216,6.432,217,6.432]],["tags/61",[]],["title/62",[135,2.736,137,1.712,218,2.322,219,3.163]],["content/62",[29,4.617,41,2.772,46,1.827,66,1.038,96,3.602,135,4.546,137,2.08,161,1.992,171,3.715,187,1.988,219,3.842,220,2.599,221,3.987,222,3.245,223,4.34,224,4.361,225,4.958,226,7.494,227,7.494,228,4.617,229,3.842,230,4.617,231,5.477,232,5.477,233,2.981,234,5.477,235,4.617,236,4.958,237,5.477,238,5.477]],["tags/62",[]],["title/63",[134,1.752,135,2.736,239,2.672,240,3.591]],["content/63",[4,0.59,46,1.806,107,1.264,134,2.104,135,3.286,162,4.11,178,2.839,187,3.592,193,2.789,219,5.216,222,3.208,223,3.136,224,4.312,225,4.902,240,4.312,241,3.673,242,5.416,243,2.947,244,2.569,245,2.947,246,3.673,247,5.416,248,5.416,249,4.902,250,4.312,251,5.416,252,7.436,253,5.416]],["tags/63",[]],["title/64",[105,2.99,135,3.132,254,3.918]],["content/64",[105,5.446,127,3.64,135,5.705,224,6.202,255,4.615,256,4.978,257,7.79]],["tags/64",[]],["title/65",[240,3.591,258,3.423,259,3.591,260,3.801]],["content/65",[4,0.746,106,3.814,135,4.726,224,6.202,240,6.202,260,7.925,261,2.496]],["tags/65",[]],["title/66",[262,4.927]],["content/66",[1,1.914,4,0.386,26,2.649,27,3.2,41,2.463,46,1.623,71,2.702,72,3.693,75,1.471,78,1.64,107,1.136,121,2.241,135,2.952,138,2.598,157,3.693,158,3.413,162,3.693,163,3.875,164,3.3,213,4.405,249,4.405,263,3.693,264,2.883,265,3.028,266,4.405,267,4.405,268,4.866,269,3.543,270,2.382,271,3.028,272,3.3,273,2.506,274,4.405,275,2.818,276,3.693,277,4.405,278,4.866,279,4.866,280,2.422,281,4.405,282,4.101,283,4.866,284,4.866,285,4.101,286,2.758,287,4.866]],["tags/66",[]],["title/67",[61,1.833,261,1.654,288,3.501]],["content/67",[4,0.634,25,3,61,2.141,66,1.142,107,1.407,136,2.951,138,3.219,154,2.263,233,3.281,261,1.931,265,3.75,288,5.421,289,3.219,290,4.228,291,4.799,292,4.575,293,3.571,294,3.491,295,3.75,296,5.081,297,5.081,298,4.575,299,5.081,300,2.86,301,2.623]],["tags/67",[]],["title/68",[78,2.034,302,4.581]],["content/68",[58,3.23,78,2.668,103,3.815,153,6.674,161,2.105,303,3.19,304,7.168,305,4.309]],["tags/68",[]],["title/69",[107,1.205,154,1.938,306,4.11]],["content/69",[52,2.31,61,2.767,221,5.671,306,6.202,307,9.403,308,7.79,309,4.726,310,6.202]],["tags/69",[]],["title/70",[107,1.205,154,1.938,311,4.673]],["content/70",[21,2.331,26,2.915,27,3.521,46,1.786,52,2.504,61,1.902,66,1.014,123,3.756,137,2.033,222,3.172,289,2.859,310,4.264,311,8.928,312,4.064,313,2.757,314,5.355,315,2.71,316,2.71,317,5.355,318,2.466,319,5.355,320,1.084,321,3.756,322,2.057,323,3.332,324,5.355,325,3.521,326,4.064,327,4.264,328,2.915]],["tags/70",[]],["title/71",[11,2.7,261,1.934]],["content/71",[4,0.532,11,4.222,59,3.647,176,3.451,261,2.744,271,4.169,293,3.97,301,2.917,303,2.7,329,4.701,330,3.798,331,5.086,332,4.701,333,3.721,334,5.086,335,5.336]],["tags/71",[]],["title/72",[71,3.351,336,6.036]],["content/72",[52,2.276,66,1.074,71,3.149,110,4.022,147,4.774,172,2.691,182,2.082,187,2.059,288,3.847,306,4.516,337,4.129,338,3.529,339,4.305,340,5.672,341,4.516,342,6.946,343,5.672,344,5.672,345,6.946,346,4.78,347,5.134,348,5.672,349,4.78,350,5.672,351,5.672,352,2.777,353,5.134]],["tags/72",[]],["title/73",[354,4.11,355,2.449,356,3.621]],["content/73",[4,0.674,40,4.811,62,1.36,66,1.252,176,3.403,184,2.801,261,2.117,354,5.262,355,4.027,357,4.01,358,4.636,359,4.811,360,5.983,361,4.636,362,3.669,363,2.999,364,4.112,365,3.185]],["tags/73",[]],["title/74",[67,1.348,366,2.99,367,4.673]],["content/74",[4,0.619,14,4.229,66,1.668,67,2.457,79,4.625,98,2.799,104,2.43,107,1.356,205,3.441,206,3.94,211,3.82,275,3.364,355,3.7,366,4.516,367,5.259,368,3.162,369,4.409,370,5.259,371,5.809,372,3.441,373,5.809,374,3.364]],["tags/74",[]],["title/75",[270,2.955,375,5.464]],["content/75",[30,2.082,43,2.024,44,2.362,62,0.944,66,1.609,77,2.362,84,2.854,106,2.246,107,1.071,138,2.449,159,3.482,171,3.111,176,3.406,191,2.283,193,2.362,205,2.717,207,2.21,261,1.47,270,3.239,301,1.996,355,4.029,375,5.989,376,4.153,377,2.362,378,4.153,379,3.218,380,4.587,381,1.562,382,2.854,383,2.362,384,4.153,385,3.111,386,1.996,387,2.449,388,6.616,389,4.153,390,4.153,391,3.111,392,4.587,393,4.227,394,2.717]],["tags/75",[]],["title/76",[205,4.304]],["content/76",[41,3.759,205,5.411,273,3.825,275,5.29,303,2.992,355,3.524,383,3.825,395,5.914,396,6.724,397,5.407]],["tags/76",[]],["title/87",[61,1.833,261,1.654,353,4.673]],["content/87",[4,0.662,25,3.201,61,2.284,66,1.218,107,1.501,136,3.149,138,3.434,154,2.414,233,3.501,261,2.061,288,4.362,289,3.434,290,4.512,291,5.121,292,4.882,293,3.81,294,3.725,295,4.002,296,5.421,297,5.421,398,6.432]],["tags/87",[]],["title/88",[104,2.16,138,2.756,175,2.81]],["content/88",[4,0.479,30,2.199,43,1.343,44,1.568,52,2.228,54,1.362,58,2.806,61,2.143,66,0.577,78,2.033,84,1.894,100,2.216,103,1.467,104,2.525,115,2.587,121,1.402,127,2.82,148,2.806,153,2.566,161,0.809,182,1.117,243,1.657,246,2.065,270,1.49,293,1.804,303,1.227,304,2.756,305,2.637,310,3.858,312,2.311,320,1.52,342,4.386,364,1.894,379,2.136,386,2.994,399,6.035,400,4.845,401,2.756,402,1.894,403,2.136,404,2.756,405,2.311,406,6.742,407,4.393,408,4.845,409,4.845,410,3.044,411,3.044,412,3.044,413,2.136,414,1.726,415,4.386,416,3.044,417,3.044,418,3.044,419,2.424,420,3.044,421,3.044,422,3.044,423,3.044,424,3.044,425,2.756]],["tags/88",[]],["title/89",[11,2.7,261,1.934]],["content/89",[4,0.532,11,4.222,59,3.647,176,3.451,261,2.744,271,4.169,293,3.97,301,2.917,303,2.7,329,4.701,330,3.798,331,5.086,332,4.701,333,3.721,334,5.086,335,5.336]],["tags/89",[]],["title/77",[315,3.054,363,2.739]],["content/77",[4,0.636,25,2.422,52,2.378,53,4.538,54,3.587,71,2.702,93,3.543,104,2.887,110,2.551,143,2.649,146,3.875,148,2.818,182,1.786,189,3.413,241,3.3,289,2.598,313,3.553,315,4.415,333,2.702,363,2.208,386,2.118,426,3.875,427,3.11,428,3.693,429,3.413,430,4.866,431,2.883,432,4.866,433,3.875,434,3.543,435,3.543,436,4.101,437,4.405,438,4.866]],["tags/77",[]],["title/78",[65,2.908,439,3.662]],["content/78",[4,0.556,7,2.652,11,2.222,65,3.907,67,1.829,72,3.77,207,2.393,241,3.369,270,2.432,275,2.877,313,2.558,320,1.005,372,2.942,439,4.248,440,2.604,441,4.967,442,4.967,443,3.77,444,3.266,445,4.186,446,3.369,447,4.967,448,4.967,449,3.955,450,4.967,451,4.967,452,4.967,453,4.356,454,4.186,455,4.967,456,2.815,457,4.496,458,4.496,459,3.266,460,3.013,461,3.484,462,3.484,463,3.955]],["tags/78",[]],["title/79",[65,2.487,439,3.132,464,4.673]],["content/79",[4,0.51,24,3.201,65,4.019,235,5.421,261,2.061,309,3.902,356,4.512,437,5.823,439,3.902,443,4.882,445,5.421,464,5.823,465,4.362,466,4.295,467,5.421,468,4.362,469,5.421,470,4.882,471,6.432,472,4.512]],["tags/79",[]],["title/80",[439,3.132,473,3.058,474,2.866]],["content/80",[4,0.651,24,3.117,61,2.225,62,1.881,78,2.111,97,4.248,261,2.007,313,3.225,315,3.17,440,3.284,473,3.711,475,6.264,476,6.264,477,4.248,478,4.56,479,4.394,480,4.248,481,4.248,482,4.56,483,5.67,484,4.987]],["tags/80",[]],["title/81",[320,0.913,439,2.736,473,2.672,485,1.817]],["content/81",[4,0.484,7,3.26,54,2.731,59,3.323,62,1.256,78,2.057,82,2.77,130,3.143,305,3.323,313,3.143,320,1.826,386,2.657,439,3.704,440,3.2,444,4.014,459,4.014,473,3.616,477,4.14,485,3.247,486,6.105,487,6.105,488,2.989,489,5.526]],["tags/81",[]],["title/82",[107,1.696]],["content/82",[4,0.572,54,3.223,67,1.882,107,1.681,161,1.915,264,4.268,313,3.71,315,3.646,440,3.777,446,4.886,490,7.205,491,7.205,492,6.522,493,5.468]],["tags/82",[]],["title/83",[107,1.205,494,4.673,495,4.673]],["content/83",[4,0.478,54,2.697,55,2.342,56,3.571,66,1.142,77,3.104,107,1.407,113,3.571,182,2.933,313,3.104,315,3.051,330,3.416,440,3.16,494,7.236,495,8.118,496,6.028,497,6.028,498,4.575,499,4.799,500,5.081,501,3.347,502,4.088,503,3.964]],["tags/83",[]],["title/84",[98,2.908,504,4.394]],["content/84",[52,1.335,62,0.926,66,0.853,98,4.056,150,2.359,161,1.197,173,3.157,181,2.45,183,2.731,194,2.666,220,2.135,222,4.547,313,2.318,320,0.911,328,2.45,374,2.607,383,2.318,440,2.359,444,2.96,446,3.053,482,4.75,504,4.75,505,4.501,506,4.501,507,4.501,508,3.277,509,4.075,510,4.501,511,2.499,512,5.196,513,4.501,514,4.501,515,3.277,516,3.416,517,2.876,518,4.501,519,3.053,520,3.584,521,4.501,522,4.501,523,3.794,524,3.794,525,4.501,526,2.607,527,3.053,528,4.075]],["tags/84",[]],["title/85",[55,2.345,529,5.464]],["content/85",[4,0.555,55,2.718,66,1.325,71,3.883,90,2.656,149,4.6,276,5.309,313,3.602,381,2.381,393,4.47,440,3.666,529,6.332,530,6.995,531,6.995,532,6.995,533,5.309]],["tags/85",[]],["title/86",[534,3.447]],["content/86",[58,2.853,84,4.352,138,3.735,244,4.567,313,3.602,440,3.666,534,4.567,535,6.332,536,6.995,537,4.47,538,3.318,539,4.352]],["tags/86",[]],["title/90",[426,4.806,540,5.087]],["content/90",[4,0.547,67,1.8,176,3.55,273,3.55,330,3.907,357,4.183,374,3.993,381,2.347,426,5.489,503,4.533,540,7.349,541,5.811,542,3.993,543,6.894,544,4.533,545,6.241]],["tags/90",[]],["title/91",[175,3.285,546,5.087]],["content/91",[4,0.51,67,1.68,82,2.919,107,2.286,116,5.121,134,3.241,138,3.434,168,3.372,175,3.501,206,4.362,289,3.434,300,3.051,374,3.725,546,7.03,547,5.823,548,4.23,549,5.421]],["tags/91",[]],["title/92",[364,4.52]],["content/92",[1,1.706,52,1.884,62,1.307,66,0.822,107,1.483,130,2.234,148,2.513,219,4.456,220,2.058,265,2.699,270,2.124,289,2.316,301,2.765,309,2.632,320,1.973,322,2.44,364,2.699,386,2.765,443,3.293,460,3.854,461,4.456,467,3.656,550,3.656,551,5.751,552,4.338,553,2.772,554,2.513,555,3.601,556,2.632,557,4.803,558,3.293,559,4.338,560,3.293,561,4.338,562,4.338,563,3.927,564,2.513,565,3.927]],["tags/92",[]],["title/93",[320,1.47]],["content/93",[52,1.473,66,0.941,67,1.297,82,2.254,83,2.703,107,1.159,123,4.911,137,1.886,140,2.942,233,2.703,243,2.703,309,3.013,320,1.782,332,3.484,364,3.09,372,2.942,374,2.877,382,3.09,383,2.558,386,2.162,474,3.887,555,2.815,566,3.09,567,4.186,568,2.514,569,4.967,570,4.967,571,2.472,572,3.369,573,3.955,574,3.955,575,4.186,576,4.186,577,4.967,578,4.967,579,2.758,580,4.967,581,4.967,582,4.186]],["tags/93",[]],["title/94",[107,1.409,320,1.222]],["content/94",[]],["tags/94",[]],["title/95",[583,6.123]],["content/95",[52,2.693,106,3.027,107,1.897,117,4.501,137,2.348,195,2.655,222,3.663,300,2.933,309,4.931,316,3.129,320,1.838,356,4.337,385,4.194,444,4.066,566,3.847,584,4.501,585,5.597,586,5.597,587,6.183]],["tags/95",[]],["title/96",[62,1.495]],["content/96",[59,2.705,62,0.647,65,2.97,66,0.596,67,1.298,77,1.619,82,2.797,88,2.009,102,2.65,107,1.439,127,1.469,150,1.648,207,1.515,244,1.492,270,1.539,280,1.565,301,1.368,315,1.591,320,1.418,322,1.909,328,1.711,337,2.289,369,2.386,381,2.598,383,1.619,387,1.679,397,2.289,443,2.386,485,3.548,503,2.068,511,2.76,523,2.65,527,2.132,553,2.009,555,3.494,557,2.009,564,1.821,566,1.956,571,1.565,584,2.289,588,2.846,589,2.132,590,2.132,591,3.144,592,2.009,593,2.289,594,2.846,595,3.144,596,4.189,597,3.144,598,2.846,599,2.132,600,1.863,601,2.846,602,3.144,603,2.205,604,2.068,605,1.782,606,4.189,607,3.176,608,3.269,609,3.144,610,3.144,611,2.846,612,3.144,613,2.846,614,2.503,615,1.908,616,1.908,617,2.503]],["tags/96",[]],["title/97",[386,3.162]],["content/97",[52,1.788,61,2.141,161,1.602,182,2.212,220,2.86,245,3.281,320,1.618,382,3.75,386,4.325,465,4.088,474,4.438,501,3.347,566,4.973,575,5.081,618,4.575,619,6.028,620,5.108,621,3.16,622,3.219]],["tags/97",[]],["title/98",[136,3.557]],["content/98",[4,0.539,62,1.399,67,2.481,82,3.921,85,3.327,150,3.563,320,1.376,328,3.699,474,5.274,501,3.773,566,4.228,623,6.152,624,6.152]],["tags/98",[]],["title/99",[67,1.576,107,1.409]],["content/99",[]],["tags/99",[]],["title/100",[65,2.487,67,1.348,150,2.706]],["content/100",[65,3.945,66,1.551,107,1.911,592,5.233,593,5.961,625,8.188]],["tags/100",[]],["title/101",[82,2.739,150,3.164]],["content/101",[11,4.291,67,2.103,82,3.653,566,5.009,626,4.382,627,6.786]],["tags/101",[]],["title/102",[107,1.696]],["content/102",[]],["tags/102",[]],["title/103",[78,2.448]],["content/103",[62,1.505,127,3.418,134,2.842,182,2.684,220,3.47,228,6.165,261,2.343,300,3.47,534,4.293,592,4.674,628,5.552,629,7.315]],["tags/103",[]],["title/104",[52,2.155]],["content/104",[52,2.432,86,4.754,107,2.133,121,2.884,134,2.434,161,1.665,195,2.69,320,1.659,329,6.41,386,2.726,403,4.394,493,4.754,501,3.478,560,4.754,620,4.003,621,3.284,626,3.409,630,6.264]],["tags/104",[]],["title/105",[67,1.897]],["content/105",[4,0.749,21,2.917,55,3.328,59,3.647,62,1.942,67,2.237,77,3.451,107,1.564,184,4,366,3.881,631,5.086]],["tags/105",[]],["title/106",[315,3.676]],["content/106",[4,0.599,65,3.635,201,4.189,328,4.106,429,5.292,439,5.595,473,4.469,503,6.064,632,7.545]],["tags/106",[]],["title/107",[633,4.927]],["content/107",[62,1.342,67,2.433,136,3.192,150,3.417,220,3.093,320,1.32,322,2.504,374,3.776,501,3.619,566,4.056,588,5.902,634,3.046,635,6.519,636,3.619,637,4.573,638,5.191,639,5.495,640,6.519,641,3.955]],["tags/107",[]],["title/108",[21,3.162]],["content/108",[4,0.524,21,4.454,301,2.876,379,4.636,469,5.57,555,4.811,572,5.757,573,5.262,642,5.57,643,4.346,644,5.016,645,5.262,646,6.609,647,6.609]],["tags/108",[]],["title/109",[66,1.376]],["content/109",[]],["tags/109",[]],["title/110",[161,1.199,182,1.655,187,1.637,648,2.882]],["content/110",[4,0.677,21,2.899,38,3.515,52,1.976,134,1.8,161,1.231,172,2.197,182,3.559,201,2.571,273,3.43,316,3.371,320,1.579,338,2.881,386,3.395,393,4.985,427,2.96,429,4.673,648,2.96,649,2.016,650,3.515,651,4.631,652,6.03,653,4.193,654,4.193,655,2.305,656,3.903,657,4.631,658,4.631,659,4.631,660,4.631]],["tags/110",[]],["title/111",[320,1.222,386,2.627]],["content/111",[4,0.607,43,1.396,46,1.666,52,1.836,54,1.416,62,1.028,66,0.6,73,2.52,75,0.957,91,2.668,93,2.304,103,1.525,161,0.841,164,2.147,182,1.834,203,2.402,293,2.96,315,1.602,318,1.457,320,1.839,326,2.402,358,3.505,364,1.969,374,1.833,386,3.54,393,2.022,427,2.022,453,3.109,466,2.573,501,1.757,554,1.833,574,2.52,575,2.668,621,1.659,634,1.479,650,2.402,655,1.575,661,6.929,662,6.929,663,6.929,664,3.165,665,3.165,666,3.165,667,2.22,668,3.165,669,4.523,670,2.865,671,3.165,672,2.304,673,2.865,674,2.22,675,3.389,676,4.997,677,4.523,678,2.402,679,2.668,680,2.865]],["tags/111",[]],["title/112",[177,2.569,320,1.045,620,3.299]],["content/112",[4,0.467,24,1.948,62,0.805,67,1.022,82,1.776,99,2.501,106,1.916,112,2.654,147,2.435,149,4.651,183,2.374,189,2.745,207,1.886,290,2.745,303,1.577,316,1.981,320,1.861,322,1.503,333,2.173,334,2.97,362,2.173,382,2.435,386,2.561,391,2.654,440,2.051,449,3.116,459,2.574,474,3.267,501,2.173,508,2.849,542,2.267,555,2.218,565,3.543,572,2.654,620,6.299,621,3.085,633,2.654,654,3.543,681,2.501,682,3.914,683,2.849,684,3.914,685,3.116,686,3.914,687,2.654,688,3.543,689,3.543,690,2.173,691,2.745]],["tags/112",[]],["title/113",[52,1.531,202,2.612,320,1.045]],["content/113",[4,0.46,12,0.69,34,0.889,41,1.159,43,0.559,52,2.481,58,1.278,61,0.45,62,0.913,66,0.24,74,0.81,75,0.383,77,0.653,85,0.62,107,1.262,112,1.553,117,0.923,123,0.889,130,1.613,138,0.677,143,2.089,145,0.69,147,0.788,148,0.734,149,0.833,161,1.791,168,1.2,172,0.601,175,3.929,182,2.129,201,1.271,222,3.827,229,1.606,245,0.69,276,0.962,303,0.923,309,1.9,316,0.641,318,0.583,320,1.78,321,1.606,322,1.203,327,1.823,328,2.697,333,3.001,335,1.009,338,0.788,339,1.738,352,1.121,358,2.197,364,0.788,365,1.103,372,0.751,374,1.814,381,0.78,382,1.425,383,0.653,386,1.671,387,1.673,393,0.81,403,3.476,440,0.664,456,0.718,459,4.597,460,0.769,466,1.613,488,1.879,501,0.704,503,0.833,512,1.009,538,0.601,548,0.833,554,3.13,555,1.298,557,0.81,620,1.463,622,3.854,627,1.068,633,2.124,655,1.14,661,1.147,662,1.147,663,1.147,672,0.923,677,1.147,678,0.962,685,1.009,689,1.147,692,1.267,693,1.267,694,2.794,695,0.69,696,1.606,697,1.068,698,2.06,699,2.64,700,1.147,701,1.267,702,2.494,703,1.738,704,2.073,705,3.839,706,1.147,707,1.068,708,2.073,709,1.738,710,0.962,711,1.068,712,1.009,713,1.267,714,0.923,715,1.267,716,0.962,717,1.93,718,1.267,719,1.267,720,0.575,721,0.923,722,0.923,723,0.923,724,0.788,725,1.009,726,1.267]],["tags/113",[]],["title/114",[320,1.222,554,3.496]],["content/114",[4,0.624,52,2.332,74,3.758,103,2.833,107,1.372,127,2.748,130,3.028,206,3.988,222,3.483,309,4.77,320,1.914,322,2.258,325,3.867,365,2.833,374,3.405,459,3.867,554,3.405,555,3.333,694,4.281,727,5.88,728,4.682,729,5.88,730,3.988]],["tags/114",[]],["title/115",[320,1.045,474,2.866,481,3.501]],["content/115",[4,0.46,11,1.281,12,1.558,24,1.425,25,1.425,31,2.418,52,0.849,54,1.281,61,1.017,62,0.949,66,0.542,67,0.748,85,2.258,98,1.379,117,2.084,127,2.155,130,1.474,131,2.084,136,2.258,137,1.087,161,0.761,168,1.501,182,1.051,183,1.737,187,1.039,233,1.558,241,1.942,270,1.402,273,1.474,293,1.696,309,2.798,316,1.449,320,1.474,341,2.279,365,2.222,374,2.671,382,1.781,383,2.375,428,2.173,440,1.501,474,4.321,477,1.942,480,1.942,481,3.928,482,4.217,501,1.589,504,2.084,511,1.589,527,3.128,539,1.781,554,3.354,574,4.612,618,2.173,673,2.592,691,2.008,695,1.558,716,2.173,723,2.084,725,2.279,731,4.612,732,2.863,733,2.173,734,2.413,735,2.863,736,1.358,737,2.279,738,2.614,739,2.863,740,2.413,741,2.592,742,2.592,743,2.413,744,1.883,745,2.413,746,2.863,747,2.863,748,5.792,749,2.863,750,2.592,751,2.592,752,2.592,753,2.008]],["tags/115",[]],["title/116",[241,4.094,320,1.222]],["content/116",[4,0.303,25,1.901,46,1.274,62,1.434,65,4.022,67,0.998,75,1.155,82,1.734,107,1.349,127,1.785,150,2.002,206,2.591,220,1.812,233,2.079,241,2.591,244,1.812,273,1.967,289,2.04,313,3.589,320,1.689,322,1.467,333,2.121,381,1.301,387,2.04,459,2.512,460,4.229,461,4.889,479,4.054,485,3.363,557,2.441,584,2.781,589,2.591,590,2.591,592,2.441,614,3.042,615,2.318,636,2.121,697,3.22,704,3.458,754,3.82,755,3.458,756,4.386,757,2.899,758,2.512,759,3.22,760,3.458,761,3.458,762,2.899,763,3.82,764,3.458]],["tags/116",[]],["title/117",[67,1.576,241,4.094]],["content/117",[4,0.371,62,0.962,65,4.129,67,2.238,82,2.122,107,1.091,121,2.153,127,3.135,150,3.516,206,3.172,313,3.454,315,3.395,322,2.576,387,2.497,440,2.451,479,4.705,557,4.287,590,3.172,592,2.988,614,5.341,615,2.837,634,3.135,636,2.596,638,5.341,639,3.942,643,3.075,690,2.596,759,5.654,760,4.233,761,4.233,762,3.549,765,4.233,766,3.404]],["tags/117",[]],["title/118",[104,2.16,116,4.11,767,5.162]],["content/118",[4,0.616,24,2.283,31,2.405,44,2.362,66,0.869,78,1.546,104,3.246,105,3.831,116,5.267,172,2.176,200,3.866,221,3.339,255,2.717,322,1.762,328,2.497,330,2.6,402,2.854,458,4.153,466,2.362,481,3.111,482,3.339,502,3.111,555,2.6,615,2.783,690,2.547,703,3.482,707,3.866,720,2.082,736,2.176,741,4.153,751,4.153,768,4.587,769,3.482,770,2.931,771,3.866,772,4.587,773,3.866,774,5.576,775,4.153,776,4.153,777,4.587,778,2.6,779,4.587,780,3.482,781,4.587]],["tags/118",[]],["title/119",[4,0.358,107,1.053,154,1.693,261,1.445]],["content/119",[4,0.608,46,2.556,52,2.273,66,1.452,75,2.317,121,3.529,303,3.088,320,1.551,386,3.336,583,6.46]],["tags/119",[]],["title/120",[52,2.155]],["content/120",[]],["tags/120",[]],["title/121",[52,1.531,300,2.449,368,2.81]],["content/121",[4,0.59,24,2.695,39,3.799,41,2.741,52,2.711,53,4.89,54,3.327,61,1.923,67,1.414,78,1.825,81,3.799,118,4.902,134,2.104,144,3.942,145,2.947,172,2.569,223,3.136,402,3.369,466,2.789,480,3.673,757,4.11,770,3.461,778,3.069,782,5.416,783,3.799,784,5.416,785,5.416,786,5.416,787,4.902,788,4.312]],["tags/121",[]],["title/122",[52,1.531,300,2.449,431,3.058]],["content/122",[1,0.927,4,0.469,11,1.054,13,1.466,25,1.173,46,1.311,52,1.752,53,2.586,54,1.759,58,0.961,59,1.283,61,2.097,66,0.745,78,1.325,82,1.784,104,1.645,136,1.154,158,1.653,161,1.345,172,1.118,177,1.173,187,0.855,202,1.193,218,1.213,220,1.118,239,1.396,246,1.598,261,0.755,265,2.446,271,1.466,286,1.336,288,2.667,289,1.258,291,1.876,293,2.997,294,2.93,296,1.986,297,1.986,298,1.789,299,1.986,300,2.802,301,1.026,306,1.876,325,1.55,328,1.283,333,1.308,338,1.466,359,3.683,363,1.069,383,1.213,386,1.026,387,1.258,394,2.329,402,2.446,435,1.716,453,1.466,460,1.43,538,1.865,564,1.365,616,1.43,620,2.513,670,2.133,706,2.133,707,1.986,724,2.446,762,1.789,783,1.653,789,1.986,790,1.55,791,1.716,792,4.58,793,3.84,794,3.932,795,2.133,796,2.357,797,2.357,798,1.716,799,2.357,800,1.986,801,2.984,802,2.357,803,2.14,804,1.876,805,1.986,806,2.133,807,1.653,808,2.357,809,2.357,810,1.789,811,2.357,812,1.653,813,2.357,814,2.357,815,1.716,816,3.559,817,3.559,818,2.357,819,1.789,820,2.357,821,2.357,822,2.357,823,4.58,824,2.357,825,2.357,826,2.357,827,2.357]],["tags/122",[]],["title/123",[134,2.345,778,3.421]],["content/123",[4,0.608,52,2.273,61,2.722,130,3.947,134,2.979,154,2.877,303,3.088,309,4.65,778,4.344,828,7.665]],["tags/123",[]],["title/124",[75,1.21,177,1.992,182,1.469,328,2.179,429,2.808]],["content/124",[4,0.498,46,1.421,52,1.264,54,2.805,66,0.807,75,1.288,97,2.89,130,2.194,182,3.355,201,2.366,315,2.156,320,1.506,322,2.408,328,4.464,352,2.086,364,2.651,365,2.053,368,2.319,386,1.855,391,2.89,393,2.723,405,3.234,429,5.218,440,3.899,449,3.393,472,2.989,555,2.415,579,2.366,583,3.591,724,3.901,778,2.415,812,2.989,829,4.261,830,3.857,831,2.468,832,3.234,833,3.102,834,2.802,835,2.468,836,3.591,837,4.261,838,2.89]],["tags/124",[]],["title/125",[62,0.673,75,0.988,184,1.386,202,1.655,592,2.089,631,2.482,839,3.27]],["content/125",[1,1.205,4,0.637,7,1.636,20,2.015,22,1.39,25,1.525,26,1.668,27,2.015,43,1.352,44,1.578,46,2.021,62,1.935,66,1.148,77,1.578,78,1.032,97,3.303,107,0.715,121,1.411,147,1.906,154,1.15,171,4.11,175,1.668,177,1.525,184,1.298,202,1.551,211,2.015,220,1.454,300,2.875,301,1.333,303,1.234,322,1.87,323,1.906,330,1.737,381,2.351,407,2.23,592,4.814,615,1.859,626,1.668,631,4.6,634,1.432,675,2.078,720,1.39,730,2.078,736,1.454,738,1.737,803,1.668,812,3.416,815,4.412,831,1.774,834,3.202,835,3.51,840,4.412,841,6.82,842,2.774,843,3.064,844,3.064,845,2.582,846,3.064]],["tags/125",[]],["title/126",[55,1.752,75,1.363,218,2.322,366,2.612]],["content/126",[4,0.658,12,2.047,31,1.971,46,2.571,55,2.683,56,4.91,62,1.796,66,0.712,75,2.087,112,2.55,137,1.428,143,2.047,177,1.871,181,2.047,184,3.267,202,1.903,211,2.473,245,2.047,270,1.841,300,3.657,303,1.515,322,2.193,328,4.195,366,3.307,381,1.944,500,5.818,515,2.737,548,2.473,555,2.131,626,2.047,631,2.854,633,2.55,720,1.706,724,2.339,812,2.638,834,2.473,840,2.737,845,4.813,847,3.404,848,3.76]],["tags/126",[]],["title/127",[262,4.927]],["content/127",[4,0.595,20,3.602,22,2.486,35,3.842,52,1.625,66,1.038,77,2.82,90,2.08,104,2.291,114,4.361,134,2.129,176,2.82,270,2.682,292,4.157,303,2.207,330,3.104,352,2.682,368,2.981,382,3.408,539,3.408,655,2.726,685,4.361,694,3.987,778,3.104,831,3.172,832,5.688,833,3.987,849,4.361,850,3.715,851,3.842,852,4.617,853,4.617,854,4.958]],["tags/127",[]],["title/131",[534,3.447]],["content/131",[1,2.564,4,0.739,9,4.287,78,2.197,140,3.862,244,3.093,255,4.984,261,2.089,300,3.093,357,3.955,387,3.481,534,4.42,695,3.548,723,4.746,855,4.948,856,5.495]],["tags/131",[]],["title/132",[145,3.285,534,2.863]],["content/132",[4,0.732,30,2.514,47,4.034,67,1.447,78,1.867,195,3.963,245,3.016,431,3.282,534,4.077,857,7.779,858,5.541,859,7.553,860,7.553,861,5.541,862,6.837,863,5.016,864,4.67,865,5.541,866,5.541,867,5.541,868,4.67]],["tags/132",[]],["title/133",[534,2.863,869,4.394]],["content/133",[4,0.718,98,3.524,176,3.766,301,3.183,534,4.661,538,3.47,553,4.674,724,4.551,869,5.325,870,6.621]],["tags/133",[]],["title/134",[244,2.863,534,2.863]],["content/134",[4,0.739,85,3.753,244,3.636,301,3.336,488,3.753,534,4.418,538,3.636,871,6.46]],["tags/134",[]],["title/128",[11,2.7,261,1.934]],["content/128",[11,3.663,52,2.429,104,3.426,323,5.094,466,4.216,803,4.457]],["tags/128",[]],["title/129",[53,3.969,54,2.7]],["content/129",[11,3.607,18,5.06,21,2.14,22,2.231,25,2.446,30,3.154,52,2.062,53,4.571,54,3.11,66,0.931,78,1.657,85,2.407,104,3.667,105,4.026,106,2.407,130,2.531,168,2.577,261,1.575,301,2.14,303,1.981,309,2.983,330,2.786,333,2.729,365,3.349,456,2.786,771,4.143,791,3.579,795,4.45,872,3.233,873,4.916,874,4.916,875,4.916,876,4.45]],["tags/129",[]],["title/130",[803,3.954]],["content/130",[11,2.568,13,3.571,42,4.57,44,2.955,48,3.668,52,1.702,72,4.356,85,2.81,104,2.401,136,2.81,271,3.571,286,4.384,379,5.426,386,2.498,387,3.065,465,3.893,511,3.186,620,3.668,800,4.837,801,4.356,803,3.124,815,4.178,823,5.196,877,5.74,878,7.735,879,5.196,880,3.893,881,5.196]],["tags/130",[]],["title/141",[261,1.934,355,2.863]],["content/141",[1,1.604,4,0.74,66,1.15,78,2.443,85,1.997,110,3.182,115,2.179,121,1.879,138,3.242,168,2.139,176,2.101,223,2.363,261,2.573,265,2.538,270,1.997,301,1.776,330,2.312,355,2.88,357,3.683,359,2.97,361,4.259,362,3.371,372,2.417,381,2.067,542,3.516,544,3.992,567,3.439,709,3.097,871,3.439,882,3.88,883,2.862,884,2.97,885,2.767,886,3.249,887,4.608,888,2.972,889,6.071,890,3.439,891,4.834]],["tags/141",[]],["title/142",[301,2.627,355,2.863]],["content/142",[]],["tags/142",[]],["title/143",[892,6.576]],["content/143",[4,0.517,78,2.197,90,2.475,223,4.873,261,2.089,305,3.548,362,3.619,381,2.22,385,4.422,542,3.776,544,4.287,556,3.955,599,4.422,757,4.948,883,4.573,884,6.125,892,5.902,893,6.519,894,6.519]],["tags/143",[]],["title/144",[885,4.927]],["content/144",[4,0.51,7,3.434,78,2.167,136,3.149,168,3.372,203,4.882,244,3.051,261,2.061,272,4.362,384,5.823,385,4.362,599,4.362,885,6.278,895,6.432,896,5.121,897,6.432,898,6.432,899,5.823,900,5.823,901,5.421]],["tags/144",[]],["title/145",[886,5.784]],["content/145",[4,0.517,24,3.244,51,4.948,78,2.197,136,3.192,168,3.417,178,3.417,261,2.089,271,4.056,466,3.357,542,3.776,690,3.619,733,4.948,883,4.573,886,6.699,902,6.519,903,5.495,904,5.191,905,5.495,906,4.948]],["tags/145",[]],["title/146",[356,5.096]],["content/146",[4,0.608,46,2.556,66,1.452,78,2.583,82,3.478,261,2.456,273,3.947,355,3.636,381,2.61,553,4.898]],["tags/146",[]],["title/147",[187,1.637,301,1.963,385,3.059,599,3.059]],["content/147",[4,0.361,20,1.849,30,2.063,35,3.189,41,1.423,52,1.95,61,2.335,78,2.601,90,1.726,98,1.355,103,3.477,117,4.166,187,1.021,195,1.208,223,2.633,261,1.457,270,4.277,280,1.4,320,1.768,326,2.135,355,1.334,356,1.973,365,1.355,385,5.236,386,1.224,415,5.95,515,2.047,542,1.629,572,3.084,599,3.881,683,4.166,695,3.115,774,5.54,775,5.95,882,1.797,884,3.31,907,2.812,908,2.812,909,2.37,910,2.37,911,2.546,912,2.812,913,6.573,914,6.573,915,4.823,916,4.823,917,2.812]],["tags/147",[]],["title/148",[599,3.501,885,3.501,918,4.11]],["content/148",[7,1.668,30,1.418,46,1.042,52,1.82,55,1.214,59,2.691,62,1.263,67,0.816,74,3.16,78,1.053,85,3.417,104,2.069,106,3.005,111,2.633,115,1.668,134,1.922,184,2.096,198,3.252,261,1.584,270,1.529,275,1.809,280,1.554,290,2.191,300,1.482,301,2.152,305,1.7,316,1.581,318,1.438,320,1.001,381,2.376,385,5.486,386,2.152,391,2.119,444,2.054,446,2.119,592,1.996,599,3.354,695,1.7,733,2.371,791,2.274,872,2.054,883,2.191,885,3.354,915,4.168,916,6.41,918,5.557,919,5.297,920,2.274,921,2.828,922,3.354,923,6.98,924,3.124,925,3.124,926,3.124,927,3.124,928,2.633,929,3.124]],["tags/148",[]],["title/149",[223,2.99,649,2.247,884,3.758]],["content/149",[4,0.581,20,2.244,35,5.139,52,1.572,66,0.646,103,4.222,115,1.822,117,3.858,187,3.514,194,2.022,218,4.323,220,1.619,223,1.976,261,1.093,270,1.671,309,2.07,310,7.569,320,1.606,355,1.619,453,4.935,469,2.876,479,2.394,566,2.123,572,3.595,649,1.485,674,2.394,683,3.858,690,1.895,736,1.619,774,2.876,780,2.59,884,2.484,916,2.876,930,3.413,931,7.933,932,3.413]],["tags/149",[]],["title/150",[649,2.627,885,4.094]],["content/150",[4,0.572,66,1.365,115,3.847,261,2.308,355,3.418,419,5.736,649,3.136,885,4.886,933,7.205,934,7.205,935,7.205,936,7.205,937,7.205,938,7.205]],["tags/150",[]],["title/151",[649,2.627,918,4.806]],["content/151",[4,0.555,20,4.6,78,2.357,168,3.666,261,2.241,649,3.044,885,4.744,918,5.569,939,6.995,940,6.995,941,6.995,942,6.995,943,6.995,944,6.995,945,6.995,946,6.995]],["tags/151",[]],["title/152",[394,3.058,649,2.247,947,4.351]],["content/152",[4,0.211,14,3.16,21,2.395,51,2.016,66,1.503,104,1.111,111,3.659,147,2.701,168,1.393,172,1.26,187,3.845,193,2.834,194,2.572,261,0.851,352,1.301,428,2.016,649,1.156,710,2.016,883,1.864,886,2.115,888,1.301,947,2.239,948,2.239,949,2.657,950,2.657,951,2.657,952,2.657,953,2.657,954,5.504,955,2.405,956,2.657,957,2.657,958,2.657,959,2.657,960,5.504,961,2.657,962,4.341,963,2.657,964,2.657,965,2.405,966,2.239,967,3.733,968,6.356,969,2.405,970,2.657,971,2.657,972,4.341,973,2.657,974,4.341,975,5.504,976,2.657,977,2.657,978,4.341,979,3.93,980,4.341,981,2.657,982,2.657,983,2.657,984,2.657,985,2.657,986,2.657,987,2.657,988,2.405,989,2.657,990,2.657,991,4.341,992,2.657,993,2.657]],["tags/152",[]],["title/172",[175,3.285,261,1.934]],["content/172",[4,0.739,74,4.898,78,2.583,107,1.789,154,2.877,183,4.65,261,2.456,994,4.255,995,5.818]],["tags/172",[]],["title/173",[56,3.058,113,3.058,332,3.621]],["content/173",[4,0.564,24,2.524,54,3.179,55,3.187,66,1.346,78,2.763,95,3.85,103,2.444,107,1.184,158,3.558,183,3.077,220,2.406,261,1.625,264,3.005,273,2.612,322,2.729,325,3.335,365,2.444,374,2.937,446,3.44,462,3.558,555,4.027,631,3.85,655,2.524,688,4.591,805,4.275,845,7.49,876,4.591,994,2.816,996,3.44]],["tags/173",[]],["title/174",[446,4.094,994,3.351]],["content/174",[4,0.614,51,4.356,66,1.087,82,2.605,93,5.631,107,1.34,147,3.571,149,3.774,261,1.839,275,3.324,333,3.186,363,2.605,488,2.81,489,7.002,500,4.837,555,4.384,572,3.893,994,5.427,996,3.893,997,4.356,998,5.74,999,4.837,1000,3.482]],["tags/174",[]],["title/175",[356,4.234,473,3.576]],["content/175",[1,2.06,4,0.577,24,2.607,54,2.344,55,2.036,66,0.992,78,1.765,130,2.697,175,3.955,178,2.746,183,3.178,273,2.697,301,2.28,356,3.674,382,3.259,456,2.969,466,2.697,473,5.338,478,3.813,493,3.976,672,3.813,737,4.171,738,2.969,778,2.969,994,5.255,996,3.553,1001,3.347,1002,4.742,1003,5.238,1004,5.238]],["tags/175",[]],["title/153",[152,5.784]],["content/153",[1,2.106,3,4.064,4,0.67,9,3.521,22,2.43,24,2.665,26,2.915,47,3.898,58,2.184,90,2.033,181,2.915,263,4.064,300,2.541,526,3.101,685,4.264,856,4.513,869,3.898,880,3.632,888,2.622,1000,4.476,1005,5.355,1006,4.848,1007,4.848,1008,4.848,1009,5.355,1010,5.355,1011,3.632,1012,4.513,1013,4.513,1014,4.264,1015,4.848,1016,5.355,1017,4.513,1018,4.848]],["tags/153",[]],["title/154",[22,2.739,98,2.908]],["content/154",[4,0.532,22,3.041,46,2.235,187,3.426,244,3.179,261,2.147,355,3.179,357,4.066,362,3.721,534,3.179,542,3.881,593,4.879,638,5.336,655,3.335,765,6.067,890,5.648,1019,6.702]],["tags/154",[]],["title/155",[1013,6.123]],["content/155",[4,0.628,187,3.447,1000,4.804,1013,6.674,1014,6.304,1020,7.918,1021,7.918]],["tags/155",[]],["title/156",[103,3.5]],["content/156",[4,0.68,22,3.041,56,3.97,78,2.258,90,2.544,107,1.564,113,3.97,140,3.97,154,3.214,187,2.432,261,2.147,805,7.218,851,4.701,869,4.879,871,5.648,1022,6.702]],["tags/156",[]],["title/157",[285,5.087,853,5.087]],["content/157",[]],["tags/157",[]],["title/158",[113,4.304]],["content/158",[4,0.555,85,3.424,113,4.144,148,4.051,245,3.807,538,3.318,628,5.309,675,4.744,888,4.308,1023,6.332,1024,6.332,1025,5.092,1026,5.309,1027,6.995,1028,6.332]],["tags/158",[]],["title/159",[4,0.318,90,1.52,112,2.715,303,1.613,1029,3.624]],["content/159",[4,0.563,14,5.167,48,5.675,49,4.814,66,1.345,90,2.695,112,4.814,115,3.79,140,4.205,556,4.306,888,3.475,1000,4.306,1030,5.982,1031,7.098]],["tags/159",[]],["title/160",[363,2.343,1032,4.351,1033,4.11]],["content/160",[4,0.539,43,2.999,66,1.287,82,3.084,127,3.176,168,3.563,172,3.224,244,3.224,576,5.728,901,5.728,1000,4.123,1032,7.283,1034,7.822,1035,5.411,1036,5.158,1037,6.797]],["tags/160",[]],["title/161",[4,0.318,68,2.808,294,2.319,1000,2.429,1033,3.188]],["content/161",[4,0.521,25,2.261,43,2.005,66,1.462,84,2.827,121,2.092,282,3.83,294,3.805,305,2.473,357,2.757,368,2.473,435,3.308,445,3.83,477,3.082,544,2.988,627,5.537,667,3.187,724,2.827,901,3.83,911,5.948,995,3.449,1000,3.986,1033,6.145,1038,4.544,1039,5.948,1040,7.718,1041,4.544,1042,3.83,1043,4.544,1044,4.544,1045,4.544,1046,4.544,1047,6.57,1048,3.83,1049,5.948,1050,4.544,1051,4.113,1052,4.544,1053,4.544]],["tags/161",[]],["title/162",[4,0.318,22,1.817,325,2.633,526,2.319,538,1.899]],["content/162",[4,0.68,9,4.407,11,2.998,21,2.917,26,3.647,37,6.067,229,4.701,263,5.086,880,4.545,1012,5.648,1054,5.086,1055,5.648,1056,6.067,1057,6.702,1058,5.336,1059,6.702,1060,6.702,1061,6.702]],["tags/162",[]],["title/163",[4,0.358,67,1.178,83,2.454,616,2.736]],["content/163",[4,0.762,22,2.77,25,3.038,26,3.323,27,4.014,47,4.444,62,1.659,66,1.156,83,3.323,134,2.372,140,3.616,341,4.861,357,3.704,519,4.14,600,3.616,633,4.14,724,3.798,738,3.46,851,4.282,1000,3.704,1062,6.105,1063,5.526]],["tags/163",[]],["title/164",[4,0.358,1000,2.736,1064,3.801,1065,3.591]],["content/164",[31,4.151,270,3.876,1000,4.804,1065,6.304,1066,7.918,1067,6.304,1068,5.207,1069,7.168]],["tags/164",[]],["title/165",[4,0.41,66,0.978,473,3.058]],["content/165",[1,2.97,4,0.599,18,4.034,41,2.804,59,3.016,107,1.293,130,3.889,132,4.205,154,2.08,175,3.016,246,3.758,303,2.232,382,3.447,386,2.411,473,4.474,691,3.886,737,6.013,738,4.281,778,3.14,994,3.076,1000,4.582,1070,5.541,1071,5.541,1072,4.67,1073,5.541,1074,5.541,1075,3.758]],["tags/165",[]],["title/166",[4,0.318,67,1.046,181,2.179,1076,3.624,1077,3.188]],["content/166",[26,2.521,43,2.043,44,2.385,45,3.515,46,2.222,54,2.072,58,1.889,62,0.953,66,0.877,67,1.74,77,2.385,82,3.023,88,2.96,106,2.267,113,2.744,148,2.682,208,2.881,264,4.621,315,2.344,339,3.515,349,3.903,383,2.385,493,3.515,538,2.197,614,3.688,810,3.515,872,3.046,1032,5.614,1033,3.688,1034,4.193,1076,7.062,1077,3.688,1078,4.631,1079,3.688,1080,4.631,1081,4.193,1082,4.193,1083,4.193,1084,4.631,1085,4.193,1086,3.688,1087,4.631,1088,4.631]],["tags/166",[]],["title/167",[4,0.286,90,1.367,95,2.732,362,1.998,538,1.708,1026,2.732]],["content/167",[9,4.738,20,4.738,31,3.777,159,5.468,320,1.814,362,4,381,2.453,538,3.418,790,4.738,872,4.738,1089,7.205,1090,6.522,1091,7.205]],["tags/167",[]],["title/168",[4,0.286,21,1.567,22,1.633,67,0.94,132,2.732,1092,3.6]],["content/168",[4,0.517,33,6.699,48,4.166,49,4.422,67,1.703,83,3.548,95,4.948,132,4.948,136,3.192,168,3.417,280,3.244,286,3.695,711,7.091,1093,6.519,1094,5.495,1095,4.287,1096,5.902,1097,6.519,1098,6.519]],["tags/168",[]],["title/169",[30,2.046,78,1.52,90,1.712,261,1.445]],["content/169",[4,0.692,22,3.128,30,3.128,39,4.836,52,2.045,53,4.533,54,3.084,66,1.306,78,2.323,261,2.209,300,3.271,301,3,431,4.084,674,4.836,1099,6.894,1100,6.241]],["tags/169",[]],["title/170",[4,0.358,301,1.963,994,2.504,1101,3.423]],["content/170",[25,3.201,66,1.218,67,1.68,112,4.362,133,5.421,140,3.81,180,3.725,244,3.051,556,3.902,758,4.23,872,4.23,994,4.63,1000,3.902,1101,4.882,1102,7.03,1103,5.823,1104,5.823,1105,5.823,1106,5.823,1107,5.421]],["tags/170",[]],["title/171",[4,0.41,1014,4.11,1108,5.162]],["content/171",[4,0.461,25,3.881,30,2.636,40,4.229,66,1.1,83,3.162,108,2.675,110,3.045,140,3.441,145,3.162,267,5.259,286,3.292,305,3.162,394,3.441,519,3.94,669,5.259,803,3.162,833,4.229,1014,4.625,1109,5.809,1110,5.259,1111,5.809,1112,5.809,1113,5.809,1114,5.809,1115,5.259,1116,5.809,1117,5.259,1118,5.259]],["tags/171",[]],["title/135",[534,3.447]],["content/135",[1,2.921,4,0.589,9,4.884,140,4.4,244,3.524,255,4.4,534,4.334,695,4.043,723,5.407,855,5.637,856,6.26]],["tags/135",[]],["title/136",[534,2.863,869,4.394]],["content/136",[4,0.461,46,1.937,107,1.356,113,5.574,195,2.495,320,1.176,534,4.464,857,7.969,862,7.059,869,4.229,1119,5.259,1120,7.059,1121,7.059,1122,7.798,1123,5.809,1124,5.809,1125,5.809,1126,5.809]],["tags/136",[]],["title/137",[244,2.863,534,2.863]],["content/137",[4,0.532,7,3.578,14,4.879,47,4.879,58,2.733,67,1.75,83,3.647,93,4.879,136,3.281,244,4.063,246,4.545,255,3.97,357,4.066,534,4.063,1127,5.648,1128,6.702,1129,3.881]],["tags/137",[]],["title/138",[52,1.338,244,2.139,255,2.672,534,2.139]],["content/138",[4,0.619,46,1.937,52,2.313,75,1.756,78,1.957,100,4.229,107,1.356,161,1.544,182,2.862,187,2.108,220,2.756,244,2.756,313,2.991,323,3.614,328,3.162,440,3.045,526,3.364,534,4.794,535,5.259,1130,5.259,1131,5.809,1132,5.259]],["tags/138",[]],["title/139",[137,1.96,244,2.449,534,2.449]],["content/139",[21,2.331,66,1.014,77,2.757,136,2.622,137,2.801,147,3.332,150,2.807,161,1.961,182,2.708,244,2.541,245,2.915,337,3.898,379,3.756,394,3.172,427,4.715,435,3.898,534,4.316,589,3.632,757,4.064,1001,3.422,1129,3.101,1130,4.848,1133,6.721,1134,5.355,1135,5.355,1136,6.679,1137,5.355]],["tags/139",[]],["title/140",[83,2.81,244,2.449,534,2.449]],["content/140",[83,4.172,136,4.559,137,2.91,244,3.636,275,4.439,534,4.418,1129,4.439,1138,6.103]],["tags/140",[]],["title/195",[152,5.784]],["content/195",[]],["tags/195",[]],["title/196",[4,0.576]],["content/196",[4,0.493,52,1.49,54,1.425,58,1.3,62,1.679,66,0.604,67,0.832,77,2.586,78,1.074,121,1.467,140,2.975,143,1.734,144,2.319,145,1.734,147,3.125,161,1.335,171,3.406,182,1.169,184,1.35,185,1.535,261,1.609,290,2.235,301,1.387,305,1.734,320,1.728,322,1.224,352,1.56,357,1.933,381,1.085,386,1.387,406,2.685,431,1.887,456,1.806,474,1.769,477,2.161,481,2.161,482,2.319,485,1.284,537,2.036,538,1.511,542,1.845,554,1.845,608,2.095,675,2.161,736,1.511,738,1.806,790,4.088,800,2.685,803,1.734,815,3.656,838,2.161,841,2.884,851,3.523,921,4.547,1011,2.161,1025,3.656,1035,2.537,1042,2.685,1139,3.186,1140,2.537,1141,4.547,1142,3.186,1143,3.186,1144,2.161,1145,2.884,1146,2.884,1147,2.884,1148,3.186,1149,2.685,1150,2.685,1151,2.537]],["tags/196",[]],["title/197",[4,0.479,851,4.234]],["content/197",[4,0.324,26,3.304,62,0.84,83,2.221,96,2.683,110,2.139,145,2.221,187,3.552,315,2.065,320,1.886,364,2.538,481,2.767,621,2.139,720,1.851,815,2.97,838,2.767,851,2.862,863,3.693,882,2.607,888,1.997,1025,2.97,1140,3.249,1141,3.693,1146,3.693,1152,4.08,1153,4.08,1154,4.08,1155,4.08,1156,7.251,1157,4.08,1158,4.08,1159,4.08,1160,4.08,1161,4.08,1162,4.08,1163,4.08,1164,4.08,1165,3.693,1166,4.08,1167,4.08,1168,4.08,1169,4.08,1170,4.08,1171,3.439,1172,3.693,1173,3.693,1174,3.693,1175,3.693]],["tags/197",[]],["title/198",[4,0.576]],["content/198",[4,0.425,61,1.902,62,1.518,78,3.065,98,2.58,187,1.944,320,1.841,363,2.43,364,4.59,372,5.001,395,4.264,444,4.852,649,2.331,655,2.665,835,3.101,890,4.513,904,4.264,1115,4.848,1145,4.848,1176,5.355,1177,5.355,1178,5.355,1179,4.264,1180,5.355,1181,5.355,1182,4.848]],["tags/198",[]],["title/199",[22,3.297]],["content/199",[4,0.65,99,5.233,326,6.215,330,4.641,338,5.094,650,6.215]],["tags/199",[]],["title/200",[22,2.739,261,1.934]],["content/200",[52,1.473,62,1.669,67,1.829,150,2.604,187,3.668,264,2.942,309,3.013,320,2.003,363,2.254,365,2.393,386,2.162,425,4.496,473,2.942,474,3.887,477,3.369,481,3.369,482,3.616,485,2.001,550,4.186,554,2.877,620,3.174,634,2.321,644,3.77,838,3.369,1183,4.967,1184,4.967,1185,4.967]],["tags/200",[]],["title/201",[22,2.739,62,1.242]],["content/201",[1,1.591,22,1.836,26,2.202,55,1.572,66,0.766,67,1.576,90,2.739,134,1.572,161,1.075,172,1.919,176,2.083,187,3.662,205,2.397,219,2.838,245,2.202,320,1.46,337,2.945,355,2.862,358,2.838,365,2.907,460,2.454,461,2.838,474,2.246,481,2.744,485,1.63,538,1.919,544,2.66,564,2.343,571,2.013,574,3.221,604,2.66,605,3.419,606,3.41,607,2.585,618,3.071,623,3.662,636,2.246,641,2.454,1011,2.744,1186,1.89,1187,3.41,1188,2.744,1189,4.046,1190,4.046,1191,4.046,1192,3.662,1193,1.671,1194,3.41]],["tags/201",[]],["title/202",[90,2.758]],["content/202",[4,0.327,9,2.706,15,3.123,18,2.996,24,2.048,48,3.904,51,3.123,56,2.438,77,2.119,90,3.062,98,1.983,110,2.157,121,1.895,145,2.24,168,2.157,171,2.791,286,2.332,302,3.123,312,3.123,320,0.833,352,2.015,365,1.983,381,1.401,387,2.197,431,2.438,636,3.392,733,3.123,738,2.332,770,2.63,776,3.725,790,4.018,791,2.996,815,2.996,872,2.706,888,2.015,905,3.468,920,2.996,1025,2.996,1173,3.725,1195,3.725,1196,3.468,1197,3.468,1198,7.288,1199,4.115,1200,4.115,1201,6.11,1202,6.11,1203,4.115,1204,4.115,1205,4.115,1206,4.115,1207,4.115,1208,4.115,1209,4.115]],["tags/202",[]],["title/203",[994,4.033]],["content/203",[313,3.885,352,3.694,722,5.492,994,5.12,1210,6.359,1211,6.83,1212,6.83,1213,6.83,1214,6.83,1215,6.359]],["tags/203",[]],["title/204",[1216,4.394,1217,5.464]],["content/204",[4,0.622,54,2.092,66,1.486,67,1.752,83,2.545,90,1.775,145,3.651,157,3.549,159,3.549,161,1.243,164,3.172,229,3.28,271,4.173,303,1.884,320,1.734,363,2.122,435,3.404,791,4.883,920,3.404,1082,4.233,1094,3.942,1140,5.341,1216,5.71,1217,4.233,1218,3.942,1219,4.677,1220,4.233,1221,4.233,1222,4.677,1223,4.677,1224,4.677,1225,4.677,1226,4.677,1227,4.677,1228,4.677,1229,4.677]],["tags/204",[]],["title/176",[994,3.351,1230,4.234]],["content/176",[]],["tags/176",[]],["title/177",[994,4.033]],["content/177",[4,0.577,66,1.377,83,2.851,145,2.851,146,4.171,220,2.485,282,4.415,295,3.259,313,3.742,352,3.558,428,3.976,478,3.813,690,2.908,702,4.171,722,3.813,803,2.851,891,4.171,920,5.29,994,4.632,1101,3.976,1151,4.171,1171,4.415,1193,2.164,1210,4.415,1211,4.742,1212,4.742,1213,4.742,1214,4.742,1215,4.415,1231,4.171,1232,3.976,1233,4.742]],["tags/177",[]],["title/178",[4,0.41,220,2.449,803,2.81]],["content/178",[1,2.016,4,0.407,20,3.371,45,3.891,58,2.091,82,2.326,90,1.946,156,4.641,157,3.891,181,2.79,220,3.396,301,2.231,313,2.64,358,3.596,381,1.745,393,3.276,394,3.037,488,2.51,538,2.432,736,2.432,764,4.641,803,4.489,888,2.51,1026,5.433,1077,4.082,1101,3.891,1118,4.641,1234,5.126,1235,5.126,1236,5.126,1237,5.126,1238,5.126,1239,4.321,1240,5.126,1241,5.126,1242,5.126,1243,5.126]],["tags/178",[]],["title/179",[4,0.479,1230,4.234]],["content/179",[3,1.689,4,0.504,12,1.211,21,0.969,22,2.203,25,1.865,26,1.211,33,1.772,34,1.561,38,1.689,40,1.62,49,1.509,53,1.463,54,0.996,68,1.561,71,2.081,73,1.772,74,1.422,82,1.701,83,1.211,90,0.845,99,1.422,110,1.167,113,1.318,121,1.025,124,1.689,125,1.772,132,1.689,133,3.159,136,1.835,137,1.423,144,1.62,145,1.211,161,0.592,168,1.964,174,1.62,181,1.211,220,1.056,229,1.561,263,1.689,271,1.385,273,1.146,275,2.17,286,2.124,292,1.689,295,1.385,331,1.689,368,1.211,372,1.318,381,0.758,383,1.146,387,1.188,394,2.22,431,1.318,465,1.509,484,2.984,498,1.689,503,1.463,508,1.62,509,2.015,516,1.689,517,1.422,556,1.35,568,1.126,576,1.876,584,1.62,599,1.509,611,2.015,615,1.35,672,1.62,683,1.62,742,3.393,780,1.689,831,1.289,880,2.542,882,1.422,888,2.377,920,1.62,1006,2.015,1012,1.876,1025,1.62,1048,1.876,1063,2.015,1096,2.015,1106,2.015,1129,1.289,1138,1.772,1144,1.509,1174,2.015,1216,1.62,1230,5.14,1244,2.225,1245,2.225,1246,2.225,1247,2.225,1248,2.225,1249,2.225,1250,2.225,1251,2.225,1252,2.225,1253,2.225,1254,2.015,1255,2.225,1256,2.225,1257,2.225,1258,2.225,1259,1.772,1260,2.225,1261,3.159,1262,1.422,1263,2.225,1264,1.689,1265,1.876,1266,2.225,1267,2.015,1268,2.225,1269,2.225,1270,2.015,1271,2.225,1272,2.225,1273,2.225,1274,2.225,1275,2.225,1276,2.225,1277,2.225,1278,2.015,1279,2.225,1280,2.225,1281,2.225,1282,1.876,1283,2.225,1284,1.561,1285,1.876,1286,1.876,1287,2.225]],["tags/179",[]],["title/180",[4,0.41,1231,4.11,1288,4.351]],["content/180",[3,1.941,4,0.493,30,1.161,34,1.794,39,1.794,41,1.294,66,0.484,67,0.668,71,1.42,90,0.971,99,1.634,113,2.493,129,2.036,137,1.597,140,1.515,150,1.341,157,3.194,168,1.341,181,1.392,244,1.213,271,1.591,303,1.03,313,2.167,318,1.178,341,2.036,361,4.357,362,1.42,407,1.862,414,1.45,517,2.689,519,1.735,545,2.315,571,1.273,604,1.682,605,1.45,615,3.252,667,1.794,691,1.794,736,1.213,756,3.194,769,1.941,798,1.862,807,1.794,880,1.735,887,4.069,888,3.041,909,2.156,994,1.42,1017,6.223,1026,3.194,1036,1.941,1048,2.156,1067,2.036,1077,3.35,1079,2.036,1085,2.315,1090,2.315,1094,3.546,1101,4.069,1103,2.315,1120,2.315,1121,4.853,1172,2.315,1210,2.156,1216,1.862,1218,2.156,1221,2.315,1230,1.794,1231,2.036,1233,3.809,1286,2.156,1288,2.156,1289,2.558,1290,2.558,1291,2.558,1292,2.558,1293,2.558,1294,2.558,1295,2.558,1296,2.036,1297,2.156,1298,2.558,1299,2.315,1300,2.558,1301,2.558,1302,2.558,1303,2.558,1304,2.558,1305,2.558,1306,4.208,1307,2.558,1308,2.315,1309,2.558,1310,2.558,1311,2.558,1312,2.558,1313,2.558,1314,2.558,1315,2.558,1316,2.558,1317,1.941,1318,2.558]],["tags/180",[]],["title/181",[136,2.955,1319,5.464]],["content/181",[58,3.656,98,3.472,136,3.527,148,4.173,243,3.921,275,4.173,291,5.736,880,4.886,1138,5.736,1319,8.114,1320,7.205,1321,7.205]],["tags/181",[]],["title/182",[4,0.479,104,2.525]],["content/182",[286,4.805,386,3.69,571,4.219,1129,4.91]],["tags/182",[]],["title/183",[4,0.479,184,2.558]],["content/183",[65,4.014,108,3.835,286,4.722,571,4.146,1129,4.825]],["tags/183",[]],["title/184",[176,3.108,1322,6.036]],["content/184",[98,3.322,144,5.019,145,3.752,211,4.533,286,3.907,835,3.993,1230,4.836,1323,6.241,1324,6.894,1325,6.894,1326,6.894,1327,6.894,1328,6.894,1329,6.894,1330,6.894,1331,6.894,1332,6.894]],["tags/184",[]],["title/185",[4,0.41,320,1.045,526,2.99]],["content/185",[4,0.504,62,1.702,100,4.62,161,2.445,207,3.058,243,4.5,320,1.674,466,3.268,502,4.305,537,4.056,615,3.851,687,4.305,730,4.305,832,4.817,870,5.746,1333,6.347,1334,6.347,1335,6.347]],["tags/185",[]],["title/186",[12,3.285,81,4.234]],["content/186",[8,3.209,25,2.757,46,1.848,62,1.14,72,4.205,75,2.283,161,1.473,174,4.034,182,2.033,222,3.282,273,2.853,320,1.529,333,3.076,465,3.758,466,2.853,526,3.209,538,2.629,648,3.541,831,3.209,832,4.205,835,3.209,1278,5.016,1282,6.366,1336,5.541,1337,5.541,1338,5.541,1339,4.205,1340,5.541,1341,5.541,1342,5.541,1343,5.541]],["tags/186",[]],["title/187",[75,1.56,177,2.569,1344,4.673]],["content/187",[4,0.382,38,3.656,46,1.607,75,1.456,97,3.267,121,2.218,145,2.622,161,2.12,172,2.285,207,2.321,233,2.622,301,2.097,320,0.975,405,3.656,440,2.525,511,2.675,512,3.836,515,3.507,558,3.656,585,6.202,598,4.361,649,2.982,687,4.647,791,3.507,833,3.507,906,3.656,1001,3.078,1140,3.836,1345,4.361,1346,6.202,1347,4.817,1348,4.817,1349,4.817,1350,4.06,1351,4.361,1352,6.852,1353,4.817,1354,4.06,1355,4.361,1356,4.817]],["tags/187",[]],["title/188",[75,1.56,202,2.612,687,3.501]],["content/188",[4,0.44,43,2.445,58,2.26,66,1.05,82,2.514,110,2.904,161,2.284,222,4.474,243,3.016,303,2.232,318,2.551,320,1.529,368,3.016,387,2.958,413,3.886,488,2.713,511,3.076,538,2.629,621,2.904,724,3.447,744,4.967,812,3.886,1150,4.67,1317,4.205,1350,4.67,1357,4.412,1358,4.67,1359,5.016,1360,5.016]],["tags/188",[]],["title/189",[177,2.244,294,2.612,305,2.454,1361,4.082]],["content/189",[24,2.551,46,1.71,66,0.971,99,3.276,107,1.196,161,1.903,162,3.891,182,1.881,223,2.969,243,2.79,300,2.432,305,2.79,320,1.038,621,4.324,687,6.055,736,2.432,967,3.477,1001,3.276,1282,4.321,1362,5.126,1363,5.699,1364,5.126,1365,4.641,1366,4.641,1367,7.158,1368,7.158,1369,4.321,1370,4.321,1371,3.891,1372,3.596,1373,4.321,1374,4.641]],["tags/189",[]],["title/190",[202,2.282,294,2.612,305,2.454,1375,4.51]],["content/190",[12,2.299,24,2.102,46,1.409,66,1.402,99,2.699,107,1.727,161,1.123,162,3.206,178,2.214,223,2.446,230,3.56,243,2.299,300,2.004,323,2.628,339,3.206,466,2.175,470,4.728,478,3.075,558,4.728,621,3.879,687,4.225,896,3.363,967,2.865,1023,3.824,1068,2.777,1355,3.824,1357,3.363,1361,3.824,1363,3.363,1369,3.56,1370,3.56,1371,3.206,1374,3.824,1376,4.224,1377,4.224,1378,3.265,1379,3.824,1380,4.224,1381,3.56,1382,4.224,1383,6.229,1384,6.229,1385,6.229,1386,6.229,1387,4.224,1388,4.224,1389,4.224]],["tags/190",[]],["title/191",[218,2.322,294,2.612,305,2.454,1239,3.801]],["content/191",[66,1.365,142,5.468,161,1.915,294,4.173,300,3.418,687,4.886,1105,6.522,1239,6.072,1357,5.736,1363,5.736,1369,6.072,1370,6.072,1378,3.777,1390,7.205]],["tags/191",[]],["title/192",[75,1.363,218,2.322,318,2.076,621,2.364]],["content/192",[0,2.651,1,1.839,4,0.371,12,2.545,13,4.173,30,3.044,46,1.56,66,1.271,85,2.29,99,2.988,110,2.451,120,3.942,130,2.408,243,2.545,285,3.942,318,3.945,320,1.734,548,3.075,564,2.708,621,4.112,648,2.988,649,2.035,725,3.724,853,5.654,1001,2.988,1069,4.233,1075,3.172,1346,6.072,1391,4.233,1392,3.942,1393,4.233,1394,4.677,1395,4.677,1396,4.677,1397,4.677,1398,4.677,1399,4.677]],["tags/192",[]],["title/193",[24,1.992,320,0.81,526,2.319,616,2.429,690,2.223]],["content/193",[4,0.237,22,1.356,24,1.487,29,2.518,62,0.615,66,1.129,84,1.859,94,2.268,140,1.77,161,0.794,177,2.375,181,1.626,182,1.096,187,1.732,202,2.415,208,1.859,236,2.705,243,1.626,261,0.957,270,1.463,281,2.705,300,1.417,302,2.268,320,1.851,329,2.096,333,1.659,352,1.463,368,1.626,369,2.268,387,2.548,456,1.693,468,2.026,502,2.026,519,2.026,527,2.026,547,2.705,589,2.026,590,2.026,603,2.096,613,2.705,616,1.813,620,1.909,636,1.659,641,2.896,649,2.077,675,3.237,690,2.65,720,1.356,744,1.965,789,2.518,798,2.175,948,4.023,967,3.237,1100,2.705,1317,2.268,1339,2.268,1400,2.518,1401,2.379,1402,2.705,1403,2.705,1404,2.988,1405,2.705,1406,1.965,1407,2.379,1408,2.379,1409,2.175,1410,2.518,1411,2.518,1412,5.419,1413,2.988,1414,4.773,1415,4.773,1416,6.161,1417,2.988,1418,4.773,1419,2.705,1420,2.988,1421,2.988]],["tags/193",[]],["title/194",[75,1.363,187,1.637,239,2.672,1422,3.283]],["content/194",[4,0.59,62,1.114,100,5.413,121,2.493,130,3.829,161,1.977,171,3.673,172,2.569,182,2.729,195,2.326,243,2.947,318,2.493,320,1.719,334,4.11,365,2.609,427,3.461,466,2.789,485,2.182,498,4.11,526,3.136,621,3.898,641,3.286,695,2.947,849,4.312,850,3.673,1011,3.673,1186,2.531,1423,4.11]],["tags/194",[]],["title/372",[187,1.637,637,3.163,753,3.163,1186,2.107]],["content/372",[4,0.378,59,2.596,66,1.289,71,2.648,174,3.472,205,2.825,264,4.03,295,2.967,298,3.62,299,4.02,349,4.02,368,2.596,466,2.456,519,3.235,626,2.596,637,3.346,667,3.346,681,3.048,734,4.02,753,5.562,758,3.136,769,3.62,783,3.346,835,2.762,1015,4.318,1079,3.798,1165,4.318,1186,3.706,1378,2.5,1424,6.158,1425,4.77,1426,4.77,1427,4.77,1428,4.77,1429,4.77,1430,4.77,1431,4.77,1432,4.77,1433,4.02,1434,4.318,1435,4.77]],["tags/372",[]],["title/373",[753,5.096]],["content/373",[4,0.616,67,1.198,90,1.742,115,2.449,137,2.512,161,1.759,168,2.405,172,3.138,261,1.47,265,2.854,272,3.111,273,2.362,303,1.848,355,2.176,357,2.783,382,2.854,386,1.996,517,2.931,556,2.783,567,3.866,717,3.866,753,6.316,770,2.931,1036,3.482,1064,3.866,1149,3.866,1186,3.969,1232,3.482,1297,3.866,1401,3.652,1436,3.866,1437,5.021,1438,4.013,1439,4.587,1440,4.587,1441,4.587,1442,4.587,1443,4.587]],["tags/373",[]],["title/374",[637,5.096]],["content/374",[4,0.43,12,2.951,20,1.709,30,2.846,38,3.236,43,1.881,44,1.338,54,1.163,55,1.01,59,1.415,62,1.116,66,0.492,70,2.353,71,2.367,115,1.388,123,1.823,137,0.987,154,0.976,158,2.991,161,1.441,261,0.833,264,1.54,272,1.763,290,1.823,293,1.54,295,3.373,300,1.233,303,1.047,313,1.338,315,1.315,333,1.443,335,2.069,355,1.233,365,1.252,372,1.54,387,2.895,413,1.823,431,1.54,440,1.362,462,1.823,465,1.763,466,1.338,501,1.443,508,1.892,538,1.233,590,1.763,593,3.104,618,1.973,637,6.414,681,1.661,717,2.191,753,6.133,757,1.973,792,3.86,812,1.823,928,2.191,967,1.763,1001,1.661,1051,2.353,1186,1.215,1195,3.86,1265,2.191,1409,1.892,1437,1.973,1438,1.577,1444,2.599,1445,2.353,1446,2.353,1447,2.599,1448,2.191,1449,2.599,1450,2.599,1451,2.599,1452,2.353,1453,2.353,1454,2.599,1455,4.264,1456,2.599,1457,2.069,1458,2.599,1459,2.599,1460,2.599,1461,2.599,1462,2.599,1463,2.191,1464,2.599,1465,2.191,1466,2.599,1467,2.599]],["tags/374",[]],["title/211",[134,2.823]],["content/211",[4,0.455,11,2.568,46,1.914,62,1.181,77,2.955,106,2.81,115,3.065,134,2.23,161,1.526,191,3.849,195,2.465,280,3.849,289,3.065,301,2.498,312,4.356,377,3.983,414,4.384,549,4.837,900,5.196,1378,4.055,1409,4.178,1468,5.74,1469,5.196,1470,4.178,1471,4.57,1472,4.57]],["tags/211",[]],["title/212",[134,2.345,414,3.421]],["content/212",[66,1.386,78,2.465,134,3.516,161,1.944,191,3.64,289,3.906,377,3.766,414,5.128,544,4.81,1470,5.325,1472,5.824]],["tags/212",[]],["title/213",[62,1.495]],["content/213",[7,0.998,12,1.018,17,2.723,21,1.406,31,1.693,55,1.973,56,2.526,61,0.664,62,1.463,66,1.188,67,1.757,82,0.849,85,0.915,98,0.901,107,0.754,115,0.998,134,0.727,145,1.018,149,2.124,161,0.497,176,0.963,178,1.693,185,0.901,187,1.548,192,1.693,193,3.463,194,4.409,195,0.803,207,1.557,208,2.01,211,2.804,244,0.887,250,1.489,275,1.083,280,1.608,293,1.108,303,0.753,316,0.946,355,0.887,366,2.47,369,1.419,376,2.924,378,1.693,381,0.637,386,0.814,389,1.693,407,1.361,414,1.06,453,2.01,473,1.108,484,2.572,524,1.576,533,2.452,538,1.533,554,1.083,558,2.452,560,1.419,571,0.931,572,1.268,590,1.268,608,1.23,617,1.489,626,2.764,628,2.452,634,1.509,636,1.793,681,1.195,712,2.572,736,0.887,882,1.195,922,3.444,979,1.693,996,1.268,1064,1.576,1068,3.77,1107,1.576,1259,1.489,1264,1.419,1270,2.924,1366,3.861,1371,1.419,1378,0.98,1473,1.693,1474,3.23,1475,3.23,1476,1.693,1477,1.87,1478,2.064,1479,1.87,1480,1.87,1481,1.693,1482,1.693,1483,1.87,1484,1.576,1485,1.87,1486,1.693,1487,1.87,1488,1.87,1489,1.87,1490,1.87,1491,1.87,1492,1.576,1493,1.87,1494,1.419,1495,1.87,1496,1.87,1497,1.693,1498,1.312,1499,1.693,1500,2.723,1501,2.723,1502,1.361,1503,1.693,1504,1.576,1505,1.87,1506,1.87,1507,1.693,1508,1.87,1509,1.87,1510,1.693,1511,1.87,1512,1.87,1513,1.87,1514,1.87]],["tags/213",[]],["title/214",[180,4.207]],["content/214",[4,0.306,55,2.259,66,1.668,107,0.899,108,4.055,134,1.496,161,1.545,182,3.709,195,1.654,201,4.889,280,1.916,303,1.551,320,0.779,321,6.177,414,2.183,568,2.942,571,1.916,996,5.973,1186,1.799,1193,2.401,1378,2.019,1438,2.336,1486,3.486,1515,3.851,1516,3.246,1517,3.851,1518,3.851,1519,3.851,1520,3.066,1521,2.281,1522,2.923,1523,3.851]],["tags/214",[]],["title/215",[1522,5.514]],["content/215",[4,0.204,55,0.999,62,0.529,66,1.18,91,2.167,161,1.968,171,2.866,172,1.22,178,1.348,193,3.209,194,4.84,195,2.311,201,4.11,205,1.523,211,2.779,259,2.047,261,0.824,264,1.523,280,1.28,303,2.982,318,2.477,414,1.457,483,2.328,516,1.952,571,1.28,582,2.167,626,2.3,738,3.05,750,2.328,806,5.641,882,1.643,988,2.328,996,5.021,1068,1.691,1186,4.405,1378,1.348,1408,2.047,1438,4.957,1478,2.701,1520,2.047,1521,3.188,1524,2.167,1525,2.571,1526,2.571,1527,2.571,1528,2.167,1529,2.167,1530,2.571,1531,2.571,1532,2.571,1533,2.571,1534,2.571,1535,2.571,1536,2.328,1537,2.571,1538,6.885,1539,2.571,1540,2.571,1541,2.571,1542,2.571,1543,2.571,1544,2.571]],["tags/215",[]],["title/216",[67,1.897]],["content/216",[8,2.847,21,3.815,41,4.436,107,1.147,193,4.943,194,5.971,195,2.111,280,2.446,298,3.731,318,3.2,365,2.369,414,2.786,571,2.446,1030,4.143,1378,2.577,1498,6.148,1545,4.916,1546,4.916,1547,4.916,1548,4.916,1549,3.914,1550,3.579,1551,4.143]],["tags/216",[]],["title/217",[1188,4.927]],["content/217",[193,3.143,194,4.775,195,2.621,245,3.323,280,3.038,414,3.46,571,3.038,696,4.282,882,3.901,1067,6.418,1068,4.014,1102,5.145,1188,5.467,1216,4.444,1284,4.282,1378,3.2,1551,5.145,1552,5.3,1553,6.105,1554,5.526,1555,5.526,1556,4.861]],["tags/217",[]],["title/218",[320,1.47]],["content/218",[4,0.261,12,1.794,62,1.061,66,1.204,90,1.958,98,1.588,106,1.613,107,0.769,121,1.517,127,2.41,161,1.911,193,2.656,194,1.952,195,2.215,207,1.588,272,2.235,277,2.983,280,1.64,300,1.563,316,1.668,320,1.579,323,3.209,352,1.613,397,2.399,414,1.868,449,2.624,456,3.602,493,4.823,517,2.106,564,1.909,571,1.64,617,2.624,621,2.704,622,3.393,626,2.807,641,3.129,681,2.106,690,1.83,712,2.624,714,2.399,736,1.563,788,2.624,847,2.983,891,2.624,966,2.777,1068,2.167,1079,2.624,1095,2.167,1218,2.777,1297,2.777,1372,2.312,1378,1.727,1419,2.983,1457,2.624,1557,3.295,1558,2.777,1559,2.983,1560,6.355,1561,3.295,1562,2.983,1563,2.983,1564,3.295,1565,2.983,1566,3.295,1567,3.295,1568,3.295,1569,3.295]],["tags/218",[]],["title/219",[568,3.676]],["content/219",[58,2.476,62,0.84,90,1.549,98,2.925,107,0.952,178,2.139,193,2.101,194,3.597,195,1.752,207,1.966,250,4.834,254,3.097,280,2.03,369,4.608,372,2.417,414,3.441,470,3.097,485,1.644,488,1.997,501,2.265,558,3.097,568,4.554,571,3.021,593,4.42,600,2.417,617,4.834,622,3.242,788,3.249,838,4.118,882,2.607,1068,2.683,1372,2.862,1378,2.139,1558,3.439,1565,3.693,1570,4.08,1571,6.071,1572,4.08,1573,4.08,1574,4.08,1575,4.08,1576,4.834,1577,3.439,1578,4.834,1579,4.08,1580,3.693]],["tags/219",[]],["title/220",[485,2.927]],["content/220",[11,1.631,12,3.035,41,1.845,66,1.057,80,2.767,86,2.767,88,2.33,177,1.814,178,1.911,193,2.872,194,2.16,195,1.566,205,3.304,255,2.16,261,2.431,273,1.877,275,3.923,280,1.814,295,2.268,301,1.587,355,2.646,362,2.024,381,1.241,391,2.473,414,2.066,446,2.473,453,3.47,485,3.056,571,1.814,600,2.16,616,2.212,793,2.767,798,2.654,803,3.035,903,3.073,1049,3.301,1068,4.989,1262,2.33,1371,2.767,1378,1.911,1558,3.073,1581,3.646,1582,5.577,1583,3.646,1584,3.301,1585,3.301,1586,5.145,1587,3.301,1588,3.646,1589,3.646,1590,3.646,1591,3.646,1592,3.646,1593,3.073,1594,3.073,1595,4.233]],["tags/220",[]],["title/221",[96,4.777]],["content/221",[62,1.463,66,1.603,68,2.768,88,2.521,96,5.194,137,2.248,161,1.574,187,1.432,193,4.882,194,5.617,195,1.694,200,3.326,205,2.338,280,1.964,330,2.236,352,1.932,355,1.872,381,1.343,396,3.572,397,2.873,414,2.236,485,1.59,504,2.873,571,1.964,675,2.676,736,3.372,906,2.995,1179,3.142,1186,2.767,1378,2.068,1438,2.394,1596,3.946,1597,3.946,1598,5.922,1599,2.873,1600,3.946,1601,3.946,1602,3.946,1603,5.922]],["tags/221",[]],["title/206",[320,1.222,622,3.223]],["content/206",[4,0.425,52,1.588,66,1.014,67,1.399,78,1.804,245,2.915,255,3.172,273,2.757,318,2.466,320,1.841,333,2.973,365,2.58,456,3.035,516,4.064,544,3.521,584,3.898,607,5.394,616,3.249,622,4.857,648,3.422,672,3.898,698,3.521,720,3.348,730,3.632,1036,4.064,1284,3.756,1604,4.513,1605,4.848]],["tags/206",[]],["title/207",[90,1.96,320,1.045,622,2.756]],["content/207",[58,2.895,78,2.392,95,5.387,208,4.416,275,4.111,320,1.797,511,3.941,526,4.111,538,3.367,622,4.742,695,3.863,1606,7.098,1607,7.098]],["tags/207",[]],["title/208",[402,4.52]],["content/208",[12,1.94,41,2.774,52,1.057,108,1.641,161,2.272,168,2.873,175,5,203,2.706,222,2.112,270,2.684,320,1.109,372,3.247,402,3.41,403,3.845,456,3.107,463,2.838,466,1.836,511,1.979,512,5.318,523,4.62,528,3.227,554,3.175,607,3.503,621,3.501,622,2.927,649,2.386,691,2.5,698,3.605,716,4.16,736,1.691,778,2.02,804,2.838,1284,2.5,1358,3.004,1608,3.004,1609,3.227,1610,3.565,1611,3.565,1612,3.565,1613,3.565,1614,3.565,1615,4.62,1616,3.565,1617,3.565,1618,3.565,1619,3.227,1620,3.227,1621,3.227,1622,3.227,1623,3.565]],["tags/208",[]],["title/209",[288,4.927]],["content/209",[161,2.399,175,3.323,288,4.14,320,1.236,403,5.654,456,3.46,463,4.861,554,3.535,607,3.901,621,3.2,622,3.26,649,2.657,695,3.323,696,4.282,698,4.014,716,4.633,736,2.896,1615,5.145,1620,5.526,1622,5.526,1624,6.105,1625,5.526,1626,6.105]],["tags/209",[]],["title/210",[1627,7.265]],["content/210",[4,0.532,52,2.54,67,1.75,161,1.781,182,2.459,195,2.878,303,2.7,315,3.391,320,1.733,333,3.721,365,3.229,456,3.798,621,3.513,622,4.573,649,2.917,1628,6.702]],["tags/210",[]],["title/205",[320,1.222,641,3.662]],["content/205",[0,2.627,1,1.822,11,2.073,13,2.883,30,2.103,46,0.961,59,2.522,62,0.593,74,1.84,75,0.871,82,2.103,85,2.269,106,3.263,115,1.538,127,2.717,137,1.093,160,2.607,161,2.268,181,1.567,195,1.237,201,3.229,245,2.522,272,1.953,273,1.483,276,2.186,316,2.943,320,1.905,355,1.366,362,1.599,459,1.894,462,2.02,465,1.953,470,2.186,501,1.599,511,2.573,515,4.234,622,1.538,637,2.02,641,4.431,690,1.599,710,2.186,879,2.607,922,4.954,1075,3.944,1186,3.413,1350,2.427,1406,3.824,1452,2.607,1453,2.607,1494,3.517,1629,2.607,1630,2.88,1631,2.88,1632,2.88,1633,3.906,1634,3.69]],["tags/205",[]],["title/222",[568,3.676]],["content/222",[11,3.041,58,2.772,65,3.275,78,2.29,174,4.948,183,4.123,184,2.88,207,3.275,289,3.629,318,3.129,383,3.5,568,3.439,573,5.411,1036,5.158,1144,4.61,1471,5.411,1635,6.152,1636,6.797]],["tags/222",[]],["title/223",[90,2.291,207,2.908]],["content/223",[]],["tags/223",[]],["title/224",[65,2.487,90,1.96,207,2.487]],["content/224",[65,4.19,161,1.508,207,4.49,318,2.611,403,3.978,541,6.467,557,3.624,607,3.624,622,3.028,1576,4.516,1637,5.672,1638,5.672,1639,5.672,1640,7.674,1641,5.672,1642,5.672,1643,4.129,1644,5.672,1645,5.672,1646,5.672,1647,5.672,1648,5.672,1649,5.672,1650,5.672,1651,5.672]],["tags/224",[]],["title/225",[90,1.96,207,2.487,1652,4.351]],["content/225",[145,2.703,207,2.393,215,4.186,239,2.942,318,2.287,402,3.09,568,2.514,622,2.652,881,4.496,1187,4.186,1231,3.955,1262,3.174,1576,3.955,1652,8.118,1653,4.967,1654,6.338,1655,4.967,1656,4.967,1657,4.967,1658,4.967,1659,7.002,1660,4.967,1661,4.967,1662,4.967,1663,7.002,1664,4.967,1665,4.967,1666,4.967,1667,4.967,1668,7.002,1669,4.967,1670,4.967,1671,4.967,1672,4.496,1673,4.967]],["tags/225",[]],["title/226",[90,1.96,207,2.487,1144,3.501]],["content/226",[161,1.268,207,2.298,215,4.02,239,2.825,318,2.196,402,2.967,568,2.414,622,2.547,1144,6.634,1576,3.798,1652,4.02,1654,7.179,1672,4.318,1674,4.77,1675,4.77,1676,4.77,1677,8.646,1678,4.77,1679,4.77,1680,4.77,1681,4.77,1682,6.803,1683,6.803,1684,4.77,1685,4.77,1686,6.803,1687,6.803,1688,4.77,1689,4.77,1690,4.77,1691,4.77,1692,4.77,1693,4.77]],["tags/226",[]],["title/227",[568,3.054,1694,5.464]],["content/227",[4,0.572,54,3.223,66,1.365,195,3.094,316,3.646,332,5.054,427,4.604,568,4.938,592,4.604,709,5.468,1599,5.245,1694,6.522]],["tags/227",[]],["title/228",[54,2.31,568,2.612,1599,3.758]],["content/228",[65,4.279,67,2.319,320,1.797,460,4.306,461,4.979,479,6.229,639,5.982,1695,7.098,1696,7.098,1697,7.098,1698,7.098]],["tags/228",[]],["title/229",[54,2.018,568,2.282,709,3.423,896,3.591]],["content/229",[233,4.925,320,1.831,370,6.621,1144,4.961,1699,7.315,1700,6.165,1701,7.315,1702,6.621,1703,7.315,1704,6.621,1705,7.315]],["tags/229",[]],["title/230",[568,3.054,1401,4.806]],["content/230",[4,0.563,54,3.176,273,3.655,488,3.475,517,4.536,568,4.494,720,4.03,896,5.652,1186,3.317,1401,5.652,1706,7.098,1707,6.426,1708,7.098]],["tags/230",[]],["title/231",[568,2.612,838,3.501,1578,4.11]],["content/231",[4,0.416,8,1.949,21,1.464,25,1.674,26,1.831,66,0.637,107,1.223,121,2.414,123,2.36,127,1.572,143,3.957,154,2.417,161,1.712,182,2.363,191,1.674,193,1.733,280,1.674,302,2.554,315,3.259,321,2.36,377,1.733,391,2.282,466,1.733,468,2.282,501,3.575,527,2.282,568,4.411,600,1.993,605,1.907,649,1.464,667,2.36,672,2.449,678,2.554,700,3.046,721,2.449,736,1.596,752,3.046,756,2.554,810,2.554,838,4.368,967,2.282,1147,3.046,1186,3.682,1563,4.745,1577,2.836,1578,5.789,1580,3.046,1599,2.449,1709,4.745,1710,3.365,1711,3.365,1712,3.365,1713,3.365,1714,3.365,1715,3.365,1716,3.365,1717,3.365]],["tags/231",[]],["title/232",[838,3.501,1373,4.351,1578,4.11]],["content/232",[22,3.535,107,1.818,121,3.586,191,3.876,193,4.011,377,4.011,1373,6.565,1577,6.565,1718,7.79]],["tags/232",[]],["title/233",[320,1.045,485,2.08,1011,3.501]],["content/233",[4,0.43,18,3.942,46,1.806,65,2.609,90,2.823,103,2.609,107,1.264,121,2.493,154,2.033,320,1.096,364,3.369,381,2.532,485,3.421,488,2.651,537,3.461,544,3.561,553,3.461,571,2.695,683,3.942,691,3.799,714,3.942,738,3.069,1011,3.673,1193,2.237,1194,4.564,1391,4.902,1719,5.416,1720,5.416,1721,5.416,1722,5.416,1723,5.416,1724,5.416]],["tags/233",[]],["title/234",[107,1.053,154,1.693,381,1.535,485,1.817]],["content/234",[289,4.448,322,3.2,527,5.65,835,4.825,1725,8.331]],["tags/234",[]],["title/235",[381,1.758,485,2.08,793,3.918]],["content/235",[115,4.372,261,3.104,453,5.094,1586,5.554,1595,6.215]],["tags/235",[]],["title/236",[136,2.208,381,1.535,485,1.817,769,3.423]],["content/236",[8,4.91,301,3.69,359,6.172,720,3.847]],["tags/236",[]],["title/237",[4,0.358,352,2.208,485,1.817,1011,3.059]],["content/237",[4,0.456,7,2.024,13,4.315,62,0.78,66,1.088,84,2.358,88,3.671,148,2.195,161,1.007,179,2.492,245,2.063,256,2.422,273,2.958,280,1.886,294,2.195,320,1.683,365,1.826,366,3.327,381,2.635,383,1.951,468,3.896,485,3.526,538,1.798,542,2.195,544,2.492,564,3.327,590,2.57,641,3.485,696,2.658,720,1.72,745,3.194,852,3.194,1075,3.896,1086,3.018,1193,1.565,1196,3.194,1264,2.877,1406,3.777,1407,3.018,1550,2.759,1629,3.431,1726,3.431,1727,5.2,1728,3.431,1729,3.79,1730,3.79,1731,3.79,1732,3.194,1733,3.431]],["tags/237",[]],["title/238",[150,3.164,485,2.432]],["content/238",[7,3.102,66,1.1,67,2.457,76,4.409,88,3.712,127,2.714,150,3.045,303,2.34,315,3.946,320,1.176,333,3.225,381,2.655,485,3.142,589,3.94,590,3.94,636,3.225,681,3.712,690,3.225,714,4.229,720,2.636,745,4.896,1407,4.625,1734,4.625,1735,5.259]],["tags/238",[]],["title/239",[320,1.222,603,4.234]],["content/239",[59,4.043,148,4.302,320,1.503,366,4.302,381,2.529,468,6.195,485,2.992,564,4.302,603,5.21,1378,3.894,1433,6.26]],["tags/239",[]],["title/240",[320,1.222,596,5.087]],["content/240",[179,5.122,320,1.903,381,2.652,485,3.788,596,6.565,1378,4.083,1736,7.79]],["tags/240",[]],["title/241",[4,0.41,485,2.08,1179,4.11]],["content/241",[4,0.503,16,1.411,21,0.729,46,1.306,62,0.604,66,0.556,67,1.229,81,1.174,84,1.042,88,4.054,97,1.135,103,0.807,121,0.771,127,0.782,129,1.333,137,1.114,142,2.227,150,1.538,154,0.628,177,1.46,187,0.608,202,0.847,246,1.135,255,0.992,272,1.135,305,0.911,315,1.485,320,0.594,329,4.13,338,2.437,352,1.436,372,0.992,381,2.6,387,0.894,391,1.135,393,1.07,406,2.473,462,1.174,466,0.862,485,2.971,488,0.82,504,2.136,538,0.794,554,0.97,571,2.93,601,1.515,603,1.174,608,1.101,650,1.271,655,1.46,656,1.411,675,3.191,681,3.006,697,1.411,710,2.227,714,2.851,720,1.331,734,1.411,778,0.949,840,2.136,967,1.135,1068,3.872,1179,4.26,1262,4.054,1264,1.271,1365,3.545,1406,3.093,1409,2.136,1448,1.411,1552,4.172,1556,3.118,1586,1.99,1734,1.333,1735,5.33,1737,1.515,1738,1.674,1739,5.888,1740,5.888,1741,6.345,1742,6.345,1743,2.934,1744,2.934,1745,2.934,1746,3.917,1747,3.917,1748,3.118,1749,2.656,1750,3.545,1751,2.934,1752,1.674,1753,1.674,1754,1.674,1755,1.674]],["tags/241",[]],["title/242",[21,1.742,381,1.363,485,1.613,888,1.96,1193,1.654]],["content/242",[58,3.284,322,3.092,381,2.741,485,3.244,537,5.145,888,3.942,1193,3.325]],["tags/242",[]],["title/243",[381,2.055,1586,4.094]],["content/243",[]],["tags/243",[]],["title/244",[426,5.784]],["content/244",[4,0.455,25,2.856,61,2.038,67,2.02,82,2.605,85,3.787,154,2.154,315,2.905,320,1.895,362,3.186,381,1.954,720,2.605,737,4.57,872,3.774,1042,4.837,1083,5.196,1144,3.893,1186,3.615,1196,4.837,1339,4.356,1550,4.178,1586,5.934,1756,5.74]],["tags/244",[]],["title/245",[175,3.954]],["content/245",[4,0.324,21,2.642,43,2.679,44,3.126,55,2.359,56,3.597,62,1.249,65,1.966,76,3.097,77,2.101,78,2.046,79,3.249,99,2.607,105,2.363,106,1.997,130,2.101,134,1.585,137,2.305,143,2.221,187,1.481,191,2.03,220,1.936,261,1.945,320,0.826,322,2.785,363,1.851,366,2.363,377,2.101,453,2.538,474,2.265,485,1.644,515,2.97,517,2.607,524,3.439,655,2.03,656,3.439,720,1.851,766,2.97,888,1.997,999,3.439,1001,2.607,1197,3.439,1593,3.439,1594,3.439,1595,4.608,1757,6.071,1758,4.08,1759,5.496,1760,6.071,1761,4.08]],["tags/245",[]],["title/246",[134,2.823]],["content/246",[88,3.712,178,3.045,187,2.108,193,4.015,194,3.441,195,2.495,261,3.015,280,2.891,381,2.655,414,3.292,453,4.852,571,2.891,600,3.441,1378,3.045,1585,5.259,1587,5.259,1593,4.896,1594,4.896,1595,5.919,1762,5.809,1763,5.809,1764,7.798]],["tags/246",[]],["title/247",[179,4.777]],["content/247",[]],["tags/247",[]],["title/248",[840,5.289]],["content/248",[4,0.236,8,1.72,58,1.211,66,1.285,82,1.347,115,3.169,179,3.123,187,1.724,193,3.056,219,3.331,233,1.616,260,4.003,301,2.067,318,1.367,320,0.601,355,1.409,383,2.445,453,1.847,479,2.083,488,1.454,534,1.409,571,1.478,592,1.897,606,4.003,607,1.897,840,2.161,888,1.454,1144,4.6,1261,4.003,1262,1.897,1288,2.502,1378,3.111,1406,3.903,1436,4.003,1586,3.221,1700,2.502,1702,2.688,1704,2.688,1734,4.726,1765,2.969,1766,2.969,1767,2.969,1768,4.749,1769,2.969,1770,2.969,1771,2.969,1772,2.969,1773,2.969,1774,2.969,1775,2.969,1776,2.969,1777,4.749,1778,2.969,1779,2.969,1780,4.749,1781,2.969,1782,2.969,1783,2.688,1784,5.373,1785,5.935,1786,2.969,1787,2.969,1788,2.969,1789,2.969,1790,4.749,1791,4.749,1792,2.969,1793,2.969,1794,2.969,1795,2.969,1796,2.969,1797,2.969,1798,2.969,1799,2.969]],["tags/248",[]],["title/249",[1262,3.857,1552,3.969]],["content/249",[4,0.401,172,1.865,177,1.173,202,1.193,218,2.605,239,1.396,250,4.028,254,1.789,258,2.984,280,1.173,318,1.085,320,0.477,362,1.308,427,1.506,468,1.598,504,1.716,616,1.43,683,1.716,835,1.365,1075,1.598,1262,5.039,1372,4.605,1471,1.876,1552,3.327,1556,6.278,1584,2.133,1586,3.431,1728,2.133,1748,1.876,1750,6.421,1800,2.357,1801,2.133,1802,2.133,1803,2.357,1804,2.357,1805,2.133,1806,2.357,1807,3.559,1808,2.357,1809,2.357,1810,5.906,1811,2.357,1812,2.357,1813,2.357,1814,2.357,1815,3.559,1816,2.357,1817,2.357,1818,3.932,1819,2.357,1820,5.059,1821,2.357,1822,2.357,1823,2.357,1824,2.357,1825,2.357,1826,3.932,1827,2.357,1828,6.565,1829,2.357,1830,2.357,1831,2.357,1832,2.357,1833,2.357,1834,2.357,1835,2.357,1836,2.133,1837,2.357,1838,2.357,1839,2.357,1840,2.357,1841,2.357,1842,2.357,1843,2.357,1844,2.357,1845,2.357,1846,2.357,1847,2.357,1848,2.357,1849,2.357,1850,2.357,1851,2.357,1852,2.357,1853,2.357,1854,2.357,1855,2.357,1856,2.357,1857,2.357,1858,2.357,1859,2.357,1860,2.357,1861,2.357,1862,2.357,1863,2.357,1864,2.357,1865,2.357,1866,2.357,1867,2.357,1868,2.357,1869,2.357,1870,2.357,1871,2.357,1872,2.357]],["tags/249",[]],["title/250",[605,3.421,1188,4.094]],["content/250",[4,0.263,22,1.506,26,1.806,27,2.182,31,1.739,66,1.209,67,2.045,88,2.12,90,1.26,106,2.539,107,1.684,178,2.718,195,1.425,245,1.806,255,1.966,261,1.063,271,2.064,280,1.651,289,1.772,320,1.755,381,2.665,436,2.797,474,2.879,485,2.571,488,2.539,600,1.966,605,2.939,616,2.013,634,1.551,636,1.842,674,3.637,681,2.12,696,3.637,698,2.182,721,2.416,922,2.25,1067,2.642,1188,3.517,1262,5.541,1549,4.129,1550,3.775,1552,6.064,1734,2.642,1802,3.004,1873,3.318,1874,3.318,1875,3.318]],["tags/250",[]],["title/251",[178,2.706,605,2.926,1188,3.501]],["content/251",[21,2.657,26,3.323,27,4.014,41,3.089,67,2.105,107,2.24,178,3.2,191,3.038,193,4.15,377,4.15,605,3.46,922,4.14,997,4.633,1188,4.14,1498,4.282,1549,6.418,1550,5.868,1551,5.145]],["tags/251",[]],["title/252",[127,2.412,1463,4.351,1552,3.395]],["content/252",[41,2.68,67,1.912,107,1.959,134,2.058,178,2.776,191,2.636,195,2.274,280,2.636,377,2.727,436,4.464,605,3.002,634,2.475,696,3.715,854,4.794,1102,4.464,1188,3.592,1216,3.855,1284,3.715,1463,7.073,1549,6.682,1550,6.11,1552,5.954,1554,4.794,1555,4.794,1556,4.217,1876,4.794]],["tags/252",[]],["title/253",[320,0.913,698,2.966,1262,2.882,1552,2.966]],["content/253",[150,3.834,320,1.831,556,4.438,634,3.418,698,4.81,744,4.81,770,4.674,840,5.325,1262,5.782,1552,5.95]],["tags/253",[]],["title/271",[1193,3.001]],["content/271",[0,4.083,12,3.921,43,3.179,59,3.921,66,1.365,681,4.604,721,5.245,753,5.054,888,3.527,1193,3.702,1360,6.522,1424,6.522,1536,6.522]],["tags/271",[]],["title/272",[152,5.784]],["content/272",[4,0.645,7,3.302,22,2.806,27,4.066,62,1.272,67,1.615,110,3.241,167,5.597,172,2.933,244,3.856,303,2.491,330,3.505,338,3.847,362,3.433,381,2.105,556,3.751,793,4.693,882,3.951,1127,5.211,1192,5.597,1193,3.357,1877,5.597]],["tags/272",[]],["title/273",[148,3.496,1193,2.493]],["content/273",[4,0.711,30,3.269,44,3.71,58,2.939,98,3.472,106,3.527,184,3.053,270,3.527,301,3.136,413,5.054,550,6.072,1193,3.702]],["tags/273",[]],["title/274",[52,1.79,1193,2.493]],["content/274",[4,0.634,8,3.491,46,2.01,52,1.788,59,3.281,62,1.645,75,1.822,90,2.289,100,4.388,103,2.905,108,2.775,161,1.602,182,2.212,316,3.051,365,2.905,443,4.575,456,3.416,620,3.852,621,3.16,801,4.575,1193,3.944,1878,6.028]],["tags/274",[]],["title/275",[4,0.41,888,2.527,1193,2.132]],["content/275",[74,4.674,75,2.735,103,3.524,110,4.743,137,2.777,138,3.906,888,3.581,1193,3.021,1296,5.824,1879,7.315,1880,6.621]],["tags/275",[]],["title/276",[75,1.21,177,1.992,184,1.697,819,3.039,1129,2.319]],["content/276",[4,0.589,8,4.302,46,2.477,58,3.03,107,1.734,154,2.788,173,5.21,175,4.043,184,3.148,301,3.233,444,4.884,834,4.884]],["tags/276",[]],["title/277",[75,1.363,202,2.282,833,3.283,1881,4.51]],["content/277",[4,0.455,39,4.026,103,2.766,172,2.723,176,2.955,246,3.893,256,3.668,352,2.81,354,4.57,394,3.4,434,4.178,511,3.186,517,3.668,537,3.668,539,3.571,605,3.253,649,2.498,711,4.837,793,4.356,831,3.324,835,3.324,1151,4.57,1193,2.371,1411,4.837,1882,7.374,1883,6.52,1884,5.74,1885,5.74]],["tags/277",[]],["title/278",[75,1.21,107,0.934,154,1.503,218,2.061,1193,1.654]],["content/278",[4,0.346,21,1.163,30,1.212,55,1.038,66,0.506,67,0.698,84,3.967,113,1.583,137,2.098,161,1.695,182,1.6,184,1.132,187,3.404,195,1.147,290,1.874,315,1.352,316,1.352,318,2.544,321,1.874,334,2.028,338,1.662,354,2.127,355,2.069,381,1.485,391,2.958,395,2.127,485,1.076,519,2.958,520,2.127,527,1.812,542,1.547,571,1.329,579,1.483,605,1.514,649,2.775,675,1.812,778,1.514,819,2.028,928,2.252,955,2.418,994,1.483,1028,2.418,1095,2.868,1129,2.525,1193,3.645,1261,2.252,1345,2.418,1434,2.418,1635,2.418,1783,2.418,1805,2.418,1880,2.418,1883,5.922,1886,2.672,1887,6.377,1888,2.672,1889,3.472,1890,2.672,1891,4.361,1892,5.002,1893,2.672,1894,2.672,1895,4.361,1896,2.672,1897,2.672,1898,2.672,1899,2.418,1900,2.672,1901,2.672,1902,2.672,1903,2.672,1904,2.672,1905,2.672]],["tags/278",[]],["title/279",[75,1.363,176,2.322,239,2.672,1193,1.863]],["content/279",[1,2.463,43,3.617,44,4.221,82,2.843,83,3.409,130,3.225,161,1.665,182,2.299,243,3.409,286,3.55,381,2.133,485,2.524,503,4.119,542,3.628,553,4.003,679,5.28,994,3.478,1095,4.119,1193,3.386,1892,5.67,1906,6.264]],["tags/279",[]],["title/280",[75,1.21,254,3.039,1095,2.633,1907,4.004,1908,4.004]],["content/280",[1,1.77,4,0.518,43,1.986,44,2.318,62,0.926,66,1.236,67,1.704,90,1.709,115,2.403,134,2.536,173,3.157,191,2.24,244,2.135,256,2.876,270,2.204,300,2.135,330,2.551,372,2.666,377,3.953,394,2.666,454,3.794,488,2.204,520,3.584,526,3.779,605,2.551,649,1.959,655,2.24,888,2.204,922,4.426,1151,3.584,1193,2.695,1378,2.359,1411,3.794,1609,4.075,1877,4.075,1882,3.794,1883,3.794,1909,4.501,1910,4.501,1911,4.075,1912,4.075,1913,4.501,1914,4.501,1915,4.501,1916,4.501]],["tags/280",[]],["title/281",[75,1.363,96,2.966,258,3.423,1193,1.863]],["content/281",[4,0.43,22,2.458,55,2.889,61,2.641,66,1.026,96,5.584,103,2.609,161,1.44,329,3.799,365,2.609,488,2.651,526,3.136,533,4.11,694,3.942,816,4.902,817,4.902,1193,2.237,1259,4.312,1264,4.11,1917,5.416,1918,5.643,1919,5.416,1920,5.416,1921,5.416,1922,4.312,1923,5.416,1924,5.416,1925,5.416,1926,5.416,1927,5.416,1928,5.416]],["tags/281",[]],["title/282",[75,1.363,801,3.423,1193,1.863,1807,4.082]],["content/282",[30,2.514,52,1.643,61,2.682,62,1.14,67,1.447,96,3.643,108,2.551,130,2.853,182,2.772,316,2.804,338,3.447,352,2.713,359,4.034,393,3.541,694,4.034,710,4.205,801,7.004,1193,3.989,1918,4.205,1929,5.016,1930,5.541,1931,5.541,1932,5.541,1933,4.67,1934,5.541]],["tags/282",[]],["title/283",[13,2.806,75,1.363,1193,1.863,1815,4.082]],["content/283",[4,0.491,13,3.847,43,2.728,67,1.615,108,2.847,137,2.348,148,3.581,161,1.644,182,2.269,184,2.62,286,4.607,301,2.691,444,4.066,593,4.501,607,3.951,780,4.693,1129,4.708,1193,3.357,1889,4.923,1933,5.211,1935,6.183,1936,6.183]],["tags/283",[]],["title/284",[22,2.343,75,1.56,1748,4.11]],["content/284",[4,0.572,22,3.269,39,5.054,66,1.365,107,1.681,112,4.886,121,3.317,184,3.053,362,4,556,4.371,1017,6.072,1086,5.736,1193,2.976,1604,6.072]],["tags/284",[]],["title/285",[270,2.208,381,1.535,485,1.817,1193,1.863]],["content/285",[22,2.806,46,2.062,58,2.522,75,1.869,130,3.184,137,2.348,174,4.501,176,3.184,256,3.951,362,3.433,382,3.847,485,2.491,615,3.751,674,4.337,695,3.365,888,3.027,1095,4.066,1193,3.751,1194,5.211,1605,5.597,1882,5.211,1937,6.183,1938,6.183]],["tags/285",[]],["title/286",[649,2.627,1193,2.493]],["content/286",[58,3.077,77,3.885,106,3.694,113,4.469,381,2.569,488,3.694,648,4.821,649,3.284,888,3.694,1193,3.809]],["tags/286",[]],["title/254",[21,2.627,62,1.242]],["content/254",[11,2.805,21,1.855,26,2.319,43,1.88,66,1.409,67,1.637,79,3.393,83,2.319,85,2.086,90,1.618,110,2.234,150,2.234,161,2.181,180,3.631,181,2.319,182,1.564,185,2.053,187,2.7,207,2.053,229,2.989,233,2.319,261,1.365,320,0.862,332,2.989,337,3.102,379,2.989,440,2.234,488,2.086,526,2.468,557,2.723,573,3.393,582,3.591,589,2.89,648,2.723,770,4.006,905,3.591,995,3.234,1136,3.857,1423,3.234,1939,7.438,1940,4.261,1941,4.261,1942,3.857,1943,4.261,1944,4.261,1945,4.261,1946,4.261]],["tags/254",[]],["title/255",[4,0.358,62,0.928,107,1.053,154,1.693]],["content/255",[4,0.656,35,5.8,48,4.056,62,1.702,107,1.93,143,3.454,146,5.053,154,3.452,269,4.62,305,3.454,616,3.851,720,2.88,724,3.949,835,3.676,1029,5.746,1055,5.349,1197,5.349]],["tags/255",[]],["title/256",[90,2.291,294,3.496]],["content/256",[108,3.529,185,3.693,363,3.478,1947,4.769,1948,5.377,1949,5.199,1950,5.199,1951,5.377,1952,5.199,1953,6.939]],["tags/256",[]],["title/257",[294,3.496,538,2.863]],["content/257",[4,0.357,9,2.96,21,2.84,24,2.24,35,4.577,40,3.277,42,3.584,43,1.986,61,1.599,62,0.926,66,0.853,77,2.318,99,2.876,107,1.523,110,2.359,121,2.072,143,2.45,154,2.449,172,3.642,175,3.552,176,2.318,243,3.552,273,2.318,286,2.551,300,3.994,303,1.813,305,2.45,338,2.8,434,3.277,538,2.135,615,2.731,680,4.075,721,3.277,790,2.96,872,2.96,1055,3.794,1175,4.075,1230,3.157,1296,3.584,1954,4.501,1955,4.075,1956,4.501,1957,4.501]],["tags/257",[]],["title/258",[97,4.927]],["content/258",[1,2.069,4,0.327,8,2.385,9,1.638,18,1.814,21,1.084,41,1.261,43,2.322,45,1.891,46,0.831,52,0.739,56,1.476,61,0.885,62,1.5,66,0.472,67,1.596,75,0.753,78,1.387,82,1.868,84,1.55,85,1.22,103,1.2,107,1.58,108,1.147,121,1.147,130,1.283,134,2.045,137,0.946,138,3.264,154,2.541,161,0.662,169,2.255,173,1.747,185,1.2,187,0.904,203,1.891,207,1.2,235,2.1,243,2.241,244,1.182,263,1.891,265,1.55,270,1.22,300,1.182,301,1.084,303,1.659,320,1.476,363,1.868,368,1.356,444,2.708,485,2.463,511,1.383,537,1.592,539,2.562,604,1.638,633,1.69,634,1.164,648,1.592,655,1.24,667,1.747,694,1.814,712,1.984,728,1.984,738,2.334,803,1.356,812,1.747,831,1.443,832,3.125,834,2.708,849,1.984,851,1.747,852,2.1,855,1.891,1011,1.69,1025,1.814,1081,2.255,1232,1.891,1344,2.255,1392,2.1,1492,2.1,1586,1.69,1643,2.997,1726,2.255,1784,2.255,1958,2.491,1959,2.491,1960,2.491,1961,2.491,1962,3.727,1963,4.435,1964,2.491]],["tags/258",[]],["title/259",[66,1.143,1948,4.234]],["content/259",[4,0.507,39,3.071,52,1.298,62,0.901,67,1.143,78,1.475,104,3.161,107,1.022,137,2.428,138,2.338,139,3.963,154,1.643,168,2.295,173,3.071,220,2.077,322,2.902,361,4.486,362,2.43,363,1.987,381,1.49,383,2.254,404,3.963,499,3.486,537,2.798,542,2.535,594,3.963,720,2.902,738,2.481,790,2.879,803,2.383,855,3.323,887,4.854,888,2.143,1129,4.376,1149,3.69,1232,3.323,1422,3.187,1559,3.963,1732,3.69,1948,6.2,1965,3.69,1966,4.378]],["tags/259",[]],["title/260",[170,4.927]],["content/260",[61,3.065,62,1.776,1948,6.054]],["tags/260",[]],["title/261",[55,1.556,75,1.21,177,1.992,766,2.915,1948,2.808]],["content/261",[55,3.354,766,6.283,1948,6.054]],["tags/261",[]],["title/262",[75,1.088,202,1.822,322,1.383,579,1.998,720,1.633,1967,3.259]],["content/262",[104,3.426,322,3.721,325,5.385,720,3.716,1967,7.412]],["tags/262",[]],["title/263",[75,0.988,218,1.684,361,2.293,738,1.853,887,2.482,1129,1.894,1968,3.27]],["content/263",[21,2.876,46,2.204,104,2.765,313,3.403,322,3.26,332,4.636,360,5.983,361,4.636,555,3.746,642,5.57,720,2.999,738,3.746,762,5.016,1001,4.223,1058,5.262,1129,4.916,1969,5.983,1970,6.609]],["tags/263",[]],["title/264",[4,0.259,52,0.97,75,0.988,104,1.368,239,1.937,322,1.256,720,1.484]],["content/264",[4,0.68,46,2.235,52,1.988,66,1.269,98,3.229,147,4.169,148,3.881,289,3.578,303,2.7,460,4.066,462,4.701,546,5.648,564,5.466,624,6.067,655,3.335,1971,5.086]],["tags/264",[]],["title/265",[75,1.21,90,1.52,178,2.099,254,3.039,1972,3.188]],["content/265",[4,0.599,43,3.329,44,3.885,90,2.864,104,3.858,137,2.864,178,3.955,322,2.898,325,4.961,1972,6.007]],["tags/265",[]],["title/266",[75,1.363,134,1.752,180,2.612,258,3.423]],["content/266",[134,3.354,180,4.998,1423,6.55]],["tags/266",[]],["title/267",[262,4.927]],["content/267",[4,0.599,58,3.077,62,1.553,66,1.429,107,1.761,154,2.832,322,2.898,480,5.117,655,3.754,850,5.117,1948,5.292]],["tags/267",[]],["title/268",[208,3.755,695,3.285]],["content/268",[]],["tags/268",[]],["title/269",[62,1.242,190,3.421]],["content/269",[4,0.58,104,4.11,107,1.707,137,2.777,173,5.131,322,2.809,328,3.981,520,5.824,579,4.061,1372,5.131,1516,6.165]],["tags/269",[]],["title/270",[55,2.345,831,3.496]],["content/270",[4,0.547,8,3.993,55,3.388,104,4.001,137,2.617,303,2.777,322,3.349,488,3.375,566,4.289,579,3.827,655,3.431,724,4.289,1422,5.019]],["tags/270",[]],["title/307",[66,0.978,185,2.487,1947,3.212]],["content/307",[4,0.491,61,2.196,66,1.171,78,2.739,107,1.443,108,3.742,138,3.302,154,2.321,159,4.693,185,4.828,363,2.806,537,3.951,790,4.066,888,3.027,915,5.211,1119,5.597,1187,5.211,1947,5.057]],["tags/307",[]],["title/308",[170,4.927]],["content/308",[52,2.045,75,2.084,138,3.681,172,3.271,185,4.608,338,4.289,352,3.375,387,3.681,586,7.893,690,3.827,1104,6.241,1393,7.893,1973,6.894]],["tags/308",[]],["title/309",[75,1.088,137,1.367,161,0.957,177,1.791,185,1.734,1947,2.239]],["content/309",[4,0.613,21,1.405,46,1.077,54,1.445,61,1.147,63,2.351,65,2.446,105,2.94,121,1.487,127,1.509,131,2.351,137,1.226,143,1.757,161,1.349,180,2.94,182,2.609,184,1.368,185,1.556,186,2.451,187,2.276,188,2.451,189,3.56,190,2.877,191,2.526,198,2.123,201,1.793,233,1.757,256,2.063,269,2.351,293,1.913,295,2.009,316,1.634,318,1.487,320,0.654,352,1.581,368,1.757,377,1.663,394,1.913,568,1.634,608,2.123,626,2.763,643,2.123,678,2.451,736,1.532,919,2.451,1001,2.063,1054,2.451,1186,2.931,1423,4.76,1478,3.244,1521,3.007,1522,3.852,1524,2.721,1528,2.721,1529,2.721,1971,2.451,1974,3.229,1975,5.66,1976,2.923,1977,2.923,1978,2.571,1979,2.923,1980,2.721,1981,2.721,1982,2.721,1983,3.229,1984,3.229,1985,2.571,1986,2.571]],["tags/309",[]],["title/310",[61,1.602,185,2.173,312,3.423,402,2.806]],["content/310",[43,1.864,58,2.541,66,1.18,71,2.345,77,2.175,161,1.656,180,5.044,182,2.286,185,3.566,187,2.686,198,2.777,201,3.458,230,3.56,295,2.628,320,0.855,352,2.068,390,3.824,402,4.604,413,4.369,538,2.004,553,2.699,674,2.963,703,3.206,721,3.075,807,2.963,831,2.446,1056,3.824,1186,2.911,1423,3.206,1433,3.56,1521,4.384,1599,3.075,1987,4.224,1988,6.229,1989,6.229,1990,4.224,1991,4.224,1992,4.224,1993,4.224,1994,3.824]],["tags/310",[]],["title/311",[61,1.161,75,0.988,177,1.627,431,1.937,736,1.551,1186,1.528,1521,1.937]],["content/311",[4,0.556,46,1.657,61,1.764,63,3.616,65,2.393,66,0.941,105,2.877,127,2.321,131,3.616,134,1.93,143,2.703,180,2.877,182,1.823,184,2.105,188,3.77,189,3.484,190,2.815,191,2.472,198,3.266,201,2.758,233,2.703,256,3.174,269,3.616,368,2.703,377,2.558,608,3.266,643,3.266,736,2.356,919,3.77,1054,3.77,1186,2.321,1438,3.013,1478,4.474,1520,3.955,1521,2.942,1975,3.955,1976,4.496,1977,4.496,1978,3.955,1985,3.955,1986,3.955,1995,4.967]],["tags/311",[]],["title/312",[75,1.363,103,2.173,202,2.282,256,2.882]],["content/312",[4,0.484,46,2.036,61,2.168,62,1.659,103,2.941,154,2.291,161,1.623,185,3.884,186,4.633,220,2.896,221,5.868,223,3.535,316,3.089,385,4.14,440,3.2,466,3.143,479,4.282,579,3.389,652,7.296,1521,3.616,1737,5.526,1947,3.798]],["tags/312",[]],["title/313",[262,4.927]],["content/313",[1,2.432,4,0.491,46,2.062,47,4.501,58,2.522,62,1.272,66,1.54,107,1.443,154,2.321,163,4.923,164,4.194,185,3.917,322,2.375,480,4.194,511,3.433,644,4.693,649,2.691,655,3.077,849,4.923,850,4.194,1478,3.951,1947,3.847,1996,6.183]],["tags/313",[]],["title/314",[208,3.755,695,3.285]],["content/314",[]],["tags/314",[]],["title/315",[62,1.242,190,3.421]],["content/315",[46,2.403,61,2.559,161,1.915,185,4.319,186,5.468,220,3.418,221,5.245,223,4.173,316,3.646,440,3.777,579,4,1058,5.736,1947,4.482]],["tags/315",[]],["title/316",[55,2.345,831,3.496]],["content/316",[4,0.618,46,2.598,55,3.027,61,2.767,184,3.301,185,3.753,220,3.695,221,5.671,223,4.511]],["tags/316",[]],["title/287",[66,0.978,1317,3.918,1953,4.673]],["content/287",[4,0.42,52,2.172,58,2.16,66,1.387,78,1.785,108,3.371,172,2.513,181,2.882,191,2.636,294,3.067,323,3.295,347,4.794,363,2.403,381,1.803,431,3.137,465,3.592,467,4.464,516,4.02,556,3.213,649,2.305,736,2.513,758,3.483,910,4.464,1150,4.464,1182,4.794,1265,4.464,1422,3.855,1445,4.794,1446,4.794,1997,6.628,1998,5.296,1999,5.296,2000,5.296,2001,5.296]],["tags/287",[]],["title/288",[170,4.927]],["content/288",[30,2.574,41,2.87,52,2.579,58,2.313,92,5.134,106,2.777,134,2.204,145,3.087,172,2.691,345,6.946,363,2.574,407,4.129,548,3.73,604,3.73,1129,3.285,1171,4.78,1186,2.65,1438,3.441,1521,3.36,1918,4.305,2002,5.672,2003,7.674,2004,5.134,2005,5.672,2006,5.672,2007,5.134,2008,5.672,2009,5.672]],["tags/288",[]],["title/289",[75,1.21,177,1.992,394,2.372,803,2.179,819,3.039]],["content/289",[4,0.618,184,3.301,187,2.827,819,5.912,1889,6.202,2010,8.512,2011,7.79,2012,7.79]],["tags/289",[]],["title/290",[52,1.338,75,1.363,202,2.282,323,2.806]],["content/290",[52,2.684,62,1.505,161,1.944,182,2.684,303,2.947,323,4.551,548,4.81,655,4.503,1918,5.552,1929,6.621,2007,6.621]],["tags/290",[]],["title/291",[75,1.088,107,0.84,154,1.351,161,0.957,218,1.853,1470,2.62]],["content/291",[4,0.785,8,2.877,55,1.93,66,0.941,107,1.159,134,1.93,137,2.658,161,1.32,182,1.823,187,1.803,316,2.514,320,1.005,548,3.266,556,3.013,568,2.514,649,3.047,720,2.254,836,4.186,922,3.369,1193,2.052,1438,3.013,1470,3.616,1516,4.186,1522,3.77,2010,4.496,2013,4.967,2014,4.967,2015,4.967,2016,4.967,2017,4.967,2018,4.967,2019,4.967,2020,4.967,2021,4.967,2022,4.967,2023,4.967]],["tags/291",[]],["title/292",[62,0.824,75,1.21,103,1.929,239,2.372,359,2.915]],["content/292",[61,2.959,62,1.714,103,4.716,1918,6.323]],["tags/292",[]],["title/293",[262,4.927]],["content/293",[4,0.618,58,3.177,62,1.603,107,1.818,154,2.924,322,2.992,480,5.283,655,3.876,850,5.283]],["tags/293",[]],["title/294",[208,3.755,695,3.285]],["content/294",[4,0.572,110,3.777,143,4.879,161,1.915,182,2.644,184,3.053,321,5.054,428,5.468,433,5.736,434,5.245,1457,5.736,1470,5.245,2024,7.205]],["tags/294",[]],["title/295",[62,1.242,190,3.421]],["content/295",[62,1.685,187,2.972,190,4.641,327,6.52,947,6.901,2025,8.188]],["tags/295",[]],["title/296",[11,2.7,62,1.242]],["content/296",[4,0.484,11,4.037,30,3.658,61,2.168,62,1.256,66,1.156,184,2.587,270,2.989,321,4.282,329,4.282,379,4.282,607,3.901,649,2.657,999,5.145,1129,3.535,1138,4.861,1889,7.642,2026,6.105,2027,6.105,2028,6.105]],["tags/296",[]],["title/297",[66,0.854,108,2.076,363,2.046,1952,3.059]],["content/297",[4,0.488,7,2.216,15,3.15,66,1.388,67,1.606,78,2.072,107,0.969,108,2.831,114,3.305,138,3.283,154,1.558,172,2.917,185,2.963,289,3.283,363,3.324,381,1.413,401,3.757,472,2.911,511,2.304,537,2.652,541,3.498,542,2.404,618,3.15,888,2.032,910,3.498,1026,3.15,1065,3.305,1230,5.138,1323,3.757,1381,3.498,1422,3.022,1643,3.022,1700,3.498,1922,3.305,1947,2.582,1952,5.865,1965,3.498,2029,4.151,2030,4.476,2031,4.151,2032,4.151,2033,4.151,2034,4.151,2035,4.151]],["tags/297",[]],["title/298",[170,4.927]],["content/298",[1,3.014,52,2.273,58,3.127,90,2.91,108,3.529,363,3.478,488,3.753,1065,6.103,1952,5.199,2030,5.58]],["tags/298",[]],["title/299",[75,1.21,137,1.52,177,1.992,182,1.469,548,2.633]],["content/299",[46,2.299,81,4.836,108,3.174,137,3.31,161,1.833,182,2.53,220,3.271,265,4.289,316,3.489,1947,4.289,2036,6.894,2037,6.241,2038,6.894,2039,6.894,2040,6.894,2041,6.894]],["tags/299",[]],["title/300",[75,0.988,107,0.763,108,1.505,154,1.227,202,1.655,363,1.484,880,2.218]],["content/300",[4,0.51,46,2.145,76,4.882,82,2.919,108,2.961,137,3.166,185,3.099,186,4.882,201,3.571,220,3.051,318,2.961,322,2.47,328,3.501,363,2.919,803,3.501,880,5.657,1947,4.002,1952,4.362,2030,4.682,2037,5.823]],["tags/300",[]],["title/301",[75,1.088,137,1.367,161,0.957,185,1.734,218,1.853,1947,2.239]],["content/301",[4,0.617,46,1.274,61,1.357,63,2.781,65,2.784,105,3.347,121,1.759,127,1.785,131,2.781,143,2.079,180,3.347,182,1.402,184,1.619,188,2.899,189,4.054,190,3.275,191,2.876,198,2.512,201,2.121,233,2.079,256,2.441,269,2.781,293,2.263,295,2.377,352,1.87,368,2.079,377,1.967,394,2.263,589,2.591,608,2.512,626,3.145,643,2.512,678,2.899,736,1.812,762,2.899,919,2.899,1001,2.441,1054,2.899,1186,2.7,1478,3.693,1521,2.263,1522,4.386,1524,3.22,1528,3.22,1529,3.22,1971,2.899,1975,6.187,1978,3.042,1979,3.458,1980,3.22,1981,3.22,1982,3.22,1985,3.042,1986,3.042,2042,3.458,2043,3.458,2044,3.82]],["tags/301",[]],["title/302",[61,1.161,75,0.988,218,1.684,431,1.937,736,1.551,1186,1.528,1521,1.937]],["content/302",[4,0.54,46,1.591,61,1.694,63,3.472,65,2.298,66,0.904,105,2.762,121,2.196,127,3.179,131,3.472,134,1.853,143,2.596,180,2.762,182,1.75,184,2.021,188,3.62,189,3.346,190,2.703,191,2.374,198,3.136,201,2.648,233,2.596,256,3.048,269,3.472,368,2.596,377,2.456,608,3.136,643,4.474,720,2.164,736,2.263,919,3.62,1054,3.62,1186,2.229,1438,2.894,1478,4.347,1520,3.798,1521,2.825,1975,3.798,1978,3.798,1985,3.798,1986,3.798,2042,4.318,2043,4.318,2045,4.77]],["tags/302",[]],["title/303",[262,4.927]],["content/303",[1,2.401,4,0.484,25,3.038,33,4.861,46,2.036,62,1.256,66,1.156,71,3.389,107,1.425,108,2.811,115,3.26,154,2.291,163,4.861,164,4.14,363,2.77,433,4.861,499,4.861,508,4.444,542,3.535,655,3.038,679,5.145,850,4.14,1478,3.901,1481,5.526,1952,4.14,2046,6.105]],["tags/303",[]],["title/304",[208,3.755,695,3.285]],["content/304",[]],["tags/304",[]],["title/305",[62,1.242,190,3.421]],["content/305",[4,0.668,46,2.174,61,2.315,62,1.342,75,1.971,98,3.141,108,4.289,190,4.769,322,2.504,328,3.548,363,2.958,579,3.619,783,4.573,1952,4.422,2030,4.746,2047,6.519,2048,5.902]],["tags/305",[]],["title/306",[55,2.345,831,3.496]],["content/306",[4,0.629,24,2.963,46,1.985,55,3.463,62,1.225,82,2.701,85,2.914,98,2.868,108,4.103,322,2.286,328,4.314,363,2.701,374,3.448,551,5.389,566,4.932,579,3.305,906,4.518,1952,4.038,2030,4.334,2048,7.176]],["tags/306",[]],["title/328",[66,0.978,1949,3.501,1950,3.501]],["content/328",[4,0.411,62,1.066,66,0.982,107,1.209,136,2.537,154,1.945,172,2.458,220,2.458,245,2.82,288,3.514,322,1.99,363,2.351,381,1.764,472,5.059,744,3.407,758,3.407,790,3.407,803,2.82,995,3.933,1133,4.126,1494,3.933,1732,4.367,1949,6.083,1950,5.626,1965,4.367,2049,5.182,2050,5.182,2051,5.182,2052,5.182,2053,5.182,2054,4.691,2055,4.367,2056,6.079]],["tags/328",[]],["title/329",[170,4.927]],["content/329",[46,2.403,52,2.137,61,2.559,62,1.483,243,3.921,783,6.288,1949,4.886,1950,4.886,2055,6.072,2057,7.205,2058,7.205,2059,6.522,2060,7.205]],["tags/329",[]],["title/330",[55,1.399,75,1.088,177,1.791,766,2.62,1949,2.441,1950,2.441]],["content/330",[]],["tags/330",[]],["title/331",[75,0.988,202,1.655,289,1.746,579,1.815,1949,2.218,1950,2.218,2056,2.756]],["content/331",[62,1.461,104,2.969,123,4.979,170,4.814,187,3.223,325,4.668,419,5.652,526,4.111,539,4.416,553,4.536,996,4.814,2055,5.982,2056,7.485]],["tags/331",[]],["title/332",[75,1.088,104,1.506,218,1.853,289,1.922,579,1.998,2061,3.6]],["content/332",[4,0.639,104,3.368,184,3.412,187,2.922,325,5.294,419,6.41,564,4.663]],["tags/332",[]],["title/333",[4,0.286,52,1.068,75,1.088,134,1.399,184,1.526,239,2.132]],["content/333",[25,2.472,46,1.657,52,1.473,55,1.93,65,2.393,66,1.326,67,1.297,80,3.77,83,3.811,102,4.186,104,2.929,107,1.634,134,1.93,138,2.652,175,2.703,176,2.558,233,2.703,300,3.322,320,1.005,322,1.908,472,4.911,626,2.703,634,3.272,787,4.496,788,3.955,810,3.77,1058,5.575,1422,3.616,1876,4.496,1969,6.338,1994,4.496,2062,4.967,2063,4.967,2064,4.967,2065,4.967]],["tags/333",[]],["title/334",[262,4.927]],["content/334",[4,0.589,58,3.03,62,1.529,66,1.407,107,1.734,154,2.788,322,2.853,480,5.038,655,3.696,850,5.038,1949,5.038,1950,5.038]],["tags/334",[]],["title/335",[208,3.755,695,3.285]],["content/335",[]],["tags/335",[]],["title/336",[62,1.242,190,3.421]],["content/336",[4,0.471,16,2.502,22,1.347,26,1.616,27,1.952,62,0.611,66,0.9,74,1.897,78,1.6,90,1.803,103,1.431,104,3.103,106,1.454,107,1.108,110,1.556,127,1.387,150,2.489,181,2.585,183,1.801,184,2.515,190,4.891,195,1.275,223,1.72,245,1.616,246,2.014,255,1.759,264,1.759,265,1.847,294,1.72,295,1.847,305,1.616,322,1.14,323,1.847,330,1.683,352,1.454,357,1.801,361,2.083,368,1.616,383,1.529,405,2.253,427,1.897,460,1.801,540,2.502,555,1.683,563,2.688,690,1.648,691,2.083,773,2.502,783,2.083,810,2.253,887,2.253,899,2.688,1072,2.502,1317,2.253,1354,2.502,1372,2.083,1437,2.253,1942,2.688,1949,4.6,1950,4.6,2059,2.688,2066,4.749,2067,2.969,2068,4.749,2069,4.749,2070,7.911,2071,2.969,2072,2.969,2073,2.969,2074,2.969,2075,2.969,2076,2.969,2077,2.969,2078,2.969]],["tags/336",[]],["title/337",[55,2.345,831,3.496]],["content/337",[4,0.42,55,3.518,104,3.511,108,3.371,130,2.727,137,2.011,184,2.244,326,5.557,328,4.568,386,3.187,460,3.213,462,3.715,488,2.593,555,3.002,557,3.384,579,2.94,724,3.295,730,4.966,884,3.855,2079,5.296,2080,5.296,2081,5.296,2082,9.054,2083,5.296]],["tags/337",[]],["title/317",[66,1.143,1951,4.234]],["content/317",[4,0.411,7,2.767,54,2.318,61,1.84,62,1.066,66,0.982,67,1.353,78,1.746,107,1.209,108,2.386,136,2.537,137,1.967,154,1.945,172,2.458,185,2.497,265,3.224,357,3.144,387,2.767,454,4.367,470,3.933,472,5.059,622,2.767,653,4.691,720,2.351,758,3.407,783,3.635,830,4.691,904,4.126,1035,4.126,1127,4.367,1133,4.126,1643,3.772,1922,4.126,1951,5.059,1997,4.691,2030,3.772,2054,4.691,2084,5.182]],["tags/317",[]],["title/318",[170,4.927]],["content/318",[52,2.388,61,2.859,62,1.657,78,2.713,136,3.942,1193,3.325,1951,5.647]],["tags/318",[]],["title/319",[75,1.21,107,0.934,154,1.503,177,1.992,1186,1.871]],["content/319",[55,2.842,78,2.465,104,3.06,136,3.581,553,4.674,564,4.236,579,4.061,766,6.587,1437,5.552,1951,5.131,2085,7.315,2086,7.315]],["tags/319",[]],["title/320",[52,1.338,75,1.363,202,2.282,1437,3.423]],["content/320",[4,0.656,43,3.648,44,4.258,46,2.117,66,1.566,75,1.918,107,1.481,134,2.466,195,2.726,218,3.268,243,3.454,266,5.746,527,4.305,626,3.454,1478,4.056,1980,5.349,1981,5.349,1982,5.349,2087,6.347]],["tags/320",[]],["title/321",[4,0.259,62,0.673,75,0.988,107,0.763,154,1.227,184,1.386,218,1.684]],["content/321",[4,0.563,43,3.132,44,3.655,52,2.105,54,3.176,104,2.969,184,3.008,322,3.411,564,4.111,720,3.221,736,3.367,1406,4.668,1438,4.306,1951,4.979]],["tags/321",[]],["title/322",[61,1.161,75,0.988,218,1.684,431,1.937,736,1.551,1186,1.528,1521,1.937]],["content/322",[4,0.698,61,2.484,66,1.325,75,2.114,113,4.144,143,3.807,184,2.964,202,3.54,368,3.807,703,5.309,736,3.318,1133,5.569,1186,3.268,1438,4.243,1521,4.144]],["tags/322",[]],["title/323",[52,1.338,75,1.363,134,1.752,239,2.672]],["content/323",[4,0.539,41,3.439,66,1.287,76,5.158,77,3.5,85,3.327,127,3.176,255,4.026,301,2.958,322,2.61,626,3.699,642,5.728,655,3.382,1478,5.522,2088,6.797,2089,6.797,2090,6.797]],["tags/323",[]],["title/324",[262,4.927]],["content/324",[4,0.599,58,3.077,62,1.553,66,1.429,107,1.761,154,2.832,322,2.898,480,5.117,655,3.754,850,5.117,1951,5.292]],["tags/324",[]],["title/325",[208,3.755,695,3.285]],["content/325",[]],["tags/325",[]],["title/326",[62,1.242,190,3.421]],["content/326",[4,0.599,104,3.156,137,2.864,185,3.635,190,4.276,322,3.542,374,4.369,557,4.821,579,4.189,643,4.961]],["tags/326",[]],["title/327",[55,2.345,831,3.496]],["content/327",[4,0.539,55,3.358,59,3.699,62,1.399,104,2.843,137,2.58,154,2.551,185,3.275,322,3.319,374,3.936,402,4.228,557,4.343,579,3.773,643,4.469,780,5.158,2091,6.797]],["tags/327",[]],["title/342",[161,1.372,182,1.895,648,3.299]],["content/342",[4,0.595,62,1.127,90,2.08,98,2.639,107,1.278,108,2.522,121,2.522,154,2.056,161,2.271,179,3.602,180,3.172,182,2.01,207,2.639,222,3.245,303,2.207,316,2.772,318,2.522,320,1.517,456,3.104,621,3.928,648,3.5,720,2.486,728,4.361,744,3.602,835,4.34,1039,4.958,1339,4.157,1472,4.361,2092,5.477]],["tags/342",[]],["title/343",[90,1.96,207,2.487,621,2.706]],["content/343",[4,0.382,90,1.829,161,1.281,207,2.321,1357,3.836,1363,3.836,1615,4.06,1836,4.361,1933,4.06,2004,4.361,2093,4.817,2094,4.817,2095,4.817,2096,4.817,2097,4.361,2098,4.361,2099,4.361,2100,6.852,2101,4.817,2102,4.817,2103,4.817,2104,4.817,2105,4.817,2106,4.817,2107,4.817,2108,4.817,2109,4.817,2110,4.817,2111,4.817,2112,4.817,2113,4.817,2114,4.817,2115,4.817,2116,4.817,2117,4.817,2118,4.817,2119,4.817,2120,4.817,2121,4.817,2122,4.817,2123,4.817,2124,4.817,2125,4.817,2126,4.817,2127,4.817,2128,4.817]],["tags/343",[]],["title/344",[161,1.372,222,3.058,744,3.395]],["content/344",[4,0.579,43,2.326,44,2.714,62,0.697,66,0.642,67,0.885,84,2.108,90,1.286,105,1.962,161,2.225,175,2.869,182,1.244,195,1.455,222,4.959,261,1.086,320,1.694,368,1.844,372,2.007,386,2.294,403,3.697,413,3.697,427,2.165,439,3.198,472,2.377,501,1.881,560,2.572,621,2.763,622,3.454,644,2.572,645,2.698,687,2.298,695,1.844,698,2.228,716,2.572,736,2.501,744,5.199,835,1.962,1002,3.067,1110,3.067,1358,2.856,1359,3.067,1400,2.856,1409,3.837,1412,2.698,1472,2.698,1562,3.067,1625,3.067,1707,3.067,2099,3.067,2129,3.389,2130,3.067,2131,3.389,2132,3.389,2133,3.389,2134,3.389]],["tags/344",[]],["title/345",[318,2.377,320,1.045,2135,4.351]],["content/345",[0,1.081,1,0.75,4,0.261,13,1.186,30,1.964,41,0.965,46,1.716,58,0.778,62,0.392,66,1.201,73,2.616,81,1.338,94,1.447,98,0.919,108,0.878,109,1.447,161,1.686,172,0.905,181,1.788,183,1.157,187,3,198,1.254,207,0.919,218,0.982,233,1.038,258,2.494,273,1.692,280,0.949,298,1.447,300,2.054,318,3.456,320,1.284,331,1.447,337,1.388,383,0.982,387,1.018,405,1.447,413,1.338,439,1.157,456,1.862,459,1.254,488,0.934,492,1.726,511,1.824,519,2.936,549,1.607,564,1.104,571,0.949,607,2.1,608,1.254,616,1.157,622,1.018,649,1.43,674,2.305,698,1.254,702,1.518,703,2.494,709,1.447,720,0.865,722,1.388,728,1.518,798,1.388,842,1.726,882,1.219,891,2.616,909,1.607,948,2.769,1075,1.293,1186,0.891,1220,1.726,1339,1.447,1402,1.726,1403,3.919,1405,1.726,1406,2.161,1409,1.388,1471,1.518,1482,2.974,1608,1.607,1619,1.726,1621,1.726,1634,2.616,1748,2.616,1749,5.253,1801,2.974,1911,1.726,2097,1.726,2098,1.726,2135,4.337,2136,3.286,2137,3.286,2138,3.286,2139,1.907,2140,1.907,2141,3.286,2142,3.286,2143,1.726,2144,1.907,2145,1.907,2146,1.907,2147,1.907,2148,1.907,2149,1.607,2150,1.907,2151,1.907,2152,1.907,2153,1.907,2154,1.907,2155,4.329,2156,1.907,2157,1.907,2158,3.286,2159,1.907,2160,1.907,2161,1.907,2162,1.907,2163,1.907,2164,1.907,2165,1.907,2166,1.907,2167,1.907]],["tags/345",[]],["title/346",[649,3.162]],["content/346",[46,1.71,58,2.091,109,5.433,140,3.037,218,2.64,318,3.296,320,1.038,649,2.231,996,3.477,1412,4.082,1608,4.321,2130,4.641,2135,4.321,2143,4.641,2149,4.321,2168,5.126,2169,5.126,2170,5.126,2171,5.126,2172,5.126,2173,5.126,2174,5.126,2175,5.126,2176,5.126,2177,5.126,2178,5.126,2179,5.126,2180,5.126,2181,5.126,2182,5.126,2183,5.126,2184,5.126,2185,5.126,2186,5.126,2187,5.126,2188,5.126,2189,5.126,2190,5.126,2191,5.126]],["tags/346",[]],["title/338",[11,2.7,320,1.222]],["content/338",[]],["tags/338",[]],["title/339",[11,2.31,255,3.058,320,1.045]],["content/339",[0,2.677,1,1.857,11,3.528,13,2.938,21,3.432,30,2.143,85,2.312,161,2.421,195,2.028,198,3.106,201,2.622,241,3.203,303,1.903,316,2.39,320,1.843,468,3.203,474,2.622,478,3.438,498,3.584,501,2.622,637,3.313,641,2.865,690,2.622,720,2.143,756,3.584,770,3.018,864,3.98,868,3.98,922,3.203,1018,4.275,1075,3.203,1284,3.313,1406,3.106,1408,3.76,1494,3.584,1633,3.98,1634,3.76]],["tags/339",[]],["title/340",[649,3.162]],["content/340",[11,2.177,24,2.422,26,2.649,30,3.639,80,3.693,109,5.238,121,3.177,127,2.274,176,2.506,228,4.101,320,1.623,339,3.693,365,2.345,366,2.818,456,2.758,457,4.405,466,2.506,501,2.702,511,2.702,526,2.818,539,3.028,616,4.187,641,2.952,650,3.693,690,3.831,1412,6.947,1416,6.247,2192,6.901,2193,4.866,2194,6.901,2195,6.901]],["tags/340",[]],["title/341",[127,2.412,320,1.045,699,4.351]],["content/341",[11,3.461,13,3.571,21,2.498,85,2.81,127,2.682,161,2.056,201,3.186,320,1.771,468,3.893,474,3.186,478,4.178,498,4.356,641,3.482,690,3.186,699,6.52,756,4.356,864,4.837,868,4.837,1075,3.893,1284,4.026,1400,4.837,1406,3.774,1408,4.57,1494,4.356,1633,4.837,2196,5.74]],["tags/341",[]],["title/347",[67,1.576,363,2.739]],["content/347",[1,2.23,4,0.45,22,2.574,31,2.973,34,3.978,62,1.579,67,2.621,134,2.204,142,4.305,176,2.92,264,3.36,363,3.946,381,1.931,605,3.215,634,2.65,636,3.149,769,4.305,778,3.215,834,3.73,1286,4.78,1498,3.978,2197,5.672,2198,4.78,2199,5.672]],["tags/347",[]],["title/348",[67,1.576,634,2.82]],["content/348",[]],["tags/348",[]],["title/349",[175,3.285,778,3.421]],["content/349",[4,0.662,8,4.83,31,3.372,56,3.81,62,1.324,66,1.218,67,1.68,78,2.167,261,2.061,293,3.81,303,2.591,365,3.099,366,5.361,634,3.897,1392,5.421,1502,4.682,2200,4.512]],["tags/349",[]],["title/350",[634,2.412,636,2.866,1501,4.351]],["content/350",[4,0.45,62,1.167,66,1.074,67,1.481,107,1.324,134,2.204,191,2.822,211,5.046,346,4.78,365,2.733,377,4.478,381,1.931,502,3.847,628,4.305,634,4.064,636,3.149,770,3.624,807,3.978,997,4.305,1500,4.78,1502,4.129,2200,5.383,2201,5.134,2202,5.672,2203,5.672,2204,5.134]],["tags/350",[]],["title/351",[626,2.81,634,2.412,1501,4.351]],["content/351",[1,2.515,4,0.507,7,2.338,8,2.535,11,1.959,56,2.593,62,1.555,67,2.17,77,2.254,97,2.969,107,1.493,191,3.182,211,2.879,302,3.323,305,2.383,377,3.293,381,1.49,502,2.969,626,4.81,628,3.323,634,3.883,649,1.905,740,3.69,743,3.69,789,3.69,807,3.071,836,3.69,995,3.323,997,3.323,1267,3.963,1285,3.69,1500,3.69,1503,3.963,1504,3.69,1709,3.963,2204,3.963,2205,4.378,2206,4.378,2207,4.378,2208,4.378]],["tags/351",[]],["title/352",[67,1.576,1498,4.234]],["content/352",[1,1.953,4,0.394,14,5.903,21,3.529,56,2.942,67,2.299,78,1.674,107,1.159,137,1.886,178,2.604,191,2.472,193,2.558,205,2.942,300,2.356,303,2.001,355,2.356,366,2.877,377,2.558,477,3.369,600,4.148,605,2.815,633,3.369,723,3.616,770,3.174,771,4.186,798,3.616,1035,3.955,1072,4.186,1308,4.496,1497,4.496,1498,6.176,2209,4.967,2210,4.967]],["tags/352",[]],["title/353",[31,3.164,67,1.576]],["content/353",[1,2.626,4,0.435,7,1.903,12,1.94,21,3.263,31,4.939,34,2.5,41,2.774,56,2.112,67,2.399,75,1.657,78,1.847,86,2.706,94,2.706,106,1.745,107,0.832,168,1.869,183,2.163,191,1.774,193,1.836,195,1.531,265,2.218,274,3.227,355,1.691,358,2.5,365,1.718,366,2.064,377,1.836,463,4.365,466,2.823,477,2.418,502,2.418,600,2.112,604,2.344,615,3.326,633,2.418,634,2.562,636,1.979,770,2.278,855,2.706,997,2.706,1117,3.227,1132,3.227,1407,2.838,1498,2.5,1499,3.227,1502,2.595,1733,3.227,1899,3.227,2211,3.565,2212,3.227,2213,3.565,2214,3.565,2215,3.565]],["tags/353",[]],["title/354",[67,1.576,636,3.351]],["content/354",[1,2.193,4,0.443,7,1.947,34,2.557,46,1.216,62,0.75,67,2.252,78,2.282,129,2.903,137,1.384,150,3.55,177,1.814,181,3.035,183,4.109,195,1.566,202,1.845,218,1.877,229,2.557,239,2.16,245,1.984,264,2.16,271,2.268,320,1.129,330,2.066,363,1.654,383,1.877,386,1.587,474,2.024,511,2.024,548,2.398,554,2.112,566,2.268,571,1.814,589,3.783,603,2.557,604,2.398,605,2.066,634,2.606,636,4.981,638,4.441,696,2.557,702,2.903,723,2.654,743,3.073,1095,2.398,1371,4.233,1410,3.073,1502,2.654,2198,3.073,2200,3.912,2212,3.301,2216,3.646,2217,3.646]],["tags/354",[]],["title/355",[1972,5.784]],["content/355",[4,0.375,22,2.145,24,2.352,25,1.468,30,2.145,61,1.048,62,1.522,66,0.895,71,1.638,77,1.519,81,2.07,90,1.12,106,1.445,110,1.547,115,1.576,120,2.487,125,2.349,136,2.314,142,2.24,176,2.433,178,2.477,181,1.606,184,1.251,185,1.422,187,1.071,233,1.606,245,1.606,261,2.369,286,1.672,289,1.576,303,1.189,315,1.493,333,1.638,352,1.445,355,1.4,358,2.07,381,1.005,394,1.748,395,2.349,434,2.148,474,2.624,488,1.445,499,2.349,508,2.148,517,1.886,539,1.836,604,1.94,615,1.79,655,1.468,725,2.349,733,2.24,778,1.672,803,1.606,804,2.349,807,2.07,872,1.94,883,2.07,903,2.487,904,2.349,906,2.24,920,2.148,1086,2.349,1095,4.444,1259,2.349,1296,2.349,1354,2.487,1436,2.487,1465,2.487,1643,2.148,1912,2.671,1955,2.671,1962,2.671,1963,2.487,1972,6.282,2218,2.671,2219,2.951,2220,2.951,2221,2.951,2222,2.671,2223,2.951,2224,2.671,2225,2.951,2226,2.671,2227,2.951,2228,2.951]],["tags/355",[]],["title/356",[31,3.808]],["content/356",[4,0.521,7,2.426,30,2.062,31,4.702,43,2.005,59,2.473,62,1.352,67,2.518,83,2.473,85,2.224,103,2.189,124,4.987,130,2.34,143,2.473,177,2.261,184,1.926,195,1.951,202,2.299,218,2.34,239,2.692,261,2.105,381,1.547,383,2.34,434,3.308,473,3.892,484,3.618,538,2.156,554,2.631,572,3.082,645,3.618,790,2.988,883,3.187,1107,3.83,2218,4.113,2229,4.544,2230,4.544,2231,4.544,2232,4.544]],["tags/356",[]],["title/357",[31,3.164,600,3.576]],["content/357",[24,3.201,25,3.201,31,3.372,40,4.682,62,1.324,74,4.11,107,1.501,191,3.201,193,3.312,206,4.362,261,2.061,323,4.002,377,3.312,435,4.682,473,3.81,502,4.362,517,4.11,600,3.81,967,4.362,1095,4.23,1285,5.421,1510,5.823]],["tags/357",[]],["title/358",[264,4.304]],["content/358",[62,1.36,67,1.726,273,3.403,275,3.828,383,3.403,393,4.223,397,4.811,446,4.483,773,5.57,1595,7.117,2198,5.57,2222,5.983,2226,7.684,2233,6.609,2234,6.609,2235,6.609,2236,6.609]],["tags/358",[]],["title/359",[2237,7.265]],["content/359",[35,2.791,43,1.755,48,2.542,55,2.315,58,1.623,62,0.819,71,3.966,85,1.948,98,1.917,103,1.917,104,1.664,107,0.929,115,2.124,124,3.02,144,2.896,145,2.165,148,2.304,161,1.584,164,2.698,220,1.888,276,3.02,286,2.255,292,3.02,381,1.355,431,2.357,433,4.744,533,3.02,556,2.414,604,2.616,667,2.791,681,3.807,708,3.602,722,2.896,758,3.918,831,2.304,833,2.896,835,2.304,969,3.602,1007,3.602,1008,3.602,1024,3.602,1030,3.353,1254,3.602,1351,3.602,1378,2.085,1379,3.602,1470,2.896,1484,3.353,1922,3.168,1971,3.02,2238,6.02,2239,3.979,2240,3.979,2241,3.979,2242,3.979,2243,3.979,2244,3.979,2245,3.979,2246,3.979]],["tags/359",[]],["title/360",[346,3.801,758,2.966,2238,3.801,2247,4.51]],["content/360",[4,0.445,12,3.051,55,2.178,61,1.991,62,1.908,71,3.112,82,2.544,105,3.246,106,3.727,107,1.308,134,2.178,147,4.736,149,3.686,261,2.77,331,4.254,533,4.254,553,3.582,744,3.686,835,3.246,1457,4.463,1484,4.724,1759,5.074,1971,4.254,2248,5.605,2249,5.605,2250,5.605]],["tags/360",[]],["title/361",[722,3.758,758,3.395,2238,4.351]],["content/361",[]],["tags/361",[]],["title/362",[179,3.395,320,1.045,755,4.673]],["content/362",[320,1.716,539,5.274,603,5.947,834,5.575]],["tags/362",[]],["title/363",[62,0.307,137,0.566,149,0.981,187,1.801,204,1.257,320,0.302,427,0.953,568,0.755,641,0.905,1186,0.697,1438,0.905,2200,1.859,2251,1.492,2252,1.492,2253,1.492]],["content/363",[4,0.609,43,2.502,44,2.92,61,2.725,66,1.074,67,2.271,71,3.149,179,3.73,180,3.285,182,2.082,187,2.059,191,2.822,195,2.436,264,3.36,377,2.92,407,4.129,429,3.978,807,3.978,1232,4.305,1473,5.134,1476,5.134,1727,5.134,2200,6.1,2254,5.672,2255,5.672,2256,5.672]],["tags/363",[]],["title/364",[62,0.984,149,1.97,187,1.087,738,1.698,965,2.711,1215,2.524,2257,2.995]],["content/364",[43,2.594,44,3.028,58,2.398,62,1.618,66,1.114,67,1.536,85,2.879,90,2.232,134,2.285,181,3.2,205,4.658,270,2.879,275,3.405,383,3.028,397,4.281,488,2.879,538,2.79,600,3.483,730,3.988,738,3.333,966,4.956,1465,4.956,1492,6.626,1604,4.956,2224,5.323,2258,5.88]],["tags/364",[]],["title/365",[67,1.178,352,2.208,634,2.107,778,2.556]],["content/365",[8,4.511,31,4.083,67,2.034,303,3.138,365,3.753,366,4.511,634,3.64,1502,5.671,2200,5.464]],["tags/365",[]],["title/366",[52,1.068,62,0.741,98,1.734,187,1.307,206,2.441,320,0.729]],["content/366",[21,2.118,31,2.551,52,2.047,58,1.985,62,1.42,93,3.543,106,2.382,107,1.871,161,1.294,182,2.533,219,3.413,243,2.649,259,6.384,272,3.3,318,2.241,320,1.397,327,3.875,387,2.598,429,3.413,453,4.293,459,4.538,488,2.382,503,4.538,564,2.818,643,3.2,644,3.693,720,2.208,730,4.68,759,4.101,1448,4.101,1599,3.543,2200,3.413,2259,4.866,2260,4.866]],["tags/366",[]],["title/367",[460,3.132,461,3.621,714,3.758]],["content/367",[107,2.132,154,2.788,320,1.503,381,3.11,439,4.506,460,4.506,461,5.21,485,2.992,503,4.884,568,3.759]],["tags/367",[]],["title/368",[320,1.045,485,2.08,804,4.11]],["content/368",[62,1.289,107,1.462,134,2.434,154,2.351,161,1.665,259,7.276,318,2.884,320,1.659,381,3.111,439,3.8,485,3.682,600,3.711,645,4.987,730,4.248,1634,4.987,2149,5.28,2261,6.264]],["tags/368",[]],["title/369",[634,2.412,636,2.866,2201,4.673]],["content/369",[67,2.138,539,5.094,634,3.826,740,6.901,834,5.385,1410,6.901]],["tags/369",[]],["title/370",[626,2.81,634,2.412,1469,4.673]],["content/370",[67,2.138,539,5.094,626,4.457,634,3.826,834,5.385,1504,6.901]],["tags/370",[]],["title/371",[320,1.045,386,2.247,2262,5.162]],["content/371",[1,1.933,43,3.558,44,4.152,62,1.659,78,1.657,86,5.276,105,2.847,106,2.407,107,1.147,143,2.676,187,1.784,191,2.446,261,2.227,313,2.531,377,2.531,386,2.14,560,5.276,584,3.579,1299,4.45,1372,3.448,1381,4.143,1507,4.45,1643,3.579,1963,4.143,2263,8.063,2264,8.063,2265,4.916,2266,4.916,2267,4.916,2268,4.916,2269,4.916,2270,4.916]],["tags/371",[]]],"invertedIndex":[["",{"_index":187,"title":{"110":{},"147":{},"194":{},"363":{},"364":{},"366":{},"372":{}},"content":{"60":{},"61":{},"62":{},"63":{},"72":{},"115":{},"122":{},"138":{},"147":{},"149":{},"152":{},"154":{},"155":{},"156":{},"193":{},"197":{},"198":{},"200":{},"201":{},"213":{},"221":{},"241":{},"245":{},"246":{},"248":{},"254":{},"258":{},"278":{},"289":{},"291":{},"295":{},"309":{},"310":{},"331":{},"332":{},"345":{},"355":{},"363":{},"371":{}},"tags":{}}],["0",{"_index":1372,"title":{},"content":{"189":{},"218":{},"219":{},"249":{},"269":{},"336":{},"371":{}},"tags":{}}],["0000",{"_index":210,"title":{},"content":{"61":{}},"tags":{}}],["06",{"_index":2095,"title":{},"content":{"343":{}},"tags":{}}],["1",{"_index":177,"title":{"60":{},"112":{},"124":{},"187":{},"189":{},"261":{},"276":{},"289":{},"299":{},"309":{},"311":{},"319":{},"330":{}},"content":{"122":{},"125":{},"126":{},"193":{},"220":{},"241":{},"249":{},"354":{},"356":{}},"tags":{}}],["1.0.0",{"_index":1900,"title":{},"content":{"278":{}},"tags":{}}],["1.0.1",{"_index":1396,"title":{},"content":{"192":{}},"tags":{}}],["1.9.0.0",{"_index":1099,"title":{},"content":{"169":{}},"tags":{}}],["10",{"_index":250,"title":{},"content":{"63":{},"213":{},"219":{},"249":{}},"tags":{}}],["10/11",{"_index":782,"title":{},"content":{"121":{}},"tags":{}}],["1000",{"_index":1475,"title":{},"content":{"213":{}},"tags":{}}],["1000:1000",{"_index":2255,"title":{},"content":{"363":{}},"tags":{}}],["1024",{"_index":979,"title":{},"content":{"152":{},"213":{}},"tags":{}}],["11",{"_index":1821,"title":{},"content":{"249":{}},"tags":{}}],["112",{"_index":216,"title":{},"content":{"61":{}},"tags":{}}],["12",{"_index":1750,"title":{},"content":{"241":{},"249":{}},"tags":{}}],["13",{"_index":1818,"title":{},"content":{"249":{}},"tags":{}}],["14",{"_index":1826,"title":{},"content":{"249":{}},"tags":{}}],["15",{"_index":1828,"title":{},"content":{"249":{}},"tags":{}}],["16",{"_index":1810,"title":{},"content":{"249":{}},"tags":{}}],["16:9",{"_index":1790,"title":{},"content":{"248":{}},"tags":{}}],["17",{"_index":1820,"title":{},"content":{"249":{}},"tags":{}}],["17/aug/2023:20:25:47",{"_index":209,"title":{},"content":{"61":{}},"tags":{}}],["18",{"_index":1556,"title":{},"content":{"217":{},"241":{},"249":{},"252":{}},"tags":{}}],["19",{"_index":1834,"title":{},"content":{"249":{}},"tags":{}}],["2",{"_index":202,"title":{"61":{},"113":{},"125":{},"188":{},"190":{},"262":{},"277":{},"290":{},"300":{},"312":{},"320":{},"331":{}},"content":{"122":{},"125":{},"126":{},"193":{},"241":{},"249":{},"322":{},"354":{},"356":{}},"tags":{}}],["20",{"_index":1836,"title":{},"content":{"249":{},"343":{}},"tags":{}}],["2011).7z",{"_index":2195,"title":{},"content":{"340":{}},"tags":{}}],["2011).ex",{"_index":2130,"title":{},"content":{"344":{},"346":{}},"tags":{}}],["2011).zip",{"_index":1416,"title":{},"content":{"193":{},"340":{}},"tags":{}}],["2014",{"_index":1397,"title":{},"content":{"192":{}},"tags":{}}],["2014).7z",{"_index":1399,"title":{},"content":{"192":{}},"tags":{}}],["2017",{"_index":818,"title":{},"content":{"122":{}},"tags":{}}],["2018).zip",{"_index":2185,"title":{},"content":{"346":{}},"tags":{}}],["2019",{"_index":2152,"title":{},"content":{"345":{}},"tags":{}}],["2019).zip",{"_index":2173,"title":{},"content":{"346":{}},"tags":{}}],["2021",{"_index":2151,"title":{},"content":{"345":{}},"tags":{}}],["2021).7z",{"_index":2175,"title":{},"content":{"346":{}},"tags":{}}],["2021).zip",{"_index":2154,"title":{},"content":{"345":{}},"tags":{}}],["2022).7z",{"_index":2187,"title":{},"content":{"346":{}},"tags":{}}],["2022).gz",{"_index":2191,"title":{},"content":{"346":{}},"tags":{}}],["2022).iso",{"_index":2179,"title":{},"content":{"346":{}},"tags":{}}],["2022).zip",{"_index":2182,"title":{},"content":{"346":{}},"tags":{}}],["2023",{"_index":2094,"title":{},"content":{"343":{}},"tags":{}}],["2024",{"_index":859,"title":{},"content":{"132":{}},"tags":{}}],["21",{"_index":1838,"title":{},"content":{"249":{}},"tags":{}}],["22",{"_index":1840,"title":{},"content":{"249":{}},"tags":{}}],["23",{"_index":1843,"title":{},"content":{"249":{}},"tags":{}}],["23.01",{"_index":2093,"title":{},"content":{"343":{}},"tags":{}}],["24",{"_index":1845,"title":{},"content":{"249":{}},"tags":{}}],["25",{"_index":1847,"title":{},"content":{"249":{}},"tags":{}}],["250",{"_index":1592,"title":{},"content":{"220":{}},"tags":{}}],["26",{"_index":1849,"title":{},"content":{"249":{}},"tags":{}}],["28",{"_index":1852,"title":{},"content":{"249":{}},"tags":{}}],["28.231",{"_index":214,"title":{},"content":{"61":{}},"tags":{}}],["29",{"_index":1854,"title":{},"content":{"249":{}},"tags":{}}],["3",{"_index":218,"title":{"62":{},"126":{},"191":{},"192":{},"263":{},"278":{},"291":{},"301":{},"302":{},"321":{},"322":{},"332":{}},"content":{"122":{},"149":{},"249":{},"320":{},"345":{},"346":{},"354":{},"356":{}},"tags":{}}],["30",{"_index":1584,"title":{},"content":{"220":{},"249":{}},"tags":{}}],["300",{"_index":1573,"title":{},"content":{"219":{}},"tags":{}}],["31",{"_index":1857,"title":{},"content":{"249":{}},"tags":{}}],["32",{"_index":1859,"title":{},"content":{"249":{}},"tags":{}}],["32mb",{"_index":1389,"title":{},"content":{"190":{}},"tags":{}}],["33",{"_index":1861,"title":{},"content":{"249":{}},"tags":{}}],["34",{"_index":1864,"title":{},"content":{"249":{}},"tags":{}}],["35",{"_index":1866,"title":{},"content":{"249":{}},"tags":{}}],["36",{"_index":1868,"title":{},"content":{"249":{}},"tags":{}}],["3600",{"_index":252,"title":{},"content":{"63":{}},"tags":{}}],["37",{"_index":1870,"title":{},"content":{"249":{}},"tags":{}}],["38",{"_index":1872,"title":{},"content":{"249":{}},"tags":{}}],["3860686742",{"_index":421,"title":{},"content":{"88":{}},"tags":{}}],["3gp",{"_index":1690,"title":{},"content":{"226":{}},"tags":{}}],["3gpp",{"_index":1691,"title":{},"content":{"226":{}},"tags":{}}],["3rd",{"_index":360,"title":{},"content":{"73":{},"263":{}},"tags":{}}],["4",{"_index":239,"title":{"63":{},"194":{},"264":{},"279":{},"292":{},"323":{},"333":{}},"content":{"122":{},"225":{},"226":{},"249":{},"354":{},"356":{}},"tags":{}}],["4.0",{"_index":1214,"title":{},"content":{"177":{},"203":{}},"tags":{}}],["4.99/month",{"_index":1020,"title":{},"content":{"155":{}},"tags":{}}],["401",{"_index":213,"title":{},"content":{"61":{},"66":{}},"tags":{}}],["46620",{"_index":1327,"title":{},"content":{"184":{}},"tags":{}}],["49.90/year",{"_index":1021,"title":{},"content":{"155":{}},"tags":{}}],["49151",{"_index":1483,"title":{},"content":{"213":{}},"tags":{}}],["5",{"_index":254,"title":{"64":{},"265":{},"280":{}},"content":{"219":{},"249":{}},"tags":{}}],["50",{"_index":1762,"title":{},"content":{"246":{}},"tags":{}}],["500",{"_index":965,"title":{"364":{}},"content":{"152":{}},"tags":{}}],["5432",{"_index":1527,"title":{},"content":{"215":{}},"tags":{}}],["6",{"_index":258,"title":{"65":{},"266":{},"281":{}},"content":{"249":{},"345":{}},"tags":{}}],["60",{"_index":1565,"title":{},"content":{"218":{},"219":{}},"tags":{}}],["64",{"_index":1387,"title":{},"content":{"190":{}},"tags":{}}],["7",{"_index":1807,"title":{"282":{}},"content":{"249":{}},"tags":{}}],["74",{"_index":664,"title":{},"content":{"111":{}},"tags":{}}],["7z",{"_index":1363,"title":{},"content":{"189":{},"190":{},"191":{},"343":{}},"tags":{}}],["7zip",{"_index":1357,"title":{},"content":{"188":{},"190":{},"191":{},"343":{}},"tags":{}}],["8",{"_index":1815,"title":{"283":{}},"content":{"249":{}},"tags":{}}],["80",{"_index":559,"title":{},"content":{"92":{}},"tags":{}}],["8080",{"_index":1481,"title":{},"content":{"213":{},"303":{}},"tags":{}}],["8080:8080/tcp",{"_index":1978,"title":{},"content":{"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["9",{"_index":1748,"title":{"284":{}},"content":{"241":{},"249":{},"345":{}},"tags":{}}],["9.0.0",{"_index":2218,"title":{},"content":{"355":{},"356":{}},"tags":{}}],["9999",{"_index":1603,"title":{},"content":{"221":{}},"tags":{}}],["9s",{"_index":1747,"title":{},"content":{"241":{}},"tags":{}}],["aac",{"_index":1662,"title":{},"content":{"225":{}},"tags":{}}],["abil",{"_index":723,"title":{},"content":{"113":{},"115":{},"131":{},"135":{},"352":{},"354":{}},"tags":{}}],["abort",{"_index":575,"title":{},"content":{"93":{},"97":{},"111":{}},"tags":{}}],["abov",{"_index":674,"title":{},"content":{"111":{},"149":{},"169":{},"250":{},"285":{},"310":{},"345":{}},"tags":{}}],["abstract.metadata",{"_index":1937,"title":{},"content":{"285":{}},"tags":{}}],["acb",{"_index":1862,"title":{},"content":{"249":{}},"tags":{}}],["acb_g",{"_index":1863,"title":{},"content":{"249":{}},"tags":{}}],["acb_m",{"_index":1867,"title":{},"content":{"249":{}},"tags":{}}],["acb_ma15",{"_index":1869,"title":{},"content":{"249":{}},"tags":{}}],["acb_pg",{"_index":1865,"title":{},"content":{"249":{}},"tags":{}}],["acb_r18",{"_index":1871,"title":{},"content":{"249":{}},"tags":{}}],["accept",{"_index":68,"title":{"161":{}},"content":{"49":{},"51":{},"53":{},"55":{},"179":{},"221":{}},"tags":{}}],["access",{"_index":1,"title":{"47":{},"52":{},"53":{}},"content":{"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"66":{},"92":{},"122":{},"125":{},"131":{},"135":{},"141":{},"153":{},"165":{},"175":{},"178":{},"192":{},"201":{},"205":{},"258":{},"279":{},"280":{},"298":{},"303":{},"313":{},"339":{},"345":{},"347":{},"351":{},"352":{},"353":{},"354":{},"371":{}},"tags":{}}],["accid",{"_index":2261,"title":{},"content":{"368":{}},"tags":{}}],["accomplish",{"_index":2067,"title":{},"content":{"336":{}},"tags":{}}],["accordingli",{"_index":151,"title":{},"content":{"56":{}},"tags":{}}],["account",{"_index":56,"title":{"173":{}},"content":{"49":{},"83":{},"126":{},"156":{},"202":{},"213":{},"245":{},"258":{},"349":{},"351":{},"352":{},"353":{}},"tags":{}}],["accur",{"_index":1339,"title":{},"content":{"186":{},"193":{},"244":{},"342":{},"345":{}},"tags":{}}],["accustom",{"_index":867,"title":{},"content":{"132":{}},"tags":{}}],["achiev",{"_index":1376,"title":{},"content":{"190":{}},"tags":{}}],["acknowledg",{"_index":1314,"title":{},"content":{"180":{}},"tags":{}}],["acquir",{"_index":877,"title":{},"content":{"130":{}},"tags":{}}],["act",{"_index":829,"title":{},"content":{"124":{}},"tags":{}}],["action",{"_index":599,"title":{"147":{},"148":{}},"content":{"96":{},"143":{},"144":{},"147":{},"148":{},"179":{}},"tags":{}}],["activ",{"_index":31,"title":{"353":{},"356":{},"357":{}},"content":{"48":{},"49":{},"115":{},"118":{},"126":{},"164":{},"167":{},"213":{},"250":{},"347":{},"349":{},"353":{},"356":{},"357":{},"365":{},"366":{}},"tags":{}}],["activate/deactiv",{"_index":635,"title":{},"content":{"107":{}},"tags":{}}],["actual",{"_index":200,"title":{},"content":{"60":{},"118":{},"221":{}},"tags":{}}],["ad",{"_index":526,"title":{"162":{},"185":{},"193":{}},"content":{"84":{},"138":{},"153":{},"186":{},"194":{},"207":{},"254":{},"280":{},"281":{},"331":{},"340":{}},"tags":{}}],["adapt",{"_index":1231,"title":{"180":{}},"content":{"177":{},"180":{},"225":{}},"tags":{}}],["add",{"_index":243,"title":{},"content":{"63":{},"88":{},"93":{},"181":{},"185":{},"188":{},"189":{},"190":{},"192":{},"193":{},"194":{},"257":{},"258":{},"279":{},"320":{},"329":{},"366":{}},"tags":{}}],["addit",{"_index":695,"title":{"268":{},"294":{},"304":{},"314":{},"325":{},"335":{}},"content":{"113":{},"115":{},"131":{},"135":{},"147":{},"148":{},"194":{},"207":{},"209":{},"285":{},"344":{}},"tags":{}}],["addition",{"_index":349,"title":{},"content":{"72":{},"166":{},"372":{}},"tags":{}}],["address",{"_index":164,"title":{},"content":{"57":{},"61":{},"66":{},"111":{},"204":{},"303":{},"313":{},"359":{}},"tags":{}}],["adept",{"_index":1342,"title":{},"content":{"186":{}},"tags":{}}],["adguard.net",{"_index":825,"title":{},"content":{"122":{}},"tags":{}}],["adjust",{"_index":235,"title":{},"content":{"62":{},"79":{},"258":{}},"tags":{}}],["admin",{"_index":634,"title":{"348":{},"350":{},"351":{},"365":{},"369":{},"370":{}},"content":{"107":{},"111":{},"117":{},"125":{},"200":{},"213":{},"250":{},"252":{},"253":{},"258":{},"333":{},"347":{},"349":{},"350":{},"351":{},"353":{},"354":{},"365":{},"369":{},"370":{}},"tags":{}}],["administ",{"_index":2199,"title":{},"content":{"347":{}},"tags":{}}],["administr",{"_index":633,"title":{"107":{}},"content":{"112":{},"113":{},"126":{},"163":{},"258":{},"352":{},"353":{}},"tags":{}}],["adult",{"_index":1555,"title":{},"content":{"217":{},"252":{}},"tags":{}}],["advanc",{"_index":881,"title":{},"content":{"130":{},"225":{}},"tags":{}}],["advis",{"_index":752,"title":{},"content":{"115":{},"231":{}},"tags":{}}],["affect",{"_index":584,"title":{},"content":{"95":{},"96":{},"116":{},"179":{},"206":{},"371":{}},"tags":{}}],["afford",{"_index":1014,"title":{"171":{}},"content":{"153":{},"155":{},"171":{}},"tags":{}}],["afterward",{"_index":1717,"title":{},"content":{"231":{}},"tags":{}}],["ag",{"_index":1552,"title":{"249":{},"252":{},"253":{}},"content":{"217":{},"241":{},"249":{},"250":{},"252":{},"253":{}},"tags":{}}],["again",{"_index":462,"title":{},"content":{"78":{},"173":{},"205":{},"241":{},"264":{},"337":{},"374":{}},"tags":{}}],["against",{"_index":156,"title":{},"content":{"57":{},"178":{}},"tags":{}}],["age_r",{"_index":1768,"title":{},"content":{"248":{}},"tags":{}}],["agreement",{"_index":1103,"title":{},"content":{"170":{},"180":{}},"tags":{}}],["ahead",{"_index":23,"title":{},"content":{"48":{}},"tags":{}}],["alert",{"_index":671,"title":{},"content":{"111":{}},"tags":{}}],["alfagun74",{"_index":1325,"title":{},"content":{"184":{}},"tags":{}}],["algorithm",{"_index":1629,"title":{},"content":{"205":{},"237":{}},"tags":{}}],["alia",{"_index":912,"title":{},"content":{"147":{}},"tags":{}}],["align",{"_index":1120,"title":{},"content":{"136":{},"180":{}},"tags":{}}],["aliv",{"_index":1012,"title":{},"content":{"153":{},"162":{},"179":{}},"tags":{}}],["allow",{"_index":7,"title":{},"content":{"48":{},"51":{},"78":{},"81":{},"125":{},"137":{},"144":{},"148":{},"213":{},"237":{},"238":{},"272":{},"297":{},"317":{},"351":{},"353":{},"354":{},"356":{}},"tags":{}}],["alpha",{"_index":1778,"title":{},"content":{"248":{}},"tags":{}}],["alreadi",{"_index":515,"title":{},"content":{"84":{},"126":{},"147":{},"187":{},"205":{},"245":{}},"tags":{}}],["alter",{"_index":436,"title":{},"content":{"77":{},"250":{},"252":{}},"tags":{}}],["altern",{"_index":431,"title":{"122":{},"302":{},"311":{},"322":{}},"content":{"77":{},"132":{},"169":{},"179":{},"196":{},"202":{},"287":{},"359":{},"374":{}},"tags":{}}],["although",{"_index":1182,"title":{},"content":{"198":{},"287":{}},"tags":{}}],["alway",{"_index":681,"title":{},"content":{"112":{},"213":{},"218":{},"238":{},"241":{},"250":{},"271":{},"359":{},"372":{},"374":{}},"tags":{}}],["ambianc",{"_index":1123,"title":{},"content":{"136":{}},"tags":{}}],["amr",{"_index":1670,"title":{},"content":{"225":{}},"tags":{}}],["and/or",{"_index":1774,"title":{},"content":{"248":{}},"tags":{}}],["andrea",{"_index":1742,"title":{},"content":{"241":{}},"tags":{}}],["android",{"_index":1607,"title":{},"content":{"207":{}},"tags":{}}],["anim",{"_index":1019,"title":{},"content":{"154":{}},"tags":{}}],["annual",{"_index":1073,"title":{},"content":{"165":{}},"tags":{}}],["anoth",{"_index":458,"title":{},"content":{"78":{},"118":{}},"tags":{}}],["answer",{"_index":285,"title":{"157":{}},"content":{"66":{},"192":{}},"tags":{}}],["antiviru",{"_index":670,"title":{},"content":{"111":{},"122":{}},"tags":{}}],["antivirus/smartscreen",{"_index":796,"title":{},"content":{"122":{}},"tags":{}}],["anyon",{"_index":1062,"title":{},"content":{"163":{}},"tags":{}}],["anyth",{"_index":1457,"title":{},"content":{"218":{},"294":{},"360":{},"374":{}},"tags":{}}],["anyway",{"_index":813,"title":{},"content":{"122":{}},"tags":{}}],["anywher",{"_index":1146,"title":{},"content":{"196":{},"197":{}},"tags":{}}],["ao",{"_index":1822,"title":{},"content":{"249":{}},"tags":{}}],["api",{"_index":355,"title":{"73":{},"141":{},"142":{}},"content":{"73":{},"74":{},"75":{},"76":{},"141":{},"146":{},"147":{},"149":{},"150":{},"154":{},"201":{},"205":{},"213":{},"220":{},"221":{},"248":{},"278":{},"352":{},"353":{},"355":{},"373":{},"374":{}},"tags":{}}],["api/doc",{"_index":376,"title":{},"content":{"75":{},"213":{}},"tags":{}}],["api/docs/async",{"_index":2228,"title":{},"content":{"355":{}},"tags":{}}],["api/docs/yaml",{"_index":1506,"title":{},"content":{"213":{}},"tags":{}}],["api/users/m",{"_index":2234,"title":{},"content":{"358":{}},"tags":{}}],["api/v1/users/m",{"_index":212,"title":{},"content":{"61":{}},"tags":{}}],["app",{"_index":104,"title":{"88":{},"118":{},"182":{},"264":{},"332":{}},"content":{"53":{},"54":{},"74":{},"77":{},"88":{},"118":{},"122":{},"127":{},"128":{},"129":{},"130":{},"148":{},"152":{},"259":{},"262":{},"263":{},"265":{},"269":{},"270":{},"319":{},"321":{},"326":{},"327":{},"331":{},"332":{},"333":{},"336":{},"337":{},"359":{}},"tags":{}}],["appdata%/gamevault",{"_index":432,"title":{},"content":{"77":{}},"tags":{}}],["appdata%/gamevault/them",{"_index":1131,"title":{},"content":{"138":{}},"tags":{}}],["appdata%\\gamevault\\cache\\ignorelist",{"_index":506,"title":{},"content":{"84":{}},"tags":{}}],["appdata%\\gamevault\\cache\\imag",{"_index":442,"title":{},"content":{"78":{}},"tags":{}}],["appdata%\\gamevault\\cache\\loc",{"_index":487,"title":{},"content":{"81":{}},"tags":{}}],["appdata%\\gamevault\\cache\\prg",{"_index":476,"title":{},"content":{"80":{}},"tags":{}}],["appdata%\\gamevault\\config\\us",{"_index":491,"title":{},"content":{"82":{}},"tags":{}}],["appdata%\\gamevault\\config\\web",{"_index":497,"title":{},"content":{"83":{}},"tags":{}}],["appdata%\\gamevault\\errorlog",{"_index":531,"title":{},"content":{"85":{}},"tags":{}}],["appdata%\\gamevault\\them",{"_index":536,"title":{},"content":{"86":{}},"tags":{}}],["appear",{"_index":206,"title":{"366":{}},"content":{"61":{},"74":{},"91":{},"114":{},"116":{},"117":{},"357":{}},"tags":{}}],["append",{"_index":1324,"title":{},"content":{"184":{}},"tags":{}}],["appid",{"_index":410,"title":{},"content":{"88":{}},"tags":{}}],["appli",{"_index":255,"title":{"138":{},"339":{}},"content":{"64":{},"118":{},"131":{},"135":{},"137":{},"206":{},"220":{},"241":{},"250":{},"323":{},"336":{}},"tags":{}}],["applic",{"_index":78,"title":{"68":{},"103":{},"169":{}},"content":{"50":{},"51":{},"57":{},"66":{},"68":{},"80":{},"81":{},"88":{},"118":{},"121":{},"122":{},"125":{},"129":{},"131":{},"132":{},"138":{},"141":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"151":{},"156":{},"169":{},"172":{},"173":{},"175":{},"196":{},"198":{},"206":{},"207":{},"212":{},"222":{},"245":{},"258":{},"259":{},"287":{},"297":{},"307":{},"317":{},"318":{},"319":{},"336":{},"349":{},"352":{},"353":{},"354":{},"371":{}},"tags":{}}],["approach",{"_index":1317,"title":{"287":{}},"content":{"180":{},"188":{},"193":{},"336":{}},"tags":{}}],["appropri",{"_index":702,"title":{},"content":{"113":{},"177":{},"345":{},"354":{}},"tags":{}}],["apps/databas",{"_index":1967,"title":{"262":{}},"content":{"262":{}},"tags":{}}],["appxbundl",{"_index":823,"title":{},"content":{"122":{},"130":{}},"tags":{}}],["ar",{"_index":2101,"title":{},"content":{"343":{}},"tags":{}}],["arch",{"_index":343,"title":{},"content":{"72":{}},"tags":{}}],["architectur",{"_index":1881,"title":{"277":{}},"content":{},"tags":{}}],["archiv",{"_index":621,"title":{"192":{},"343":{}},"content":{"97":{},"104":{},"111":{},"112":{},"188":{},"189":{},"190":{},"192":{},"194":{},"197":{},"208":{},"209":{},"210":{},"218":{},"274":{},"342":{},"344":{}},"tags":{}}],["archive.org",{"_index":422,"title":{},"content":{"88":{}},"tags":{}}],["area",{"_index":1959,"title":{},"content":{"258":{}},"tags":{}}],["aren't",{"_index":1716,"title":{},"content":{"231":{}},"tags":{}}],["argb",{"_index":1135,"title":{},"content":{"139":{}},"tags":{}}],["arj",{"_index":2102,"title":{},"content":{"343":{}},"tags":{}}],["around",{"_index":1113,"title":{},"content":{"171":{}},"tags":{}}],["array",{"_index":2084,"title":{},"content":{"317":{}},"tags":{}}],["arrow",{"_index":580,"title":{},"content":{"93":{}},"tags":{}}],["art",{"_index":461,"title":{"367":{}},"content":{"78":{},"92":{},"116":{},"201":{},"228":{},"367":{}},"tags":{}}],["articl",{"_index":1248,"title":{},"content":{"179":{}},"tags":{}}],["artifact",{"_index":794,"title":{},"content":{"122":{}},"tags":{}}],["artwork",{"_index":1795,"title":{},"content":{"248":{}},"tags":{}}],["artwork/screenshot",{"_index":1789,"title":{},"content":{"248":{}},"tags":{}}],["artworks[0",{"_index":1787,"title":{},"content":{"248":{}},"tags":{}}],["ask",{"_index":120,"title":{},"content":{"54":{},"192":{},"355":{}},"tags":{}}],["assassin'",{"_index":661,"title":{},"content":{"111":{},"113":{}},"tags":{}}],["assign",{"_index":2198,"title":{},"content":{"347":{},"354":{},"358":{}},"tags":{}}],["assist",{"_index":292,"title":{},"content":{"67":{},"87":{},"127":{},"179":{},"359":{}},"tags":{}}],["associ",{"_index":756,"title":{},"content":{"116":{},"180":{},"231":{},"339":{},"341":{}},"tags":{}}],["assur",{"_index":1925,"title":{},"content":{"281":{}},"tags":{}}],["asterisk",{"_index":908,"title":{},"content":{"147":{}},"tags":{}}],["aswel",{"_index":1986,"title":{},"content":{"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["async",{"_index":957,"title":{},"content":{"152":{}},"tags":{}}],["asyncapi",{"_index":2227,"title":{},"content":{"355":{}},"tags":{}}],["asynchron",{"_index":2219,"title":{},"content":{"355":{}},"tags":{}}],["attach",{"_index":1922,"title":{},"content":{"281":{},"297":{},"317":{},"359":{}},"tags":{}}],["attempt",{"_index":158,"title":{"61":{}},"content":{"57":{},"61":{},"66":{},"122":{},"173":{},"374":{}},"tags":{}}],["attent",{"_index":2092,"title":{},"content":{"342":{}},"tags":{}}],["attribut",{"_index":1211,"title":{},"content":{"177":{},"203":{}},"tags":{}}],["audio",{"_index":1652,"title":{"225":{}},"content":{"225":{},"226":{}},"tags":{}}],["audio/aac",{"_index":1664,"title":{},"content":{"225":{}},"tags":{}}],["audio/amr",{"_index":1671,"title":{},"content":{"225":{}},"tags":{}}],["audio/flac",{"_index":1667,"title":{},"content":{"225":{}},"tags":{}}],["audio/mp4",{"_index":1673,"title":{},"content":{"225":{}},"tags":{}}],["audio/mpeg",{"_index":1655,"title":{},"content":{"225":{}},"tags":{}}],["audio/ogg",{"_index":1661,"title":{},"content":{"225":{}},"tags":{}}],["audio/wav",{"_index":1658,"title":{},"content":{"225":{}},"tags":{}}],["audio/x",{"_index":1669,"title":{},"content":{"225":{}},"tags":{}}],["aur",{"_index":344,"title":{},"content":{"72":{}},"tags":{}}],["auth",{"_index":396,"title":{},"content":{"76":{},"221":{}},"tags":{}}],["authent",{"_index":205,"title":{"61":{},"76":{}},"content":{"61":{},"74":{},"75":{},"76":{},"201":{},"215":{},"220":{},"221":{},"352":{},"364":{},"372":{}},"tags":{}}],["author",{"_index":1899,"title":{},"content":{"278":{},"353":{}},"tags":{}}],["auto",{"_index":329,"title":{},"content":{"71":{},"89":{},"104":{},"193":{},"241":{},"281":{},"296":{}},"tags":{}}],["autodetect",{"_index":2131,"title":{},"content":{"344":{}},"tags":{}}],["autoflush",{"_index":981,"title":{},"content":{"152":{}},"tags":{}}],["autoinstall=[true/fals",{"_index":917,"title":{},"content":{"147":{}},"tags":{}}],["autom",{"_index":717,"title":{},"content":{"113":{},"373":{},"374":{}},"tags":{}}],["automat",{"_index":365,"title":{},"content":{"73":{},"113":{},"114":{},"115":{},"124":{},"129":{},"147":{},"173":{},"194":{},"200":{},"201":{},"202":{},"206":{},"210":{},"216":{},"237":{},"274":{},"281":{},"340":{},"349":{},"350":{},"353":{},"365":{},"374":{}},"tags":{}}],["autorun.ex",{"_index":1610,"title":{},"content":{"208":{}},"tags":{}}],["autumn",{"_index":1126,"title":{},"content":{"136":{}},"tags":{}}],["aux",{"_index":2161,"title":{},"content":{"345":{}},"tags":{}}],["avail",{"_index":301,"title":{"142":{},"147":{},"170":{}},"content":{"67":{},"71":{},"75":{},"89":{},"92":{},"96":{},"108":{},"122":{},"125":{},"129":{},"133":{},"134":{},"141":{},"148":{},"169":{},"175":{},"178":{},"187":{},"196":{},"211":{},"220":{},"236":{},"248":{},"258":{},"273":{},"276":{},"283":{},"323":{}},"tags":{}}],["avatar",{"_index":639,"title":{},"content":{"107":{},"117":{},"228":{}},"tags":{}}],["avatar/background",{"_index":625,"title":{},"content":{"100":{}},"tags":{}}],["averag",{"_index":1800,"title":{},"content":{"249":{}},"tags":{}}],["avi",{"_index":1675,"title":{},"content":{"226":{}},"tags":{}}],["avoid",{"_index":519,"title":{},"content":{"84":{},"163":{},"171":{},"180":{},"193":{},"278":{},"345":{},"372":{}},"tags":{}}],["await",{"_index":975,"title":{},"content":{"152":{}},"tags":{}}],["awar",{"_index":435,"title":{},"content":{"77":{},"122":{},"139":{},"161":{},"204":{},"357":{}},"tags":{}}],["away",{"_index":1732,"title":{},"content":{"237":{},"259":{},"328":{}},"tags":{}}],["awesom",{"_index":1057,"title":{},"content":{"162":{}},"tags":{}}],["back",{"_index":123,"title":{},"content":{"54":{},"70":{},"93":{},"113":{},"231":{},"331":{},"374":{}},"tags":{}}],["backend",{"_index":184,"title":{"125":{},"183":{},"276":{},"321":{},"333":{}},"content":{"60":{},"73":{},"105":{},"125":{},"126":{},"148":{},"196":{},"222":{},"273":{},"276":{},"278":{},"283":{},"284":{},"289":{},"294":{},"296":{},"301":{},"302":{},"309":{},"311":{},"316":{},"321":{},"322":{},"332":{},"336":{},"337":{},"355":{},"356":{}},"tags":{}}],["backend.git",{"_index":2012,"title":{},"content":{"289":{}},"tags":{}}],["backend.log",{"_index":238,"title":{},"content":{"62":{}},"tags":{}}],["backend/.env",{"_index":2017,"title":{},"content":{"291":{}},"tags":{}}],["backend/.local/plugins/useless",{"_index":1888,"title":{},"content":{"278":{}},"tags":{}}],["backend:earli",{"_index":64,"title":{},"content":{"49":{}},"tags":{}}],["backend:latest",{"_index":188,"title":{},"content":{"60":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["background",{"_index":479,"title":{},"content":{"80":{},"116":{},"117":{},"149":{},"228":{},"248":{},"312":{}},"tags":{}}],["backslash",{"_index":1991,"title":{},"content":{"310":{}},"tags":{}}],["backup",{"_index":753,"title":{"372":{},"373":{}},"content":{"115":{},"271":{},"372":{},"373":{},"374":{}},"tags":{}}],["bad",{"_index":1420,"title":{},"content":{"193":{}},"tags":{}}],["badg",{"_index":647,"title":{},"content":{"108":{}},"tags":{}}],["balanc",{"_index":1239,"title":{"191":{}},"content":{"178":{},"191":{}},"tags":{}}],["bancontact",{"_index":1050,"title":{},"content":{"161":{}},"tags":{}}],["bandwidth",{"_index":560,"title":{},"content":{"92":{},"104":{},"213":{},"344":{},"371":{}},"tags":{}}],["bank",{"_index":1045,"title":{},"content":{"161":{}},"tags":{}}],["bantim",{"_index":253,"title":{},"content":{"63":{}},"tags":{}}],["bar",{"_index":565,"title":{},"content":{"92":{},"112":{}},"tags":{}}],["bare",{"_index":1479,"title":{},"content":{"213":{}},"tags":{}}],["base",{"_index":245,"title":{},"content":{"63":{},"97":{},"113":{},"126":{},"132":{},"139":{},"158":{},"201":{},"205":{},"206":{},"217":{},"237":{},"250":{},"328":{},"336":{},"354":{},"355":{}},"tags":{}}],["basic",{"_index":395,"title":{},"content":{"76":{},"198":{},"278":{},"355":{}},"tags":{}}],["be",{"_index":1294,"title":{},"content":{"180":{}},"tags":{}}],["becom",{"_index":72,"title":{},"content":{"50":{},"66":{},"78":{},"130":{},"186":{}},"tags":{}}],["befor",{"_index":12,"title":{"186":{}},"content":{"48":{},"60":{},"113":{},"115":{},"126":{},"179":{},"190":{},"192":{},"208":{},"213":{},"218":{},"220":{},"271":{},"353":{},"360":{},"374":{}},"tags":{}}],["begin",{"_index":81,"title":{"186":{}},"content":{"50":{},"121":{},"241":{},"299":{},"345":{},"355":{}},"tags":{}}],["behavior",{"_index":167,"title":{},"content":{"57":{},"272":{}},"tags":{}}],["believ",{"_index":1300,"title":{},"content":{"180":{}},"tags":{}}],["belong",{"_index":660,"title":{},"content":{"110":{}},"tags":{}}],["below",{"_index":835,"title":{},"content":{"124":{},"125":{},"184":{},"186":{},"198":{},"234":{},"249":{},"255":{},"277":{},"342":{},"344":{},"359":{},"360":{},"372":{}},"tags":{}}],["benefit",{"_index":1063,"title":{},"content":{"163":{},"179":{}},"tags":{}}],["besid",{"_index":611,"title":{},"content":{"96":{},"179":{}},"tags":{}}],["best",{"_index":1196,"title":{},"content":{"202":{},"237":{},"244":{}},"tags":{}}],["beta",{"_index":1779,"title":{},"content":{"248":{}},"tags":{}}],["better",{"_index":1433,"title":{},"content":{"239":{},"310":{},"372":{}},"tags":{}}],["between",{"_index":903,"title":{},"content":{"145":{},"220":{},"355":{}},"tags":{}}],["beyond",{"_index":1960,"title":{},"content":{"258":{}},"tags":{}}],["bidirect",{"_index":2220,"title":{},"content":{"355":{}},"tags":{}}],["big",{"_index":2246,"title":{},"content":{"359":{}},"tags":{}}],["bill",{"_index":1032,"title":{"160":{}},"content":{"160":{},"166":{}},"tags":{}}],["binari",{"_index":800,"title":{},"content":{"122":{},"130":{},"196":{}},"tags":{}}],["birth",{"_index":1549,"title":{},"content":{"216":{},"250":{},"251":{},"252":{}},"tags":{}}],["bit",{"_index":598,"title":{},"content":{"96":{},"187":{}},"tags":{}}],["bitmap",{"_index":1638,"title":{},"content":{"224":{}},"tags":{}}],["blank",{"_index":1720,"title":{},"content":{"233":{}},"tags":{}}],["blindli",{"_index":2033,"title":{},"content":{"297":{}},"tags":{}}],["block",{"_index":162,"title":{},"content":{"57":{},"63":{},"66":{},"189":{},"190":{}},"tags":{}}],["blog",{"_index":1247,"title":{},"content":{"179":{}},"tags":{}}],["bmp",{"_index":1637,"title":{},"content":{"224":{}},"tags":{}}],["board",{"_index":1254,"title":{},"content":{"179":{},"359":{}},"tags":{}}],["bold",{"_index":907,"title":{},"content":{"147":{}},"tags":{}}],["bookmark",{"_index":578,"title":{},"content":{"93":{}},"tags":{}}],["bool",{"_index":961,"title":{},"content":{"152":{}},"tags":{}}],["bot",{"_index":367,"title":{"74":{}},"content":{"74":{}},"tags":{}}],["both",{"_index":1436,"title":{},"content":{"248":{},"355":{},"373":{}},"tags":{}}],["bothersom",{"_index":278,"title":{},"content":{"66":{}},"tags":{}}],["bottl",{"_index":311,"title":{"70":{}},"content":{"70":{}},"tags":{}}],["bottom",{"_index":642,"title":{},"content":{"108":{},"263":{},"323":{}},"tags":{}}],["box",{"_index":460,"title":{"367":{}},"content":{"78":{},"92":{},"113":{},"116":{},"122":{},"201":{},"228":{},"264":{},"336":{},"337":{},"367":{}},"tags":{}}],["box/background",{"_index":595,"title":{},"content":{"96":{}},"tags":{}}],["bracket",{"_index":1403,"title":{},"content":{"193":{},"345":{}},"tags":{}}],["brand",{"_index":1121,"title":{},"content":{"136":{},"180":{}},"tags":{}}],["break",{"_index":1536,"title":{},"content":{"215":{},"271":{}},"tags":{}}],["breez",{"_index":2196,"title":{},"content":{"341":{}},"tags":{}}],["bring",{"_index":780,"title":{},"content":{"118":{},"149":{},"179":{},"283":{},"327":{}},"tags":{}}],["broken",{"_index":340,"title":{},"content":{"72":{}},"tags":{}}],["brows",{"_index":550,"title":{},"content":{"92":{},"200":{},"273":{}},"tags":{}}],["browser",{"_index":495,"title":{"83":{}},"content":{"83":{}},"tags":{}}],["budget",{"_index":808,"title":{},"content":{"122":{}},"tags":{}}],["bug",{"_index":125,"title":{"55":{}},"content":{"55":{},"179":{},"355":{}},"tags":{}}],["build",{"_index":359,"title":{"292":{}},"content":{"73":{},"122":{},"141":{},"236":{},"282":{}},"tags":{}}],["built",{"_index":793,"title":{"235":{}},"content":{"122":{},"220":{},"272":{},"277":{}},"tags":{}}],["busi",{"_index":1107,"title":{},"content":{"170":{},"213":{},"356":{}},"tags":{}}],["butcher.ex",{"_index":1623,"title":{},"content":{"208":{}},"tags":{}}],["butcher.sh",{"_index":1626,"title":{},"content":{"209":{}},"tags":{}}],["butcher_data",{"_index":1622,"title":{},"content":{"208":{},"209":{}},"tags":{}}],["button",{"_index":555,"title":{},"content":{"92":{},"93":{},"96":{},"108":{},"112":{},"113":{},"114":{},"118":{},"124":{},"126":{},"173":{},"174":{},"263":{},"336":{},"337":{}},"tags":{}}],["bypass",{"_index":1117,"title":{},"content":{"171":{},"353":{}},"tags":{}}],["byte",{"_index":1355,"title":{},"content":{"187":{},"190":{}},"tags":{}}],["bz2",{"_index":2097,"title":{},"content":{"343":{},"345":{}},"tags":{}}],["c",{"_index":947,"title":{"152":{}},"content":{"152":{},"295":{}},"tags":{}}],["c:/your/games/folder:/fil",{"_index":1992,"title":{},"content":{"310":{}},"tags":{}}],["ca",{"_index":1544,"title":{},"content":{"215":{}},"tags":{}}],["cab",{"_index":2103,"title":{},"content":{"343":{}},"tags":{}}],["cach",{"_index":439,"title":{"78":{},"79":{},"80":{},"81":{}},"content":{"78":{},"79":{},"81":{},"106":{},"344":{},"345":{},"367":{},"368":{}},"tags":{}}],["calcul",{"_index":1728,"title":{},"content":{"237":{},"249":{}},"tags":{}}],["call",{"_index":391,"title":{},"content":{"75":{},"112":{},"124":{},"148":{},"220":{},"231":{},"241":{},"278":{}},"tags":{}}],["can't",{"_index":1971,"title":{},"content":{"264":{},"301":{},"309":{},"359":{},"360":{}},"tags":{}}],["cancellationtoken",{"_index":960,"title":{},"content":{"152":{}},"tags":{}}],["cant",{"_index":1108,"title":{"171":{}},"content":{},"tags":{}}],["capabl",{"_index":749,"title":{},"content":{"115":{}},"tags":{}}],["caprov",{"_index":1948,"title":{"259":{},"261":{}},"content":{"256":{},"259":{},"260":{},"261":{},"267":{}},"tags":{}}],["captain",{"_index":2188,"title":{},"content":{"346":{}},"tags":{}}],["captcha",{"_index":1760,"title":{},"content":{"245":{}},"tags":{}}],["card",{"_index":1041,"title":{},"content":{"161":{}},"tags":{}}],["care",{"_index":1440,"title":{},"content":{"373":{}},"tags":{}}],["case",{"_index":1409,"title":{},"content":{"193":{},"211":{},"241":{},"344":{},"345":{},"374":{}},"tags":{}}],["catalog",{"_index":2056,"title":{"331":{}},"content":{"328":{},"331":{}},"tags":{}}],["catastroph",{"_index":1454,"title":{},"content":{"374":{}},"tags":{}}],["catch",{"_index":993,"title":{},"content":{"152":{}},"tags":{}}],["categori",{"_index":1236,"title":{},"content":{"178":{}},"tags":{}}],["caus",{"_index":70,"title":{},"content":{"49":{},"374":{}},"tags":{}}],["cd",{"_index":2010,"title":{},"content":{"289":{},"291":{}},"tags":{}}],["central",{"_index":830,"title":{},"content":{"124":{},"317":{}},"tags":{}}],["cero",{"_index":1823,"title":{},"content":{"249":{}},"tags":{}}],["cero_a",{"_index":1824,"title":{},"content":{"249":{}},"tags":{}}],["cero_b",{"_index":1825,"title":{},"content":{"249":{}},"tags":{}}],["cero_c",{"_index":1827,"title":{},"content":{"249":{}},"tags":{}}],["cero_d",{"_index":1829,"title":{},"content":{"249":{}},"tags":{}}],["cero_z",{"_index":1830,"title":{},"content":{"249":{}},"tags":{}}],["certain",{"_index":341,"title":{},"content":{"72":{},"115":{},"163":{},"180":{}},"tags":{}}],["certainli",{"_index":1093,"title":{},"content":{"168":{}},"tags":{}}],["certif",{"_index":806,"title":{},"content":{"122":{},"215":{}},"tags":{}}],["chain",{"_index":2165,"title":{},"content":{"345":{}},"tags":{}}],["chanc",{"_index":19,"title":{},"content":{"48":{}},"tags":{}}],["chang",{"_index":127,"title":{"55":{},"252":{},"341":{}},"content":{"55":{},"64":{},"88":{},"96":{},"103":{},"114":{},"115":{},"116":{},"117":{},"160":{},"205":{},"218":{},"231":{},"238":{},"241":{},"301":{},"302":{},"309":{},"311":{},"323":{},"336":{},"340":{},"341":{}},"tags":{}}],["channel",{"_index":49,"title":{},"content":{"49":{},"50":{},"53":{},"54":{},"55":{},"159":{},"168":{},"179":{}},"tags":{}}],["chapter",{"_index":832,"title":{},"content":{"124":{},"127":{},"185":{},"186":{},"258":{}},"tags":{}}],["charact",{"_index":2155,"title":{},"content":{"345":{}},"tags":{}}],["check",{"_index":106,"title":{},"content":{"53":{},"54":{},"65":{},"75":{},"95":{},"112":{},"129":{},"148":{},"166":{},"205":{},"211":{},"218":{},"245":{},"250":{},"273":{},"286":{},"288":{},"336":{},"353":{},"355":{},"360":{},"366":{},"371":{}},"tags":{}}],["checkbox",{"_index":2078,"title":{},"content":{"336":{}},"tags":{}}],["checkout",{"_index":2027,"title":{},"content":{"296":{}},"tags":{}}],["cherish",{"_index":1159,"title":{},"content":{"197":{}},"tags":{}}],["children",{"_index":1875,"title":{},"content":{"250":{}},"tags":{}}],["chm",{"_index":2104,"title":{},"content":{"343":{}},"tags":{}}],["choic",{"_index":1974,"title":{},"content":{"309":{}},"tags":{}}],["choos",{"_index":724,"title":{},"content":{"113":{},"122":{},"124":{},"126":{},"133":{},"161":{},"163":{},"188":{},"255":{},"270":{},"337":{}},"tags":{}}],["chose",{"_index":665,"title":{},"content":{"111":{}},"tags":{}}],["chosen",{"_index":848,"title":{},"content":{"126":{}},"tags":{}}],["circumst",{"_index":1451,"title":{},"content":{"374":{}},"tags":{}}],["cj",{"_index":1745,"title":{},"content":{"241":{}},"tags":{}}],["clariti",{"_index":1318,"title":{},"content":{"180":{}},"tags":{}}],["class",{"_index":955,"title":{},"content":{"152":{},"278":{}},"tags":{}}],["class_ind",{"_index":1850,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_eighteen",{"_index":1860,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_fourteen",{"_index":1856,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_l",{"_index":1851,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_sixteen",{"_index":1858,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_ten",{"_index":1853,"title":{},"content":{"249":{}},"tags":{}}],["class_ind_twelv",{"_index":1855,"title":{},"content":{"249":{}},"tags":{}}],["classic",{"_index":863,"title":{},"content":{"132":{},"197":{}},"tags":{}}],["clean",{"_index":1711,"title":{},"content":{"231":{}},"tags":{}}],["cleanup",{"_index":1714,"title":{},"content":{"231":{}},"tags":{}}],["clear",{"_index":503,"title":{},"content":{"83":{},"90":{},"96":{},"106":{},"113":{},"179":{},"279":{},"366":{},"367":{}},"tags":{}}],["clearli",{"_index":1311,"title":{},"content":{"180":{}},"tags":{}}],["cli",{"_index":892,"title":{"143":{}},"content":{"143":{}},"tags":{}}],["click",{"_index":322,"title":{"262":{},"264":{}},"content":{"70":{},"92":{},"96":{},"107":{},"112":{},"113":{},"114":{},"116":{},"117":{},"118":{},"124":{},"125":{},"126":{},"173":{},"196":{},"234":{},"242":{},"245":{},"259":{},"262":{},"263":{},"265":{},"267":{},"269":{},"270":{},"293":{},"300":{},"305":{},"306":{},"313":{},"321":{},"323":{},"324":{},"326":{},"327":{},"328":{},"333":{},"334":{},"336":{}},"tags":{}}],["client",{"_index":261,"title":{"67":{},"71":{},"87":{},"89":{},"119":{},"128":{},"141":{},"169":{},"172":{},"200":{}},"content":{"65":{},"67":{},"71":{},"73":{},"75":{},"79":{},"80":{},"87":{},"89":{},"103":{},"122":{},"129":{},"131":{},"141":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"154":{},"156":{},"169":{},"172":{},"173":{},"174":{},"193":{},"196":{},"215":{},"220":{},"235":{},"245":{},"246":{},"250":{},"254":{},"344":{},"349":{},"355":{},"356":{},"357":{},"360":{},"371":{},"373":{},"374":{}},"tags":{}}],["client.connectasync(timeout",{"_index":976,"title":{},"content":{"152":{}},"tags":{}}],["clone",{"_index":819,"title":{"276":{},"289":{}},"content":{"122":{},"278":{},"289":{}},"tags":{}}],["close",{"_index":771,"title":{},"content":{"118":{},"129":{},"352":{}},"tags":{}}],["cloudn",{"_index":2059,"title":{},"content":{"329":{},"336":{}},"tags":{}}],["cnpg",{"_index":2068,"title":{},"content":{"336":{}},"tags":{}}],["code",{"_index":394,"title":{"152":{},"289":{}},"content":{"75":{},"122":{},"139":{},"171":{},"178":{},"179":{},"277":{},"280":{},"301":{},"309":{},"355":{}},"tags":{}}],["codebas",{"_index":1277,"title":{},"content":{"179":{}},"tags":{}}],["codec",{"_index":1663,"title":{},"content":{"225":{}},"tags":{}}],["code’",{"_index":1920,"title":{},"content":{"281":{}},"tags":{}}],["collabor",{"_index":1106,"title":{},"content":{"170":{},"179":{}},"tags":{}}],["collaps",{"_index":552,"title":{},"content":{"92":{}},"tags":{}}],["collect",{"_index":838,"title":{"231":{},"232":{}},"content":{"124":{},"196":{},"197":{},"200":{},"219":{},"231":{}},"tags":{}}],["collector",{"_index":1158,"title":{},"content":{"197":{}},"tags":{}}],["collet",{"_index":1713,"title":{},"content":{"231":{}},"tags":{}}],["colon",{"_index":1985,"title":{},"content":{"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["color",{"_index":866,"title":{},"content":{"132":{}},"tags":{}}],["column",{"_index":1636,"title":{},"content":{"222":{}},"tags":{}}],["com(1",{"_index":2163,"title":{},"content":{"345":{}},"tags":{}}],["combin",{"_index":1494,"title":{},"content":{"205":{},"213":{},"328":{},"339":{},"341":{}},"tags":{}}],["come",{"_index":870,"title":{},"content":{"133":{},"185":{}},"tags":{}}],["comma",{"_index":617,"title":{},"content":{"96":{},"213":{},"218":{},"219":{}},"tags":{}}],["command",{"_index":223,"title":{"149":{}},"content":{"62":{},"63":{},"121":{},"141":{},"143":{},"147":{},"149":{},"189":{},"190":{},"312":{},"315":{},"316":{},"336":{}},"tags":{}}],["comment",{"_index":1245,"title":{},"content":{"179":{}},"tags":{}}],["commerci",{"_index":1101,"title":{"170":{}},"content":{"170":{},"177":{},"178":{},"180":{}},"tags":{}}],["commit",{"_index":1061,"title":{},"content":{"162":{}},"tags":{}}],["common",{"_index":722,"title":{"361":{}},"content":{"113":{},"177":{},"203":{},"345":{},"359":{}},"tags":{}}],["commonli",{"_index":507,"title":{},"content":{"84":{}},"tags":{}}],["commun",{"_index":136,"title":{"98":{},"181":{},"236":{}},"content":{"56":{},"67":{},"87":{},"107":{},"115":{},"122":{},"130":{},"137":{},"139":{},"140":{},"144":{},"145":{},"168":{},"179":{},"181":{},"317":{},"318":{},"319":{},"328":{},"355":{}},"tags":{}}],["compani",{"_index":1024,"title":{},"content":{"158":{},"359":{}},"tags":{}}],["companion",{"_index":1155,"title":{},"content":{"197":{}},"tags":{}}],["compar",{"_index":1184,"title":{},"content":{"200":{}},"tags":{}}],["compat",{"_index":413,"title":{},"content":{"88":{},"188":{},"273":{},"310":{},"344":{},"345":{},"374":{}},"tags":{}}],["compdata",{"_index":409,"title":{},"content":{"88":{}},"tags":{}}],["compil",{"_index":801,"title":{"282":{}},"content":{"122":{},"130":{},"274":{},"282":{}},"tags":{}}],["complet",{"_index":382,"title":{},"content":{"75":{},"93":{},"97":{},"112":{},"113":{},"115":{},"127":{},"165":{},"175":{},"285":{},"373":{}},"tags":{}}],["compli",{"_index":1223,"title":{},"content":{"204":{}},"tags":{}}],["complianc",{"_index":1085,"title":{},"content":{"166":{},"180":{}},"tags":{}}],["compon",{"_index":1151,"title":{},"content":{"177":{},"196":{},"277":{},"280":{}},"tags":{}}],["compos",{"_index":1947,"title":{"301":{},"307":{},"309":{}},"content":{"256":{},"297":{},"299":{},"300":{},"307":{},"312":{},"313":{},"315":{}},"tags":{}}],["compose.yaml",{"_index":1987,"title":{},"content":{"310":{}},"tags":{}}],["compose.yml",{"_index":186,"title":{},"content":{"60":{},"300":{},"309":{},"312":{},"315":{}},"tags":{}}],["comprehens",{"_index":567,"title":{},"content":{"93":{},"141":{},"373":{}},"tags":{}}],["compress",{"_index":687,"title":{"188":{}},"content":{"112":{},"185":{},"187":{},"189":{},"190":{},"191":{},"344":{}},"tags":{}}],["comput",{"_index":583,"title":{"95":{}},"content":{"119":{},"124":{}},"tags":{}}],["con",{"_index":2159,"title":{},"content":{"345":{}},"tags":{}}],["concept",{"_index":693,"title":{},"content":{"113":{}},"tags":{}}],["conclus",{"_index":262,"title":{"66":{},"127":{},"267":{},"293":{},"303":{},"313":{},"324":{},"334":{}},"content":{},"tags":{}}],["condit",{"_index":1290,"title":{},"content":{"180":{}},"tags":{}}],["confer",{"_index":1266,"title":{},"content":{"179":{}},"tags":{}}],["confidenti",{"_index":2240,"title":{},"content":{"359":{}},"tags":{}}],["config",{"_index":1516,"title":{},"content":{"214":{},"269":{},"291":{}},"tags":{}}],["config/news.md",{"_index":1943,"title":{},"content":{"254":{}},"tags":{}}],["configur",{"_index":134,"title":{"56":{},"63":{},"123":{},"211":{},"212":{},"246":{},"266":{},"323":{},"333":{}},"content":{"63":{},"91":{},"103":{},"104":{},"110":{},"121":{},"123":{},"127":{},"148":{},"163":{},"201":{},"211":{},"212":{},"213":{},"214":{},"245":{},"252":{},"258":{},"266":{},"280":{},"288":{},"291":{},"302":{},"311":{},"320":{},"333":{},"347":{},"350":{},"360":{},"364":{},"368":{}},"tags":{}}],["configuration.t",{"_index":1468,"title":{},"content":{"211":{}},"tags":{}}],["confirm",{"_index":627,"title":{},"content":{"101":{},"113":{},"161":{}},"tags":{}}],["conflict",{"_index":1913,"title":{},"content":{"280":{}},"tags":{}}],["confus",{"_index":1234,"title":{},"content":{"178":{}},"tags":{}}],["congratul",{"_index":849,"title":{},"content":{"127":{},"194":{},"258":{},"313":{}},"tags":{}}],["connect",{"_index":738,"title":{"263":{},"364":{}},"content":{"115":{},"125":{},"163":{},"165":{},"175":{},"196":{},"202":{},"215":{},"233":{},"258":{},"259":{},"263":{},"364":{}},"tags":{}}],["consecut",{"_index":1590,"title":{},"content":{"220":{}},"tags":{}}],["consent",{"_index":1292,"title":{},"content":{"180":{}},"tags":{}}],["consequ",{"_index":2073,"title":{},"content":{"336":{}},"tags":{}}],["consid",{"_index":295,"title":{},"content":{"67":{},"87":{},"177":{},"179":{},"220":{},"301":{},"309":{},"310":{},"336":{},"372":{},"374":{}},"tags":{}}],["consist",{"_index":1150,"title":{},"content":{"188":{},"196":{},"287":{}},"tags":{}}],["constantli",{"_index":1275,"title":{},"content":{"179":{}},"tags":{}}],["constraint",{"_index":809,"title":{},"content":{"122":{}},"tags":{}}],["consum",{"_index":786,"title":{},"content":{"121":{}},"tags":{}}],["contact",{"_index":112,"title":{"159":{}},"content":{"54":{},"112":{},"113":{},"126":{},"159":{},"170":{},"284":{}},"tags":{}}],["contain",{"_index":108,"title":{"297":{},"300":{}},"content":{"53":{},"54":{},"60":{},"171":{},"183":{},"208":{},"214":{},"256":{},"258":{},"274":{},"282":{},"283":{},"287":{},"297":{},"298":{},"299":{},"300":{},"303":{},"305":{},"306":{},"307":{},"317":{},"337":{},"342":{},"345":{}},"tags":{}}],["container",{"_index":1965,"title":{},"content":{"259":{},"297":{},"328":{}},"tags":{}}],["container'",{"_index":2048,"title":{},"content":{"305":{},"306":{}},"tags":{}}],["container/serv",{"_index":1462,"title":{},"content":{"374":{}},"tags":{}}],["content",{"_index":229,"title":{},"content":{"62":{},"113":{},"162":{},"179":{},"204":{},"254":{},"354":{}},"tags":{}}],["context",{"_index":741,"title":{},"content":{"115":{},"118":{}},"tags":{}}],["continu",{"_index":480,"title":{},"content":{"80":{},"115":{},"121":{},"267":{},"293":{},"313":{},"324":{},"334":{}},"tags":{}}],["contribut",{"_index":1230,"title":{"176":{},"179":{}},"content":{"179":{},"180":{},"184":{},"257":{},"297":{}},"tags":{}}],["contributing.md",{"_index":1283,"title":{},"content":{"179":{}},"tags":{}}],["contributor",{"_index":1322,"title":{"184":{}},"content":{},"tags":{}}],["control",{"_index":605,"title":{"250":{},"251":{}},"content":{"96":{},"180":{},"201":{},"231":{},"250":{},"251":{},"252":{},"277":{},"278":{},"280":{},"347":{},"352":{},"354":{}},"tags":{}}],["conveni",{"_index":901,"title":{},"content":{"144":{},"160":{},"161":{}},"tags":{}}],["convent",{"_index":2135,"title":{"345":{}},"content":{"345":{},"346":{}},"tags":{}}],["converg",{"_index":2050,"title":{},"content":{"328":{}},"tags":{}}],["convers",{"_index":2225,"title":{},"content":{"355":{}},"tags":{}}],["copi",{"_index":1001,"title":{},"content":{"139":{},"175":{},"187":{},"189":{},"192":{},"245":{},"263":{},"301":{},"309":{},"374":{}},"tags":{}}],["copyright",{"_index":1224,"title":{},"content":{"204":{}},"tags":{}}],["cor",{"_index":1496,"title":{},"content":{"213":{}},"tags":{}}],["core",{"_index":1016,"title":{},"content":{"153":{}},"tags":{}}],["corner",{"_index":759,"title":{},"content":{"116":{},"117":{},"366":{}},"tags":{}}],["correct",{"_index":730,"title":{},"content":{"114":{},"125":{},"185":{},"206":{},"337":{},"364":{},"366":{},"368":{}},"tags":{}}],["correctli",{"_index":728,"title":{},"content":{"114":{},"258":{},"342":{},"345":{}},"tags":{}}],["correspond",{"_index":708,"title":{},"content":{"113":{},"359":{}},"tags":{}}],["count",{"_index":520,"title":{},"content":{"84":{},"269":{},"278":{},"280":{}},"tags":{}}],["cours",{"_index":1054,"title":{},"content":{"162":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["cover",{"_index":1784,"title":{},"content":{"248":{},"258":{}},"tags":{}}],["cpio",{"_index":2105,"title":{},"content":{"343":{}},"tags":{}}],["cramf",{"_index":2106,"title":{},"content":{"343":{}},"tags":{}}],["crash",{"_index":529,"title":{"85":{}},"content":{"85":{}},"tags":{}}],["crawl",{"_index":1346,"title":{},"content":{"187":{},"192":{}},"tags":{}}],["crawl.zip",{"_index":1349,"title":{},"content":{"187":{}},"tags":{}}],["creat",{"_index":137,"title":{"62":{},"139":{},"299":{},"301":{},"309":{},"363":{}},"content":{"56":{},"62":{},"70":{},"93":{},"95":{},"115":{},"126":{},"139":{},"140":{},"179":{},"180":{},"205":{},"221":{},"241":{},"245":{},"258":{},"259":{},"265":{},"269":{},"270":{},"275":{},"278":{},"283":{},"285":{},"291":{},"299":{},"300":{},"309":{},"317":{},"326":{},"327":{},"337":{},"352":{},"354":{},"373":{},"374":{}},"tags":{}}],["creation",{"_index":1172,"title":{},"content":{"180":{},"197":{}},"tags":{}}],["creativ",{"_index":1210,"title":{},"content":{"177":{},"180":{},"203":{}},"tags":{}}],["credenti",{"_index":845,"title":{},"content":{"125":{},"126":{},"173":{}},"tags":{}}],["credit",{"_index":282,"title":{},"content":{"66":{},"161":{},"177":{}},"tags":{}}],["creed",{"_index":662,"title":{},"content":{"111":{},"113":{}},"tags":{}}],["cri",{"_index":2142,"title":{},"content":{"345":{}},"tags":{}}],["criteria",{"_index":1237,"title":{},"content":{"178":{}},"tags":{}}],["critic",{"_index":1444,"title":{},"content":{"374":{}},"tags":{}}],["crucial",{"_index":34,"title":{},"content":{"48":{},"113":{},"179":{},"180":{},"347":{},"353":{},"354":{}},"tags":{}}],["ctrl",{"_index":2025,"title":{},"content":{"295":{}},"tags":{}}],["curren",{"_index":629,"title":{},"content":{"103":{}},"tags":{}}],["current",{"_index":59,"title":{},"content":{"49":{},"71":{},"81":{},"89":{},"96":{},"105":{},"122":{},"148":{},"165":{},"205":{},"239":{},"271":{},"274":{},"327":{},"356":{},"372":{},"374":{}},"tags":{}}],["custom",{"_index":244,"title":{"134":{},"137":{},"138":{},"139":{},"140":{}},"content":{"63":{},"86":{},"96":{},"116":{},"131":{},"134":{},"135":{},"137":{},"138":{},"139":{},"140":{},"144":{},"154":{},"160":{},"170":{},"180":{},"213":{},"258":{},"272":{},"280":{}},"tags":{}}],["cut",{"_index":1152,"title":{},"content":{"197":{}},"tags":{}}],["d",{"_index":652,"title":{},"content":{"110":{},"312":{}},"tags":{}}],["d:/gamevault",{"_index":657,"title":{},"content":{"110":{}},"tags":{}}],["d:/gamevault/download",{"_index":658,"title":{},"content":{"110":{}},"tags":{}}],["d:/gamevault/instal",{"_index":659,"title":{},"content":{"110":{}},"tags":{}}],["daemon",{"_index":731,"title":{},"content":{"115":{}},"tags":{}}],["damn",{"_index":1743,"title":{},"content":{"241":{}},"tags":{}}],["danger",{"_index":1421,"title":{},"content":{"193":{}},"tags":{}}],["dark",{"_index":857,"title":{},"content":{"132":{},"136":{}},"tags":{}}],["dashboard",{"_index":766,"title":{"261":{},"330":{}},"content":{"117":{},"245":{},"261":{},"319":{}},"tags":{}}],["data",{"_index":315,"title":{"77":{},"106":{}},"content":{"70":{},"77":{},"80":{},"82":{},"83":{},"96":{},"111":{},"117":{},"124":{},"166":{},"197":{},"210":{},"231":{},"238":{},"241":{},"244":{},"278":{},"355":{},"374":{}},"tags":{}}],["data.bin",{"_index":1617,"title":{},"content":{"208":{}},"tags":{}}],["data2.bin",{"_index":1618,"title":{},"content":{"208":{}},"tags":{}}],["databas",{"_index":1186,"title":{"302":{},"311":{},"319":{},"322":{},"363":{},"372":{}},"content":{"194":{},"201":{},"205":{},"214":{},"215":{},"221":{},"230":{},"231":{},"244":{},"288":{},"301":{},"302":{},"309":{},"310":{},"311":{},"322":{},"345":{},"372":{},"373":{},"374":{}},"tags":{}}],["datahoard",{"_index":1353,"title":{},"content":{"187":{}},"tags":{}}],["dataset",{"_index":2065,"title":{},"content":{"333":{}},"tags":{}}],["date",{"_index":1550,"title":{},"content":{"216":{},"237":{},"244":{},"250":{},"251":{},"252":{}},"tags":{}}],["day",{"_index":1582,"title":{},"content":{"220":{}},"tags":{}}],["db",{"_index":1522,"title":{"215":{}},"content":{"214":{},"291":{},"301":{},"309":{}},"tags":{}}],["db_databas",{"_index":1530,"title":{},"content":{"215":{}},"tags":{}}],["db_debug",{"_index":1531,"title":{},"content":{"215":{}},"tags":{}}],["db_host",{"_index":1524,"title":{},"content":{"215":{},"301":{},"309":{}},"tags":{}}],["db_password",{"_index":1529,"title":{},"content":{"215":{},"301":{},"309":{}},"tags":{}}],["db_port",{"_index":1526,"title":{},"content":{"215":{}},"tags":{}}],["db_synchron",{"_index":1534,"title":{},"content":{"215":{}},"tags":{}}],["db_system",{"_index":1520,"title":{},"content":{"214":{},"215":{},"302":{},"311":{}},"tags":{}}],["db_system=sqlit",{"_index":2018,"title":{},"content":{"291":{}},"tags":{}}],["db_tls_ca_certificate_path",{"_index":1543,"title":{},"content":{"215":{}},"tags":{}}],["db_tls_certificate_path",{"_index":1542,"title":{},"content":{"215":{}},"tags":{}}],["db_tls_enabl",{"_index":1537,"title":{},"content":{"215":{}},"tags":{}}],["db_tls_key_path",{"_index":1541,"title":{},"content":{"215":{}},"tags":{}}],["db_tls_reject_unauthorized_en",{"_index":1539,"title":{},"content":{"215":{}},"tags":{}}],["db_usernam",{"_index":1528,"title":{},"content":{"215":{},"301":{},"309":{}},"tags":{}}],["deactiv",{"_index":2210,"title":{},"content":{"352":{}},"tags":{}}],["debian",{"_index":347,"title":{},"content":{"72":{},"287":{}},"tags":{}}],["debit",{"_index":1040,"title":{},"content":{"161":{}},"tags":{}}],["debug",{"_index":533,"title":{},"content":{"85":{},"213":{},"281":{},"359":{},"360":{}},"tags":{}}],["decid",{"_index":1559,"title":{},"content":{"218":{},"259":{}},"tags":{}}],["decis",{"_index":1238,"title":{},"content":{"178":{}},"tags":{}}],["declin",{"_index":122,"title":{},"content":{"54":{}},"tags":{}}],["dedic",{"_index":1725,"title":{},"content":{"234":{}},"tags":{}}],["default",{"_index":195,"title":{},"content":{"60":{},"95":{},"104":{},"132":{},"136":{},"147":{},"194":{},"205":{},"210":{},"211":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"227":{},"246":{},"250":{},"252":{},"278":{},"320":{},"336":{},"339":{},"344":{},"353":{},"354":{},"356":{},"363":{}},"tags":{}}],["defin",{"_index":915,"title":{},"content":{"147":{},"148":{},"307":{}},"tags":{}}],["definit",{"_index":230,"title":{},"content":{"62":{},"190":{},"310":{}},"tags":{}}],["delay",{"_index":1049,"title":{},"content":{"161":{},"220":{}},"tags":{}}],["delet",{"_index":501,"title":{},"content":{"83":{},"97":{},"98":{},"104":{},"107":{},"111":{},"112":{},"113":{},"115":{},"205":{},"219":{},"231":{},"339":{},"340":{},"344":{},"374":{}},"tags":{}}],["demand",{"_index":1336,"title":{},"content":{"186":{}},"tags":{}}],["demo",{"_index":841,"title":{},"content":{"125":{},"196":{}},"tags":{}}],["demo.gamevau.lt",{"_index":844,"title":{},"content":{"125":{}},"tags":{}}],["demo.gamevau.lt/api/doc",{"_index":380,"title":{},"content":{"75":{}},"tags":{}}],["demodemo",{"_index":846,"title":{},"content":{"125":{}},"tags":{}}],["demonstr",{"_index":1274,"title":{},"content":{"179":{}},"tags":{}}],["deni",{"_index":2252,"title":{"363":{}},"content":{},"tags":{}}],["depend",{"_index":323,"title":{"290":{}},"content":{"70":{},"125":{},"128":{},"138":{},"190":{},"218":{},"287":{},"290":{},"336":{},"357":{}},"tags":{}}],["deploy",{"_index":1422,"title":{"194":{}},"content":{"259":{},"270":{},"287":{},"297":{},"333":{}},"tags":{}}],["deriv",{"_index":1233,"title":{},"content":{"177":{},"180":{}},"tags":{}}],["describ",{"_index":1472,"title":{},"content":{"211":{},"212":{},"342":{},"344":{}},"tags":{}}],["descript",{"_index":571,"title":{},"content":{"93":{},"96":{},"180":{},"182":{},"183":{},"201":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"233":{},"241":{},"246":{},"248":{},"278":{},"345":{},"354":{}},"tags":{}}],["design",{"_index":47,"title":{},"content":{"49":{},"132":{},"137":{},"153":{},"163":{},"313":{}},"tags":{}}],["desir",{"_index":836,"title":{},"content":{"124":{},"291":{},"351":{}},"tags":{}}],["desktop",{"_index":586,"title":{},"content":{"95":{},"308":{}},"tags":{}}],["destin",{"_index":705,"title":{},"content":{"113":{}},"tags":{}}],["detach",{"_index":1737,"title":{},"content":{"241":{},"312":{}},"tags":{}}],["detail",{"_index":82,"title":{"101":{}},"content":{"50":{},"81":{},"91":{},"93":{},"96":{},"98":{},"101":{},"112":{},"116":{},"117":{},"122":{},"146":{},"160":{},"166":{},"174":{},"178":{},"179":{},"188":{},"205":{},"213":{},"244":{},"248":{},"258":{},"279":{},"300":{},"306":{},"360":{}},"tags":{}}],["detect",{"_index":456,"title":{},"content":{"78":{},"113":{},"129":{},"175":{},"193":{},"196":{},"206":{},"208":{},"209":{},"210":{},"218":{},"274":{},"340":{},"342":{},"345":{}},"tags":{}}],["determin",{"_index":696,"title":{},"content":{"113":{},"209":{},"217":{},"237":{},"250":{},"252":{},"354":{}},"tags":{}}],["dev.twitch.tv",{"_index":1758,"title":{},"content":{"245":{}},"tags":{}}],["develop",{"_index":888,"title":{"242":{},"275":{}},"content":{"141":{},"152":{},"153":{},"158":{},"159":{},"178":{},"179":{},"180":{},"197":{},"202":{},"242":{},"245":{},"248":{},"259":{},"271":{},"275":{},"280":{},"285":{},"286":{},"297":{},"307":{}},"tags":{}}],["developer.twitch.tv",{"_index":1764,"title":{},"content":{"246":{}},"tags":{}}],["devic",{"_index":1065,"title":{"164":{}},"content":{"164":{},"297":{},"298":{}},"tags":{}}],["dice",{"_index":561,"title":{},"content":{"92":{}},"tags":{}}],["dictionari",{"_index":1388,"title":{},"content":{"190":{}},"tags":{}}],["didn't",{"_index":727,"title":{},"content":{"114":{}},"tags":{}}],["diemick",{"_index":1330,"title":{},"content":{"184":{}},"tags":{}}],["differ",{"_index":387,"title":{},"content":{"75":{},"96":{},"113":{},"116":{},"117":{},"122":{},"130":{},"131":{},"179":{},"188":{},"193":{},"202":{},"241":{},"308":{},"317":{},"345":{},"366":{},"374":{}},"tags":{}}],["difficulti",{"_index":1464,"title":{},"content":{"374":{}},"tags":{}}],["digit",{"_index":1043,"title":{},"content":{"161":{}},"tags":{}}],["dilig",{"_index":732,"title":{},"content":{"115":{}},"tags":{}}],["direct",{"_index":911,"title":{},"content":{"147":{},"161":{}},"tags":{}}],["directli",{"_index":556,"title":{},"content":{"92":{},"143":{},"159":{},"170":{},"179":{},"253":{},"272":{},"284":{},"287":{},"291":{},"359":{},"373":{}},"tags":{}}],["directori",{"_index":316,"title":{},"content":{"70":{},"95":{},"110":{},"112":{},"113":{},"115":{},"148":{},"205":{},"213":{},"218":{},"227":{},"274":{},"278":{},"282":{},"291":{},"299":{},"309":{},"312":{},"315":{},"339":{},"342":{}},"tags":{}}],["disabl",{"_index":600,"title":{"357":{}},"content":{"96":{},"163":{},"219":{},"220":{},"231":{},"246":{},"250":{},"352":{},"353":{},"357":{},"364":{},"368":{}},"tags":{}}],["disableit",{"_index":1718,"title":{},"content":{"232":{}},"tags":{}}],["disclaim",{"_index":1217,"title":{"204":{}},"content":{"204":{}},"tags":{}}],["disconnect",{"_index":1736,"title":{},"content":{"240":{}},"tags":{}}],["discord",{"_index":48,"title":{},"content":{"49":{},"50":{},"54":{},"55":{},"130":{},"159":{},"168":{},"202":{},"255":{},"359":{}},"tags":{}}],["discourag",{"_index":1446,"title":{},"content":{"287":{},"374":{}},"tags":{}}],["discov",{"_index":419,"title":{},"content":{"88":{},"150":{},"331":{},"332":{}},"tags":{}}],["discrimin",{"_index":1404,"title":{},"content":{"193":{}},"tags":{}}],["discuss",{"_index":133,"title":{},"content":{"55":{},"170":{},"179":{}},"tags":{}}],["disk",{"_index":585,"title":{},"content":{"95":{},"187":{}},"tags":{}}],["disov",{"_index":2061,"title":{"332":{}},"content":{},"tags":{}}],["display",{"_index":572,"title":{},"content":{"93":{},"108":{},"112":{},"147":{},"149":{},"174":{},"213":{},"356":{}},"tags":{}}],["dispos",{"_index":991,"title":{},"content":{"152":{}},"tags":{}}],["disposable.dispos",{"_index":992,"title":{},"content":{"152":{}},"tags":{}}],["disregard",{"_index":811,"title":{},"content":{"122":{}},"tags":{}}],["dist",{"_index":1929,"title":{},"content":{"282":{},"290":{}},"tags":{}}],["dist/.local/plugins/useless",{"_index":1930,"title":{},"content":{"282":{}},"tags":{}}],["dist/src",{"_index":2013,"title":{},"content":{"291":{}},"tags":{}}],["distinct",{"_index":545,"title":{},"content":{"90":{},"180":{}},"tags":{}}],["distribut",{"_index":1171,"title":{},"content":{"177":{},"197":{},"288":{}},"tags":{}}],["divers",{"_index":1999,"title":{},"content":{"287":{}},"tags":{}}],["dmg",{"_index":2107,"title":{},"content":{"343":{}},"tags":{}}],["do",{"_index":434,"title":{},"content":{"77":{},"257":{},"277":{},"294":{},"355":{},"356":{}},"tags":{}}],["doc",{"_index":1323,"title":{},"content":{"184":{},"297":{}},"tags":{}}],["docker",{"_index":185,"title":{"301":{},"307":{},"309":{},"310":{}},"content":{"60":{},"196":{},"213":{},"254":{},"256":{},"258":{},"297":{},"300":{},"307":{},"308":{},"309":{},"310":{},"312":{},"313":{},"315":{},"316":{},"317":{},"326":{},"327":{},"355":{}},"tags":{}}],["docker/gamevault",{"_index":2038,"title":{},"content":{"299":{}},"tags":{}}],["docker/gamevault/databas",{"_index":2041,"title":{},"content":{"299":{}},"tags":{}}],["docker/gamevault/fil",{"_index":2039,"title":{},"content":{"299":{}},"tags":{}}],["docker/gamevault/media",{"_index":2040,"title":{},"content":{"299":{}},"tags":{}}],["docker/projects/gamevault",{"_index":2037,"title":{},"content":{"299":{},"300":{}},"tags":{}}],["document",{"_index":176,"title":{"184":{},"279":{}},"content":{"58":{},"71":{},"73":{},"75":{},"89":{},"90":{},"127":{},"133":{},"141":{},"201":{},"213":{},"257":{},"277":{},"285":{},"333":{},"340":{},"347":{},"355":{}},"tags":{}}],["doesn't",{"_index":1465,"title":{},"content":{"355":{},"364":{},"374":{}},"tags":{}}],["dollar",{"_index":1200,"title":{},"content":{"202":{}},"tags":{}}],["don't",{"_index":143,"title":{},"content":{"56":{},"77":{},"113":{},"126":{},"196":{},"231":{},"245":{},"255":{},"257":{},"294":{},"301":{},"302":{},"309":{},"311":{},"322":{},"356":{},"371":{}},"tags":{}}],["donat",{"_index":1198,"title":{},"content":{"202":{}},"tags":{}}],["done",{"_index":656,"title":{},"content":{"110":{},"241":{},"245":{}},"tags":{}}],["donwload",{"_index":630,"title":{},"content":{"104":{}},"tags":{}}],["dot",{"_index":2157,"title":{},"content":{"345":{}},"tags":{}}],["dotnetcoredesktop6",{"_index":324,"title":{},"content":{"70":{}},"tags":{}}],["dotnetdesktop6",{"_index":308,"title":{},"content":{"69":{}},"tags":{}}],["down",{"_index":1058,"title":{},"content":{"162":{},"263":{},"315":{},"333":{}},"tags":{}}],["downgrad",{"_index":1447,"title":{},"content":{"374":{}},"tags":{}}],["download",{"_index":386,"title":{"97":{},"111":{},"371":{}},"content":{"75":{},"77":{},"81":{},"88":{},"92":{},"93":{},"97":{},"104":{},"110":{},"111":{},"112":{},"113":{},"119":{},"122":{},"124":{},"130":{},"147":{},"148":{},"165":{},"182":{},"196":{},"200":{},"213":{},"337":{},"344":{},"354":{},"371":{},"373":{}},"tags":{}}],["drive",{"_index":653,"title":{},"content":{"110":{},"317":{}},"tags":{}}],["driven",{"_index":291,"title":{},"content":{"67":{},"87":{},"122":{},"181":{}},"tags":{}}],["drm",{"_index":1140,"title":{},"content":{"187":{},"196":{},"197":{},"204":{}},"tags":{}}],["dropdown",{"_index":706,"title":{},"content":{"113":{},"122":{}},"tags":{}}],["due",{"_index":807,"title":{},"content":{"122":{},"180":{},"310":{},"350":{},"351":{},"355":{},"363":{}},"tags":{}}],["dump",{"_index":1443,"title":{},"content":{"373":{}},"tags":{}}],["duplic",{"_index":1401,"title":{"230":{}},"content":{"193":{},"230":{},"373":{}},"tags":{}}],["dure",{"_index":672,"title":{},"content":{"111":{},"113":{},"175":{},"179":{},"206":{},"231":{}},"tags":{}}],["e",{"_index":1814,"title":{},"content":{"249":{}},"tags":{}}],["e.g",{"_index":372,"title":{},"content":{"74":{},"78":{},"93":{},"113":{},"141":{},"179":{},"198":{},"208":{},"219":{},"241":{},"280":{},"344":{},"374":{}},"tags":{}}],["e10",{"_index":1816,"title":{},"content":{"249":{}},"tags":{}}],["ea",{"_index":109,"title":{},"content":{"53":{},"54":{},"340":{},"345":{},"346":{}},"tags":{}}],["eacc",{"_index":2253,"title":{"363":{}},"content":{},"tags":{}}],["each",{"_index":273,"title":{},"content":{"66":{},"76":{},"90":{},"110":{},"115":{},"116":{},"146":{},"173":{},"175":{},"179":{},"186":{},"205":{},"206":{},"220":{},"230":{},"237":{},"257":{},"345":{},"358":{},"373":{}},"tags":{}}],["earli",{"_index":0,"title":{"47":{},"52":{},"53":{}},"content":{"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"192":{},"205":{},"271":{},"339":{},"345":{}},"tags":{}}],["early_access",{"_index":1777,"title":{},"content":{"248":{}},"tags":{}}],["earlyaccess",{"_index":2136,"title":{},"content":{"345":{}},"tags":{}}],["eas",{"_index":1343,"title":{},"content":{"186":{}},"tags":{}}],["easi",{"_index":995,"title":{},"content":{"161":{},"172":{},"254":{},"328":{},"351":{}},"tags":{}}],["easier",{"_index":680,"title":{},"content":{"111":{},"257":{}},"tags":{}}],["easiest",{"_index":417,"title":{},"content":{"88":{}},"tags":{}}],["easili",{"_index":1035,"title":{},"content":{"160":{},"196":{},"317":{},"352":{}},"tags":{}}],["ec",{"_index":1813,"title":{},"content":{"249":{}},"tags":{}}],["ecosystem",{"_index":889,"title":{},"content":{"141":{}},"tags":{}}],["edg",{"_index":1153,"title":{},"content":{"197":{}},"tags":{}}],["edit",{"_index":150,"title":{"100":{},"101":{},"238":{}},"content":{"56":{},"84":{},"96":{},"98":{},"107":{},"116":{},"117":{},"139":{},"180":{},"200":{},"238":{},"241":{},"253":{},"254":{},"336":{},"354":{}},"tags":{}}],["editor",{"_index":589,"title":{},"content":{"96":{},"116":{},"139":{},"193":{},"238":{},"254":{},"301":{},"354":{}},"tags":{}}],["effect",{"_index":142,"title":{},"content":{"56":{},"191":{},"241":{},"347":{},"355":{}},"tags":{}}],["effici",{"_index":467,"title":{},"content":{"79":{},"92":{},"287":{}},"tags":{}}],["effort",{"_index":1282,"title":{},"content":{"179":{},"186":{},"189":{}},"tags":{}}],["eighteen",{"_index":1811,"title":{},"content":{"249":{}},"tags":{}}],["elev",{"_index":2203,"title":{},"content":{"350":{}},"tags":{}}],["email",{"_index":1030,"title":{},"content":{"159":{},"216":{},"359":{}},"tags":{}}],["embed",{"_index":494,"title":{"83":{}},"content":{"83":{}},"tags":{}}],["employ",{"_index":563,"title":{},"content":{"92":{},"336":{}},"tags":{}}],["empti",{"_index":678,"title":{},"content":{"111":{},"113":{},"231":{},"301":{},"309":{}},"tags":{}}],["enabl",{"_index":178,"title":{"60":{},"251":{},"265":{}},"content":{"60":{},"63":{},"145":{},"175":{},"190":{},"213":{},"215":{},"219":{},"220":{},"246":{},"250":{},"251":{},"252":{},"265":{},"352":{},"355":{}},"tags":{}}],["enabling/dis",{"_index":2197,"title":{},"content":{"347":{}},"tags":{}}],["encapsul",{"_index":1998,"title":{},"content":{"287":{}},"tags":{}}],["encoding.utf8",{"_index":978,"title":{},"content":{"152":{}},"tags":{}}],["encompass",{"_index":543,"title":{},"content":{"90":{}},"tags":{}}],["encount",{"_index":508,"title":{},"content":{"84":{},"112":{},"179":{},"303":{},"355":{},"374":{}},"tags":{}}],["encourag",{"_index":1094,"title":{},"content":{"168":{},"180":{},"204":{}},"tags":{}}],["encrypt",{"_index":493,"title":{},"content":{"82":{},"104":{},"166":{},"175":{},"218":{}},"tags":{}}],["end",{"_index":1911,"title":{},"content":{"280":{},"345":{}},"tags":{}}],["endors",{"_index":1221,"title":{},"content":{"180":{},"204":{}},"tags":{}}],["endpoint",{"_index":384,"title":{},"content":{"75":{},"144":{}},"tags":{}}],["enforc",{"_index":1553,"title":{},"content":{"217":{}},"tags":{}}],["engag",{"_index":1255,"title":{},"content":{"179":{}},"tags":{}}],["engin",{"_index":1393,"title":{},"content":{"192":{},"308":{}},"tags":{}}],["enhanc",{"_index":263,"title":{},"content":{"66":{},"153":{},"162":{},"179":{},"258":{}},"tags":{}}],["enjoy",{"_index":851,"title":{"197":{}},"content":{"127":{},"156":{},"163":{},"196":{},"197":{},"258":{}},"tags":{}}],["enough",{"_index":404,"title":{},"content":{"88":{},"259":{}},"tags":{}}],["enrich",{"_index":1011,"title":{"233":{},"237":{}},"content":{"153":{},"194":{},"196":{},"201":{},"233":{},"258":{}},"tags":{}}],["ensur",{"_index":181,"title":{"166":{}},"content":{"60":{},"84":{},"126":{},"153":{},"178":{},"179":{},"180":{},"193":{},"205":{},"254":{},"287":{},"336":{},"345":{},"354":{},"355":{},"364":{}},"tags":{}}],["enter",{"_index":631,"title":{"125":{}},"content":{"105":{},"125":{},"126":{},"173":{}},"tags":{}}],["enthusiast",{"_index":1006,"title":{},"content":{"153":{},"179":{}},"tags":{}}],["entir",{"_index":1015,"title":{},"content":{"153":{},"372":{}},"tags":{}}],["entiti",{"_index":1408,"title":{},"content":{"193":{},"215":{},"339":{},"341":{}},"tags":{}}],["entri",{"_index":527,"title":{},"content":{"84":{},"96":{},"115":{},"193":{},"231":{},"234":{},"278":{},"320":{}},"tags":{}}],["enum",{"_index":1803,"title":{},"content":{"249":{}},"tags":{}}],["env",{"_index":1470,"title":{"291":{}},"content":{"211":{},"212":{},"291":{},"294":{},"359":{}},"tags":{}}],["environ",{"_index":191,"title":{},"content":{"60":{},"75":{},"211":{},"212":{},"231":{},"232":{},"245":{},"251":{},"252":{},"280":{},"287":{},"301":{},"302":{},"309":{},"311":{},"350":{},"351":{},"352":{},"353":{},"357":{},"363":{},"371":{}},"tags":{}}],["equival",{"_index":2005,"title":{},"content":{"288":{}},"tags":{}}],["era",{"_index":1170,"title":{},"content":{"197":{}},"tags":{}}],["error",{"_index":149,"title":{"363":{},"364":{}},"content":{"56":{},"85":{},"112":{},"113":{},"174":{},"213":{},"360":{}},"tags":{}}],["esc",{"_index":581,"title":{},"content":{"93":{}},"tags":{}}],["esrb",{"_index":1812,"title":{},"content":{"249":{}},"tags":{}}],["essenti",{"_index":1297,"title":{},"content":{"180":{},"218":{},"373":{}},"tags":{}}],["estim",{"_index":684,"title":{},"content":{"112":{}},"tags":{}}],["etc",{"_index":608,"title":{},"content":{"96":{},"196":{},"213":{},"241":{},"301":{},"302":{},"309":{},"311":{},"345":{}},"tags":{}}],["etc/fail2ban/filter.d/gamevault",{"_index":226,"title":{},"content":{"62":{}},"tags":{}}],["etc/fail2ban/jail.loc",{"_index":242,"title":{},"content":{"63":{}},"tags":{}}],["even",{"_index":477,"title":{},"content":{"80":{},"81":{},"115":{},"161":{},"196":{},"200":{},"352":{},"353":{}},"tags":{}}],["event",{"_index":1267,"title":{},"content":{"179":{},"351":{}},"tags":{}}],["everybodi",{"_index":1244,"title":{},"content":{"179":{}},"tags":{}}],["everyon",{"_index":40,"title":{},"content":{"48":{},"73":{},"171":{},"179":{},"257":{},"357":{}},"tags":{}}],["everyth",{"_index":38,"title":{},"content":{"48":{},"110":{},"179":{},"187":{},"374":{}},"tags":{}}],["ex",{"_index":716,"title":{},"content":{"113":{},"115":{},"208":{},"209":{},"344":{}},"tags":{}}],["exact",{"_index":1631,"title":{},"content":{"205":{}},"tags":{}}],["examin",{"_index":2250,"title":{},"content":{"360":{}},"tags":{}}],["exampl",{"_index":649,"title":{"149":{},"150":{},"151":{},"152":{},"286":{},"340":{},"346":{}},"content":{"110":{},"149":{},"150":{},"151":{},"152":{},"187":{},"192":{},"193":{},"198":{},"208":{},"209":{},"210":{},"231":{},"277":{},"278":{},"280":{},"286":{},"287":{},"291":{},"296":{},"313":{},"345":{},"346":{},"351":{}},"tags":{}}],["example.com/api/doc",{"_index":388,"title":{},"content":{"75":{}},"tags":{}}],["exceed",{"_index":1591,"title":{},"content":{"220":{}},"tags":{}}],["except",{"_index":428,"title":{},"content":{"77":{},"115":{},"152":{},"177":{},"294":{}},"tags":{}}],["excit",{"_index":1955,"title":{},"content":{"257":{},"355":{}},"tags":{}}],["exclud",{"_index":528,"title":{},"content":{"84":{},"208":{}},"tags":{}}],["exclus",{"_index":5,"title":{},"content":{"48":{},"50":{}},"tags":{}}],["execut",{"_index":222,"title":{"344":{}},"content":{"62":{},"63":{},"70":{},"84":{},"95":{},"113":{},"114":{},"186":{},"188":{},"208":{},"342":{},"344":{}},"tags":{}}],["exempt",{"_index":2213,"title":{},"content":{"353":{}},"tags":{}}],["exhibit",{"_index":165,"title":{},"content":{"57":{}},"tags":{}}],["exist",{"_index":922,"title":{},"content":{"148":{},"205":{},"213":{},"250":{},"251":{},"280":{},"291":{},"339":{}},"tags":{}}],["exit",{"_index":116,"title":{"118":{}},"content":{"54":{},"91":{},"118":{}},"tags":{}}],["expand",{"_index":551,"title":{},"content":{"92":{},"306":{}},"tags":{}}],["expect",{"_index":1056,"title":{},"content":{"162":{},"310":{}},"tags":{}}],["expectsresult",{"_index":962,"title":{},"content":{"152":{}},"tags":{}}],["experi",{"_index":9,"title":{},"content":{"48":{},"131":{},"135":{},"153":{},"162":{},"167":{},"202":{},"257":{},"258":{}},"tags":{}}],["experienc",{"_index":784,"title":{},"content":{"121":{}},"tags":{}}],["experiment",{"_index":1424,"title":{},"content":{"271":{},"372":{}},"tags":{}}],["expertis",{"_index":1278,"title":{},"content":{"179":{},"186":{}},"tags":{}}],["expir",{"_index":1003,"title":{},"content":{"175":{}},"tags":{}}],["explain",{"_index":153,"title":{},"content":{"57":{},"68":{},"88":{}},"tags":{}}],["explan",{"_index":549,"title":{},"content":{"91":{},"211":{},"345":{}},"tags":{}}],["exploit",{"_index":1241,"title":{},"content":{"178":{}},"tags":{}}],["explor",{"_index":20,"title":{},"content":{"48":{},"125":{},"127":{},"147":{},"149":{},"151":{},"167":{},"178":{},"374":{}},"tags":{}}],["export",{"_index":1897,"title":{},"content":{"278":{}},"tags":{}}],["express",{"_index":234,"title":{},"content":{"62":{}},"tags":{}}],["exquisit",{"_index":1009,"title":{},"content":{"153":{}},"tags":{}}],["ext",{"_index":2108,"title":{},"content":{"343":{}},"tags":{}}],["extend",{"_index":1877,"title":{},"content":{"272":{},"280":{}},"tags":{}}],["extens",{"_index":891,"title":{},"content":{"141":{},"177":{},"218":{},"345":{}},"tags":{}}],["extern",{"_index":709,"title":{"229":{}},"content":{"113":{},"141":{},"227":{},"345":{}},"tags":{}}],["extra",{"_index":1923,"title":{},"content":{"281":{}},"tags":{}}],["extract",{"_index":620,"title":{"112":{}},"content":{"97":{},"104":{},"112":{},"113":{},"122":{},"130":{},"193":{},"200":{},"274":{}},"tags":{}}],["extrem",{"_index":686,"title":{},"content":{"112":{}},"tags":{}}],["f5",{"_index":2260,"title":{},"content":{"366":{}},"tags":{}}],["facebook",{"_index":1252,"title":{},"content":{"179":{}},"tags":{}}],["facilit",{"_index":902,"title":{},"content":{"145":{}},"tags":{}}],["fact",{"_index":2254,"title":{},"content":{"363":{}},"tags":{}}],["fail",{"_index":204,"title":{"61":{},"363":{}},"content":{"61":{}},"tags":{}}],["fail2ban",{"_index":135,"title":{"56":{},"62":{},"63":{},"64":{}},"content":{"56":{},"57":{},"58":{},"62":{},"63":{},"64":{},"65":{},"66":{}},"tags":{}}],["failregex",{"_index":231,"title":{},"content":{"62":{}},"tags":{}}],["failur",{"_index":1455,"title":{},"content":{"374":{}},"tags":{}}],["fall",{"_index":1235,"title":{},"content":{"178":{}},"tags":{}}],["fallen",{"_index":2171,"title":{},"content":{"346":{}},"tags":{}}],["fals",{"_index":194,"title":{},"content":{"60":{},"84":{},"149":{},"152":{},"213":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"246":{}},"tags":{}}],["famili",{"_index":1173,"title":{},"content":{"197":{},"202":{}},"tags":{}}],["faq",{"_index":101,"title":{"52":{}},"content":{},"tags":{}}],["far",{"_index":2141,"title":{},"content":{"345":{}},"tags":{}}],["fast",{"_index":1361,"title":{"189":{}},"content":{"190":{}},"tags":{}}],["faster",{"_index":445,"title":{},"content":{"78":{},"79":{},"161":{}},"tags":{}}],["fastest",{"_index":1362,"title":{},"content":{"189":{}},"tags":{}}],["fat",{"_index":2109,"title":{},"content":{"343":{}},"tags":{}}],["fatal",{"_index":1485,"title":{},"content":{"213":{}},"tags":{}}],["featur",{"_index":22,"title":{"154":{},"162":{},"168":{},"199":{},"200":{},"201":{},"284":{}},"content":{"48":{},"125":{},"127":{},"129":{},"153":{},"154":{},"156":{},"163":{},"169":{},"179":{},"193":{},"201":{},"232":{},"250":{},"272":{},"281":{},"284":{},"285":{},"336":{},"347":{},"355":{}},"tags":{}}],["feedback",{"_index":33,"title":{},"content":{"48":{},"168":{},"179":{},"303":{}},"tags":{}}],["feel",{"_index":144,"title":{},"content":{"56":{},"121":{},"179":{},"184":{},"196":{},"359":{}},"tags":{}}],["fellow",{"_index":1268,"title":{},"content":{"179":{}},"tags":{}}],["fetch",{"_index":999,"title":{},"content":{"174":{},"245":{},"296":{}},"tags":{}}],["few",{"_index":787,"title":{},"content":{"121":{},"333":{}},"tags":{}}],["fi",{"_index":1202,"title":{},"content":{"202":{}},"tags":{}}],["fictiti",{"_index":1395,"title":{},"content":{"192":{}},"tags":{}}],["field",{"_index":840,"title":{"248":{}},"content":{"125":{},"126":{},"241":{},"248":{},"253":{}},"tags":{}}],["field(",{"_index":1765,"title":{},"content":{"248":{}},"tags":{}}],["file",{"_index":161,"title":{"60":{},"110":{},"291":{},"301":{},"309":{},"342":{},"344":{}},"content":{"57":{},"60":{},"61":{},"62":{},"68":{},"82":{},"84":{},"88":{},"97":{},"104":{},"110":{},"111":{},"113":{},"115":{},"122":{},"138":{},"139":{},"179":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"193":{},"194":{},"196":{},"201":{},"204":{},"205":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"218":{},"221":{},"224":{},"226":{},"231":{},"237":{},"254":{},"258":{},"274":{},"278":{},"279":{},"281":{},"283":{},"290":{},"291":{},"294":{},"299":{},"309":{},"310":{},"312":{},"315":{},"339":{},"341":{},"342":{},"343":{},"344":{},"345":{},"359":{},"366":{},"368":{},"373":{},"374":{}},"tags":{}}],["file'",{"_index":1633,"title":{},"content":{"205":{},"339":{},"341":{}},"tags":{}}],["filenam",{"_index":1621,"title":{},"content":{"208":{},"345":{}},"tags":{}}],["filesystem",{"_index":1599,"title":{"228":{}},"content":{"221":{},"227":{},"231":{},"310":{},"366":{}},"tags":{}}],["filewatch",{"_index":1560,"title":{},"content":{"218":{}},"tags":{}}],["file—thi",{"_index":1932,"title":{},"content":{"282":{}},"tags":{}}],["fill",{"_index":76,"title":{},"content":{"50":{},"238":{},"245":{},"300":{},"323":{}},"tags":{}}],["filter",{"_index":219,"title":{"62":{}},"content":{"62":{},"63":{},"92":{},"201":{},"248":{},"366":{}},"tags":{}}],["filter.conf",{"_index":227,"title":{},"content":{"62":{}},"tags":{}}],["final",{"_index":710,"title":{},"content":{"113":{},"152":{},"205":{},"241":{},"282":{}},"tags":{}}],["find",{"_index":148,"title":{"273":{}},"content":{"56":{},"77":{},"88":{},"92":{},"113":{},"158":{},"166":{},"181":{},"237":{},"239":{},"264":{},"283":{},"359":{}},"tags":{}}],["findtim",{"_index":251,"title":{},"content":{"63":{}},"tags":{}}],["fine",{"_index":267,"title":{},"content":{"66":{},"171":{}},"tags":{}}],["firewal",{"_index":169,"title":{},"content":{"57":{},"258":{}},"tags":{}}],["first",{"_index":8,"title":{},"content":{"48":{},"186":{},"216":{},"231":{},"236":{},"248":{},"258":{},"270":{},"274":{},"276":{},"291":{},"349":{},"351":{},"365":{}},"tags":{}}],["first_release_d",{"_index":1772,"title":{},"content":{"248":{}},"tags":{}}],["fix",{"_index":346,"title":{"360":{}},"content":{"72":{},"350":{}},"tags":{}}],["flac",{"_index":1665,"title":{},"content":{"225":{}},"tags":{}}],["flag",{"_index":1634,"title":{},"content":{"205":{},"339":{},"345":{},"368":{}},"tags":{}}],["flash",{"_index":1684,"title":{},"content":{"226":{}},"tags":{}}],["flatpak",{"_index":314,"title":{},"content":{"70":{}},"tags":{}}],["fletcherau",{"_index":1331,"title":{},"content":{"184":{}},"tags":{}}],["flexibl",{"_index":1127,"title":{},"content":{"137":{},"272":{},"317":{}},"tags":{}}],["fli",{"_index":2134,"title":{},"content":{"344":{}},"tags":{}}],["flv",{"_index":1683,"title":{},"content":{"226":{}},"tags":{}}],["focu",{"_index":692,"title":{},"content":{"113":{}},"tags":{}}],["folder",{"_index":182,"title":{"110":{},"124":{},"299":{},"342":{}},"content":{"60":{},"72":{},"77":{},"83":{},"88":{},"97":{},"103":{},"110":{},"111":{},"113":{},"115":{},"124":{},"138":{},"139":{},"186":{},"189":{},"193":{},"194":{},"196":{},"210":{},"214":{},"231":{},"254":{},"274":{},"278":{},"279":{},"282":{},"283":{},"290":{},"291":{},"294":{},"299":{},"301":{},"302":{},"309":{},"310":{},"311":{},"342":{},"344":{},"363":{},"366":{}},"tags":{}}],["folder—thi",{"_index":1934,"title":{},"content":{"282":{}},"tags":{}}],["follow",{"_index":46,"title":{},"content":{"49":{},"50":{},"61":{},"62":{},"63":{},"66":{},"70":{},"111":{},"116":{},"119":{},"122":{},"124":{},"125":{},"126":{},"136":{},"138":{},"146":{},"148":{},"154":{},"166":{},"186":{},"187":{},"189":{},"190":{},"192":{},"205":{},"211":{},"233":{},"241":{},"258":{},"263":{},"264":{},"274":{},"276":{},"285":{},"299":{},"300":{},"301":{},"302":{},"303":{},"305":{},"306":{},"309":{},"311":{},"312":{},"313":{},"315":{},"316":{},"320":{},"329":{},"333":{},"345":{},"346":{},"354":{}},"tags":{}}],["font",{"_index":342,"title":{},"content":{"72":{},"88":{}},"tags":{}}],["forc",{"_index":1535,"title":{},"content":{"215":{}},"tags":{}}],["forefront",{"_index":781,"title":{},"content":{"118":{}},"tags":{}}],["forget",{"_index":1874,"title":{},"content":{"250":{}},"tags":{}}],["forgot",{"_index":1469,"title":{"370":{}},"content":{"211":{}},"tags":{}}],["fork",{"_index":1319,"title":{"181":{}},"content":{"181":{}},"tags":{}}],["form",{"_index":79,"title":{},"content":{"50":{},"74":{},"245":{},"254":{}},"tags":{}}],["formal",{"_index":1316,"title":{},"content":{"180":{}},"tags":{}}],["format",{"_index":207,"title":{"223":{},"224":{},"225":{},"226":{},"343":{}},"content":{"61":{},"75":{},"78":{},"96":{},"112":{},"185":{},"187":{},"213":{},"218":{},"219":{},"222":{},"224":{},"225":{},"226":{},"254":{},"258":{},"342":{},"343":{},"345":{}},"tags":{}}],["forum",{"_index":1249,"title":{},"content":{"179":{}},"tags":{}}],["forward",{"_index":1988,"title":{},"content":{"310":{}},"tags":{}}],["found",{"_index":93,"title":{},"content":{"51":{},"77":{},"111":{},"137":{},"174":{},"366":{}},"tags":{}}],["fragil",{"_index":1429,"title":{},"content":{"372":{}},"tags":{}}],["frame",{"_index":1513,"title":{},"content":{"213":{}},"tags":{}}],["framework",{"_index":1194,"title":{},"content":{"201":{},"233":{},"285":{}},"tags":{}}],["free",{"_index":145,"title":{"132":{}},"content":{"56":{},"113":{},"121":{},"171":{},"177":{},"179":{},"184":{},"187":{},"196":{},"197":{},"202":{},"204":{},"213":{},"225":{},"288":{},"359":{}},"tags":{}}],["freedom",{"_index":2232,"title":{},"content":{"356":{}},"tags":{}}],["freeli",{"_index":1018,"title":{},"content":{"153":{},"339":{}},"tags":{}}],["frequent",{"_index":277,"title":{},"content":{"66":{},"218":{}},"tags":{}}],["fresh",{"_index":1583,"title":{},"content":{"220":{}},"tags":{}}],["freshli",{"_index":651,"title":{},"content":{"110":{}},"tags":{}}],["friend",{"_index":1025,"title":{},"content":{"158":{},"179":{},"196":{},"197":{},"202":{},"258":{}},"tags":{}}],["friendli",{"_index":1149,"title":{},"content":{"196":{},"259":{},"373":{}},"tags":{}}],["full",{"_index":604,"title":{},"content":{"96":{},"180":{},"201":{},"258":{},"288":{},"353":{},"354":{},"355":{},"359":{}},"tags":{}}],["fulli",{"_index":358,"title":{},"content":{"73":{},"111":{},"113":{},"178":{},"201":{},"353":{},"355":{}},"tags":{}}],["function",{"_index":330,"title":{},"content":{"71":{},"83":{},"89":{},"90":{},"118":{},"125":{},"127":{},"129":{},"141":{},"199":{},"221":{},"272":{},"280":{},"336":{},"354":{}},"tags":{}}],["further",{"_index":852,"title":{},"content":{"127":{},"237":{},"258":{}},"tags":{}}],["furthermor",{"_index":521,"title":{},"content":{"84":{}},"tags":{}}],["futur",{"_index":95,"title":{"167":{}},"content":{"51":{},"168":{},"173":{},"207":{}},"tags":{}}],["g",{"_index":2009,"title":{},"content":{"288":{}},"tags":{}}],["gain",{"_index":855,"title":{},"content":{"131":{},"135":{},"258":{},"259":{},"353":{}},"tags":{}}],["game",{"_index":320,"title":{"81":{},"93":{},"94":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"185":{},"193":{},"205":{},"206":{},"207":{},"218":{},"233":{},"239":{},"240":{},"253":{},"338":{},"339":{},"341":{},"345":{},"362":{},"363":{},"366":{},"368":{},"371":{}},"content":{"70":{},"78":{},"81":{},"84":{},"88":{},"92":{},"93":{},"95":{},"96":{},"97":{},"98":{},"104":{},"107":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"119":{},"124":{},"136":{},"147":{},"148":{},"149":{},"167":{},"185":{},"186":{},"187":{},"188":{},"189":{},"192":{},"193":{},"194":{},"196":{},"197":{},"198":{},"200":{},"201":{},"202":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"214":{},"218":{},"228":{},"229":{},"233":{},"237":{},"238":{},"239":{},"240":{},"241":{},"244":{},"245":{},"248":{},"249":{},"250":{},"253":{},"254":{},"258":{},"291":{},"309":{},"310":{},"333":{},"339":{},"340":{},"341":{},"342":{},"344":{},"345":{},"346":{},"354":{},"362":{},"366":{},"367":{},"368":{}},"tags":{}}],["game'",{"_index":459,"title":{},"content":{"78":{},"81":{},"112":{},"113":{},"114":{},"116":{},"205":{},"345":{},"366":{}},"tags":{}}],["game.7z",{"_index":1369,"title":{},"content":{"189":{},"190":{},"191":{}},"tags":{}}],["game.ex",{"_index":1612,"title":{},"content":{"208":{}},"tags":{}}],["game.metadata",{"_index":1738,"title":{},"content":{"241":{}},"tags":{}}],["game.storylin",{"_index":1775,"title":{},"content":{"248":{}},"tags":{}}],["game.summari",{"_index":1773,"title":{},"content":{"248":{}},"tags":{}}],["game_metadata.background",{"_index":1696,"title":{},"content":{"228":{}},"tags":{}}],["game_metadata.cov",{"_index":1695,"title":{},"content":{"228":{}},"tags":{}}],["game_metadata.url_gameplay",{"_index":1703,"title":{},"content":{"229":{}},"tags":{}}],["game_metadata.url_screenshot",{"_index":1699,"title":{},"content":{"229":{}},"tags":{}}],["game_metadata.url_trail",{"_index":1701,"title":{},"content":{"229":{}},"tags":{}}],["gameid",{"_index":916,"title":{},"content":{"147":{},"148":{},"149":{}},"tags":{}}],["gameid=3",{"_index":931,"title":{},"content":{"149":{}},"tags":{}}],["gameid=[id",{"_index":913,"title":{},"content":{"147":{}},"tags":{}}],["gameplay",{"_index":1704,"title":{},"content":{"229":{},"248":{}},"tags":{}}],["gamer",{"_index":1156,"title":{},"content":{"197":{}},"tags":{}}],["games_default_archive_password",{"_index":1569,"title":{},"content":{"218":{}},"tags":{}}],["games_index_interval_in_minut",{"_index":1557,"title":{},"content":{"218":{}},"tags":{}}],["games_search_recurs",{"_index":1568,"title":{},"content":{"218":{}},"tags":{}}],["games_supported_file_format",{"_index":1566,"title":{},"content":{"218":{}},"tags":{}}],["gametyp",{"_index":2137,"title":{},"content":{"345":{}},"tags":{}}],["gamevault",{"_index":4,"title":{"56":{},"119":{},"159":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"170":{},"171":{},"178":{},"179":{},"180":{},"182":{},"183":{},"185":{},"196":{},"197":{},"198":{},"237":{},"241":{},"255":{},"264":{},"275":{},"321":{},"333":{}},"content":{"48":{},"49":{},"54":{},"57":{},"58":{},"60":{},"63":{},"65":{},"66":{},"67":{},"71":{},"73":{},"74":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"85":{},"87":{},"88":{},"89":{},"90":{},"91":{},"98":{},"105":{},"106":{},"108":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"141":{},"143":{},"144":{},"145":{},"146":{},"147":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"165":{},"168":{},"169":{},"171":{},"172":{},"173":{},"174":{},"175":{},"177":{},"178":{},"179":{},"180":{},"185":{},"187":{},"188":{},"192":{},"193":{},"194":{},"196":{},"197":{},"198":{},"199":{},"202":{},"204":{},"206":{},"210":{},"211":{},"214":{},"215":{},"218":{},"227":{},"230":{},"231":{},"233":{},"237":{},"241":{},"244":{},"245":{},"248":{},"249":{},"250":{},"255":{},"257":{},"258":{},"259":{},"264":{},"265":{},"267":{},"269":{},"270":{},"272":{},"273":{},"274":{},"276":{},"277":{},"278":{},"280":{},"281":{},"283":{},"284":{},"287":{},"289":{},"291":{},"293":{},"294":{},"296":{},"297":{},"300":{},"301":{},"302":{},"303":{},"305":{},"306":{},"307":{},"309":{},"311":{},"312":{},"313":{},"316":{},"317":{},"320":{},"321":{},"322":{},"323":{},"324":{},"326":{},"327":{},"328":{},"332":{},"334":{},"336":{},"337":{},"342":{},"343":{},"344":{},"345":{},"347":{},"349":{},"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"360":{},"363":{},"372":{},"373":{},"374":{}},"tags":{}}],["gamevault'",{"_index":498,"title":{},"content":{"83":{},"179":{},"194":{},"339":{},"341":{}},"tags":{}}],["gamevault.ex",{"_index":310,"title":{},"content":{"69":{},"70":{},"88":{},"149":{}},"tags":{}}],["gamevault/1.3.0",{"_index":217,"title":{},"content":{"61":{}},"tags":{}}],["gamevault://install?gameid=3",{"_index":935,"title":{},"content":{"150":{}},"tags":{}}],["gamevault://query?query=downloaded&gameid=3",{"_index":941,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=exists&gameid=3",{"_index":939,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=getappvers",{"_index":944,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=getinstalldirectory&gameid=3",{"_index":943,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=getname&gameid=3",{"_index":942,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=getserverurl",{"_index":945,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=installed&gameid=3",{"_index":940,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://query?query=isloggedin",{"_index":946,"title":{},"content":{"151":{}},"tags":{}}],["gamevault://show",{"_index":933,"title":{},"content":{"150":{}},"tags":{}}],["gamevault://show?minimized=tru",{"_index":934,"title":{},"content":{"150":{}},"tags":{}}],["gamevault://start?gameid=3",{"_index":937,"title":{},"content":{"150":{}},"tags":{}}],["gamevault://start?gameid=3&minimized=fals",{"_index":938,"title":{},"content":{"150":{}},"tags":{}}],["gamevault://uninstall?gameid=3",{"_index":936,"title":{},"content":{"150":{}},"tags":{}}],["gamevault_user.avatar",{"_index":1697,"title":{},"content":{"228":{}},"tags":{}}],["gamevault_user.background",{"_index":1698,"title":{},"content":{"228":{}},"tags":{}}],["gamevaultinteract",{"_index":956,"title":{},"content":{"152":{}},"tags":{}}],["gamevaultpluginmodul",{"_index":1892,"title":{},"content":{"278":{},"279":{}},"tags":{}}],["gamevaultpluginmodulemetadatav1",{"_index":1895,"title":{},"content":{"278":{}},"tags":{}}],["gamevaultux",{"_index":1309,"title":{},"content":{"180":{}},"tags":{}}],["gamevault’",{"_index":1605,"title":{},"content":{"206":{},"285":{}},"tags":{}}],["garbag",{"_index":1578,"title":{"231":{},"232":{}},"content":{"219":{},"231":{}},"tags":{}}],["gateway",{"_index":2221,"title":{},"content":{"355":{}},"tags":{}}],["gather",{"_index":1394,"title":{},"content":{"192":{}},"tags":{}}],["gb",{"_index":1572,"title":{},"content":{"219":{}},"tags":{}}],["gbr",{"_index":1304,"title":{},"content":{"180":{}},"tags":{}}],["gdpr",{"_index":1080,"title":{},"content":{"166":{}},"tags":{}}],["geforc",{"_index":1176,"title":{},"content":{"198":{}},"tags":{}}],["gem",{"_index":1166,"title":{},"content":{"197":{}},"tags":{}}],["gener",{"_index":393,"title":{},"content":{"75":{},"85":{},"110":{},"111":{},"113":{},"124":{},"178":{},"241":{},"282":{},"358":{}},"tags":{}}],["genr",{"_index":606,"title":{},"content":{"96":{},"201":{},"248":{}},"tags":{}}],["german",{"_index":1303,"title":{},"content":{"180":{}},"tags":{}}],["germani",{"_index":1027,"title":{},"content":{"158":{}},"tags":{}}],["get",{"_index":302,"title":{"68":{}},"content":{"193":{},"202":{},"231":{},"351":{}},"tags":{}}],["get.*401",{"_index":232,"title":{},"content":{"62":{}},"tags":{}}],["getappvers",{"_index":926,"title":{},"content":{"148":{}},"tags":{}}],["getinstalldirectori",{"_index":925,"title":{},"content":{"148":{}},"tags":{}}],["getnam",{"_index":924,"title":{},"content":{"148":{}},"tags":{}}],["getserverurl",{"_index":927,"title":{},"content":{"148":{}},"tags":{}}],["gif",{"_index":1647,"title":{},"content":{"224":{}},"tags":{}}],["gigabyt",{"_index":1162,"title":{},"content":{"197":{}},"tags":{}}],["gist",{"_index":1973,"title":{},"content":{"308":{}},"tags":{}}],["git",{"_index":1889,"title":{},"content":{"278":{},"283":{},"289":{},"296":{}},"tags":{}}],["github",{"_index":286,"title":{},"content":{"66":{},"122":{},"130":{},"168":{},"171":{},"179":{},"182":{},"183":{},"184":{},"202":{},"257":{},"279":{},"283":{},"355":{},"359":{}},"tags":{}}],["give",{"_index":146,"title":{},"content":{"56":{},"77":{},"177":{},"255":{}},"tags":{}}],["given",{"_index":89,"title":{},"content":{"51":{}},"tags":{}}],["go",{"_index":325,"title":{"162":{}},"content":{"70":{},"114":{},"122":{},"173":{},"262":{},"265":{},"331":{},"332":{}},"tags":{}}],["goe",{"_index":283,"title":{},"content":{"66":{}},"tags":{}}],["golden",{"_index":1169,"title":{},"content":{"197":{}},"tags":{}}],["good",{"_index":1411,"title":{},"content":{"193":{},"277":{},"280":{}},"tags":{}}],["goti",{"_index":2158,"title":{},"content":{"345":{}},"tags":{}}],["gpt",{"_index":2110,"title":{},"content":{"343":{}},"tags":{}}],["grac",{"_index":1841,"title":{},"content":{"249":{}},"tags":{}}],["grac_al",{"_index":1842,"title":{},"content":{"249":{}},"tags":{}}],["grac_eighteen",{"_index":1848,"title":{},"content":{"249":{}},"tags":{}}],["grac_fifteen",{"_index":1846,"title":{},"content":{"249":{}},"tags":{}}],["grac_twelv",{"_index":1844,"title":{},"content":{"249":{}},"tags":{}}],["grace",{"_index":2071,"title":{},"content":{"336":{}},"tags":{}}],["gradual",{"_index":1008,"title":{},"content":{"153":{},"359":{}},"tags":{}}],["grand",{"_index":1739,"title":{},"content":{"241":{}},"tags":{}}],["grant",{"_index":1502,"title":{},"content":{"213":{},"349":{},"350":{},"353":{},"354":{},"365":{}},"tags":{}}],["graphic",{"_index":541,"title":{},"content":{"90":{},"224":{},"297":{}},"tags":{}}],["gray",{"_index":597,"title":{},"content":{"96":{}},"tags":{}}],["greatli",{"_index":1280,"title":{},"content":{"179":{}},"tags":{}}],["greet",{"_index":1941,"title":{},"content":{"254":{}},"tags":{}}],["group",{"_index":17,"title":{},"content":{"48":{},"55":{},"213":{}},"tags":{}}],["grow",{"_index":1160,"title":{},"content":{"197":{}},"tags":{}}],["guarante",{"_index":141,"title":{},"content":{"56":{}},"tags":{}}],["guess",{"_index":1431,"title":{},"content":{"372":{}},"tags":{}}],["guest",{"_index":2212,"title":{},"content":{"353":{},"354":{}},"tags":{}}],["gui",{"_index":540,"title":{"90":{}},"content":{"90":{},"336":{}},"tags":{}}],["guid",{"_index":138,"title":{"88":{}},"content":{"56":{},"57":{},"66":{},"67":{},"75":{},"86":{},"87":{},"91":{},"113":{},"141":{},"258":{},"259":{},"275":{},"297":{},"307":{},"308":{},"333":{}},"tags":{}}],["gvbot_",{"_index":371,"title":{},"content":{"74":{}},"tags":{}}],["gvbot_image_download",{"_index":373,"title":{},"content":{"74":{}},"tags":{}}],["gz",{"_index":2098,"title":{},"content":{"343":{},"345":{}},"tags":{}}],["hack",{"_index":2076,"title":{},"content":{"336":{}},"tags":{}}],["halloween",{"_index":1122,"title":{},"content":{"136":{}},"tags":{}}],["halt",{"_index":2047,"title":{},"content":{"305":{}},"tags":{}}],["handl",{"_index":1036,"title":{},"content":{"160":{},"180":{},"206":{},"222":{},"373":{}},"tags":{}}],["handler",{"_index":897,"title":{},"content":{"144":{}},"tags":{}}],["handshak",{"_index":2236,"title":{},"content":{"358":{}},"tags":{}}],["happen",{"_index":700,"title":{},"content":{"113":{},"231":{}},"tags":{}}],["happi",{"_index":1105,"title":{},"content":{"170":{},"191":{}},"tags":{}}],["hard",{"_index":1195,"title":{},"content":{"202":{},"374":{}},"tags":{}}],["hardcod",{"_index":1767,"title":{},"content":{"248":{}},"tags":{}}],["hardcor",{"_index":1375,"title":{"190":{}},"content":{},"tags":{}}],["harder",{"_index":2243,"title":{},"content":{"359":{}},"tags":{}}],["hardwar",{"_index":1381,"title":{},"content":{"190":{},"297":{},"371":{}},"tags":{}}],["harmless",{"_index":1459,"title":{},"content":{"374":{}},"tags":{}}],["hasn't",{"_index":139,"title":{},"content":{"56":{},"259":{}},"tags":{}}],["have",{"_index":1752,"title":{},"content":{"241":{}},"tags":{}}],["haven't",{"_index":57,"title":{},"content":{"49":{}},"tags":{}}],["head",{"_index":128,"title":{},"content":{"55":{}},"tags":{}}],["header",{"_index":397,"title":{},"content":{"76":{},"96":{},"218":{},"221":{},"358":{},"364":{}},"tags":{}}],["health",{"_index":1189,"title":{},"content":{"201":{}},"tags":{}}],["healthi",{"_index":2248,"title":{},"content":{"360":{}},"tags":{}}],["heavyscript",{"_index":2070,"title":{},"content":{"336":{}},"tags":{}}],["help",{"_index":35,"title":{},"content":{"48":{},"127":{},"147":{},"149":{},"255":{},"257":{},"359":{}},"tags":{}}],["here",{"_index":58,"title":{},"content":{"49":{},"68":{},"86":{},"88":{},"113":{},"122":{},"137":{},"153":{},"166":{},"178":{},"181":{},"188":{},"196":{},"207":{},"219":{},"222":{},"242":{},"248":{},"267":{},"273":{},"276":{},"285":{},"286":{},"287":{},"288":{},"293":{},"298":{},"310":{},"313":{},"324":{},"334":{},"345":{},"346":{},"359":{},"364":{},"366":{}},"tags":{}}],["here'",{"_index":948,"title":{},"content":{"152":{},"193":{},"345":{}},"tags":{}}],["here’",{"_index":1880,"title":{},"content":{"275":{},"278":{}},"tags":{}}],["heroic",{"_index":1180,"title":{},"content":{"198":{}},"tags":{}}],["hex",{"_index":1134,"title":{},"content":{"139":{}},"tags":{}}],["hexxit",{"_index":1417,"title":{},"content":{"193":{}},"tags":{}}],["hf",{"_index":2111,"title":{},"content":{"343":{}},"tags":{}}],["hidden",{"_index":522,"title":{},"content":{"84":{}},"tags":{}}],["hide",{"_index":1873,"title":{},"content":{"250":{}},"tags":{}}],["higher",{"_index":590,"title":{},"content":{"96":{},"116":{},"117":{},"193":{},"213":{},"237":{},"238":{},"374":{}},"tags":{}}],["highest",{"_index":1734,"title":{},"content":{"238":{},"241":{},"248":{},"250":{}},"tags":{}}],["highli",{"_index":1191,"title":{},"content":{"201":{}},"tags":{}}],["highlight",{"_index":1260,"title":{},"content":{"179":{}},"tags":{}}],["histori",{"_index":1163,"title":{},"content":{"197":{}},"tags":{}}],["hitman",{"_index":2143,"title":{},"content":{"345":{},"346":{}},"tags":{}}],["hoarder",{"_index":1161,"title":{},"content":{"197":{}},"tags":{}}],["hold",{"_index":1305,"title":{},"content":{"180":{}},"tags":{}}],["holder",{"_index":1315,"title":{},"content":{"180":{}},"tags":{}}],["home/deck/.local/share/steam/steamapps/compatdata/gameappidnumb",{"_index":416,"title":{},"content":{"88":{}},"tags":{}}],["home/deck/.local/share/steam/steamapps/compatdata/gameappidnumber/pfx/drive_c/windows/font",{"_index":423,"title":{},"content":{"88":{}},"tags":{}}],["hope",{"_index":1089,"title":{},"content":{"167":{}},"tags":{}}],["horror",{"_index":1125,"title":{},"content":{"136":{}},"tags":{}}],["host",{"_index":171,"title":{},"content":{"58":{},"62":{},"75":{},"125":{},"194":{},"196":{},"202":{},"215":{}},"tags":{}}],["hoster",{"_index":1157,"title":{},"content":{"197":{}},"tags":{}}],["hostnam",{"_index":2090,"title":{},"content":{"323":{}},"tags":{}}],["hostname:port",{"_index":2089,"title":{},"content":{"323":{}},"tags":{}}],["hostpath",{"_index":2063,"title":{},"content":{"333":{}},"tags":{}}],["http",{"_index":1492,"title":{},"content":{"213":{},"258":{},"364":{}},"tags":{}}],["http://192.168.0.15:8080",{"_index":1996,"title":{},"content":{"313":{}},"tags":{}}],["http://tower.local:8080",{"_index":2088,"title":{},"content":{"323":{}},"tags":{}}],["https://gamevau.lt",{"_index":1903,"title":{},"content":{"278":{}},"tags":{}}],["https://github.com/phalcode/gamevault",{"_index":2011,"title":{},"content":{"289":{}},"tags":{}}],["https://phalcode.github.io/caprov",{"_index":1970,"title":{},"content":{"263":{}},"tags":{}}],["https://store.rg",{"_index":824,"title":{},"content":{"122":{}},"tags":{}}],["https://www.microsoft.com/store/apps/9pckdv76gl75",{"_index":826,"title":{},"content":{"122":{}},"tags":{}}],["hyper",{"_index":2049,"title":{},"content":{"328":{}},"tags":{}}],["i'll",{"_index":1746,"title":{},"content":{"241":{}},"tags":{}}],["i'v",{"_index":411,"title":{},"content":{"88":{}},"tags":{}}],["ico",{"_index":1650,"title":{},"content":{"224":{}},"tags":{}}],["icon",{"_index":557,"title":{},"content":{"92":{},"96":{},"113":{},"116":{},"117":{},"224":{},"254":{},"326":{},"327":{},"337":{}},"tags":{}}],["id",{"_index":453,"title":{},"content":{"78":{},"111":{},"122":{},"149":{},"213":{},"220":{},"235":{},"245":{},"246":{},"248":{},"366":{}},"tags":{}}],["idea",{"_index":711,"title":{},"content":{"113":{},"168":{},"277":{}},"tags":{}}],["ideal",{"_index":1051,"title":{},"content":{"161":{},"374":{}},"tags":{}}],["identif",{"_index":1474,"title":{},"content":{"213":{}},"tags":{}}],["identifi",{"_index":203,"title":{"61":{}},"content":{"111":{},"144":{},"208":{},"258":{}},"tags":{}}],["igdb",{"_index":1586,"title":{"243":{}},"content":{"220":{},"235":{},"241":{},"244":{},"248":{},"249":{},"258":{}},"tags":{}}],["ignor",{"_index":504,"title":{"84":{}},"content":{"84":{},"115":{},"221":{},"241":{},"249":{}},"tags":{}}],["ignorelist",{"_index":525,"title":{},"content":{"84":{}},"tags":{}}],["ihex",{"_index":2112,"title":{},"content":{"343":{}},"tags":{}}],["illeg",{"_index":1220,"title":{},"content":{"204":{},"345":{}},"tags":{}}],["imag",{"_index":65,"title":{"78":{},"79":{},"100":{},"224":{}},"content":{"49":{},"60":{},"78":{},"79":{},"96":{},"100":{},"106":{},"116":{},"117":{},"183":{},"222":{},"224":{},"228":{},"233":{},"245":{},"301":{},"302":{},"309":{},"311":{},"333":{}},"tags":{}}],["image/bmp",{"_index":1639,"title":{},"content":{"224":{}},"tags":{}}],["image/gif",{"_index":1649,"title":{},"content":{"224":{}},"tags":{}}],["image/jpeg",{"_index":1641,"title":{},"content":{"224":{}},"tags":{}}],["image/offlin",{"_index":632,"title":{},"content":{"106":{}},"tags":{}}],["image/png",{"_index":1644,"title":{},"content":{"224":{}},"tags":{}}],["image/tiff",{"_index":1646,"title":{},"content":{"224":{}},"tags":{}}],["image/vnd.microsoft.icon",{"_index":1651,"title":{},"content":{"224":{}},"tags":{}}],["imageid",{"_index":455,"title":{},"content":{"78":{}},"tags":{}}],["immedi",{"_index":463,"title":{},"content":{"78":{},"208":{},"209":{},"353":{}},"tags":{}}],["implement",{"_index":1095,"title":{"280":{}},"content":{"168":{},"218":{},"278":{},"279":{},"285":{},"354":{},"355":{},"357":{}},"tags":{}}],["import",{"_index":84,"title":{"51":{}},"content":{"75":{},"86":{},"88":{},"161":{},"193":{},"237":{},"241":{},"258":{},"278":{},"344":{}},"tags":{}}],["imposs",{"_index":719,"title":{},"content":{"113":{}},"tags":{}}],["improp",{"_index":1229,"title":{},"content":{"204":{}},"tags":{}}],["improv",{"_index":37,"title":{},"content":{"48":{},"162":{}},"tags":{}}],["inc",{"_index":2029,"title":{},"content":{"297":{}},"tags":{}}],["includ",{"_index":383,"title":{},"content":{"75":{},"76":{},"84":{},"93":{},"96":{},"113":{},"115":{},"122":{},"166":{},"179":{},"222":{},"237":{},"248":{},"259":{},"336":{},"345":{},"354":{},"356":{},"358":{},"364":{}},"tags":{}}],["incom",{"_index":1491,"title":{},"content":{"213":{}},"tags":{}}],["incomplet",{"_index":1320,"title":{},"content":{"181":{}},"tags":{}}],["incorpor",{"_index":1128,"title":{},"content":{"137":{}},"tags":{}}],["incorrect",{"_index":755,"title":{"362":{}},"content":{"116":{}},"tags":{}}],["incorrectli",{"_index":704,"title":{},"content":{"113":{},"116":{}},"tags":{}}],["increas",{"_index":279,"title":{},"content":{"66":{}},"tags":{}}],["increment",{"_index":1467,"title":{},"content":{"374":{}},"tags":{}}],["independ",{"_index":1165,"title":{},"content":{"197":{},"372":{}},"tags":{}}],["index",{"_index":641,"title":{"205":{},"363":{}},"content":{"107":{},"193":{},"194":{},"201":{},"205":{},"218":{},"237":{},"339":{},"340":{},"341":{}},"tags":{}}],["indi",{"_index":1164,"title":{},"content":{"197":{}},"tags":{}}],["indic",{"_index":909,"title":{},"content":{"147":{},"180":{},"345":{}},"tags":{}}],["indiegam",{"_index":2183,"title":{},"content":{"346":{}},"tags":{}}],["individu",{"_index":1102,"title":{},"content":{"170":{},"217":{},"252":{}},"tags":{}}],["industri",{"_index":2189,"title":{},"content":{"346":{}},"tags":{}}],["info",{"_index":208,"title":{"268":{},"294":{},"304":{},"314":{},"325":{},"335":{}},"content":{"61":{},"166":{},"193":{},"207":{},"213":{}},"tags":{}}],["inform",{"_index":85,"title":{"51":{}},"content":{"98":{},"113":{},"115":{},"129":{},"130":{},"134":{},"141":{},"148":{},"158":{},"192":{},"205":{},"213":{},"244":{},"254":{},"258":{},"306":{},"323":{},"339":{},"341":{},"356":{},"359":{},"364":{}},"tags":{}}],["init",{"_index":1890,"title":{},"content":{"278":{}},"tags":{}}],["initi",{"_index":778,"title":{"123":{},"349":{},"365":{}},"content":{"118":{},"121":{},"123":{},"124":{},"127":{},"165":{},"175":{},"208":{},"241":{},"278":{},"347":{},"355":{}},"tags":{}}],["inject",{"_index":1919,"title":{},"content":{"281":{}},"tags":{}}],["innov",{"_index":1139,"title":{},"content":{"196":{}},"tags":{}}],["input",{"_index":1096,"title":{},"content":{"168":{},"179":{}},"tags":{}}],["insert",{"_index":228,"title":{},"content":{"62":{},"103":{},"340":{}},"tags":{}}],["insid",{"_index":321,"title":{},"content":{"70":{},"113":{},"214":{},"231":{},"278":{},"294":{},"296":{}},"tags":{}}],["insight",{"_index":1279,"title":{},"content":{"179":{}},"tags":{}}],["inspir",{"_index":287,"title":{},"content":{"66":{}},"tags":{}}],["instagram",{"_index":1253,"title":{},"content":{"179":{}},"tags":{}}],["instal",{"_index":52,"title":{"104":{},"113":{},"120":{},"121":{},"122":{},"138":{},"264":{},"274":{},"290":{},"320":{},"323":{},"333":{},"366":{}},"content":{"49":{},"54":{},"58":{},"69":{},"70":{},"72":{},"77":{},"84":{},"88":{},"92":{},"93":{},"95":{},"97":{},"104":{},"110":{},"111":{},"113":{},"114":{},"115":{},"119":{},"121":{},"122":{},"123":{},"124":{},"127":{},"128":{},"129":{},"130":{},"138":{},"147":{},"148":{},"149":{},"169":{},"196":{},"200":{},"206":{},"208":{},"210":{},"258":{},"259":{},"264":{},"274":{},"282":{},"287":{},"288":{},"290":{},"298":{},"308":{},"318":{},"321":{},"329":{},"333":{},"366":{}},"tags":{}}],["install.ex",{"_index":1613,"title":{},"content":{"208":{}},"tags":{}}],["instanc",{"_index":173,"title":{},"content":{"58":{},"84":{},"258":{},"259":{},"269":{},"276":{},"280":{}},"tags":{}}],["instantli",{"_index":701,"title":{},"content":{"113":{}},"tags":{}}],["instead",{"_index":703,"title":{},"content":{"113":{},"118":{},"310":{},"322":{},"345":{}},"tags":{}}],["instruct",{"_index":834,"title":{},"content":{"124":{},"125":{},"126":{},"258":{},"276":{},"347":{},"362":{},"369":{},"370":{}},"tags":{}}],["int",{"_index":963,"title":{},"content":{"152":{}},"tags":{}}],["integ",{"_index":1763,"title":{},"content":{"246":{}},"tags":{}}],["integr",{"_index":362,"title":{"167":{}},"content":{"73":{},"112":{},"141":{},"143":{},"154":{},"167":{},"180":{},"205":{},"220":{},"244":{},"249":{},"259":{},"272":{},"284":{},"285":{}},"tags":{}}],["intellectu",{"_index":1293,"title":{},"content":{"180":{}},"tags":{}}],["intend",{"_index":1313,"title":{},"content":{"180":{}},"tags":{}}],["intens",{"_index":1382,"title":{},"content":{"190":{}},"tags":{}}],["interact",{"_index":883,"title":{},"content":{"141":{},"143":{},"145":{},"148":{},"152":{},"355":{},"356":{}},"tags":{}}],["interchang",{"_index":1648,"title":{},"content":{"224":{}},"tags":{}}],["interconnect",{"_index":1091,"title":{},"content":{"167":{}},"tags":{}}],["interest",{"_index":1296,"title":{},"content":{"180":{},"257":{},"275":{},"355":{}},"tags":{}}],["interfac",{"_index":542,"title":{},"content":{"90":{},"112":{},"141":{},"143":{},"145":{},"147":{},"154":{},"196":{},"237":{},"259":{},"278":{},"279":{},"297":{},"303":{}},"tags":{}}],["interleav",{"_index":1676,"title":{},"content":{"226":{}},"tags":{}}],["intern",{"_index":1215,"title":{"364":{}},"content":{"177":{},"203":{}},"tags":{}}],["internet",{"_index":737,"title":{},"content":{"115":{},"165":{},"175":{},"244":{}},"tags":{}}],["interv",{"_index":1558,"title":{},"content":{"218":{},"219":{},"220":{}},"tags":{}}],["intro",{"_index":1798,"title":{},"content":{"248":{}},"tags":{}}],["introduc",{"_index":1912,"title":{},"content":{"280":{},"355":{}},"tags":{}}],["introduct",{"_index":152,"title":{"57":{},"153":{},"195":{},"272":{}},"content":{},"tags":{}}],["involv",{"_index":1286,"title":{},"content":{"179":{},"180":{},"347":{}},"tags":{}}],["involved_compani",{"_index":1780,"title":{},"content":{"248":{}},"tags":{}}],["involved_company.develop",{"_index":1781,"title":{},"content":{"248":{}},"tags":{}}],["involved_company.publish",{"_index":1782,"title":{},"content":{"248":{}},"tags":{}}],["ip",{"_index":163,"title":{},"content":{"57":{},"66":{},"303":{},"313":{}},"tags":{}}],["isloggedin",{"_index":929,"title":{},"content":{"148":{}},"tags":{}}],["isn't",{"_index":1066,"title":{},"content":{"164":{}},"tags":{}}],["iso",{"_index":2113,"title":{},"content":{"343":{}},"tags":{}}],["issu",{"_index":71,"title":{"72":{}},"content":{"49":{},"66":{},"72":{},"77":{},"85":{},"179":{},"180":{},"303":{},"310":{},"355":{},"359":{},"360":{},"363":{},"372":{},"374":{}},"tags":{}}],["it'",{"_index":517,"title":{},"content":{"84":{},"179":{},"180":{},"218":{},"230":{},"245":{},"277":{},"355":{},"357":{},"373":{}},"tags":{}}],["itself",{"_index":2223,"title":{},"content":{"355":{}},"tags":{}}],["it’",{"_index":1993,"title":{},"content":{"310":{}},"tags":{}}],["ix",{"_index":2074,"title":{},"content":{"336":{}},"tags":{}}],["ixsystem",{"_index":2075,"title":{},"content":{"336":{}},"tags":{}}],["jail",{"_index":240,"title":{"63":{},"65":{}},"content":{"63":{},"65":{}},"tags":{}}],["javascript",{"_index":1936,"title":{},"content":{"283":{}},"tags":{}}],["jedi",{"_index":2170,"title":{},"content":{"346":{}},"tags":{}}],["jest",{"_index":1927,"title":{},"content":{"281":{}},"tags":{}}],["join",{"_index":42,"title":{"50":{}},"content":{"49":{},"130":{},"257":{}},"tags":{}}],["joy",{"_index":1174,"title":{},"content":{"179":{},"197":{}},"tags":{}}],["jpeg",{"_index":1640,"title":{},"content":{"224":{}},"tags":{}}],["js",{"_index":1878,"title":{},"content":{"274":{}},"tags":{}}],["json",{"_index":389,"title":{},"content":{"75":{},"213":{}},"tags":{}}],["juici",{"_index":1722,"title":{},"content":{"233":{}},"tags":{}}],["jump",{"_index":1885,"title":{},"content":{"277":{}},"tags":{}}],["jurisdict",{"_index":1226,"title":{},"content":{"204":{}},"tags":{}}],["kb",{"_index":1574,"title":{},"content":{"219":{}},"tags":{}}],["kb/",{"_index":1508,"title":{},"content":{"213":{}},"tags":{}}],["keep",{"_index":26,"title":{},"content":{"48":{},"66":{},"70":{},"125":{},"153":{},"162":{},"163":{},"166":{},"179":{},"197":{},"201":{},"231":{},"250":{},"251":{},"254":{},"336":{},"340":{}},"tags":{}}],["kept",{"_index":448,"title":{},"content":{"78":{}},"tags":{}}],["key",{"_index":582,"title":{},"content":{"93":{},"215":{},"254":{}},"tags":{}}],["keyword",{"_index":1783,"title":{},"content":{"248":{},"278":{}},"tags":{}}],["kid",{"_index":1754,"title":{},"content":{"241":{}},"tags":{}}],["kind",{"_index":682,"title":{},"content":{"112":{}},"tags":{}}],["kindli",{"_index":2034,"title":{},"content":{"297":{}},"tags":{}}],["know",{"_index":433,"title":{},"content":{"77":{},"294":{},"303":{},"359":{}},"tags":{}}],["known",{"_index":336,"title":{"72":{}},"content":{},"tags":{}}],["ko",{"_index":1201,"title":{},"content":{"202":{}},"tags":{}}],["kubernet",{"_index":2077,"title":{},"content":{"336":{}},"tags":{}}],["l_p",{"_index":1624,"title":{},"content":{"209":{}},"tags":{}}],["lack",{"_index":804,"title":{"368":{}},"content":{"122":{},"208":{},"355":{}},"tags":{}}],["lan",{"_index":2265,"title":{},"content":{"371":{}},"tags":{}}],["land",{"_index":1983,"title":{},"content":{"309":{}},"tags":{}}],["larg",{"_index":1365,"title":{},"content":{"189":{},"241":{}},"tags":{}}],["larger",{"_index":654,"title":{},"content":{"110":{},"112":{}},"tags":{}}],["last",{"_index":298,"title":{},"content":{"67":{},"122":{},"216":{},"345":{},"372":{}},"tags":{}}],["later",{"_index":92,"title":{},"content":{"51":{},"288":{}},"tags":{}}],["latest",{"_index":379,"title":{},"content":{"75":{},"88":{},"108":{},"130":{},"139":{},"254":{},"296":{}},"tags":{}}],["launch",{"_index":309,"title":{},"content":{"69":{},"79":{},"92":{},"93":{},"95":{},"113":{},"114":{},"115":{},"123":{},"129":{},"149":{},"200":{}},"tags":{}}],["launchbox",{"_index":1181,"title":{},"content":{"198":{}},"tags":{}}],["launcher",{"_index":772,"title":{},"content":{"118":{}},"tags":{}}],["law",{"_index":1082,"title":{},"content":{"166":{},"204":{}},"tags":{}}],["lead",{"_index":437,"title":{},"content":{"77":{},"79":{}},"tags":{}}],["learn",{"_index":537,"title":{},"content":{"86":{},"185":{},"196":{},"233":{},"242":{},"258":{},"259":{},"277":{},"297":{},"307":{}},"tags":{}}],["leav",{"_index":1994,"title":{},"content":{"310":{},"333":{}},"tags":{}}],["leaveopen",{"_index":980,"title":{},"content":{"152":{}},"tags":{}}],["left",{"_index":643,"title":{},"content":{"108":{},"117":{},"301":{},"302":{},"309":{},"311":{},"326":{},"327":{},"366":{}},"tags":{}}],["legal",{"_index":1216,"title":{"204":{}},"content":{"179":{},"180":{},"204":{},"217":{},"252":{}},"tags":{}}],["length",{"_index":1505,"title":{},"content":{"213":{}},"tags":{}}],["less",{"_index":1733,"title":{},"content":{"237":{},"353":{}},"tags":{}}],["let",{"_index":921,"title":{},"content":{"148":{},"196":{}},"tags":{}}],["let'",{"_index":650,"title":{},"content":{"110":{},"111":{},"199":{},"241":{},"340":{}},"tags":{}}],["level",{"_index":1371,"title":{},"content":{"189":{},"190":{},"213":{},"220":{},"354":{}},"tags":{}}],["levenshtein",{"_index":1730,"title":{},"content":{"237":{}},"tags":{}}],["leverag",{"_index":899,"title":{},"content":{"144":{},"336":{}},"tags":{}}],["liabil",{"_index":1306,"title":{},"content":{"180":{}},"tags":{}}],["liberapay",{"_index":1203,"title":{},"content":{"202":{}},"tags":{}}],["librari",{"_index":364,"title":{"92":{}},"content":{"73":{},"88":{},"92":{},"93":{},"111":{},"113":{},"124":{},"197":{},"198":{},"233":{}},"tags":{}}],["licens",{"_index":994,"title":{"170":{},"174":{},"176":{},"177":{},"203":{}},"content":{"165":{},"170":{},"172":{},"173":{},"174":{},"175":{},"177":{},"180":{},"203":{},"278":{},"279":{}},"tags":{}}],["life",{"_index":1258,"title":{},"content":{"179":{}},"tags":{}}],["light",{"_index":862,"title":{},"content":{"132":{},"136":{}},"tags":{}}],["limit",{"_index":86,"title":{},"content":{"51":{},"104":{},"220":{},"353":{},"371":{}},"tags":{}}],["limitless",{"_index":1910,"title":{},"content":{"280":{}},"tags":{}}],["line",{"_index":884,"title":{"149":{}},"content":{"141":{},"143":{},"147":{},"149":{},"337":{}},"tags":{}}],["lineup",{"_index":1954,"title":{},"content":{"257":{}},"tags":{}}],["link",{"_index":332,"title":{"173":{}},"content":{"71":{},"89":{},"93":{},"227":{},"254":{},"263":{}},"tags":{}}],["linux",{"_index":288,"title":{"67":{},"209":{}},"content":{"67":{},"72":{},"87":{},"122":{},"209":{},"328":{}},"tags":{}}],["list",{"_index":98,"title":{"84":{},"154":{},"366":{}},"content":{"51":{},"54":{},"74":{},"84":{},"115":{},"133":{},"147":{},"181":{},"184":{},"198":{},"202":{},"213":{},"218":{},"219":{},"264":{},"273":{},"305":{},"306":{},"342":{},"345":{},"359":{}},"tags":{}}],["listen",{"_index":1511,"title":{},"content":{"213":{}},"tags":{}}],["littl",{"_index":1364,"title":{},"content":{"189":{}},"tags":{}}],["live",{"_index":401,"title":{},"content":{"88":{},"297":{}},"tags":{}}],["load",{"_index":443,"title":{},"content":{"78":{},"79":{},"92":{},"96":{},"274":{}},"tags":{}}],["local",{"_index":444,"title":{},"content":{"78":{},"81":{},"84":{},"95":{},"148":{},"198":{},"258":{},"276":{},"283":{}},"tags":{}}],["localhost",{"_index":1525,"title":{},"content":{"215":{}},"tags":{}}],["locat",{"_index":440,"title":{},"content":{"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"112":{},"113":{},"115":{},"117":{},"124":{},"138":{},"187":{},"254":{},"312":{},"315":{},"374":{}},"tags":{}}],["lock",{"_index":2205,"title":{},"content":{"351":{}},"tags":{}}],["log",{"_index":55,"title":{"60":{},"85":{},"126":{},"261":{},"270":{},"306":{},"316":{},"327":{},"330":{},"337":{}},"content":{"49":{},"57":{},"60":{},"61":{},"83":{},"85":{},"105":{},"126":{},"148":{},"173":{},"175":{},"201":{},"213":{},"214":{},"215":{},"245":{},"261":{},"270":{},"278":{},"281":{},"291":{},"306":{},"316":{},"319":{},"327":{},"333":{},"337":{},"359":{},"360":{},"374":{}},"tags":{}}],["logger",{"_index":1488,"title":{},"content":{"213":{}},"tags":{}}],["logic",{"_index":1908,"title":{"280":{}},"content":{},"tags":{}}],["login",{"_index":500,"title":{},"content":{"83":{},"126":{},"174":{}},"tags":{}}],["logo",{"_index":875,"title":{},"content":{"129":{}},"tags":{}}],["logpath",{"_index":247,"title":{},"content":{"63":{}},"tags":{}}],["long",{"_index":478,"title":{},"content":{"80":{},"175":{},"177":{},"190":{},"339":{},"341":{}},"tags":{}}],["longer",{"_index":688,"title":{},"content":{"112":{},"173":{}},"tags":{}}],["look",{"_index":338,"title":{},"content":{"72":{},"110":{},"113":{},"122":{},"199":{},"241":{},"257":{},"272":{},"278":{},"282":{},"308":{}},"tags":{}}],["lose",{"_index":1710,"title":{},"content":{"231":{}},"tags":{}}],["loss",{"_index":1709,"title":{},"content":{"231":{},"351":{}},"tags":{}}],["lossless",{"_index":1666,"title":{},"content":{"225":{}},"tags":{}}],["lost",{"_index":2201,"title":{"369":{}},"content":{"350":{}},"tags":{}}],["lot",{"_index":1197,"title":{},"content":{"202":{},"245":{},"255":{}},"tags":{}}],["love",{"_index":1175,"title":{},"content":{"197":{},"257":{}},"tags":{}}],["lower",{"_index":1448,"title":{},"content":{"241":{},"366":{},"374":{}},"tags":{}}],["lowercas",{"_index":2145,"title":{},"content":{"345":{}},"tags":{}}],["lowest",{"_index":1751,"title":{},"content":{"241":{}},"tags":{}}],["lpt(1",{"_index":2164,"title":{},"content":{"345":{}},"tags":{}}],["luck—it'",{"_index":1879,"title":{},"content":{"275":{}},"tags":{}}],["lzh",{"_index":2114,"title":{},"content":{"343":{}},"tags":{}}],["lzma",{"_index":2115,"title":{},"content":{"343":{}},"tags":{}}],["m",{"_index":1819,"title":{},"content":{"249":{}},"tags":{}}],["machin",{"_index":904,"title":{},"content":{"145":{},"198":{},"317":{},"355":{}},"tags":{}}],["made",{"_index":764,"title":{},"content":{"116":{},"178":{}},"tags":{}}],["magic",{"_index":1761,"title":{},"content":{"245":{}},"tags":{}}],["main",{"_index":326,"title":{},"content":{"70":{},"111":{},"147":{},"199":{},"337":{}},"tags":{}}],["maintain",{"_index":769,"title":{"236":{}},"content":{"118":{},"180":{},"347":{},"372":{}},"tags":{}}],["major",{"_index":1463,"title":{"252":{}},"content":{"252":{},"374":{}},"tags":{}}],["make",{"_index":43,"title":{},"content":{"49":{},"60":{},"75":{},"88":{},"111":{},"113":{},"125":{},"160":{},"161":{},"166":{},"188":{},"245":{},"254":{},"257":{},"258":{},"265":{},"271":{},"279":{},"280":{},"283":{},"310":{},"320":{},"321":{},"344":{},"356":{},"359":{},"363":{},"364":{},"371":{},"374":{}},"tags":{}}],["malici",{"_index":166,"title":{},"content":{"57":{}},"tags":{}}],["malwar",{"_index":669,"title":{},"content":{"111":{},"171":{}},"tags":{}}],["man",{"_index":2268,"title":{},"content":{"371":{}},"tags":{}}],["manag",{"_index":363,"title":{"77":{},"160":{},"297":{},"300":{},"347":{}},"content":{"73":{},"77":{},"122":{},"174":{},"198":{},"200":{},"204":{},"245":{},"256":{},"258":{},"259":{},"287":{},"288":{},"297":{},"298":{},"300":{},"303":{},"305":{},"306":{},"307":{},"328":{},"347":{},"354":{}},"tags":{}}],["mandatori",{"_index":2215,"title":{},"content":{"353":{}},"tags":{}}],["mani",{"_index":1064,"title":{"164":{}},"content":{"213":{},"373":{}},"tags":{}}],["manual",{"_index":333,"title":{},"content":{"71":{},"77":{},"89":{},"112":{},"113":{},"116":{},"122":{},"129":{},"174":{},"186":{},"193":{},"206":{},"210":{},"238":{},"355":{},"374":{}},"tags":{}}],["map",{"_index":179,"title":{"60":{},"247":{},"362":{}},"content":{"60":{},"237":{},"240":{},"248":{},"342":{},"363":{}},"tags":{}}],["mark",{"_index":645,"title":{},"content":{"108":{},"344":{},"356":{},"368":{}},"tags":{}}],["markdown",{"_index":573,"title":{},"content":{"93":{},"108":{},"222":{},"254":{}},"tags":{}}],["match",{"_index":468,"title":{},"content":{"79":{},"193":{},"231":{},"237":{},"239":{},"249":{},"339":{},"341":{}},"tags":{}}],["matroska",{"_index":1686,"title":{},"content":{"226":{}},"tags":{}}],["matter",{"_index":1100,"title":{},"content":{"169":{},"193":{}},"tags":{}}],["maxim",{"_index":1351,"title":{},"content":{"187":{},"359":{}},"tags":{}}],["maximum",{"_index":558,"title":{},"content":{"92":{},"187":{},"190":{},"213":{},"219":{}},"tags":{}}],["maxretri",{"_index":249,"title":{},"content":{"63":{},"66":{}},"tags":{}}],["mb",{"_index":1571,"title":{},"content":{"219":{}},"tags":{}}],["mbr",{"_index":2116,"title":{},"content":{"343":{}},"tags":{}}],["md=32m",{"_index":1385,"title":{},"content":{"190":{}},"tags":{}}],["mean",{"_index":920,"title":{},"content":{"148":{},"177":{},"179":{},"202":{},"204":{},"355":{}},"tags":{}}],["measur",{"_index":1079,"title":{},"content":{"166":{},"180":{},"218":{},"372":{}},"tags":{}}],["mechan",{"_index":1425,"title":{},"content":{"372":{}},"tags":{}}],["media",{"_index":568,"title":{"219":{},"222":{},"227":{},"228":{},"229":{},"230":{},"231":{},"363":{}},"content":{"93":{},"179":{},"214":{},"219":{},"222":{},"225":{},"226":{},"227":{},"230":{},"231":{},"291":{},"309":{},"367":{}},"tags":{}}],["media_gc_dis",{"_index":1577,"title":{},"content":{"219":{},"231":{},"232":{}},"tags":{}}],["media_gc_interval_in_minut",{"_index":1580,"title":{},"content":{"219":{},"231":{}},"tags":{}}],["media_max_s",{"_index":1570,"title":{},"content":{"219":{}},"tags":{}}],["media_supported_format",{"_index":1575,"title":{},"content":{"219":{}},"tags":{}}],["meet",{"_index":45,"title":{},"content":{"49":{},"51":{},"166":{},"178":{},"258":{}},"tags":{}}],["member",{"_index":15,"title":{},"content":{"48":{},"51":{},"56":{},"202":{},"297":{}},"tags":{}}],["memori",{"_index":1601,"title":{},"content":{"221":{}},"tags":{}}],["mention",{"_index":331,"title":{},"content":{"71":{},"89":{},"179":{},"345":{},"360":{}},"tags":{}}],["menu",{"_index":707,"title":{},"content":{"113":{},"118":{},"122":{}},"tags":{}}],["mere",{"_index":779,"title":{},"content":{"118":{}},"tags":{}}],["merg",{"_index":1179,"title":{"241":{}},"content":{"198":{},"221":{},"241":{}},"tags":{}}],["messag",{"_index":51,"title":{},"content":{"49":{},"145":{},"152":{},"174":{},"202":{}},"tags":{}}],["metadata",{"_index":485,"title":{"81":{},"220":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"241":{},"242":{},"285":{},"368":{}},"content":{"81":{},"96":{},"116":{},"194":{},"196":{},"200":{},"201":{},"219":{},"220":{},"221":{},"233":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"245":{},"250":{},"258":{},"278":{},"279":{},"285":{},"367":{},"368":{}},"tags":{}}],["metadata_igdb_client_id",{"_index":1593,"title":{},"content":{"220":{},"245":{},"246":{}},"tags":{}}],["metadata_igdb_client_secret",{"_index":1594,"title":{},"content":{"220":{},"245":{},"246":{}},"tags":{}}],["metadata_igdb_en",{"_index":1585,"title":{},"content":{"220":{},"246":{}},"tags":{}}],["metadata_igdb_prior",{"_index":1587,"title":{},"content":{"220":{},"246":{}},"tags":{}}],["metadata_igdb_request_interval_m",{"_index":1588,"title":{},"content":{"220":{}},"tags":{}}],["metadata_ttl_in_day",{"_index":1581,"title":{},"content":{"220":{}},"tags":{}}],["metal",{"_index":1480,"title":{},"content":{"213":{}},"tags":{}}],["method",{"_index":294,"title":{"161":{},"189":{},"190":{},"191":{},"256":{},"257":{}},"content":{"67":{},"87":{},"122":{},"161":{},"191":{},"237":{},"287":{},"336":{}},"tags":{}}],["mfb=64",{"_index":1384,"title":{},"content":{"190":{}},"tags":{}}],["microsoft",{"_index":53,"title":{"129":{}},"content":{"49":{},"54":{},"77":{},"121":{},"122":{},"129":{},"169":{},"179":{}},"tags":{}}],["middl",{"_index":2267,"title":{},"content":{"371":{}},"tags":{}}],["millisecond",{"_index":1589,"title":{},"content":{"220":{}},"tags":{}}],["mime",{"_index":1576,"title":{},"content":{"219":{},"224":{},"225":{},"226":{}},"tags":{}}],["mind",{"_index":27,"title":{},"content":{"48":{},"66":{},"70":{},"125":{},"163":{},"250":{},"251":{},"272":{},"336":{}},"tags":{}}],["mindustri",{"_index":2230,"title":{},"content":{"356":{}},"tags":{}}],["mine",{"_index":420,"title":{},"content":{"88":{}},"tags":{}}],["minecraft",{"_index":1412,"title":{},"content":{"193":{},"340":{},"344":{},"346":{}},"tags":{}}],["minim",{"_index":774,"title":{},"content":{"118":{},"147":{},"149":{}},"tags":{}}],["minimized=[true/fals",{"_index":914,"title":{},"content":{"147":{}},"tags":{}}],["minimized=fals",{"_index":932,"title":{},"content":{"149":{}},"tags":{}}],["minimized=tru",{"_index":930,"title":{},"content":{"149":{}},"tags":{}}],["minimum",{"_index":1802,"title":{},"content":{"249":{},"250":{}},"tags":{}}],["minut",{"_index":788,"title":{},"content":{"121":{},"218":{},"219":{},"333":{}},"tags":{}}],["misconfigur",{"_index":2202,"title":{},"content":{"350":{}},"tags":{}}],["mislead",{"_index":1298,"title":{},"content":{"180":{}},"tags":{}}],["miss",{"_index":714,"title":{"367":{}},"content":{"113":{},"218":{},"233":{},"238":{},"241":{}},"tags":{}}],["mistakenli",{"_index":1299,"title":{},"content":{"180":{},"371":{}},"tags":{}}],["mkdir",{"_index":2015,"title":{},"content":{"291":{}},"tags":{}}],["mkv",{"_index":1685,"title":{},"content":{"226":{}},"tags":{}}],["mock",{"_index":1598,"title":{},"content":{"221":{}},"tags":{}}],["modif",{"_index":1118,"title":{},"content":{"171":{},"178":{}},"tags":{}}],["modifi",{"_index":241,"title":{"116":{},"117":{}},"content":{"63":{},"77":{},"78":{},"115":{},"116":{},"339":{}},"tags":{}}],["modpack",{"_index":1414,"title":{},"content":{"193":{}},"tags":{}}],["modul",{"_index":1883,"title":{},"content":{"277":{},"278":{},"280":{}},"tags":{}}],["modular",{"_index":1192,"title":{},"content":{"201":{},"272":{}},"tags":{}}],["moment",{"_index":1069,"title":{},"content":{"164":{},"192":{}},"tags":{}}],["monet",{"_index":1287,"title":{},"content":{"179":{}},"tags":{}}],["monitor",{"_index":618,"title":{},"content":{"97":{},"115":{},"201":{},"297":{},"374":{}},"tags":{}}],["mood",{"_index":1124,"title":{},"content":{"136":{}},"tags":{}}],["more",{"_index":538,"title":{"162":{},"167":{},"257":{}},"content":{"86":{},"113":{},"122":{},"133":{},"134":{},"158":{},"166":{},"167":{},"178":{},"186":{},"188":{},"196":{},"201":{},"207":{},"213":{},"237":{},"241":{},"257":{},"310":{},"356":{},"364":{},"374":{}},"tags":{}}],["morgan",{"_index":1490,"title":{},"content":{"213":{}},"tags":{}}],["mostli",{"_index":843,"title":{},"content":{"125":{}},"tags":{}}],["mount",{"_index":1423,"title":{},"content":{"194":{},"254":{},"266":{},"309":{},"310":{}},"tags":{}}],["mov",{"_index":1679,"title":{},"content":{"226":{}},"tags":{}}],["move",{"_index":699,"title":{"341":{}},"content":{"113":{},"341":{}},"tags":{}}],["mp3",{"_index":1653,"title":{},"content":{"225":{}},"tags":{}}],["mp4",{"_index":1672,"title":{},"content":{"225":{},"226":{}},"tags":{}}],["mpeg",{"_index":1654,"title":{},"content":{"225":{},"226":{}},"tags":{}}],["ms",{"_index":215,"title":{},"content":{"61":{},"225":{},"226":{}},"tags":{}}],["ms=off",{"_index":1368,"title":{},"content":{"189":{}},"tags":{}}],["ms=on",{"_index":1386,"title":{},"content":{"190":{}},"tags":{}}],["msi",{"_index":1615,"title":{},"content":{"208":{},"209":{},"343":{}},"tags":{}}],["msvideo",{"_index":1678,"title":{},"content":{"226":{}},"tags":{}}],["much",{"_index":1379,"title":{},"content":{"190":{},"359":{}},"tags":{}}],["multi",{"_index":1187,"title":{},"content":{"201":{},"225":{},"307":{}},"tags":{}}],["multimedia",{"_index":1692,"title":{},"content":{"226":{}},"tags":{}}],["multipl",{"_index":616,"title":{"163":{},"193":{}},"content":{"96":{},"122":{},"193":{},"206":{},"220":{},"249":{},"250":{},"255":{},"340":{},"345":{}},"tags":{}}],["mx=0",{"_index":1367,"title":{},"content":{"189":{}},"tags":{}}],["mx=9",{"_index":1383,"title":{},"content":{"190":{}},"tags":{}}],["n/a",{"_index":1749,"title":{},"content":{"241":{},"345":{}},"tags":{}}],["na",{"_index":2030,"title":{},"content":{"297":{},"298":{},"300":{},"305":{},"306":{},"317":{}},"tags":{}}],["name",{"_index":318,"title":{"192":{},"345":{}},"content":{"70":{},"111":{},"113":{},"148":{},"180":{},"188":{},"192":{},"194":{},"206":{},"215":{},"216":{},"222":{},"224":{},"225":{},"226":{},"248":{},"249":{},"278":{},"300":{},"309":{},"342":{},"345":{},"346":{},"366":{},"368":{}},"tags":{}}],["namedpip",{"_index":886,"title":{"145":{}},"content":{"141":{},"145":{},"152":{}},"tags":{}}],["namedpipeclientstream(\"gamevault",{"_index":970,"title":{},"content":{"152":{}},"tags":{}}],["nano",{"_index":225,"title":{},"content":{"62":{},"63":{}},"tags":{}}],["nas'",{"_index":2046,"title":{},"content":{"303":{}},"tags":{}}],["nativ",{"_index":1953,"title":{"287":{}},"content":{"256":{}},"tags":{}}],["navig",{"_index":579,"title":{"262":{},"331":{},"332":{}},"content":{"93":{},"124":{},"269":{},"270":{},"278":{},"305":{},"306":{},"312":{},"315":{},"319":{},"326":{},"327":{},"337":{}},"tags":{}}],["nc",{"_index":2149,"title":{},"content":{"345":{},"346":{},"368":{}},"tags":{}}],["nearli",{"_index":718,"title":{},"content":{"113":{}},"tags":{}}],["necessari",{"_index":548,"title":{"299":{}},"content":{"91":{},"113":{},"126":{},"192":{},"288":{},"290":{},"291":{},"354":{}},"tags":{}}],["need",{"_index":303,"title":{"159":{}},"content":{"68":{},"71":{},"76":{},"88":{},"89":{},"112":{},"113":{},"119":{},"123":{},"125":{},"126":{},"127":{},"129":{},"165":{},"180":{},"188":{},"204":{},"210":{},"213":{},"214":{},"215":{},"238":{},"257":{},"258":{},"264":{},"270":{},"272":{},"290":{},"339":{},"342":{},"349":{},"352":{},"355":{},"365":{},"373":{},"374":{}},"tags":{}}],["nestj",{"_index":1882,"title":{},"content":{"277":{},"280":{},"285":{}},"tags":{}}],["nestjs/common",{"_index":1894,"title":{},"content":{"278":{}},"tags":{}}],["net",{"_index":399,"title":{},"content":{"88":{}},"tags":{}}],["network",{"_index":1643,"title":{},"content":{"224":{},"258":{},"297":{},"317":{},"355":{},"371":{}},"tags":{}}],["never",{"_index":1450,"title":{},"content":{"374":{}},"tags":{}}],["new",{"_index":21,"title":{"108":{},"168":{},"242":{},"254":{}},"content":{"48":{},"70":{},"105":{},"108":{},"110":{},"129":{},"139":{},"152":{},"162":{},"179":{},"213":{},"216":{},"231":{},"241":{},"245":{},"251":{},"254":{},"257":{},"258":{},"263":{},"278":{},"309":{},"339":{},"341":{},"352":{},"353":{},"366":{}},"tags":{}}],["newest",{"_index":2193,"title":{},"content":{"340":{}},"tags":{}}],["newli",{"_index":1132,"title":{},"content":{"138":{},"353":{}},"tags":{}}],["news.md",{"_index":1939,"title":{},"content":{"254":{}},"tags":{}}],["next",{"_index":97,"title":{"258":{}},"content":{"51":{},"80":{},"124":{},"125":{},"187":{},"241":{},"351":{}},"tags":{}}],["nf",{"_index":2064,"title":{},"content":{"333":{}},"tags":{}}],["nginx",{"_index":1964,"title":{},"content":{"258":{}},"tags":{}}],["nice",{"_index":1010,"title":{},"content":{"153":{}},"tags":{}}],["nlp",{"_index":1729,"title":{},"content":{"237":{}},"tags":{}}],["nobodi",{"_index":1719,"title":{},"content":{"233":{}},"tags":{}}],["nocach",{"_index":2138,"title":{},"content":{"345":{}},"tags":{}}],["node",{"_index":2007,"title":{},"content":{"288":{},"290":{}},"tags":{}}],["node.j",{"_index":2002,"title":{},"content":{"288":{}},"tags":{}}],["non",{"_index":407,"title":{},"content":{"88":{},"125":{},"180":{},"213":{},"288":{},"363":{}},"tags":{}}],["noncommerci",{"_index":1212,"title":{},"content":{"177":{},"203":{}},"tags":{}}],["none",{"_index":910,"title":{},"content":{"147":{},"287":{},"297":{}},"tags":{}}],["normal",{"_index":1708,"title":{},"content":{"230":{}},"tags":{}}],["note",{"_index":233,"title":{},"content":{"62":{},"67":{},"87":{},"93":{},"115":{},"116":{},"187":{},"229":{},"248":{},"254":{},"301":{},"302":{},"309":{},"311":{},"333":{},"345":{},"355":{}},"tags":{}}],["noth",{"_index":1434,"title":{},"content":{"278":{},"372":{}},"tags":{}}],["notic",{"_index":1456,"title":{},"content":{"374":{}},"tags":{}}],["notif",{"_index":1944,"title":{},"content":{"254":{}},"tags":{}}],["now",{"_index":655,"title":{},"content":{"110":{},"111":{},"113":{},"127":{},"154":{},"173":{},"198":{},"241":{},"245":{},"258":{},"264":{},"267":{},"270":{},"280":{},"290":{},"293":{},"303":{},"313":{},"323":{},"324":{},"334":{},"355":{}},"tags":{}}],["nowaday",{"_index":1561,"title":{},"content":{"218":{}},"tags":{}}],["npm",{"_index":2008,"title":{},"content":{"288":{}},"tags":{}}],["nsi",{"_index":2117,"title":{},"content":{"343":{}},"tags":{}}],["ntf",{"_index":2118,"title":{},"content":{"343":{}},"tags":{}}],["nul",{"_index":2162,"title":{},"content":{"345":{}},"tags":{}}],["null",{"_index":968,"title":{},"content":{"152":{}},"tags":{}}],["number",{"_index":1068,"title":{},"content":{"164":{},"190":{},"213":{},"215":{},"217":{},"218":{},"219":{},"220":{},"241":{}},"tags":{}}],["numer",{"_index":1726,"title":{},"content":{"237":{},"258":{}},"tags":{}}],["object",{"_index":1735,"title":{},"content":{"238":{},"241":{}},"tags":{}}],["observ",{"_index":873,"title":{},"content":{"129":{}},"tags":{}}],["obtain",{"_index":791,"title":{},"content":{"122":{},"129":{},"148":{},"187":{},"202":{},"204":{}},"tags":{}}],["occur",{"_index":276,"title":{},"content":{"66":{},"85":{},"113":{},"205":{},"359":{}},"tags":{}}],["offer",{"_index":357,"title":{},"content":{"73":{},"90":{},"131":{},"137":{},"141":{},"154":{},"161":{},"163":{},"196":{},"317":{},"336":{},"373":{}},"tags":{}}],["offic",{"_index":2085,"title":{},"content":{"319":{}},"tags":{}}],["offici",{"_index":39,"title":{},"content":{"48":{},"121":{},"169":{},"180":{},"259":{},"277":{},"284":{}},"tags":{}}],["offlin",{"_index":473,"title":{"80":{},"81":{},"165":{},"175":{}},"content":{"80":{},"81":{},"106":{},"165":{},"175":{},"200":{},"213":{},"356":{},"357":{}},"tags":{}}],["offset",{"_index":1731,"title":{},"content":{"237":{}},"tags":{}}],["ogg",{"_index":1659,"title":{},"content":{"225":{}},"tags":{}}],["old",{"_index":868,"title":{},"content":{"132":{},"339":{},"341":{}},"tags":{}}],["older",{"_index":2270,"title":{},"content":{"371":{}},"tags":{}}],["on",{"_index":720,"title":{"262":{},"264":{}},"content":{"113":{},"118":{},"125":{},"126":{},"193":{},"197":{},"206":{},"230":{},"236":{},"237":{},"238":{},"241":{},"244":{},"245":{},"255":{},"259":{},"262":{},"263":{},"291":{},"302":{},"317":{},"321":{},"339":{},"342":{},"345":{},"366":{}},"tags":{}}],["onc",{"_index":130,"title":{},"content":{"55":{},"81":{},"92":{},"113":{},"114":{},"115":{},"123":{},"124":{},"129":{},"165":{},"175":{},"192":{},"194":{},"245":{},"258":{},"279":{},"282":{},"285":{},"337":{},"356":{}},"tags":{}}],["ongo",{"_index":1281,"title":{},"content":{"179":{}},"tags":{}}],["onlin",{"_index":484,"title":{},"content":{"80":{},"179":{},"213":{},"356":{}},"tags":{}}],["open",{"_index":220,"title":{"178":{}},"content":{"62":{},"84":{},"92":{},"97":{},"103":{},"107":{},"116":{},"122":{},"125":{},"138":{},"149":{},"173":{},"177":{},"178":{},"179":{},"245":{},"259":{},"299":{},"300":{},"312":{},"315":{},"316":{},"328":{},"359":{}},"tags":{}}],["openapi",{"_index":375,"title":{"75":{}},"content":{"75":{}},"tags":{}}],["oper",{"_index":783,"title":{},"content":{"121":{},"122":{},"305":{},"317":{},"329":{},"336":{},"372":{}},"tags":{}}],["opportun",{"_index":6,"title":{},"content":{"48":{}},"tags":{}}],["opt",{"_index":1072,"title":{},"content":{"165":{},"336":{},"352":{}},"tags":{}}],["optim",{"_index":464,"title":{"79":{}},"content":{"79":{}},"tags":{}}],["option",{"_index":300,"title":{"121":{},"122":{}},"content":{"67":{},"91":{},"95":{},"103":{},"122":{},"125":{},"126":{},"131":{},"148":{},"153":{},"169":{},"189":{},"190":{},"191":{},"193":{},"218":{},"257":{},"258":{},"280":{},"333":{},"345":{},"352":{},"374":{}},"tags":{}}],["order",{"_index":768,"title":{},"content":{"118":{}},"tags":{}}],["order(v1.0.10.0",{"_index":2172,"title":{},"content":{"346":{}},"tags":{}}],["organ",{"_index":1141,"title":{},"content":{"196":{},"197":{}},"tags":{}}],["origin",{"_index":1366,"title":{},"content":{"189":{},"213":{}},"tags":{}}],["other",{"_index":1256,"title":{},"content":{"179":{}},"tags":{}}],["otherwis",{"_index":1876,"title":{},"content":{"252":{},"333":{}},"tags":{}}],["out",{"_index":77,"title":{},"content":{"50":{},"75":{},"83":{},"96":{},"105":{},"113":{},"125":{},"127":{},"139":{},"166":{},"196":{},"202":{},"211":{},"245":{},"257":{},"286":{},"310":{},"323":{},"351":{},"355":{}},"tags":{}}],["outdat",{"_index":457,"title":{},"content":{"78":{},"340":{}},"tags":{}}],["outlin",{"_index":174,"title":{},"content":{"58":{},"179":{},"186":{},"222":{},"285":{},"372":{}},"tags":{}}],["output",{"_index":822,"title":{},"content":{"122":{}},"tags":{}}],["outsid",{"_index":1958,"title":{},"content":{"258":{}},"tags":{}}],["over",{"_index":129,"title":{},"content":{"55":{},"180":{},"241":{},"354":{}},"tags":{}}],["overflow",{"_index":1271,"title":{},"content":{"179":{}},"tags":{}}],["overrid",{"_index":698,"title":{"253":{}},"content":{"113":{},"206":{},"208":{},"209":{},"250":{},"253":{},"344":{},"345":{}},"tags":{}}],["overview",{"_index":426,"title":{"90":{},"244":{}},"content":{"77":{},"90":{}},"tags":{}}],["overwrit",{"_index":697,"title":{},"content":{"113":{},"116":{},"241":{}},"tags":{}}],["overwritten",{"_index":613,"title":{},"content":{"96":{},"193":{}},"tags":{}}],["overwrot",{"_index":1755,"title":{},"content":{"241":{}},"tags":{}}],["owner",{"_index":1285,"title":{},"content":{"179":{},"351":{},"357":{}},"tags":{}}],["p",{"_index":2016,"title":{},"content":{"291":{}},"tags":{}}],["p7zip",{"_index":2003,"title":{},"content":{"288":{}},"tags":{}}],["pack",{"_index":2132,"title":{},"content":{"344":{}},"tags":{}}],["packag",{"_index":345,"title":{},"content":{"72":{},"288":{}},"tags":{}}],["page",{"_index":289,"title":{"331":{},"332":{}},"content":{"67":{},"70":{},"77":{},"87":{},"91":{},"92":{},"116":{},"122":{},"211":{},"212":{},"222":{},"234":{},"250":{},"264":{},"297":{},"355":{}},"tags":{}}],["pagin",{"_index":1190,"title":{},"content":{"201":{}},"tags":{}}],["panel",{"_index":2214,"title":{},"content":{"353":{}},"tags":{}}],["parallel",{"_index":2006,"title":{},"content":{"288":{}},"tags":{}}],["paramet",{"_index":385,"title":{"147":{}},"content":{"75":{},"95":{},"143":{},"144":{},"147":{},"148":{},"312":{}},"tags":{}}],["parent",{"_index":1188,"title":{"217":{},"250":{},"251":{}},"content":{"201":{},"217":{},"250":{},"251":{},"252":{}},"tags":{}}],["parental_age_of_major",{"_index":1554,"title":{},"content":{"217":{},"252":{}},"tags":{}}],["parental_age_restriction_en",{"_index":1551,"title":{},"content":{"216":{},"217":{},"251":{}},"tags":{}}],["parenthes",{"_index":1405,"title":{},"content":{"193":{},"345":{}},"tags":{}}],["parentid",{"_index":451,"title":{},"content":{"78":{}},"tags":{}}],["parentid.imageid",{"_index":450,"title":{},"content":{"78":{}},"tags":{}}],["part",{"_index":73,"title":{},"content":{"50":{},"111":{},"179":{},"345":{}},"tags":{}}],["parti",{"_index":361,"title":{"263":{}},"content":{"73":{},"141":{},"180":{},"259":{},"263":{},"336":{}},"tags":{}}],["particip",{"_index":32,"title":{"49":{}},"content":{"48":{},"49":{}},"tags":{}}],["particularli",{"_index":1604,"title":{},"content":{"206":{},"284":{},"364":{}},"tags":{}}],["partner",{"_index":1083,"title":{},"content":{"166":{},"244":{}},"tags":{}}],["partnership",{"_index":1090,"title":{},"content":{"167":{},"180":{}},"tags":{}}],["pass",{"_index":900,"title":{},"content":{"144":{},"211":{}},"tags":{}}],["password",{"_index":626,"title":{"351":{},"370":{}},"content":{"101":{},"104":{},"125":{},"126":{},"213":{},"215":{},"218":{},"301":{},"309":{},"320":{},"323":{},"333":{},"351":{},"370":{},"372":{}},"tags":{}}],["past",{"_index":762,"title":{},"content":{"116":{},"117":{},"122":{},"263":{},"301":{}},"tags":{}}],["path",{"_index":201,"title":{},"content":{"60":{},"106":{},"110":{},"113":{},"124":{},"205":{},"214":{},"215":{},"300":{},"301":{},"302":{},"309":{},"310":{},"311":{},"339":{},"341":{}},"tags":{}}],["path/to/game/folder/crawl",{"_index":1370,"title":{},"content":{"189":{},"190":{},"191":{}},"tags":{}}],["pattern",{"_index":1609,"title":{},"content":{"208":{},"280":{}},"tags":{}}],["pay",{"_index":1039,"title":{},"content":{"161":{},"342":{}},"tags":{}}],["payment",{"_index":1033,"title":{"160":{},"161":{}},"content":{"161":{},"166":{}},"tags":{}}],["paypal",{"_index":1205,"title":{},"content":{"202":{}},"tags":{}}],["paywal",{"_index":1114,"title":{},"content":{"171":{}},"tags":{}}],["pc",{"_index":1183,"title":{},"content":{"200":{}},"tags":{}}],["pci",{"_index":1084,"title":{},"content":{"166":{}},"tags":{}}],["pegi",{"_index":1804,"title":{},"content":{"249":{}},"tags":{}}],["peopl",{"_index":1055,"title":{},"content":{"162":{},"255":{},"257":{}},"tags":{}}],["per",{"_index":745,"title":{},"content":{"115":{},"237":{},"238":{}},"tags":{}}],["perfect",{"_index":1154,"title":{},"content":{"197":{}},"tags":{}}],["perform",{"_index":465,"title":{},"content":{"79":{},"97":{},"130":{},"179":{},"186":{},"205":{},"287":{},"374":{}},"tags":{}}],["period",{"_index":1071,"title":{},"content":{"165":{}},"tags":{}}],["perman",{"_index":1206,"title":{},"content":{"202":{}},"tags":{}}],["permiss",{"_index":2200,"title":{"363":{}},"content":{"349":{},"350":{},"354":{},"363":{},"365":{},"366":{}},"tags":{}}],["permit",{"_index":1289,"title":{},"content":{"180":{}},"tags":{}}],["persist",{"_index":1694,"title":{"227":{}},"content":{"227":{}},"tags":{}}],["person",{"_index":140,"title":{},"content":{"56":{},"93":{},"131":{},"135":{},"156":{},"159":{},"163":{},"170":{},"171":{},"180":{},"193":{},"196":{},"346":{}},"tags":{}}],["perspect",{"_index":1111,"title":{},"content":{"171":{}},"tags":{}}],["pg",{"_index":2060,"title":{},"content":{"329":{}},"tags":{}}],["pgdump",{"_index":1442,"title":{},"content":{"373":{}},"tags":{}}],["pgid",{"_index":1476,"title":{},"content":{"213":{},"363":{}},"tags":{}}],["phalcod",{"_index":113,"title":{"158":{},"173":{}},"content":{"54":{},"83":{},"136":{},"156":{},"158":{},"166":{},"179":{},"180":{},"278":{},"286":{},"322":{}},"tags":{}}],["phalcode'",{"_index":1968,"title":{"263":{}},"content":{},"tags":{}}],["phalcode/gamevault",{"_index":63,"title":{},"content":{"49":{},"60":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["phase",{"_index":60,"title":{},"content":{"49":{},"50":{},"53":{}},"tags":{}}],["pick",{"_index":821,"title":{},"content":{"122":{}},"tags":{}}],["pictur",{"_index":765,"title":{},"content":{"117":{},"154":{}},"tags":{}}],["pin",{"_index":50,"title":{},"content":{"49":{}},"tags":{}}],["ping",{"_index":1945,"title":{},"content":{"254":{}},"tags":{}}],["piraci",{"_index":1222,"title":{},"content":{"204":{}},"tags":{}}],["pirat",{"_index":1115,"title":{},"content":{"171":{},"198":{}},"tags":{}}],["place",{"_index":100,"title":{},"content":{"51":{},"88":{},"138":{},"185":{},"194":{},"274":{}},"tags":{}}],["placehold",{"_index":1721,"title":{},"content":{"233":{}},"tags":{}}],["plan",{"_index":1022,"title":{},"content":{"156":{}},"tags":{}}],["platform",{"_index":790,"title":{},"content":{"122":{},"167":{},"196":{},"202":{},"257":{},"259":{},"307":{},"328":{},"356":{}},"tags":{}}],["play",{"_index":554,"title":{"114":{}},"content":{"92":{},"111":{},"113":{},"114":{},"115":{},"196":{},"200":{},"208":{},"209":{},"213":{},"241":{},"354":{},"356":{}},"tags":{}}],["playabl",{"_index":713,"title":{},"content":{"113":{}},"tags":{}}],["player",{"_index":569,"title":{},"content":{"93":{}},"tags":{}}],["playnit",{"_index":890,"title":{},"content":{"141":{},"154":{},"198":{}},"tags":{}}],["playtim",{"_index":482,"title":{},"content":{"80":{},"84":{},"115":{},"118":{},"196":{},"200":{}},"tags":{}}],["pleas",{"_index":25,"title":{},"content":{"48":{},"49":{},"67":{},"77":{},"87":{},"115":{},"116":{},"122":{},"125":{},"129":{},"161":{},"163":{},"170":{},"171":{},"179":{},"186":{},"231":{},"244":{},"303":{},"333":{},"355":{},"357":{}},"tags":{}}],["plex",{"_index":1143,"title":{},"content":{"196":{}},"tags":{}}],["plugin",{"_index":1193,"title":{"242":{},"271":{},"273":{},"274":{},"275":{},"278":{},"279":{},"281":{},"282":{},"283":{},"285":{},"286":{}},"content":{"177":{},"201":{},"214":{},"233":{},"237":{},"242":{},"271":{},"272":{},"273":{},"274":{},"275":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{},"291":{},"318":{}},"tags":{}}],["plugin'",{"_index":1907,"title":{"280":{}},"content":{},"tags":{}}],["plugin.module.j",{"_index":1931,"title":{},"content":{"282":{}},"tags":{}}],["plugin.plugin.module.t",{"_index":1905,"title":{},"content":{"278":{}},"tags":{}}],["plugin_authorname_pluginname_set",{"_index":1914,"title":{},"content":{"280":{}},"tags":{}}],["plugin_phalcode_useless_en",{"_index":1915,"title":{},"content":{"280":{}},"tags":{}}],["plugin’",{"_index":1935,"title":{},"content":{"283":{}},"tags":{}}],["png",{"_index":1642,"title":{},"content":{"224":{}},"tags":{}}],["pnpm",{"_index":1918,"title":{},"content":{"281":{},"282":{},"288":{},"290":{},"292":{}},"tags":{}}],["pod",{"_index":2082,"title":{},"content":{"337":{}},"tags":{}}],["podcast",{"_index":1257,"title":{},"content":{"179":{}},"tags":{}}],["point",{"_index":928,"title":{},"content":{"148":{},"278":{},"374":{}},"tags":{}}],["polici",{"_index":1088,"title":{},"content":{"166":{}},"tags":{}}],["pop",{"_index":2091,"title":{},"content":{"327":{}},"tags":{}}],["popular",{"_index":1042,"title":{},"content":{"161":{},"196":{},"244":{}},"tags":{}}],["popup",{"_index":760,"title":{},"content":{"116":{},"117":{}},"tags":{}}],["port",{"_index":1478,"title":{},"content":{"213":{},"215":{},"301":{},"302":{},"303":{},"309":{},"311":{},"313":{},"320":{},"323":{}},"tags":{}}],["portabl",{"_index":403,"title":{},"content":{"88":{},"104":{},"113":{},"208":{},"209":{},"224":{},"344":{}},"tags":{}}],["portal",{"_index":1037,"title":{},"content":{"160":{}},"tags":{}}],["pose",{"_index":1301,"title":{},"content":{"180":{}},"tags":{}}],["posit",{"_index":509,"title":{},"content":{"84":{},"179":{}},"tags":{}}],["possess",{"_index":2217,"title":{},"content":{"354":{}},"tags":{}}],["possibl",{"_index":1378,"title":{},"content":{"190":{},"191":{},"211":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"239":{},"240":{},"246":{},"248":{},"280":{},"359":{},"372":{}},"tags":{}}],["postgr",{"_index":1437,"title":{"320":{}},"content":{"319":{},"336":{},"373":{},"374":{}},"tags":{}}],["postgres:16",{"_index":1979,"title":{},"content":{"301":{},"309":{}},"tags":{}}],["postgres_db",{"_index":1982,"title":{},"content":{"301":{},"309":{},"320":{}},"tags":{}}],["postgres_password",{"_index":1981,"title":{},"content":{"301":{},"309":{},"320":{}},"tags":{}}],["postgres_us",{"_index":1980,"title":{},"content":{"301":{},"309":{},"320":{}},"tags":{}}],["postgresql",{"_index":1521,"title":{"302":{},"311":{},"322":{}},"content":{"214":{},"215":{},"288":{},"301":{},"302":{},"309":{},"310":{},"311":{},"312":{},"322":{}},"tags":{}}],["postgresql15",{"_index":2086,"title":{},"content":{"319":{}},"tags":{}}],["postman",{"_index":392,"title":{},"content":{"75":{}},"tags":{}}],["potenti",{"_index":667,"title":{},"content":{"111":{},"161":{},"180":{},"231":{},"258":{},"359":{},"372":{}},"tags":{}}],["power",{"_index":1185,"title":{},"content":{"200":{}},"tags":{}}],["powershel",{"_index":785,"title":{},"content":{"121":{}},"tags":{}}],["practic",{"_index":1340,"title":{},"content":{"186":{}},"tags":{}}],["pre",{"_index":792,"title":{},"content":{"122":{},"374":{}},"tags":{}}],["predict",{"_index":729,"title":{},"content":{"114":{}},"tags":{}}],["prefer",{"_index":246,"title":{},"content":{"63":{},"88":{},"122":{},"137":{},"165":{},"241":{},"277":{},"336":{}},"tags":{}}],["prefix",{"_index":370,"title":{},"content":{"74":{},"229":{}},"tags":{}}],["prefix'",{"_index":350,"title":{},"content":{"72":{}},"tags":{}}],["premium",{"_index":869,"title":{"133":{},"136":{}},"content":{"133":{},"136":{},"153":{},"156":{}},"tags":{}}],["prepar",{"_index":1344,"title":{"187":{}},"content":{"258":{}},"tags":{}}],["prerequisit",{"_index":170,"title":{"58":{},"260":{},"288":{},"298":{},"308":{},"318":{},"329":{}},"content":{"331":{}},"tags":{}}],["preselect",{"_index":1390,"title":{},"content":{"191":{}},"tags":{}}],["presenc",{"_index":1620,"title":{},"content":{"208":{},"209":{}},"tags":{}}],["present",{"_index":516,"title":{},"content":{"84":{},"179":{},"206":{},"215":{},"287":{}},"tags":{}}],["preserv",{"_index":864,"title":{},"content":{"132":{},"339":{},"341":{}},"tags":{}}],["press",{"_index":327,"title":{},"content":{"70":{},"113":{},"295":{},"366":{}},"tags":{}}],["prevent",{"_index":798,"title":{},"content":{"122":{},"180":{},"193":{},"220":{},"345":{},"352":{}},"tags":{}}],["preview",{"_index":609,"title":{},"content":{"96":{}},"tags":{}}],["previous",{"_index":1632,"title":{},"content":{"205":{}},"tags":{}}],["price",{"_index":1013,"title":{"155":{}},"content":{"153":{},"155":{}},"tags":{}}],["primari",{"_index":1426,"title":{},"content":{"372":{}},"tags":{}}],["primarili",{"_index":1098,"title":{},"content":{"168":{}},"tags":{}}],["principl",{"_index":777,"title":{},"content":{"118":{}},"tags":{}}],["prioriti",{"_index":88,"title":{},"content":{"51":{},"96":{},"166":{},"220":{},"221":{},"237":{},"238":{},"241":{},"246":{},"250":{}},"tags":{}}],["privaci",{"_index":1076,"title":{"166":{}},"content":{"166":{}},"tags":{}}],["privat",{"_index":988,"title":{},"content":{"152":{},"215":{}},"tags":{}}],["privileg",{"_index":1410,"title":{},"content":{"193":{},"354":{},"369":{}},"tags":{}}],["prn",{"_index":2160,"title":{},"content":{"345":{}},"tags":{}}],["probabl",{"_index":1727,"title":{},"content":{"237":{},"363":{}},"tags":{}}],["problem",{"_index":2238,"title":{"360":{},"361":{}},"content":{"359":{}},"tags":{}}],["problemat",{"_index":2156,"title":{},"content":{"345":{}},"tags":{}}],["proce",{"_index":812,"title":{},"content":{"122":{},"124":{},"125":{},"126":{},"188":{},"258":{},"374":{}},"tags":{}}],["procedur",{"_index":335,"title":{},"content":{"71":{},"89":{},"113":{},"374":{}},"tags":{}}],["proceed",{"_index":1449,"title":{},"content":{"374":{}},"tags":{}}],["process",{"_index":466,"title":{},"content":{"79":{},"111":{},"113":{},"118":{},"121":{},"128":{},"145":{},"175":{},"185":{},"186":{},"190":{},"194":{},"208":{},"231":{},"241":{},"312":{},"340":{},"353":{},"372":{},"374":{}},"tags":{}}],["process.env.plugin_authorname_pluginname_set",{"_index":1916,"title":{},"content":{"280":{}},"tags":{}}],["product",{"_index":1017,"title":{},"content":{"153":{},"180":{},"284":{}},"tags":{}}],["profici",{"_index":1341,"title":{},"content":{"186":{}},"tags":{}}],["profil",{"_index":638,"title":{},"content":{"107":{},"117":{},"154":{},"354":{}},"tags":{}}],["program",{"_index":2,"title":{"47":{}},"content":{"48":{},"49":{},"50":{},"51":{}},"tags":{}}],["progress",{"_index":474,"title":{"80":{},"115":{}},"content":{"93":{},"97":{},"98":{},"112":{},"115":{},"196":{},"200":{},"201":{},"245":{},"250":{},"339":{},"341":{},"354":{},"355":{}},"tags":{}}],["project",{"_index":880,"title":{"300":{}},"content":{"130":{},"153":{},"162":{},"179":{},"180":{},"181":{},"300":{}},"tags":{}}],["prometheu",{"_index":2058,"title":{},"content":{"329":{}},"tags":{}}],["promin",{"_index":1966,"title":{},"content":{"259":{}},"tags":{}}],["promot",{"_index":1273,"title":{},"content":{"179":{}},"tags":{}}],["prompt",{"_index":876,"title":{},"content":{"129":{},"173":{}},"tags":{}}],["promptli",{"_index":673,"title":{},"content":{"111":{},"115":{}},"tags":{}}],["prone",{"_index":1430,"title":{},"content":{"372":{}},"tags":{}}],["proof",{"_index":1209,"title":{},"content":{"202":{}},"tags":{}}],["propag",{"_index":2231,"title":{},"content":{"356":{}},"tags":{}}],["proper",{"_index":2216,"title":{},"content":{"354":{}},"tags":{}}],["properli",{"_index":828,"title":{},"content":{"123":{}},"tags":{}}],["properti",{"_index":414,"title":{"212":{}},"content":{"88":{},"180":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"246":{}},"tags":{}}],["protect",{"_index":1077,"title":{"166":{}},"content":{"166":{},"178":{},"180":{}},"tags":{}}],["protocol",{"_index":2224,"title":{},"content":{"355":{},"364":{}},"tags":{}}],["proton",{"_index":408,"title":{},"content":{"88":{}},"tags":{}}],["protontrick",{"_index":418,"title":{},"content":{"88":{}},"tags":{}}],["provid",{"_index":381,"title":{"234":{},"235":{},"236":{},"242":{},"243":{},"285":{}},"content":{"75":{},"85":{},"90":{},"96":{},"113":{},"116":{},"125":{},"126":{},"141":{},"143":{},"146":{},"148":{},"167":{},"178":{},"179":{},"196":{},"202":{},"213":{},"220":{},"221":{},"233":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"244":{},"246":{},"250":{},"259":{},"272":{},"278":{},"279":{},"286":{},"287":{},"297":{},"328":{},"347":{},"350":{},"351":{},"355":{},"356":{},"359":{},"367":{},"368":{}},"tags":{}}],["provider.interface.t",{"_index":1938,"title":{},"content":{"285":{}},"tags":{}}],["provider_data_id",{"_index":1769,"title":{},"content":{"248":{}},"tags":{}}],["provider_data_url",{"_index":1770,"title":{},"content":{"248":{}},"tags":{}}],["provider_slug",{"_index":1766,"title":{},"content":{"248":{}},"tags":{}}],["proxi",{"_index":1963,"title":{},"content":{"258":{},"355":{},"371":{}},"tags":{}}],["prune",{"_index":2026,"title":{},"content":{"296":{}},"tags":{}}],["pterodactyl",{"_index":1178,"title":{},"content":{"198":{}},"tags":{}}],["public",{"_index":14,"title":{},"content":{"48":{},"74":{},"137":{},"152":{},"159":{},"352":{}},"tags":{}}],["publish",{"_index":1288,"title":{"180":{}},"content":{"180":{},"248":{}},"tags":{}}],["puid",{"_index":1473,"title":{},"content":{"213":{},"363":{}},"tags":{}}],["pull",{"_index":1138,"title":{},"content":{"140":{},"179":{},"181":{},"296":{}},"tags":{}}],["purpos",{"_index":1232,"title":{},"content":{"177":{},"258":{},"259":{},"363":{},"373":{}},"tags":{}}],["put",{"_index":1147,"title":{},"content":{"196":{},"231":{}},"tags":{}}],["put/chang",{"_index":2024,"title":{},"content":{"294":{}},"tags":{}}],["pvc",{"_index":2062,"title":{},"content":{"333":{}},"tags":{}}],["qcow2",{"_index":2119,"title":{},"content":{"343":{}},"tags":{}}],["qualiti",{"_index":1924,"title":{},"content":{"281":{}},"tags":{}}],["queri",{"_index":918,"title":{"148":{},"151":{}},"content":{"148":{},"151":{}},"tags":{}}],["question",{"_index":853,"title":{"157":{}},"content":{"127":{},"192":{}},"tags":{}}],["queue",{"_index":577,"title":{},"content":{"93":{}},"tags":{}}],["quickli",{"_index":1053,"title":{},"content":{"161":{}},"tags":{}}],["quicktim",{"_index":1680,"title":{},"content":{"226":{}},"tags":{}}],["quit",{"_index":1428,"title":{},"content":{"372":{}},"tags":{}}],["random",{"_index":562,"title":{},"content":{"92":{}},"tags":{}}],["randomli",{"_index":2233,"title":{},"content":{"358":{}},"tags":{}}],["randompassword",{"_index":2087,"title":{},"content":{"320":{}},"tags":{}}],["rar",{"_index":2004,"title":{},"content":{"288":{},"343":{}},"tags":{}}],["rare",{"_index":1562,"title":{},"content":{"218":{},"344":{}},"tags":{}}],["rate",{"_index":1262,"title":{"249":{},"253":{}},"content":{"179":{},"220":{},"225":{},"241":{},"248":{},"249":{},"250":{},"253":{}},"tags":{}}],["re",{"_index":640,"title":{},"content":{"107":{}},"tags":{}}],["reach",{"_index":854,"title":{},"content":{"127":{},"252":{}},"tags":{}}],["reachabl",{"_index":2249,"title":{},"content":{"360":{}},"tags":{}}],["read",{"_index":831,"title":{"270":{},"306":{},"316":{},"327":{},"337":{}},"content":{"124":{},"125":{},"127":{},"179":{},"186":{},"258":{},"277":{},"310":{},"359":{}},"tags":{}}],["read/writ",{"_index":2256,"title":{},"content":{"363":{}},"tags":{}}],["reader",{"_index":974,"title":{},"content":{"152":{}},"tags":{}}],["reader.readlineasync",{"_index":984,"title":{},"content":{"152":{}},"tags":{}}],["readi",{"_index":694,"title":{},"content":{"113":{},"114":{},"127":{},"258":{},"281":{},"282":{}},"tags":{}}],["readme.md",{"_index":1906,"title":{},"content":{"279":{}},"tags":{}}],["real",{"_index":906,"title":{},"content":{"145":{},"187":{},"221":{},"306":{},"355":{}},"tags":{}}],["reason",{"_index":789,"title":{},"content":{"122":{},"193":{},"351":{}},"tags":{}}],["rebrand",{"_index":860,"title":{},"content":{"132":{}},"tags":{}}],["recach",{"_index":601,"title":{},"content":{"96":{},"241":{}},"tags":{}}],["receipt",{"_index":1208,"title":{},"content":{"202":{}},"tags":{}}],["receiv",{"_index":905,"title":{},"content":{"145":{},"202":{},"254":{}},"tags":{}}],["recent",{"_index":795,"title":{},"content":{"122":{},"129":{}},"tags":{}}],["recogn",{"_index":1284,"title":{},"content":{"179":{},"206":{},"208":{},"217":{},"252":{},"339":{},"341":{}},"tags":{}}],["recommend",{"_index":368,"title":{"121":{}},"content":{"74":{},"124":{},"127":{},"161":{},"179":{},"188":{},"193":{},"258":{},"301":{},"302":{},"309":{},"311":{},"322":{},"336":{},"344":{},"372":{}},"tags":{}}],["recov",{"_index":2206,"title":{},"content":{"351":{}},"tags":{}}],["recoveri",{"_index":1501,"title":{"350":{},"351":{}},"content":{"213":{}},"tags":{}}],["recurs",{"_index":1630,"title":{},"content":{"205":{}},"tags":{}}],["red",{"_index":646,"title":{},"content":{"108":{}},"tags":{}}],["reddit",{"_index":1272,"title":{},"content":{"179":{}},"tags":{}}],["redirect",{"_index":1046,"title":{},"content":{"161":{}},"tags":{}}],["redist",{"_index":1616,"title":{},"content":{"208":{}},"tags":{}}],["reduc",{"_index":471,"title":{},"content":{"79":{}},"tags":{}}],["redund",{"_index":1904,"title":{},"content":{"278":{}},"tags":{}}],["refer",{"_index":539,"title":{},"content":{"86":{},"115":{},"127":{},"258":{},"277":{},"331":{},"340":{},"355":{},"362":{},"369":{},"370":{}},"tags":{}}],["referenc",{"_index":1706,"title":{},"content":{"230":{}},"tags":{}}],["refin",{"_index":36,"title":{},"content":{"48":{}},"tags":{}}],["reflect",{"_index":858,"title":{},"content":{"132":{}},"tags":{}}],["refrain",{"_index":1116,"title":{},"content":{"171":{}},"tags":{}}],["refresh",{"_index":489,"title":{},"content":{"81":{},"174":{}},"tags":{}}],["regain",{"_index":740,"title":{},"content":{"115":{},"351":{},"369":{}},"tags":{}}],["regard",{"_index":1031,"title":{},"content":{"159":{}},"tags":{}}],["regex",{"_index":236,"title":{},"content":{"62":{},"193":{}},"tags":{}}],["regist",{"_index":366,"title":{"74":{},"126":{}},"content":{"74":{},"105":{},"126":{},"213":{},"237":{},"239":{},"245":{},"340":{},"349":{},"352":{},"353":{},"365":{}},"tags":{}}],["registr",{"_index":1498,"title":{"352":{}},"content":{"213":{},"216":{},"251":{},"347":{},"352":{},"353":{}},"tags":{}}],["regular",{"_index":29,"title":{},"content":{"48":{},"62":{},"193":{}},"tags":{}}],["regularli",{"_index":1563,"title":{},"content":{"218":{},"231":{}},"tags":{}}],["reindex",{"_index":1564,"title":{},"content":{"218":{}},"tags":{}}],["reinstal",{"_index":119,"title":{},"content":{"54":{}},"tags":{}}],["reject",{"_index":1540,"title":{},"content":{"215":{}},"tags":{}}],["relat",{"_index":523,"title":{},"content":{"84":{},"96":{},"208":{}},"tags":{}}],["relaunch",{"_index":767,"title":{"118":{}},"content":{},"tags":{}}],["relead",{"_index":610,"title":{},"content":{"96":{}},"tags":{}}],["releas",{"_index":13,"title":{"283":{}},"content":{"48":{},"122":{},"130":{},"192":{},"205":{},"237":{},"283":{},"339":{},"341":{},"345":{}},"tags":{}}],["release_d",{"_index":1771,"title":{},"content":{"248":{}},"tags":{}}],["releasepackage_[version]_x64.appx",{"_index":827,"title":{},"content":{"122":{}},"tags":{}}],["releaseyear",{"_index":2150,"title":{},"content":{"345":{}},"tags":{}}],["releaseyear).zip",{"_index":2139,"title":{},"content":{"345":{}},"tags":{}}],["relev",{"_index":1264,"title":{},"content":{"179":{},"213":{},"237":{},"241":{},"281":{}},"tags":{}}],["reli",{"_index":1354,"title":{},"content":{"187":{},"336":{},"355":{}},"tags":{}}],["reliabl",{"_index":2051,"title":{},"content":{"328":{}},"tags":{}}],["reliv",{"_index":1168,"title":{},"content":{"197":{}},"tags":{}}],["reload",{"_index":624,"title":{},"content":{"98":{},"264":{}},"tags":{}}],["remain",{"_index":685,"title":{},"content":{"112":{},"113":{},"127":{},"153":{}},"tags":{}}],["remap",{"_index":603,"title":{"239":{}},"content":{"96":{},"193":{},"239":{},"241":{},"354":{},"362":{}},"tags":{}}],["remap/unmap",{"_index":763,"title":{},"content":{"116":{}},"tags":{}}],["rememb",{"_index":266,"title":{},"content":{"66":{},"320":{}},"tags":{}}],["remot",{"_index":1961,"title":{},"content":{"258":{}},"tags":{}}],["remov",{"_index":94,"title":{},"content":{"51":{},"54":{},"193":{},"345":{},"353":{}},"tags":{}}],["renam",{"_index":1400,"title":{},"content":{"193":{},"341":{},"344":{}},"tags":{}}],["renew",{"_index":1004,"title":{},"content":{"175":{}},"tags":{}}],["repack",{"_index":1352,"title":{},"content":{"187":{}},"tags":{}}],["repeat",{"_index":334,"title":{},"content":{"71":{},"89":{},"112":{},"194":{},"278":{}},"tags":{}}],["replac",{"_index":198,"title":{},"content":{"60":{},"148":{},"301":{},"302":{},"309":{},"310":{},"311":{},"339":{},"345":{}},"tags":{}}],["replica",{"_index":2066,"title":{},"content":{"336":{}},"tags":{}}],["report",{"_index":124,"title":{"55":{}},"content":{"55":{},"179":{},"356":{},"359":{}},"tags":{}}],["repositori",{"_index":1129,"title":{"263":{},"276":{}},"content":{"137":{},"139":{},"140":{},"179":{},"182":{},"183":{},"259":{},"263":{},"278":{},"283":{},"288":{},"296":{}},"tags":{}}],["repres",{"_index":452,"title":{},"content":{"78":{}},"tags":{}}],["reproduc",{"_index":2241,"title":{},"content":{"359":{}},"tags":{}}],["reput",{"_index":1295,"title":{},"content":{"180":{}},"tags":{}}],["request",{"_index":275,"title":{},"content":{"66":{},"74":{},"76":{},"78":{},"140":{},"148":{},"174":{},"179":{},"181":{},"207":{},"213":{},"220":{},"358":{},"364":{}},"tags":{}}],["requir",{"_index":41,"title":{"49":{}},"content":{"49":{},"51":{},"62":{},"66":{},"76":{},"113":{},"121":{},"147":{},"165":{},"180":{},"208":{},"216":{},"220":{},"251":{},"252":{},"258":{},"288":{},"323":{},"345":{},"353":{}},"tags":{}}],["research",{"_index":1391,"title":{},"content":{"192":{},"233":{}},"tags":{}}],["reselect",{"_index":2083,"title":{},"content":{"337":{}},"tags":{}}],["reserv",{"_index":1482,"title":{},"content":{"213":{},"345":{}},"tags":{}}],["reset",{"_index":1504,"title":{},"content":{"213":{},"351":{},"370":{}},"tags":{}}],["resolut",{"_index":1785,"title":{},"content":{"248":{}},"tags":{}}],["resolv",{"_index":1466,"title":{},"content":{"374":{}},"tags":{}}],["reson",{"_index":1435,"title":{},"content":{"372":{}},"tags":{}}],["resort",{"_index":299,"title":{},"content":{"67":{},"122":{},"372":{}},"tags":{}}],["resourc",{"_index":896,"title":{"229":{}},"content":{"144":{},"190":{},"230":{}},"tags":{}}],["respect",{"_index":1225,"title":{},"content":{"204":{}},"tags":{}}],["respons",{"_index":271,"title":{},"content":{"66":{},"71":{},"89":{},"122":{},"130":{},"145":{},"179":{},"180":{},"204":{},"250":{},"354":{}},"tags":{}}],["rest",{"_index":354,"title":{"73":{}},"content":{"73":{},"277":{},"278":{}},"tags":{}}],["restart",{"_index":105,"title":{"64":{}},"content":{"53":{},"60":{},"64":{},"118":{},"129":{},"245":{},"301":{},"302":{},"309":{},"311":{},"344":{},"360":{},"371":{}},"tags":{}}],["restor",{"_index":637,"title":{"372":{},"374":{}},"content":{"107":{},"205":{},"339":{},"372":{},"374":{}},"tags":{}}],["restore.db",{"_index":1461,"title":{},"content":{"374":{}},"tags":{}}],["restrict",{"_index":1067,"title":{},"content":{"164":{},"180":{},"217":{},"250":{}},"tags":{}}],["result",{"_index":967,"title":{},"content":{"152":{},"189":{},"190":{},"193":{},"231":{},"241":{},"357":{},"374":{}},"tags":{}}],["retain",{"_index":1308,"title":{},"content":{"180":{},"352":{}},"tags":{}}],["retri",{"_index":689,"title":{},"content":{"112":{},"113":{}},"tags":{}}],["retriev",{"_index":446,"title":{"174":{}},"content":{"78":{},"82":{},"84":{},"148":{},"173":{},"220":{},"358":{}},"tags":{}}],["retro",{"_index":1167,"title":{},"content":{"197":{}},"tags":{}}],["return",{"_index":111,"title":{"54":{}},"content":{"148":{},"152":{}},"tags":{}}],["reus",{"_index":1707,"title":{},"content":{"230":{},"344":{}},"tags":{}}],["revenu",{"_index":1243,"title":{},"content":{"178":{}},"tags":{}}],["revers",{"_index":1962,"title":{},"content":{"258":{},"355":{}},"tags":{}}],["review",{"_index":576,"title":{},"content":{"93":{},"160":{},"179":{}},"tags":{}}],["rgb",{"_index":1137,"title":{},"content":{"139":{}},"tags":{}}],["rid",{"_index":1715,"title":{},"content":{"231":{}},"tags":{}}],["right",{"_index":615,"title":{},"content":{"96":{},"116":{},"117":{},"118":{},"125":{},"179":{},"180":{},"185":{},"257":{},"285":{},"353":{},"355":{}},"tags":{}}],["risk",{"_index":668,"title":{},"content":{"111":{}},"tags":{}}],["road",{"_index":1060,"title":{},"content":{"162":{}},"tags":{}}],["role",{"_index":636,"title":{"350":{},"354":{},"369":{}},"content":{"107":{},"116":{},"117":{},"193":{},"201":{},"202":{},"213":{},"238":{},"250":{},"347":{},"350":{},"353":{},"354":{}},"tags":{}}],["roll",{"_index":1487,"title":{},"content":{"213":{}},"tags":{}}],["rom",{"_index":1606,"title":{},"content":{"207":{}},"tags":{}}],["ronald",{"_index":1329,"title":{},"content":{"184":{}},"tags":{}}],["root",{"_index":429,"title":{"124":{}},"content":{"77":{},"106":{},"110":{},"124":{},"363":{},"366":{}},"tags":{}}],["root>/gamevault/downloads/(74",{"_index":676,"title":{},"content":{"111":{}},"tags":{}}],["root>/gamevault/installations/(74",{"_index":677,"title":{},"content":{"111":{},"113":{}},"tags":{}}],["root>/instal",{"_index":735,"title":{},"content":{"115":{}},"tags":{}}],["round",{"_index":1801,"title":{},"content":{"249":{},"345":{}},"tags":{}}],["rounder",{"_index":2247,"title":{"360":{}},"content":{},"tags":{}}],["row",{"_index":2181,"title":{},"content":{"346":{}},"tags":{}}],["rpm",{"_index":2120,"title":{},"content":{"343":{}},"tags":{}}],["rule",{"_index":1081,"title":{},"content":{"166":{},"258":{}},"tags":{}}],["run",{"_index":61,"title":{"67":{},"87":{},"302":{},"310":{},"311":{},"322":{}},"content":{"49":{},"54":{},"58":{},"67":{},"69":{},"70":{},"80":{},"87":{},"88":{},"97":{},"113":{},"115":{},"121":{},"122":{},"123":{},"147":{},"198":{},"213":{},"244":{},"257":{},"258":{},"260":{},"281":{},"282":{},"292":{},"296":{},"301":{},"302":{},"305":{},"307":{},"309":{},"311":{},"312":{},"315":{},"316":{},"317":{},"318":{},"322":{},"329":{},"355":{},"360":{},"363":{}},"tags":{}}],["run.c64",{"_index":1628,"title":{},"content":{"210":{}},"tags":{}}],["s",{"_index":2072,"title":{},"content":{"336":{}},"tags":{}}],["safe",{"_index":810,"title":{},"content":{"122":{},"166":{},"231":{},"333":{},"336":{}},"tags":{}}],["safedispose(cli",{"_index":987,"title":{},"content":{"152":{}},"tags":{}}],["safedispose(idispos",{"_index":990,"title":{},"content":{"152":{}},"tags":{}}],["safedispose(read",{"_index":986,"title":{},"content":{"152":{}},"tags":{}}],["safedispose(writ",{"_index":985,"title":{},"content":{"152":{}},"tags":{}}],["safeguard",{"_index":155,"title":{},"content":{"57":{}},"tags":{}}],["safeti",{"_index":1302,"title":{},"content":{"180":{}},"tags":{}}],["saint",{"_index":2180,"title":{},"content":{"346":{}},"tags":{}}],["same",{"_index":690,"title":{"193":{}},"content":{"112":{},"117":{},"118":{},"145":{},"149":{},"177":{},"193":{},"205":{},"218":{},"238":{},"308":{},"336":{},"339":{},"340":{},"341":{}},"tags":{}}],["sampl",{"_index":1901,"title":{},"content":{"278":{}},"tags":{}}],["san",{"_index":1741,"title":{},"content":{"241":{}},"tags":{}}],["save",{"_index":427,"title":{"363":{}},"content":{"77":{},"110":{},"111":{},"139":{},"194":{},"227":{},"249":{},"336":{},"344":{}},"tags":{}}],["savegam",{"_index":748,"title":{},"content":{"115":{}},"tags":{}}],["scalabl",{"_index":1997,"title":{},"content":{"287":{},"317":{}},"tags":{}}],["scale",{"_index":1950,"title":{"328":{},"330":{},"331":{}},"content":{"256":{},"328":{},"329":{},"334":{},"336":{}},"tags":{}}],["scan",{"_index":160,"title":{},"content":{"57":{},"205":{}},"tags":{}}],["scheme",{"_index":898,"title":{},"content":{"144":{}},"tags":{}}],["screen",{"_index":469,"title":{},"content":{"79":{},"108":{},"149":{}},"tags":{}}],["screenshot",{"_index":1700,"title":{},"content":{"229":{},"248":{},"297":{}},"tags":{}}],["screenshots[0",{"_index":1788,"title":{},"content":{"248":{}},"tags":{}}],["script",{"_index":1942,"title":{},"content":{"254":{},"336":{}},"tags":{}}],["scroll",{"_index":1969,"title":{},"content":{"263":{},"333":{}},"tags":{}}],["seamless",{"_index":893,"title":{},"content":{"143":{}},"tags":{}}],["search",{"_index":564,"title":{},"content":{"92":{},"96":{},"122":{},"192":{},"201":{},"218":{},"237":{},"239":{},"264":{},"319":{},"321":{},"332":{},"345":{},"366":{}},"tags":{}}],["searchbox",{"_index":2259,"title":{},"content":{"366":{}},"tags":{}}],["second",{"_index":1635,"title":{},"content":{"222":{},"278":{}},"tags":{}}],["secret",{"_index":1595,"title":{},"content":{"220":{},"235":{},"245":{},"246":{},"358":{}},"tags":{}}],["section",{"_index":553,"title":{},"content":{"92":{},"96":{},"133":{},"146":{},"233":{},"279":{},"310":{},"319":{},"331":{},"360":{}},"tags":{}}],["secur",{"_index":264,"title":{"358":{}},"content":{"66":{},"82":{},"166":{},"173":{},"200":{},"215":{},"336":{},"347":{},"354":{},"363":{},"372":{},"374":{}},"tags":{}}],["see",{"_index":488,"title":{},"content":{"81":{},"113":{},"134":{},"174":{},"178":{},"188":{},"219":{},"230":{},"233":{},"241":{},"248":{},"250":{},"254":{},"270":{},"280":{},"281":{},"286":{},"298":{},"337":{},"345":{},"355":{},"364":{},"366":{}},"tags":{}}],["seek",{"_index":1007,"title":{},"content":{"153":{},"359":{}},"tags":{}}],["sego",{"_index":424,"title":{},"content":{"88":{}},"tags":{}}],["select",{"_index":328,"title":{"124":{}},"content":{"70":{},"84":{},"96":{},"98":{},"106":{},"113":{},"118":{},"122":{},"124":{},"126":{},"138":{},"269":{},"300":{},"305":{},"306":{},"337":{}},"tags":{}}],["select/paste/drop",{"_index":761,"title":{},"content":{"116":{},"117":{}},"tags":{}}],["selectd",{"_index":602,"title":{},"content":{"96":{}},"tags":{}}],["self",{"_index":815,"title":{},"content":{"122":{},"125":{},"130":{},"196":{},"197":{},"202":{}},"tags":{}}],["selfhost",{"_index":839,"title":{"125":{}},"content":{},"tags":{}}],["send",{"_index":733,"title":{},"content":{"115":{},"145":{},"148":{},"202":{},"355":{}},"tags":{}}],["sendpipemessage(str",{"_index":959,"title":{},"content":{"152":{}},"tags":{}}],["sensit",{"_index":492,"title":{},"content":{"82":{},"345":{}},"tags":{}}],["sent",{"_index":483,"title":{},"content":{"80":{},"215":{}},"tags":{}}],["sepa",{"_index":1047,"title":{},"content":{"161":{}},"tags":{}}],["separ",{"_index":369,"title":{},"content":{"74":{},"96":{},"193":{},"213":{},"219":{}},"tags":{}}],["seper",{"_index":1419,"title":{},"content":{"193":{},"218":{}},"tags":{}}],["serv",{"_index":290,"title":{},"content":{"67":{},"87":{},"112":{},"148":{},"196":{},"278":{},"374":{}},"tags":{}}],["server",{"_index":62,"title":{"96":{},"125":{},"201":{},"213":{},"254":{},"255":{},"269":{},"292":{},"295":{},"296":{},"305":{},"315":{},"321":{},"326":{},"336":{},"363":{},"364":{},"366":{}},"content":{"49":{},"58":{},"73":{},"75":{},"80":{},"81":{},"84":{},"92":{},"96":{},"98":{},"103":{},"105":{},"107":{},"111":{},"112":{},"113":{},"115":{},"116":{},"117":{},"125":{},"126":{},"148":{},"163":{},"166":{},"185":{},"186":{},"193":{},"194":{},"196":{},"197":{},"198":{},"200":{},"205":{},"211":{},"213":{},"215":{},"218":{},"219":{},"221":{},"237":{},"241":{},"245":{},"255":{},"257":{},"258":{},"259":{},"260":{},"267":{},"272":{},"274":{},"280":{},"282":{},"290":{},"292":{},"293":{},"295":{},"296":{},"303":{},"305":{},"306":{},"312":{},"313":{},"317":{},"318":{},"324":{},"327":{},"328":{},"329":{},"331":{},"334":{},"336":{},"342":{},"344":{},"345":{},"347":{},"349":{},"350":{},"351":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"360":{},"364":{},"366":{},"368":{},"371":{},"374":{}},"tags":{}}],["server'",{"_index":644,"title":{},"content":{"108":{},"200":{},"313":{},"344":{},"366":{}},"tags":{}}],["server_account_activation_dis",{"_index":1499,"title":{},"content":{"213":{},"353":{}},"tags":{}}],["server_admin_password",{"_index":1503,"title":{},"content":{"213":{},"351":{}},"tags":{}}],["server_admin_password=hunter2",{"_index":2208,"title":{},"content":{"351":{}},"tags":{}}],["server_admin_usernam",{"_index":1500,"title":{},"content":{"213":{},"350":{},"351":{}},"tags":{}}],["server_admin_username=gamevaultfan1",{"_index":2207,"title":{},"content":{"351":{}},"tags":{}}],["server_api_docs_en",{"_index":378,"title":{},"content":{"75":{},"213":{}},"tags":{}}],["server_cors_allowed_origin",{"_index":1495,"title":{},"content":{"213":{}},"tags":{}}],["server_log_files_en",{"_index":192,"title":{},"content":{"60":{},"213":{}},"tags":{}}],["server_log_level",{"_index":1484,"title":{},"content":{"213":{},"359":{},"360":{}},"tags":{}}],["server_max_download_bandwidth_in_kbp",{"_index":1507,"title":{},"content":{"213":{},"371":{}},"tags":{}}],["server_online_activities_dis",{"_index":1510,"title":{},"content":{"213":{},"357":{}},"tags":{}}],["server_port",{"_index":1477,"title":{},"content":{"213":{}},"tags":{}}],["server_registration_dis",{"_index":1497,"title":{},"content":{"213":{},"352":{}},"tags":{}}],["server_request_log_format",{"_index":1489,"title":{},"content":{"213":{}},"tags":{}}],["server_stack_trace_limit",{"_index":1512,"title":{},"content":{"213":{}},"tags":{}}],["servic",{"_index":256,"title":{"312":{}},"content":{"64":{},"237":{},"277":{},"280":{},"285":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["set",{"_index":107,"title":{"69":{},"70":{},"82":{},"83":{},"94":{},"99":{},"102":{},"119":{},"234":{},"255":{},"278":{},"291":{},"300":{},"319":{},"321":{}},"content":{"53":{},"54":{},"57":{},"60":{},"63":{},"66":{},"67":{},"74":{},"75":{},"82":{},"83":{},"87":{},"91":{},"92":{},"93":{},"95":{},"96":{},"100":{},"104":{},"105":{},"113":{},"114":{},"116":{},"117":{},"125":{},"136":{},"138":{},"156":{},"165":{},"172":{},"173":{},"174":{},"189":{},"190":{},"213":{},"214":{},"216":{},"218":{},"219":{},"231":{},"232":{},"233":{},"250":{},"251":{},"252":{},"255":{},"257":{},"258":{},"259":{},"267":{},"269":{},"276":{},"284":{},"291":{},"293":{},"297":{},"303":{},"307":{},"313":{},"317":{},"320":{},"324":{},"328":{},"333":{},"334":{},"336":{},"342":{},"350":{},"351":{},"352":{},"353":{},"357":{},"359":{},"360":{},"366":{},"367":{},"368":{},"371":{}},"tags":{}}],["setup",{"_index":175,"title":{"88":{},"91":{},"172":{},"245":{},"349":{}},"content":{"58":{},"91":{},"113":{},"125":{},"165":{},"175":{},"208":{},"209":{},"257":{},"276":{},"333":{},"344":{}},"tags":{}}],["setup.bin",{"_index":1347,"title":{},"content":{"187":{}},"tags":{}}],["setup.ex",{"_index":512,"title":{},"content":{"84":{},"113":{},"187":{},"208":{}},"tags":{}}],["setup_*.ex",{"_index":1611,"title":{},"content":{"208":{}},"tags":{}}],["setup_game.ex",{"_index":1358,"title":{},"content":{"188":{},"208":{},"344":{}},"tags":{}}],["setup_game.sh",{"_index":1359,"title":{},"content":{"188":{},"344":{}},"tags":{}}],["seven",{"_index":1806,"title":{},"content":{"249":{}},"tags":{}}],["sever",{"_index":1038,"title":{},"content":{"161":{}},"tags":{}}],["sh",{"_index":1625,"title":{},"content":{"209":{},"344":{}},"tags":{}}],["shape",{"_index":1097,"title":{},"content":{"168":{}},"tags":{}}],["share",{"_index":83,"title":{"140":{},"163":{}},"content":{"50":{},"93":{},"137":{},"140":{},"163":{},"168":{},"171":{},"177":{},"179":{},"197":{},"204":{},"254":{},"279":{},"333":{},"356":{}},"tags":{}}],["sharealik",{"_index":1213,"title":{},"content":{"177":{},"203":{}},"tags":{}}],["ship",{"_index":1119,"title":{},"content":{"136":{},"307":{}},"tags":{}}],["short",{"_index":1493,"title":{},"content":{"213":{}},"tags":{}}],["shortcut",{"_index":587,"title":{},"content":{"95":{}},"tags":{}}],["shorten",{"_index":2242,"title":{},"content":{"359":{}},"tags":{}}],["show",{"_index":683,"title":{},"content":{"112":{},"147":{},"149":{},"179":{},"233":{},"249":{}},"tags":{}}],["shown",{"_index":524,"title":{},"content":{"84":{},"213":{},"245":{}},"tags":{}}],["shutdown",{"_index":2069,"title":{},"content":{"336":{}},"tags":{}}],["side",{"_index":919,"title":{},"content":{"148":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["sidecar",{"_index":510,"title":{},"content":{"84":{}},"tags":{}}],["sign",{"_index":805,"title":{},"content":{"122":{},"156":{},"173":{}},"tags":{}}],["simpl",{"_index":74,"title":{},"content":{"50":{},"113":{},"114":{},"148":{},"172":{},"179":{},"205":{},"275":{},"336":{},"357":{}},"tags":{}}],["simplest",{"_index":304,"title":{},"content":{"68":{},"88":{}},"tags":{}}],["simpli",{"_index":770,"title":{},"content":{"118":{},"121":{},"202":{},"253":{},"254":{},"339":{},"350":{},"352":{},"353":{},"373":{}},"tags":{}}],["simplifi",{"_index":594,"title":{},"content":{"96":{},"259":{}},"tags":{}}],["simultan",{"_index":1724,"title":{},"content":{"233":{}},"tags":{}}],["singl",{"_index":744,"title":{"344":{}},"content":{"115":{},"188":{},"193":{},"253":{},"328":{},"342":{},"344":{},"360":{}},"tags":{}}],["situat",{"_index":847,"title":{},"content":{"126":{},"218":{}},"tags":{}}],["sixteen",{"_index":1809,"title":{},"content":{"249":{}},"tags":{}}],["size",{"_index":470,"title":{},"content":{"79":{},"190":{},"205":{},"219":{},"317":{}},"tags":{}}],["skip",{"_index":1350,"title":{},"content":{"187":{},"188":{},"205":{}},"tags":{}}],["slash",{"_index":1989,"title":{},"content":{"310":{}},"tags":{}}],["slightli",{"_index":281,"title":{},"content":{"66":{},"193":{}},"tags":{}}],["sln",{"_index":820,"title":{},"content":{"122":{}},"tags":{}}],["slot",{"_index":87,"title":{},"content":{"51":{}},"tags":{}}],["slow",{"_index":2262,"title":{"371":{}},"content":{},"tags":{}}],["small",{"_index":1023,"title":{},"content":{"158":{},"190":{}},"tags":{}}],["smaller",{"_index":1380,"title":{},"content":{"190":{}},"tags":{}}],["smallest",{"_index":1377,"title":{},"content":{"190":{}},"tags":{}}],["smartscreen",{"_index":797,"title":{},"content":{"122":{}},"tags":{}}],["snake",{"_index":1310,"title":{},"content":{"180":{}},"tags":{}}],["snapshot",{"_index":1439,"title":{},"content":{"373":{}},"tags":{}}],["social",{"_index":1250,"title":{},"content":{"179":{}},"tags":{}}],["socket",{"_index":2226,"title":{},"content":{"355":{},"358":{}},"tags":{}}],["socket.io",{"_index":2222,"title":{},"content":{"355":{},"358":{}},"tags":{}}],["sofort",{"_index":1052,"title":{},"content":{"161":{}},"tags":{}}],["softwar",{"_index":1026,"title":{"167":{}},"content":{"158":{},"178":{},"180":{},"297":{}},"tags":{}}],["sole",{"_index":1218,"title":{},"content":{"180":{},"204":{},"218":{}},"tags":{}}],["solid",{"_index":1374,"title":{},"content":{"189":{},"190":{}},"tags":{}}],["solut",{"_index":758,"title":{"360":{},"361":{}},"content":{"116":{},"170":{},"287":{},"317":{},"328":{},"359":{},"372":{}},"tags":{}}],["solv",{"_index":1759,"title":{},"content":{"245":{},"360":{}},"tags":{}}],["someth",{"_index":1432,"title":{},"content":{"372":{}},"tags":{}}],["soon",{"_index":739,"title":{},"content":{"115":{}},"tags":{}}],["sort",{"_index":623,"title":{},"content":{"98":{},"201":{}},"tags":{}}],["sourc",{"_index":803,"title":{"130":{},"178":{},"289":{}},"content":{"122":{},"125":{},"128":{},"130":{},"171":{},"177":{},"178":{},"196":{},"220":{},"258":{},"259":{},"300":{},"328":{},"355":{}},"tags":{}}],["space",{"_index":405,"title":{},"content":{"88":{},"124":{},"187":{},"336":{},"345":{}},"tags":{}}],["spare",{"_index":1199,"title":{},"content":{"202":{}},"tags":{}}],["spec.t",{"_index":1928,"title":{},"content":{"281":{}},"tags":{}}],["special",{"_index":16,"title":{},"content":{"48":{},"241":{},"336":{}},"tags":{}}],["specif",{"_index":270,"title":{"75":{},"285":{}},"content":{"66":{},"75":{},"78":{},"88":{},"92":{},"96":{},"115":{},"126":{},"127":{},"141":{},"147":{},"148":{},"149":{},"164":{},"193":{},"208":{},"258":{},"273":{},"280":{},"296":{},"364":{}},"tags":{}}],["specifi",{"_index":2204,"title":{},"content":{"350":{},"351":{}},"tags":{}}],["speed",{"_index":2263,"title":{},"content":{"371":{}},"tags":{}}],["spin",{"_index":874,"title":{},"content":{"129":{}},"tags":{}}],["sponsor",{"_index":1204,"title":{},"content":{"202":{}},"tags":{}}],["spread",{"_index":1263,"title":{},"content":{"179":{}},"tags":{}}],["sql",{"_index":1532,"title":{},"content":{"215":{}},"tags":{}}],["sqlite",{"_index":1438,"title":{"363":{}},"content":{"214":{},"215":{},"221":{},"288":{},"291":{},"302":{},"311":{},"321":{},"322":{},"373":{},"374":{}},"tags":{}}],["squar",{"_index":1402,"title":{},"content":{"193":{},"345":{}},"tags":{}}],["squashf",{"_index":2121,"title":{},"content":{"343":{}},"tags":{}}],["src/global",{"_index":1896,"title":{},"content":{"278":{}},"tags":{}}],["src/globals.t",{"_index":1893,"title":{},"content":{"278":{}},"tags":{}}],["ssl",{"_index":2258,"title":{},"content":{"364":{}},"tags":{}}],["stabl",{"_index":28,"title":{"54":{}},"content":{"48":{},"54":{}},"tags":{}}],["stack",{"_index":1270,"title":{},"content":{"179":{},"213":{}},"tags":{}}],["stackoverflow",{"_index":284,"title":{},"content":{"66":{}},"tags":{}}],["stage",{"_index":1360,"title":{},"content":{"188":{},"271":{}},"tags":{}}],["stand",{"_index":1207,"title":{},"content":{"202":{}},"tags":{}}],["standard",{"_index":1086,"title":{},"content":{"166":{},"237":{},"284":{},"355":{}},"tags":{}}],["star",{"_index":2168,"title":{},"content":{"346":{}},"tags":{}}],["start",{"_index":103,"title":{"156":{},"292":{},"312":{}},"content":{"53":{},"54":{},"68":{},"88":{},"111":{},"114":{},"147":{},"149":{},"173":{},"233":{},"241":{},"258":{},"274":{},"275":{},"277":{},"281":{},"292":{},"312":{},"336":{},"356":{},"359":{}},"tags":{}}],["startup",{"_index":628,"title":{},"content":{"103":{},"158":{},"213":{},"350":{},"351":{}},"tags":{}}],["state",{"_index":574,"title":{},"content":{"93":{},"111":{},"115":{},"201":{}},"tags":{}}],["statement",{"_index":1533,"title":{},"content":{"215":{}},"tags":{}}],["static",{"_index":954,"title":{},"content":{"152":{}},"tags":{}}],["station",{"_index":2036,"title":{},"content":{"299":{}},"tags":{}}],["statist",{"_index":619,"title":{},"content":{"97":{}},"tags":{}}],["statu",{"_index":260,"title":{"65":{}},"content":{"65":{},"248":{}},"tags":{}}],["stay",{"_index":878,"title":{},"content":{"130":{}},"tags":{}}],["steam",{"_index":406,"title":{},"content":{"88":{},"196":{},"241":{}},"tags":{}}],["steamdeck",{"_index":353,"title":{"87":{}},"content":{"72":{}},"tags":{}}],["steamo",{"_index":398,"title":{},"content":{"87":{}},"tags":{}}],["step",{"_index":75,"title":{"59":{},"124":{},"125":{},"126":{},"187":{},"188":{},"192":{},"194":{},"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"289":{},"290":{},"291":{},"292":{},"299":{},"300":{},"301":{},"302":{},"309":{},"311":{},"312":{},"319":{},"320":{},"321":{},"322":{},"323":{},"330":{},"331":{},"332":{},"333":{}},"content":{"50":{},"66":{},"111":{},"113":{},"116":{},"119":{},"124":{},"126":{},"138":{},"186":{},"187":{},"205":{},"258":{},"274":{},"275":{},"285":{},"305":{},"308":{},"320":{},"322":{},"353":{}},"tags":{}}],["still",{"_index":725,"title":{},"content":{"113":{},"115":{},"192":{},"355":{}},"tags":{}}],["stop",{"_index":190,"title":{"269":{},"295":{},"305":{},"315":{},"326":{},"336":{}},"content":{"60":{},"295":{},"301":{},"302":{},"305":{},"309":{},"311":{},"326":{},"336":{}},"tags":{}}],["storag",{"_index":472,"title":{},"content":{"79":{},"124":{},"297":{},"317":{},"328":{},"333":{},"344":{}},"tags":{}}],["store",{"_index":54,"title":{"129":{},"228":{},"229":{}},"content":{"49":{},"54":{},"77":{},"81":{},"82":{},"83":{},"88":{},"111":{},"115":{},"121":{},"122":{},"124":{},"129":{},"166":{},"169":{},"173":{},"175":{},"179":{},"196":{},"204":{},"227":{},"230":{},"309":{},"317":{},"321":{},"374":{}},"tags":{}}],["straightforward",{"_index":757,"title":{},"content":{"116":{},"121":{},"139":{},"143":{},"374":{}},"tags":{}}],["stray",{"_index":2186,"title":{},"content":{"346":{}},"tags":{}}],["stream",{"_index":1145,"title":{},"content":{"196":{},"198":{}},"tags":{}}],["streamlin",{"_index":2000,"title":{},"content":{"287":{}},"tags":{}}],["streamread",{"_index":973,"title":{},"content":{"152":{}},"tags":{}}],["streamreader(cli",{"_index":983,"title":{},"content":{"152":{}},"tags":{}}],["streamwrit",{"_index":971,"title":{},"content":{"152":{}},"tags":{}}],["streamwriter(cli",{"_index":977,"title":{},"content":{"152":{}},"tags":{}}],["strictli",{"_index":1228,"title":{},"content":{"204":{}},"tags":{}}],["string",{"_index":966,"title":{},"content":{"152":{},"218":{},"364":{}},"tags":{}}],["stripe",{"_index":1034,"title":{},"content":{"160":{},"166":{}},"tags":{}}],["stripe'",{"_index":1087,"title":{},"content":{"166":{}},"tags":{}}],["strive",{"_index":1276,"title":{},"content":{"179":{}},"tags":{}}],["strong",{"_index":1078,"title":{},"content":{"166":{}},"tags":{}}],["strongli",{"_index":1445,"title":{},"content":{"287":{},"374":{}},"tags":{}}],["structur",{"_index":648,"title":{"110":{},"342":{}},"content":{"110":{},"186":{},"192":{},"206":{},"254":{},"258":{},"286":{},"342":{}},"tags":{}}],["struggl",{"_index":1333,"title":{},"content":{"185":{}},"tags":{}}],["studio",{"_index":817,"title":{},"content":{"122":{},"281":{}},"tags":{}}],["style",{"_index":1990,"title":{},"content":{"310":{}},"tags":{}}],["sub",{"_index":547,"title":{},"content":{"91":{},"193":{}},"tags":{}}],["subfold",{"_index":449,"title":{},"content":{"78":{},"112":{},"124":{},"218":{}},"tags":{}}],["submit",{"_index":1321,"title":{},"content":{"181":{}},"tags":{}}],["subscrib",{"_index":871,"title":{},"content":{"134":{},"141":{},"156":{}},"tags":{}}],["subscript",{"_index":1000,"title":{"161":{},"164":{}},"content":{"153":{},"155":{},"159":{},"160":{},"161":{},"163":{},"164":{},"165":{},"170":{},"174":{}},"tags":{}}],["subsequ",{"_index":2235,"title":{},"content":{"358":{}},"tags":{}}],["success",{"_index":998,"title":{},"content":{"174":{}},"tags":{}}],["successfulli",{"_index":850,"title":{},"content":{"127":{},"194":{},"267":{},"293":{},"303":{},"313":{},"324":{},"334":{}},"tags":{}}],["such",{"_index":511,"title":{},"content":{"84":{},"96":{},"115":{},"130":{},"187":{},"188":{},"205":{},"207":{},"208":{},"258":{},"277":{},"297":{},"313":{},"340":{},"345":{},"354":{}},"tags":{}}],["sudo",{"_index":224,"title":{},"content":{"62":{},"63":{},"64":{},"65":{}},"tags":{}}],["suffici",{"_index":837,"title":{},"content":{"124":{}},"tags":{}}],["suggest",{"_index":132,"title":{"168":{}},"content":{"55":{},"165":{},"168":{},"179":{}},"tags":{}}],["suggest/discuss",{"_index":126,"title":{"55":{}},"content":{},"tags":{}}],["suit",{"_index":269,"title":{},"content":{"66":{},"255":{},"301":{},"302":{},"309":{},"311":{}},"tags":{}}],["suitabl",{"_index":2001,"title":{},"content":{"287":{}},"tags":{}}],["summari",{"_index":1427,"title":{},"content":{"372":{}},"tags":{}}],["sunshin",{"_index":1177,"title":{},"content":{"198":{}},"tags":{}}],["support",{"_index":90,"title":{"159":{},"167":{},"169":{},"202":{},"207":{},"223":{},"224":{},"225":{},"226":{},"256":{},"265":{},"343":{}},"content":{"51":{},"85":{},"127":{},"143":{},"147":{},"153":{},"156":{},"159":{},"178":{},"179":{},"180":{},"201":{},"202":{},"204":{},"218":{},"219":{},"233":{},"250":{},"254":{},"265":{},"274":{},"280":{},"298":{},"336":{},"342":{},"343":{},"344":{},"355":{},"364":{},"373":{}},"tags":{}}],["suppos",{"_index":1345,"title":{},"content":{"187":{},"278":{}},"tags":{}}],["sure",{"_index":44,"title":{},"content":{"49":{},"60":{},"75":{},"88":{},"118":{},"125":{},"130":{},"166":{},"245":{},"265":{},"273":{},"279":{},"280":{},"320":{},"321":{},"344":{},"363":{},"364":{},"371":{},"374":{}},"tags":{}}],["suspici",{"_index":799,"title":{},"content":{"122":{}},"tags":{}}],["sustain",{"_index":1242,"title":{},"content":{"178":{}},"tags":{}}],["switch",{"_index":102,"title":{"53":{}},"content":{"96":{},"333":{}},"tags":{}}],["synchron",{"_index":750,"title":{},"content":{"115":{},"215":{}},"tags":{}}],["synolog",{"_index":1952,"title":{"297":{}},"content":{"256":{},"297":{},"298":{},"300":{},"303":{},"305":{},"306":{}},"tags":{}}],["syntax",{"_index":1136,"title":{},"content":{"139":{},"254":{}},"tags":{}}],["system",{"_index":172,"title":{},"content":{"58":{},"72":{},"110":{},"113":{},"118":{},"121":{},"122":{},"152":{},"160":{},"187":{},"194":{},"201":{},"215":{},"249":{},"257":{},"272":{},"277":{},"287":{},"288":{},"297":{},"308":{},"317":{},"328":{},"345":{},"373":{}},"tags":{}}],["system.io",{"_index":949,"title":{},"content":{"152":{}},"tags":{}}],["system.io.pip",{"_index":950,"title":{},"content":{"152":{}},"tags":{}}],["system.text",{"_index":951,"title":{},"content":{"152":{}},"tags":{}}],["system.thread",{"_index":952,"title":{},"content":{"152":{}},"tags":{}}],["system.threading.task",{"_index":953,"title":{},"content":{"152":{}},"tags":{}}],["system/vm",{"_index":2014,"title":{},"content":{"291":{}},"tags":{}}],["systemctl",{"_index":257,"title":{},"content":{"64":{}},"tags":{}}],["t",{"_index":1817,"title":{},"content":{"249":{}},"tags":{}}],["t_1080p_2x",{"_index":1791,"title":{},"content":{"248":{}},"tags":{}}],["t_cover_big_2x",{"_index":1786,"title":{},"content":{"248":{}},"tags":{}}],["tab",{"_index":374,"title":{},"content":{"74":{},"84":{},"90":{},"91":{},"93":{},"107":{},"111":{},"113":{},"114":{},"115":{},"173":{},"306":{},"326":{},"327":{}},"tags":{}}],["tabl",{"_index":1471,"title":{},"content":{"211":{},"222":{},"249":{},"345":{}},"tags":{}}],["tag",{"_index":607,"title":{},"content":{"96":{},"201":{},"206":{},"208":{},"209":{},"224":{},"248":{},"283":{},"296":{},"345":{}},"tags":{}}],["tags/9.0.0",{"_index":2028,"title":{},"content":{"296":{}},"tags":{}}],["tailor",{"_index":1104,"title":{},"content":{"170":{},"308":{}},"tags":{}}],["take",{"_index":99,"title":{},"content":{"51":{},"112":{},"179":{},"180":{},"189":{},"190":{},"192":{},"199":{},"245":{},"257":{}},"tags":{}}],["tar",{"_index":2099,"title":{},"content":{"343":{},"344":{}},"tags":{}}],["tar.bz2",{"_index":2167,"title":{},"content":{"345":{}},"tags":{}}],["tar.gz",{"_index":2166,"title":{},"content":{"345":{}},"tags":{}}],["target",{"_index":415,"title":{},"content":{"88":{},"147":{}},"tags":{}}],["task",{"_index":1338,"title":{},"content":{"186":{}},"tags":{}}],["task/gamevault/downloads/(74",{"_index":676,"title":{},"content":{"115":{}},"tags":{}}],["root>/gamevault/installations/(74",{"_index":677,"title":{},"content":{"115":{},"117":{}},"tags":{}}],["root>/instal",{"_index":735,"title":{},"content":{"119":{}},"tags":{}}],["round",{"_index":1801,"title":{},"content":{"246":{},"346":{}},"tags":{}}],["rounder",{"_index":2275,"title":{"371":{}},"content":{},"tags":{}}],["row",{"_index":2212,"title":{},"content":{"347":{}},"tags":{}}],["rpm",{"_index":2152,"title":{},"content":{"344":{}},"tags":{}}],["rule",{"_index":1081,"title":{},"content":{"164":{},"261":{}},"tags":{}}],["run",{"_index":61,"title":{"67":{},"77":{},"277":{},"278":{},"305":{},"326":{}},"content":{"43":{},"48":{},"58":{},"67":{},"69":{},"70":{},"77":{},"78":{},"87":{},"102":{},"117":{},"119":{},"128":{},"129":{},"130":{},"145":{},"173":{},"210":{},"241":{},"260":{},"261":{},"263":{},"274":{},"276":{},"278":{},"279":{},"282":{},"283":{},"294":{},"295":{},"300":{},"301":{},"305":{},"316":{},"320":{},"325":{},"326":{},"329":{},"349":{},"358":{},"359":{},"361":{},"367":{},"368":{},"371":{},"374":{},"383":{}},"tags":{}}],["run.c64",{"_index":1628,"title":{},"content":{"235":{}},"tags":{}}],["s",{"_index":2106,"title":{},"content":{"356":{}},"tags":{}}],["safe",{"_index":810,"title":{},"content":{"129":{},"164":{},"228":{},"353":{},"356":{}},"tags":{}}],["safedispose(cli",{"_index":987,"title":{},"content":{"150":{}},"tags":{}}],["safedispose(idispos",{"_index":990,"title":{},"content":{"150":{}},"tags":{}}],["safedispose(read",{"_index":986,"title":{},"content":{"150":{}},"tags":{}}],["safedispose(writ",{"_index":985,"title":{},"content":{"150":{}},"tags":{}}],["safeguard",{"_index":155,"title":{},"content":{"57":{}},"tags":{}}],["safeti",{"_index":1302,"title":{},"content":{"203":{}},"tags":{}}],["saint",{"_index":2211,"title":{},"content":{"347":{}},"tags":{}}],["same",{"_index":690,"title":{"191":{}},"content":{"116":{},"121":{},"122":{},"143":{},"147":{},"191":{},"200":{},"215":{},"230":{},"252":{},"275":{},"332":{},"333":{},"334":{},"356":{},"362":{}},"tags":{}}],["sampl",{"_index":1901,"title":{},"content":{"291":{}},"tags":{}}],["san",{"_index":1741,"title":{},"content":{"255":{}},"tags":{}}],["save",{"_index":427,"title":{"374":{}},"content":{"99":{},"114":{},"115":{},"192":{},"197":{},"224":{},"246":{},"345":{},"356":{},"364":{},"369":{}},"tags":{}}],["savegam",{"_index":748,"title":{},"content":{"119":{}},"tags":{}}],["scalabl",{"_index":1999,"title":{},"content":{"300":{},"311":{}},"tags":{}}],["scale",{"_index":1950,"title":{"348":{},"350":{},"351":{},"358":{},"360":{}},"content":{"259":{},"348":{},"349":{},"354":{},"356":{},"358":{},"359":{},"361":{},"365":{}},"tags":{}}],["scan",{"_index":160,"title":{},"content":{"57":{},"230":{}},"tags":{}}],["scheme",{"_index":898,"title":{},"content":{"142":{}},"tags":{}}],["screen",{"_index":469,"title":{},"content":{"98":{},"101":{},"147":{}},"tags":{}}],["screenshot",{"_index":1700,"title":{},"content":{"226":{},"245":{},"321":{}},"tags":{}}],["screenshots[0",{"_index":1788,"title":{},"content":{"245":{}},"tags":{}}],["script",{"_index":1942,"title":{},"content":{"257":{},"356":{}},"tags":{}}],["scroll",{"_index":1971,"title":{},"content":{"266":{},"353":{}},"tags":{}}],["seamless",{"_index":893,"title":{},"content":{"141":{}},"tags":{}}],["search",{"_index":564,"title":{},"content":{"82":{},"86":{},"129":{},"176":{},"190":{},"215":{},"251":{},"253":{},"267":{},"302":{},"304":{},"346":{},"352":{},"377":{}},"tags":{}}],["searchbox",{"_index":2286,"title":{},"content":{"377":{}},"tags":{}}],["second",{"_index":1635,"title":{},"content":{"219":{},"291":{}},"tags":{}}],["secret",{"_index":1595,"title":{},"content":{"217":{},"242":{},"243":{},"249":{},"386":{}},"tags":{}}],["section",{"_index":553,"title":{},"content":{"82":{},"86":{},"111":{},"144":{},"247":{},"277":{},"292":{},"302":{},"351":{},"364":{},"368":{},"371":{}},"tags":{}}],["secur",{"_index":264,"title":{"386":{}},"content":{"66":{},"104":{},"136":{},"164":{},"175":{},"180":{},"182":{},"212":{},"335":{},"342":{},"356":{},"374":{}},"tags":{}}],["see",{"_index":488,"title":{},"content":{"103":{},"112":{},"117":{},"137":{},"186":{},"201":{},"216":{},"227":{},"236":{},"245":{},"247":{},"255":{},"257":{},"273":{},"293":{},"294":{},"299":{},"322":{},"346":{},"357":{},"368":{},"375":{},"377":{},"383":{}},"tags":{}}],["seek",{"_index":1007,"title":{},"content":{"151":{},"370":{}},"tags":{}}],["sego",{"_index":424,"title":{},"content":{"78":{}},"tags":{}}],["select",{"_index":328,"title":{"131":{},"364":{}},"content":{"70":{},"86":{},"88":{},"96":{},"106":{},"117":{},"122":{},"129":{},"131":{},"133":{},"196":{},"272":{},"324":{},"329":{},"330":{},"357":{},"364":{},"367":{}},"tags":{}}],["select/paste/drop",{"_index":761,"title":{},"content":{"120":{},"121":{}},"tags":{}}],["selectd",{"_index":602,"title":{},"content":{"86":{}},"tags":{}}],["self",{"_index":815,"title":{},"content":{"125":{},"129":{},"132":{},"171":{},"172":{},"177":{}},"tags":{}}],["selfhost",{"_index":839,"title":{"132":{}},"content":{},"tags":{}}],["send",{"_index":733,"title":{},"content":{"119":{},"143":{},"146":{},"177":{},"383":{}},"tags":{}}],["sendpipemessage(str",{"_index":959,"title":{},"content":{"150":{}},"tags":{}}],["sensit",{"_index":492,"title":{},"content":{"104":{},"346":{}},"tags":{}}],["sent",{"_index":483,"title":{},"content":{"102":{},"212":{}},"tags":{}}],["sepa",{"_index":1047,"title":{},"content":{"159":{}},"tags":{}}],["separ",{"_index":369,"title":{},"content":{"74":{},"86":{},"191":{},"210":{},"216":{}},"tags":{}}],["seper",{"_index":1419,"title":{},"content":{"191":{},"215":{}},"tags":{}}],["serv",{"_index":290,"title":{},"content":{"67":{},"77":{},"116":{},"146":{},"171":{},"182":{},"291":{}},"tags":{}}],["server",{"_index":62,"title":{"86":{},"132":{},"176":{},"210":{},"257":{},"258":{},"272":{},"282":{},"304":{},"309":{},"316":{},"319":{},"320":{},"329":{},"356":{},"367":{},"374":{},"375":{},"377":{}},"content":{"43":{},"58":{},"73":{},"75":{},"82":{},"86":{},"88":{},"93":{},"95":{},"97":{},"102":{},"103":{},"106":{},"115":{},"116":{},"117":{},"119":{},"120":{},"121":{},"132":{},"133":{},"146":{},"161":{},"164":{},"171":{},"172":{},"173":{},"175":{},"182":{},"183":{},"184":{},"191":{},"192":{},"208":{},"210":{},"212":{},"215":{},"216":{},"218":{},"230":{},"242":{},"251":{},"255":{},"258":{},"260":{},"261":{},"262":{},"263":{},"270":{},"279":{},"280":{},"285":{},"287":{},"293":{},"295":{},"300":{},"301":{},"307":{},"310":{},"314":{},"316":{},"317":{},"319":{},"320":{},"327":{},"329":{},"330":{},"335":{},"337":{},"338":{},"339":{},"342":{},"343":{},"345":{},"346":{},"348":{},"349":{},"351":{},"354":{},"356":{},"358":{},"359":{},"361":{},"365":{},"367":{},"370":{},"371":{},"375":{},"377":{},"379":{},"382":{},"383":{},"384":{},"385":{},"386":{}},"tags":{}}],["server'",{"_index":644,"title":{},"content":{"98":{},"175":{},"280":{},"345":{},"377":{}},"tags":{}}],["server_account_activation_dis",{"_index":1499,"title":{},"content":{"210":{},"341":{}},"tags":{}}],["server_admin_password",{"_index":1503,"title":{},"content":{"210":{},"339":{}},"tags":{}}],["server_admin_password=hunter2",{"_index":2238,"title":{},"content":{"339":{}},"tags":{}}],["server_admin_usernam",{"_index":1500,"title":{},"content":{"210":{},"338":{},"339":{},"362":{}},"tags":{}}],["server_admin_username=gamevaultfan1",{"_index":2237,"title":{},"content":{"339":{}},"tags":{}}],["server_api_docs_en",{"_index":378,"title":{},"content":{"75":{},"210":{}},"tags":{}}],["server_cors_allowed_origin",{"_index":1495,"title":{},"content":{"210":{}},"tags":{}}],["server_log_files_en",{"_index":192,"title":{},"content":{"60":{},"210":{}},"tags":{}}],["server_log_level",{"_index":1484,"title":{},"content":{"210":{},"370":{},"371":{}},"tags":{}}],["server_max_download_bandwidth_in_kbp",{"_index":1507,"title":{},"content":{"210":{},"382":{}},"tags":{}}],["server_online_activities_dis",{"_index":1510,"title":{},"content":{"210":{},"385":{}},"tags":{}}],["server_port",{"_index":1477,"title":{},"content":{"210":{}},"tags":{}}],["server_registration_dis",{"_index":1497,"title":{},"content":{"210":{},"340":{}},"tags":{}}],["server_request_log_format",{"_index":1489,"title":{},"content":{"210":{}},"tags":{}}],["server_stack_trace_limit",{"_index":1512,"title":{},"content":{"210":{}},"tags":{}}],["servic",{"_index":256,"title":{"279":{}},"content":{"64":{},"251":{},"276":{},"278":{},"290":{},"293":{},"298":{},"325":{},"326":{},"362":{}},"tags":{}}],["set",{"_index":107,"title":{"69":{},"70":{},"84":{},"89":{},"92":{},"104":{},"105":{},"126":{},"248":{},"258":{},"291":{},"302":{},"304":{},"315":{},"324":{},"362":{}},"content":{"47":{},"48":{},"57":{},"60":{},"63":{},"66":{},"67":{},"74":{},"75":{},"77":{},"81":{},"82":{},"83":{},"85":{},"86":{},"90":{},"94":{},"95":{},"104":{},"105":{},"117":{},"118":{},"120":{},"121":{},"132":{},"135":{},"136":{},"137":{},"154":{},"163":{},"187":{},"188":{},"194":{},"196":{},"210":{},"211":{},"213":{},"215":{},"216":{},"228":{},"229":{},"236":{},"237":{},"238":{},"247":{},"258":{},"260":{},"261":{},"262":{},"270":{},"272":{},"274":{},"280":{},"289":{},"297":{},"300":{},"303":{},"307":{},"315":{},"317":{},"321":{},"327":{},"338":{},"339":{},"340":{},"341":{},"343":{},"348":{},"353":{},"354":{},"356":{},"358":{},"362":{},"365":{},"370":{},"371":{},"377":{},"378":{},"379":{},"382":{},"385":{}},"tags":{}}],["setup",{"_index":175,"title":{"78":{},"81":{},"135":{},"242":{},"337":{}},"content":{"58":{},"81":{},"117":{},"132":{},"138":{},"163":{},"233":{},"234":{},"260":{},"289":{},"345":{},"353":{},"364":{}},"tags":{}}],["setup.bin",{"_index":1347,"title":{},"content":{"185":{}},"tags":{}}],["setup.ex",{"_index":512,"title":{},"content":{"106":{},"117":{},"185":{},"233":{}},"tags":{}}],["setup_*.ex",{"_index":1611,"title":{},"content":{"233":{}},"tags":{}}],["setup_game.ex",{"_index":1358,"title":{},"content":{"186":{},"233":{},"345":{}},"tags":{}}],["setup_game.sh",{"_index":1359,"title":{},"content":{"186":{},"345":{}},"tags":{}}],["seven",{"_index":1806,"title":{},"content":{"246":{}},"tags":{}}],["sever",{"_index":1038,"title":{},"content":{"159":{}},"tags":{}}],["sh",{"_index":1625,"title":{},"content":{"234":{},"345":{}},"tags":{}}],["shape",{"_index":1097,"title":{},"content":{"166":{}},"tags":{}}],["share",{"_index":83,"title":{"161":{},"198":{}},"content":{"44":{},"83":{},"161":{},"166":{},"169":{},"172":{},"179":{},"195":{},"198":{},"200":{},"202":{},"257":{},"292":{},"353":{},"384":{}},"tags":{}}],["sharealik",{"_index":1213,"title":{},"content":{"178":{},"200":{}},"tags":{}}],["ship",{"_index":1119,"title":{},"content":{"194":{},"274":{}},"tags":{}}],["short",{"_index":1493,"title":{},"content":{"210":{}},"tags":{}}],["shortcut",{"_index":587,"title":{},"content":{"85":{}},"tags":{}}],["shorten",{"_index":2270,"title":{},"content":{"370":{}},"tags":{}}],["show",{"_index":683,"title":{},"content":{"116":{},"145":{},"147":{},"202":{},"246":{},"247":{}},"tags":{}}],["shown",{"_index":524,"title":{},"content":{"106":{},"210":{},"242":{}},"tags":{}}],["shutdown",{"_index":2082,"title":{},"content":{"356":{},"367":{}},"tags":{}}],["side",{"_index":919,"title":{},"content":{"146":{},"276":{},"278":{},"325":{},"326":{}},"tags":{}}],["sidecar",{"_index":510,"title":{},"content":{"106":{}},"tags":{}}],["sign",{"_index":805,"title":{},"content":{"129":{},"136":{},"154":{}},"tags":{}}],["simpl",{"_index":74,"title":{},"content":{"44":{},"117":{},"118":{},"135":{},"146":{},"202":{},"230":{},"288":{},"356":{},"385":{}},"tags":{}}],["simplest",{"_index":304,"title":{},"content":{"68":{},"78":{}},"tags":{}}],["simpli",{"_index":770,"title":{},"content":{"122":{},"128":{},"177":{},"181":{},"239":{},"257":{},"332":{},"338":{},"340":{},"341":{}},"tags":{}}],["simplic",{"_index":2068,"title":{},"content":{"361":{}},"tags":{}}],["simplifi",{"_index":594,"title":{},"content":{"86":{},"262":{}},"tags":{}}],["simultan",{"_index":1724,"title":{},"content":{"247":{}},"tags":{}}],["singl",{"_index":744,"title":{"345":{}},"content":{"119":{},"186":{},"191":{},"239":{},"343":{},"345":{},"348":{},"358":{},"371":{}},"tags":{}}],["situat",{"_index":847,"title":{},"content":{"133":{},"215":{}},"tags":{}}],["sixteen",{"_index":1809,"title":{},"content":{"246":{}},"tags":{}}],["size",{"_index":470,"title":{},"content":{"101":{},"188":{},"216":{},"230":{},"300":{}},"tags":{}}],["skip",{"_index":1350,"title":{},"content":{"185":{},"186":{},"230":{}},"tags":{}}],["slash",{"_index":1991,"title":{},"content":{"277":{}},"tags":{}}],["slightli",{"_index":281,"title":{},"content":{"66":{},"191":{}},"tags":{}}],["sln",{"_index":820,"title":{},"content":{"129":{}},"tags":{}}],["slot",{"_index":87,"title":{},"content":{"45":{}},"tags":{}}],["slow",{"_index":2289,"title":{"382":{}},"content":{},"tags":{}}],["small",{"_index":1023,"title":{},"content":{"156":{},"188":{}},"tags":{}}],["smaller",{"_index":1380,"title":{},"content":{"188":{}},"tags":{}}],["smallest",{"_index":1377,"title":{},"content":{"188":{}},"tags":{}}],["smartscreen",{"_index":797,"title":{},"content":{"129":{}},"tags":{}}],["snake",{"_index":1310,"title":{},"content":{"203":{}},"tags":{}}],["snapshot",{"_index":1439,"title":{},"content":{"181":{}},"tags":{}}],["social",{"_index":1250,"title":{},"content":{"202":{}},"tags":{}}],["socket",{"_index":2255,"title":{},"content":{"383":{},"386":{}},"tags":{}}],["socket.io",{"_index":2251,"title":{},"content":{"383":{},"386":{}},"tags":{}}],["sofort",{"_index":1052,"title":{},"content":{"159":{}},"tags":{}}],["softwar",{"_index":1026,"title":{"165":{}},"content":{"156":{},"201":{},"203":{},"321":{}},"tags":{}}],["sole",{"_index":1218,"title":{},"content":{"179":{},"203":{},"215":{}},"tags":{}}],["solid",{"_index":1374,"title":{},"content":{"187":{},"188":{}},"tags":{}}],["solut",{"_index":758,"title":{"371":{},"372":{}},"content":{"120":{},"168":{},"180":{},"300":{},"311":{},"348":{},"358":{},"370":{}},"tags":{}}],["solv",{"_index":1759,"title":{},"content":{"242":{},"371":{}},"tags":{}}],["someth",{"_index":1432,"title":{},"content":{"180":{},"362":{}},"tags":{}}],["soon",{"_index":739,"title":{},"content":{"119":{}},"tags":{}}],["sort",{"_index":623,"title":{},"content":{"88":{},"176":{}},"tags":{}}],["sourc",{"_index":803,"title":{"125":{},"201":{},"313":{}},"content":{"123":{},"125":{},"129":{},"132":{},"169":{},"171":{},"200":{},"201":{},"217":{},"261":{},"262":{},"324":{},"348":{},"358":{},"383":{}},"tags":{}}],["space",{"_index":405,"title":{},"content":{"78":{},"131":{},"185":{},"346":{},"356":{}},"tags":{}}],["spare",{"_index":1199,"title":{},"content":{"177":{}},"tags":{}}],["spec.t",{"_index":1928,"title":{},"content":{"294":{}},"tags":{}}],["special",{"_index":16,"title":{},"content":{"42":{},"255":{},"356":{}},"tags":{}}],["specif",{"_index":270,"title":{"75":{},"298":{}},"content":{"66":{},"75":{},"78":{},"82":{},"86":{},"100":{},"119":{},"133":{},"134":{},"139":{},"145":{},"146":{},"147":{},"162":{},"191":{},"233":{},"261":{},"286":{},"293":{},"320":{},"375":{}},"tags":{}}],["specifi",{"_index":2066,"title":{},"content":{"338":{},"339":{},"361":{},"362":{}},"tags":{}}],["speed",{"_index":2290,"title":{},"content":{"382":{}},"tags":{}}],["spin",{"_index":874,"title":{},"content":{"124":{}},"tags":{}}],["sponsor",{"_index":1204,"title":{},"content":{"177":{}},"tags":{}}],["spread",{"_index":1263,"title":{},"content":{"202":{}},"tags":{}}],["sql",{"_index":1532,"title":{},"content":{"212":{}},"tags":{}}],["sqlite",{"_index":1438,"title":{"374":{}},"content":{"181":{},"182":{},"211":{},"212":{},"218":{},"278":{},"304":{},"305":{},"312":{},"315":{},"326":{}},"tags":{}}],["squar",{"_index":1402,"title":{},"content":{"191":{},"346":{}},"tags":{}}],["squashf",{"_index":2153,"title":{},"content":{"344":{}},"tags":{}}],["src/global",{"_index":1896,"title":{},"content":{"291":{}},"tags":{}}],["src/globals.t",{"_index":1893,"title":{},"content":{"291":{}},"tags":{}}],["ssl",{"_index":2285,"title":{},"content":{"375":{}},"tags":{}}],["stabl",{"_index":28,"title":{"48":{}},"content":{"42":{},"48":{}},"tags":{}}],["stack",{"_index":1270,"title":{},"content":{"202":{},"210":{}},"tags":{}}],["stackoverflow",{"_index":284,"title":{},"content":{"66":{}},"tags":{}}],["stage",{"_index":1360,"title":{},"content":{"186":{},"284":{}},"tags":{}}],["stand",{"_index":1207,"title":{},"content":{"177":{}},"tags":{}}],["standard",{"_index":1086,"title":{},"content":{"164":{},"251":{},"297":{},"383":{}},"tags":{}}],["star",{"_index":2199,"title":{},"content":{"347":{}},"tags":{}}],["start",{"_index":103,"title":{"154":{},"279":{},"316":{}},"content":{"47":{},"48":{},"68":{},"78":{},"115":{},"118":{},"136":{},"145":{},"147":{},"247":{},"255":{},"261":{},"279":{},"287":{},"288":{},"290":{},"294":{},"316":{},"356":{},"370":{},"384":{}},"tags":{}}],["startup",{"_index":628,"title":{},"content":{"93":{},"156":{},"210":{},"338":{},"339":{}},"tags":{}}],["state",{"_index":574,"title":{},"content":{"83":{},"115":{},"119":{},"176":{}},"tags":{}}],["statement",{"_index":1533,"title":{},"content":{"212":{}},"tags":{}}],["static",{"_index":954,"title":{},"content":{"150":{}},"tags":{}}],["station",{"_index":2038,"title":{},"content":{"323":{}},"tags":{}}],["statist",{"_index":619,"title":{},"content":{"87":{}},"tags":{}}],["statu",{"_index":260,"title":{"65":{}},"content":{"65":{},"245":{}},"tags":{}}],["stay",{"_index":878,"title":{},"content":{"125":{}},"tags":{}}],["steam",{"_index":406,"title":{},"content":{"78":{},"171":{},"255":{}},"tags":{}}],["steamdeck",{"_index":353,"title":{"77":{}},"content":{"72":{}},"tags":{}}],["steamo",{"_index":398,"title":{},"content":{"77":{}},"tags":{}}],["step",{"_index":75,"title":{"59":{},"131":{},"132":{},"133":{},"185":{},"186":{},"190":{},"192":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"276":{},"278":{},"279":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"302":{},"303":{},"304":{},"305":{},"306":{},"313":{},"314":{},"315":{},"316":{},"323":{},"324":{},"325":{},"326":{},"350":{},"351":{},"352":{},"353":{},"360":{},"361":{},"362":{},"363":{},"364":{}},"content":{"44":{},"66":{},"115":{},"117":{},"120":{},"126":{},"131":{},"133":{},"184":{},"185":{},"196":{},"230":{},"261":{},"275":{},"287":{},"288":{},"298":{},"303":{},"305":{},"329":{},"341":{}},"tags":{}}],["still",{"_index":725,"title":{},"content":{"117":{},"119":{},"190":{},"383":{}},"tags":{}}],["stop",{"_index":190,"title":{"272":{},"282":{},"309":{},"319":{},"329":{},"356":{},"367":{}},"content":{"60":{},"276":{},"278":{},"309":{},"319":{},"325":{},"326":{},"329":{},"356":{},"362":{},"367":{}},"tags":{}}],["storag",{"_index":472,"title":{},"content":{"101":{},"131":{},"300":{},"321":{},"345":{},"348":{},"353":{},"358":{},"361":{}},"tags":{}}],["storage/us",{"_index":2064,"title":{},"content":{"359":{}},"tags":{}}],["store",{"_index":54,"title":{"124":{},"225":{},"226":{}},"content":{"43":{},"48":{},"78":{},"99":{},"103":{},"104":{},"105":{},"115":{},"119":{},"124":{},"128":{},"129":{},"131":{},"136":{},"138":{},"164":{},"167":{},"171":{},"179":{},"182":{},"202":{},"224":{},"227":{},"276":{},"300":{},"304":{},"361":{},"362":{}},"tags":{}}],["straightforward",{"_index":757,"title":{},"content":{"120":{},"128":{},"141":{},"182":{},"197":{}},"tags":{}}],["stray",{"_index":2217,"title":{},"content":{"347":{}},"tags":{}}],["stream",{"_index":1145,"title":{},"content":{"171":{},"173":{}},"tags":{}}],["streamlin",{"_index":2002,"title":{},"content":{"311":{}},"tags":{}}],["streamread",{"_index":973,"title":{},"content":{"150":{}},"tags":{}}],["streamreader(cli",{"_index":983,"title":{},"content":{"150":{}},"tags":{}}],["streamwrit",{"_index":971,"title":{},"content":{"150":{}},"tags":{}}],["streamwriter(cli",{"_index":977,"title":{},"content":{"150":{}},"tags":{}}],["strictli",{"_index":1228,"title":{},"content":{"179":{}},"tags":{}}],["string",{"_index":966,"title":{},"content":{"150":{},"215":{},"375":{}},"tags":{}}],["stripe",{"_index":1034,"title":{},"content":{"158":{},"164":{}},"tags":{}}],["stripe'",{"_index":1087,"title":{},"content":{"164":{}},"tags":{}}],["strive",{"_index":1276,"title":{},"content":{"202":{}},"tags":{}}],["strong",{"_index":1078,"title":{},"content":{"164":{}},"tags":{}}],["strongli",{"_index":1445,"title":{},"content":{"182":{},"311":{}},"tags":{}}],["structur",{"_index":648,"title":{"114":{},"343":{}},"content":{"114":{},"184":{},"190":{},"231":{},"257":{},"261":{},"299":{},"343":{}},"tags":{}}],["struggl",{"_index":1333,"title":{},"content":{"183":{}},"tags":{}}],["studio",{"_index":817,"title":{},"content":{"129":{},"294":{}},"tags":{}}],["style",{"_index":1992,"title":{},"content":{"277":{}},"tags":{}}],["sub",{"_index":547,"title":{},"content":{"81":{},"191":{}},"tags":{}}],["subfold",{"_index":449,"title":{},"content":{"100":{},"116":{},"131":{},"215":{}},"tags":{}}],["submit",{"_index":1321,"title":{},"content":{"204":{}},"tags":{}}],["subscrib",{"_index":871,"title":{},"content":{"112":{},"139":{},"154":{}},"tags":{}}],["subscript",{"_index":1000,"title":{"159":{},"162":{}},"content":{"137":{},"151":{},"153":{},"157":{},"158":{},"159":{},"161":{},"162":{},"163":{},"168":{}},"tags":{}}],["subsequ",{"_index":2264,"title":{},"content":{"386":{}},"tags":{}}],["success",{"_index":998,"title":{},"content":{"137":{}},"tags":{}}],["successfulli",{"_index":850,"title":{},"content":{"134":{},"192":{},"270":{},"280":{},"307":{},"317":{},"327":{},"354":{},"365":{}},"tags":{}}],["such",{"_index":511,"title":{},"content":{"86":{},"106":{},"119":{},"125":{},"185":{},"186":{},"230":{},"232":{},"233":{},"261":{},"280":{},"290":{},"321":{},"333":{},"342":{},"346":{},"369":{}},"tags":{}}],["sudo",{"_index":224,"title":{},"content":{"62":{},"63":{},"64":{},"65":{}},"tags":{}}],["suffici",{"_index":837,"title":{},"content":{"131":{}},"tags":{}}],["suggest",{"_index":132,"title":{"166":{}},"content":{"49":{},"163":{},"166":{},"202":{}},"tags":{}}],["suggest/discuss",{"_index":126,"title":{"49":{}},"content":{},"tags":{}}],["suit",{"_index":269,"title":{},"content":{"66":{},"258":{},"276":{},"278":{},"325":{},"326":{}},"tags":{}}],["suitabl",{"_index":2003,"title":{},"content":{"311":{}},"tags":{}}],["summari",{"_index":1427,"title":{},"content":{"180":{}},"tags":{}}],["sunshin",{"_index":1177,"title":{},"content":{"173":{}},"tags":{}}],["support",{"_index":90,"title":{"157":{},"165":{},"167":{},"177":{},"220":{},"221":{},"222":{},"223":{},"232":{},"259":{},"268":{},"344":{}},"content":{"45":{},"107":{},"134":{},"141":{},"145":{},"151":{},"154":{},"157":{},"176":{},"177":{},"179":{},"181":{},"201":{},"202":{},"203":{},"215":{},"216":{},"236":{},"247":{},"257":{},"268":{},"287":{},"293":{},"322":{},"343":{},"344":{},"345":{},"356":{},"375":{},"383":{}},"tags":{}}],["suppos",{"_index":1345,"title":{},"content":{"185":{},"291":{}},"tags":{}}],["sure",{"_index":44,"title":{},"content":{"43":{},"60":{},"75":{},"78":{},"122":{},"125":{},"132":{},"164":{},"182":{},"242":{},"268":{},"286":{},"292":{},"293":{},"303":{},"304":{},"345":{},"362":{},"364":{},"369":{},"374":{},"375":{},"382":{}},"tags":{}}],["suspici",{"_index":799,"title":{},"content":{"129":{}},"tags":{}}],["sustain",{"_index":1242,"title":{},"content":{"201":{}},"tags":{}}],["switch",{"_index":102,"title":{"47":{}},"content":{"86":{},"353":{}},"tags":{}}],["synchron",{"_index":750,"title":{},"content":{"119":{},"212":{}},"tags":{}}],["synolog",{"_index":1954,"title":{"321":{}},"content":{"259":{},"321":{},"322":{},"324":{},"327":{},"329":{},"330":{}},"tags":{}}],["syntax",{"_index":1136,"title":{},"content":{"197":{},"257":{},"369":{}},"tags":{}}],["system",{"_index":172,"title":{},"content":{"58":{},"72":{},"114":{},"117":{},"122":{},"128":{},"129":{},"150":{},"158":{},"176":{},"181":{},"185":{},"192":{},"212":{},"246":{},"260":{},"275":{},"285":{},"290":{},"300":{},"311":{},"312":{},"321":{},"346":{},"348":{},"358":{},"364":{}},"tags":{}}],["system.io",{"_index":949,"title":{},"content":{"150":{}},"tags":{}}],["system.io.pip",{"_index":950,"title":{},"content":{"150":{}},"tags":{}}],["system.text",{"_index":951,"title":{},"content":{"150":{}},"tags":{}}],["system.thread",{"_index":952,"title":{},"content":{"150":{}},"tags":{}}],["system.threading.task",{"_index":953,"title":{},"content":{"150":{}},"tags":{}}],["system/vm",{"_index":2016,"title":{},"content":{"315":{}},"tags":{}}],["systemctl",{"_index":257,"title":{},"content":{"64":{}},"tags":{}}],["t",{"_index":1817,"title":{},"content":{"246":{}},"tags":{}}],["t_1080p_2x",{"_index":1791,"title":{},"content":{"245":{}},"tags":{}}],["t_cover_big_2x",{"_index":1786,"title":{},"content":{"245":{}},"tags":{}}],["tab",{"_index":374,"title":{},"content":{"74":{},"80":{},"81":{},"83":{},"97":{},"106":{},"115":{},"117":{},"118":{},"119":{},"136":{},"309":{},"310":{},"330":{}},"tags":{}}],["tabl",{"_index":1471,"title":{},"content":{"208":{},"219":{},"246":{},"346":{}},"tags":{}}],["tag",{"_index":607,"title":{},"content":{"86":{},"176":{},"221":{},"231":{},"233":{},"234":{},"245":{},"296":{},"320":{},"346":{}},"tags":{}}],["tags/9.0.0",{"_index":2030,"title":{},"content":{"320":{}},"tags":{}}],["tailor",{"_index":1104,"title":{},"content":{"168":{},"275":{}},"tags":{}}],["take",{"_index":99,"title":{},"content":{"45":{},"116":{},"174":{},"187":{},"188":{},"190":{},"202":{},"203":{},"242":{},"260":{}},"tags":{}}],["tar",{"_index":2131,"title":{},"content":{"344":{},"345":{}},"tags":{}}],["tar.bz2",{"_index":2198,"title":{},"content":{"346":{}},"tags":{}}],["tar.gz",{"_index":2197,"title":{},"content":{"346":{}},"tags":{}}],["target",{"_index":415,"title":{},"content":{"78":{},"145":{}},"tags":{}}],["task",{"_index":1338,"title":{},"content":{"184":{}},"tags":{}}],["taskhttps://gamevau.lt/blogweekly0.5https://gamevau.lt/blog/2023/07/01/weekly0.5https://gamevau.lt/blog/2023/07/08/weekly0.5https://gamevau.lt/blog/2023/07/09/weekly0.5https://gamevau.lt/blog/2023/07/13/weekly0.5https://gamevau.lt/blog/2023/07/15/weekly0.5https://gamevau.lt/blog/2023/07/19/weekly0.5https://gamevau.lt/blog/2023/07/20/weekly0.5https://gamevau.lt/blog/2023/07/24/weekly0.5https://gamevau.lt/blog/2023/07/29/weekly0.5https://gamevau.lt/blog/2023/11/20/weekly0.5https://gamevau.lt/blog/2023/12/09/weekly0.5https://gamevau.lt/blog/2024/03/28/weekly0.5https://gamevau.lt/blog/2024/04/01/2024-04-01/weekly0.5https://gamevau.lt/blog/2024/04/14/weekly0.5https://gamevau.lt/blog/2024/05/07/weekly0.5https://gamevau.lt/blog/2024/10/20/weekly0.5https://gamevau.lt/blog/archiveweekly0.5https://gamevau.lt/blog/authorsweekly0.5https://gamevau.lt/blog/page/2weekly0.5https://gamevau.lt/blog/tagsweekly0.5https://gamevau.lt/blog/tags/age-restrictionsweekly0.5https://gamevau.lt/blog/tags/ai-generated-namesweekly0.5https://gamevau.lt/blog/tags/alternativeweekly0.5https://gamevau.lt/blog/tags/analyticsweekly0.5https://gamevau.lt/blog/tags/announcementweekly0.5https://gamevau.lt/blog/tags/apiweekly0.5https://gamevau.lt/blog/tags/appweekly0.5https://gamevau.lt/blog/tags/app-name-migrationweekly0.5https://gamevau.lt/blog/tags/app-optimizationweekly0.5https://gamevau.lt/blog/tags/april-foolsweekly0.5https://gamevau.lt/blog/tags/backendweekly0.5https://gamevau.lt/blog/tags/backend-application-migrationweekly0.5https://gamevau.lt/blog/tags/beta-testingweekly0.5https://gamevau.lt/blog/tags/blackmailweekly0.5https://gamevau.lt/blog/tags/box-representationweekly0.5https://gamevau.lt/blog/tags/bugsweekly0.5https://gamevau.lt/blog/tags/celebration-of-achievementsweekly0.5https://gamevau.lt/blog/tags/client-application-updateweekly0.5https://gamevau.lt/blog/tags/client-updateweekly0.5https://gamevau.lt/blog/tags/cloud-based-game-platformsweekly0.5https://gamevau.lt/blog/tags/code-accessweekly0.5https://gamevau.lt/blog/tags/coding-chronicleweekly0.5https://gamevau.lt/blog/tags/collaborationweekly0.5https://gamevau.lt/blog/tags/communityweekly0.5https://gamevau.lt/blog/tags/community-drivenweekly0.5https://gamevau.lt/blog/tags/community-feedbackweekly0.5https://gamevau.lt/blog/tags/community-managementweekly0.5https://gamevau.lt/blog/tags/continued-supportweekly0.5https://gamevau.lt/blog/tags/controlweekly0.5https://gamevau.lt/blog/tags/council-memberweekly0.5https://gamevau.lt/blog/tags/creepy-behaviorweekly0.5https://gamevau.lt/blog/tags/databaseweekly0.5https://gamevau.lt/blog/tags/decision-makingweekly0.5https://gamevau.lt/blog/tags/developersweekly0.5https://gamevau.lt/blog/tags/developmentweekly0.5https://gamevau.lt/blog/tags/development-milestonesweekly0.5https://gamevau.lt/blog/tags/discordweekly0.5https://gamevau.lt/blog/tags/discord-channelweekly0.5https://gamevau.lt/blog/tags/discord-community-growthweekly0.5https://gamevau.lt/blog/tags/discord-serverweekly0.5https://gamevau.lt/blog/tags/discord-server-promotionweekly0.5https://gamevau.lt/blog/tags/documentation-migrationweekly0.5https://gamevau.lt/blog/tags/domain-acquisitionweekly0.5https://gamevau.lt/blog/tags/drm-freeweekly0.5https://gamevau.lt/blog/tags/drm-free-gamesweekly0.5https://gamevau.lt/blog/tags/early-accessweekly0.5https://gamevau.lt/blog/tags/easter-eggweekly0.5https://gamevau.lt/blog/tags/engagementweekly0.5https://gamevau.lt/blog/tags/exclusive-previewweekly0.5https://gamevau.lt/blog/tags/family-friendlyweekly0.5https://gamevau.lt/blog/tags/feature-requestsweekly0.5https://gamevau.lt/blog/tags/featuresweekly0.5https://gamevau.lt/blog/tags/feedbackweekly0.5https://gamevau.lt/blog/tags/file-serverweekly0.5https://gamevau.lt/blog/tags/financial-assistanceweekly0.5https://gamevau.lt/blog/tags/future-developmentweekly0.5https://gamevau.lt/blog/tags/future-featuresweekly0.5https://gamevau.lt/blog/tags/gameweekly0.5https://gamevau.lt/blog/tags/game-developmentweekly0.5https://gamevau.lt/blog/tags/game-hubweekly0.5https://gamevau.lt/blog/tags/game-shelfweekly0.5https://gamevau.lt/blog/tags/game-stashweekly0.5https://gamevau.lt/blog/tags/game-vaultweekly0.5https://gamevau.lt/blog/tags/game-vault-appweekly0.5https://gamevau.lt/blog/tags/game-vault-domainweekly0.5https://gamevau.lt/blog/tags/game-vault-journeyweekly0.5https://gamevau.lt/blog/tags/game-vault-milestoneweekly0.5https://gamevau.lt/blog/tags/gamingweekly0.5https://gamevau.lt/blog/tags/gaming-communityweekly0.5https://gamevau.lt/blog/tags/gaming-experienceweekly0.5https://gamevau.lt/blog/tags/gaming-platformweekly0.5https://gamevau.lt/blog/tags/gaming-serversweekly0.5https://gamevau.lt/blog/tags/git-hubweekly0.5https://gamevau.lt/blog/tags/git-hub-issueweekly0.5https://gamevau.lt/blog/tags/gratitudeweekly0.5https://gamevau.lt/blog/tags/harassmentweekly0.5https://gamevau.lt/blog/tags/harborweekly0.5https://gamevau.lt/blog/tags/health-monitoringweekly0.5https://gamevau.lt/blog/tags/hybrid-modelweekly0.5https://gamevau.lt/blog/tags/igdbweekly0.5https://gamevau.lt/blog/tags/improvementweekly0.5https://gamevau.lt/blog/tags/inclusivityweekly0.5https://gamevau.lt/blog/tags/installation-pipelineweekly0.5https://gamevau.lt/blog/tags/kanban-boardweekly0.5https://gamevau.lt/blog/tags/keyhole-representationweekly0.5https://gamevau.lt/blog/tags/lemmy-communityweekly0.5https://gamevau.lt/blog/tags/lemmy-community-launchweekly0.5https://gamevau.lt/blog/tags/lemmy-forumweekly0.5https://gamevau.lt/blog/tags/logo-concept-discussionweekly0.5https://gamevau.lt/blog/tags/logo-decipheringweekly0.5https://gamevau.lt/blog/tags/love-for-game-vaultweekly0.5https://gamevau.lt/blog/tags/market-analysisweekly0.5https://gamevau.lt/blog/tags/metadataweekly0.5https://gamevau.lt/blog/tags/metadata-frameworkweekly0.5https://gamevau.lt/blog/tags/microsoft-storeweekly0.5https://gamevau.lt/blog/tags/microsoft-store-publicationweekly0.5https://gamevau.lt/blog/tags/migration-finalizationweekly0.5https://gamevau.lt/blog/tags/motivationweekly0.5https://gamevau.lt/blog/tags/multi-user-authenticationweekly0.5https://gamevau.lt/blog/tags/name-migration-progressweekly0.5https://gamevau.lt/blog/tags/negative-narrativesweekly0.5https://gamevau.lt/blog/tags/new-logoweekly0.5https://gamevau.lt/blog/tags/new-nameweekly0.5https://gamevau.lt/blog/tags/new-name-announcementweekly0.5https://gamevau.lt/blog/tags/notesweekly0.5https://gamevau.lt/blog/tags/november-updateweekly0.5https://gamevau.lt/blog/tags/official-installationsweekly0.5https://gamevau.lt/blog/tags/open-sourceweekly0.5https://gamevau.lt/blog/tags/parental-controlweekly0.5https://gamevau.lt/blog/tags/partnershipweekly0.5https://gamevau.lt/blog/tags/partnershipsweekly0.5https://gamevau.lt/blog/tags/platformweekly0.5https://gamevau.lt/blog/tags/platform-valuesweekly0.5https://gamevau.lt/blog/tags/plugin-systemweekly0.5https://gamevau.lt/blog/tags/pollweekly0.5https://gamevau.lt/blog/tags/poll-resultsweekly0.5https://gamevau.lt/blog/tags/pollsweekly0.5https://gamevau.lt/blog/tags/publicweekly0.5https://gamevau.lt/blog/tags/racistweekly0.5https://gamevau.lt/blog/tags/rawgweekly0.5https://gamevau.lt/blog/tags/rawg-apiweekly0.5https://gamevau.lt/blog/tags/reddit-forumweekly0.5https://gamevau.lt/blog/tags/releaseweekly0.5https://gamevau.lt/blog/tags/renaming-appweekly0.5https://gamevau.lt/blog/tags/revenue-generationweekly0.5https://gamevau.lt/blog/tags/roadmapweekly0.5https://gamevau.lt/blog/tags/safe-environmentweekly0.5https://gamevau.lt/blog/tags/self-hostedweekly0.5https://gamevau.lt/blog/tags/self-hosted-newsletterweekly0.5https://gamevau.lt/blog/tags/selfhosted-podcastweekly0.5https://gamevau.lt/blog/tags/server-updateweekly0.5https://gamevau.lt/blog/tags/sharing-blog-postsweekly0.5https://gamevau.lt/blog/tags/simplifying-game-installationweekly0.5https://gamevau.lt/blog/tags/softwareweekly0.5https://gamevau.lt/blog/tags/software-developmentweekly0.5https://gamevau.lt/blog/tags/software-licensingweekly0.5https://gamevau.lt/blog/tags/software-updatesweekly0.5https://gamevau.lt/blog/tags/solutionweekly0.5https://gamevau.lt/blog/tags/source-availableweekly0.5https://gamevau.lt/blog/tags/source-available-softwareweekly0.5https://gamevau.lt/blog/tags/spamweekly0.5https://gamevau.lt/blog/tags/special-thanksweekly0.5https://gamevau.lt/blog/tags/speculationweekly0.5https://gamevau.lt/blog/tags/spreading-the-wordweekly0.5https://gamevau.lt/blog/tags/startupweekly0.5https://gamevau.lt/blog/tags/steamweekly0.5https://gamevau.lt/blog/tags/subreddit-migrationweekly0.5https://gamevau.lt/blog/tags/subscriptionweekly0.5https://gamevau.lt/blog/tags/subscription-modelweekly0.5https://gamevau.lt/blog/tags/subscription-to-updates-roleweekly0.5https://gamevau.lt/blog/tags/successweekly0.5https://gamevau.lt/blog/tags/supportweekly0.5https://gamevau.lt/blog/tags/support-requestweekly0.5https://gamevau.lt/blog/tags/surge-of-new-usersweekly0.5https://gamevau.lt/blog/tags/sustainabilityweekly0.5https://gamevau.lt/blog/tags/tech-progressweekly0.5https://gamevau.lt/blog/tags/testingweekly0.5https://gamevau.lt/blog/tags/themeweekly0.5https://gamevau.lt/blog/tags/threatsweekly0.5https://gamevau.lt/blog/tags/transition-processweekly0.5https://gamevau.lt/blog/tags/transparencyweekly0.5https://gamevau.lt/blog/tags/trollsweekly0.5https://gamevau.lt/blog/tags/twitch-tvweekly0.5https://gamevau.lt/blog/tags/ui-redesignweekly0.5https://gamevau.lt/blog/tags/ui-updateweekly0.5https://gamevau.lt/blog/tags/upcoming-updateweekly0.5https://gamevau.lt/blog/tags/updateweekly0.5https://gamevau.lt/blog/tags/updatesweekly0.5https://gamevau.lt/blog/tags/user-engagementweekly0.5https://gamevau.lt/blog/tags/user-participationweekly0.5https://gamevau.lt/blog/tags/video-gamesweekly0.5https://gamevau.lt/blog/tags/videogameweekly0.5https://gamevau.lt/blog/tags/votingweekly0.5https://gamevau.lt/docs/advanced-usage/early-access-programweekly0.5https://gamevau.lt/docs/advanced-usage/fail2ban-gamevault-guideweekly0.5https://gamevau.lt/docs/advanced-usage/linux-clientweekly0.5https://gamevau.lt/docs/advanced-usage/rest-apiweekly0.5https://gamevau.lt/docs/advanced-usage/steamdeckweekly0.5https://gamevau.lt/docs/client-docs/dataweekly0.5https://gamevau.lt/docs/client-docs/guiweekly0.5https://gamevau.lt/docs/client-docs/how-to-useweekly0.5https://gamevau.lt/docs/client-docs/setupweekly0.5https://gamevau.lt/docs/client-docs/themesweekly0.5https://gamevau.lt/docs/client-docs/updating-clientweekly0.5https://gamevau.lt/docs/gamevault-plus/client-apisweekly0.5https://gamevau.lt/docs/gamevault-plus/client-setupweekly0.5https://gamevau.lt/docs/gamevault-plus/introductionweekly0.5https://gamevau.lt/docs/gamevault-plus/themesweekly0.5https://gamevau.lt/docs/introweekly0.5https://gamevau.lt/docs/license-contributeweekly0.5https://gamevau.lt/docs/server-docs/adding-gamesweekly0.5https://gamevau.lt/docs/server-docs/backup-and-restoreweekly0.5https://gamevau.lt/docs/server-docs/configurationweekly0.5https://gamevau.lt/docs/server-docs/game-typesweekly0.5https://gamevau.lt/docs/server-docs/indexingweekly0.5https://gamevau.lt/docs/server-docs/mediaweekly0.5https://gamevau.lt/docs/server-docs/metadata-enrichment/metadataweekly0.5https://gamevau.lt/docs/server-docs/metadata-enrichment/provider-igdbweekly0.5https://gamevau.lt/docs/server-docs/parental-controlweekly0.5https://gamevau.lt/docs/server-docs/pluginsweekly0.5https://gamevau.lt/docs/server-docs/server-newsweekly0.5https://gamevau.lt/docs/server-docs/setup/weekly0.5https://gamevau.lt/docs/server-docs/setup/caproverweekly0.5https://gamevau.lt/docs/server-docs/setup/docker-composeweekly0.5https://gamevau.lt/docs/server-docs/setup/nativeweekly0.5https://gamevau.lt/docs/server-docs/setup/synology-container-managerweekly0.5https://gamevau.lt/docs/server-docs/setup/truenas-scaleweekly0.5https://gamevau.lt/docs/server-docs/setup/unraidweekly0.5https://gamevau.lt/docs/server-docs/structureweekly0.5https://gamevau.lt/docs/server-docs/updating-gamesweekly0.5https://gamevau.lt/docs/server-docs/user-managementweekly0.5https://gamevau.lt/docs/server-docs/websocketsweekly0.5https://gamevau.lt/docs/troubleshootingweekly0.5https://gamevau.lt/weekly0.5 \ No newline at end of file +https://gamevau.lt/blogweekly0.5https://gamevau.lt/blog/2023/07/01/weekly0.5https://gamevau.lt/blog/2023/07/08/weekly0.5https://gamevau.lt/blog/2023/07/09/weekly0.5https://gamevau.lt/blog/2023/07/13/weekly0.5https://gamevau.lt/blog/2023/07/15/weekly0.5https://gamevau.lt/blog/2023/07/19/weekly0.5https://gamevau.lt/blog/2023/07/20/weekly0.5https://gamevau.lt/blog/2023/07/24/weekly0.5https://gamevau.lt/blog/2023/07/29/weekly0.5https://gamevau.lt/blog/2023/11/20/weekly0.5https://gamevau.lt/blog/2023/12/09/weekly0.5https://gamevau.lt/blog/2024/03/28/weekly0.5https://gamevau.lt/blog/2024/04/01/2024-04-01/weekly0.5https://gamevau.lt/blog/2024/04/14/weekly0.5https://gamevau.lt/blog/2024/05/07/weekly0.5https://gamevau.lt/blog/2024/10/20/weekly0.5https://gamevau.lt/blog/archiveweekly0.5https://gamevau.lt/blog/authorsweekly0.5https://gamevau.lt/blog/page/2weekly0.5https://gamevau.lt/blog/tagsweekly0.5https://gamevau.lt/blog/tags/age-restrictionsweekly0.5https://gamevau.lt/blog/tags/ai-generated-namesweekly0.5https://gamevau.lt/blog/tags/alternativeweekly0.5https://gamevau.lt/blog/tags/analyticsweekly0.5https://gamevau.lt/blog/tags/announcementweekly0.5https://gamevau.lt/blog/tags/apiweekly0.5https://gamevau.lt/blog/tags/appweekly0.5https://gamevau.lt/blog/tags/app-name-migrationweekly0.5https://gamevau.lt/blog/tags/app-optimizationweekly0.5https://gamevau.lt/blog/tags/april-foolsweekly0.5https://gamevau.lt/blog/tags/backendweekly0.5https://gamevau.lt/blog/tags/backend-application-migrationweekly0.5https://gamevau.lt/blog/tags/beta-testingweekly0.5https://gamevau.lt/blog/tags/blackmailweekly0.5https://gamevau.lt/blog/tags/box-representationweekly0.5https://gamevau.lt/blog/tags/bugsweekly0.5https://gamevau.lt/blog/tags/celebration-of-achievementsweekly0.5https://gamevau.lt/blog/tags/client-application-updateweekly0.5https://gamevau.lt/blog/tags/client-updateweekly0.5https://gamevau.lt/blog/tags/cloud-based-game-platformsweekly0.5https://gamevau.lt/blog/tags/code-accessweekly0.5https://gamevau.lt/blog/tags/coding-chronicleweekly0.5https://gamevau.lt/blog/tags/collaborationweekly0.5https://gamevau.lt/blog/tags/communityweekly0.5https://gamevau.lt/blog/tags/community-drivenweekly0.5https://gamevau.lt/blog/tags/community-feedbackweekly0.5https://gamevau.lt/blog/tags/community-managementweekly0.5https://gamevau.lt/blog/tags/continued-supportweekly0.5https://gamevau.lt/blog/tags/controlweekly0.5https://gamevau.lt/blog/tags/council-memberweekly0.5https://gamevau.lt/blog/tags/creepy-behaviorweekly0.5https://gamevau.lt/blog/tags/databaseweekly0.5https://gamevau.lt/blog/tags/decision-makingweekly0.5https://gamevau.lt/blog/tags/developersweekly0.5https://gamevau.lt/blog/tags/developmentweekly0.5https://gamevau.lt/blog/tags/development-milestonesweekly0.5https://gamevau.lt/blog/tags/discordweekly0.5https://gamevau.lt/blog/tags/discord-channelweekly0.5https://gamevau.lt/blog/tags/discord-community-growthweekly0.5https://gamevau.lt/blog/tags/discord-serverweekly0.5https://gamevau.lt/blog/tags/discord-server-promotionweekly0.5https://gamevau.lt/blog/tags/documentation-migrationweekly0.5https://gamevau.lt/blog/tags/domain-acquisitionweekly0.5https://gamevau.lt/blog/tags/drm-freeweekly0.5https://gamevau.lt/blog/tags/drm-free-gamesweekly0.5https://gamevau.lt/blog/tags/early-accessweekly0.5https://gamevau.lt/blog/tags/easter-eggweekly0.5https://gamevau.lt/blog/tags/engagementweekly0.5https://gamevau.lt/blog/tags/exclusive-previewweekly0.5https://gamevau.lt/blog/tags/family-friendlyweekly0.5https://gamevau.lt/blog/tags/feature-requestsweekly0.5https://gamevau.lt/blog/tags/featuresweekly0.5https://gamevau.lt/blog/tags/feedbackweekly0.5https://gamevau.lt/blog/tags/file-serverweekly0.5https://gamevau.lt/blog/tags/financial-assistanceweekly0.5https://gamevau.lt/blog/tags/future-developmentweekly0.5https://gamevau.lt/blog/tags/future-featuresweekly0.5https://gamevau.lt/blog/tags/gameweekly0.5https://gamevau.lt/blog/tags/game-developmentweekly0.5https://gamevau.lt/blog/tags/game-hubweekly0.5https://gamevau.lt/blog/tags/game-shelfweekly0.5https://gamevau.lt/blog/tags/game-stashweekly0.5https://gamevau.lt/blog/tags/game-vaultweekly0.5https://gamevau.lt/blog/tags/game-vault-appweekly0.5https://gamevau.lt/blog/tags/game-vault-domainweekly0.5https://gamevau.lt/blog/tags/game-vault-journeyweekly0.5https://gamevau.lt/blog/tags/game-vault-milestoneweekly0.5https://gamevau.lt/blog/tags/gamingweekly0.5https://gamevau.lt/blog/tags/gaming-communityweekly0.5https://gamevau.lt/blog/tags/gaming-experienceweekly0.5https://gamevau.lt/blog/tags/gaming-platformweekly0.5https://gamevau.lt/blog/tags/gaming-serversweekly0.5https://gamevau.lt/blog/tags/git-hubweekly0.5https://gamevau.lt/blog/tags/git-hub-issueweekly0.5https://gamevau.lt/blog/tags/gratitudeweekly0.5https://gamevau.lt/blog/tags/harassmentweekly0.5https://gamevau.lt/blog/tags/harborweekly0.5https://gamevau.lt/blog/tags/health-monitoringweekly0.5https://gamevau.lt/blog/tags/hybrid-modelweekly0.5https://gamevau.lt/blog/tags/igdbweekly0.5https://gamevau.lt/blog/tags/improvementweekly0.5https://gamevau.lt/blog/tags/inclusivityweekly0.5https://gamevau.lt/blog/tags/installation-pipelineweekly0.5https://gamevau.lt/blog/tags/kanban-boardweekly0.5https://gamevau.lt/blog/tags/keyhole-representationweekly0.5https://gamevau.lt/blog/tags/lemmy-communityweekly0.5https://gamevau.lt/blog/tags/lemmy-community-launchweekly0.5https://gamevau.lt/blog/tags/lemmy-forumweekly0.5https://gamevau.lt/blog/tags/logo-concept-discussionweekly0.5https://gamevau.lt/blog/tags/logo-decipheringweekly0.5https://gamevau.lt/blog/tags/love-for-game-vaultweekly0.5https://gamevau.lt/blog/tags/market-analysisweekly0.5https://gamevau.lt/blog/tags/metadataweekly0.5https://gamevau.lt/blog/tags/metadata-frameworkweekly0.5https://gamevau.lt/blog/tags/microsoft-storeweekly0.5https://gamevau.lt/blog/tags/microsoft-store-publicationweekly0.5https://gamevau.lt/blog/tags/migration-finalizationweekly0.5https://gamevau.lt/blog/tags/motivationweekly0.5https://gamevau.lt/blog/tags/multi-user-authenticationweekly0.5https://gamevau.lt/blog/tags/name-migration-progressweekly0.5https://gamevau.lt/blog/tags/negative-narrativesweekly0.5https://gamevau.lt/blog/tags/new-logoweekly0.5https://gamevau.lt/blog/tags/new-nameweekly0.5https://gamevau.lt/blog/tags/new-name-announcementweekly0.5https://gamevau.lt/blog/tags/notesweekly0.5https://gamevau.lt/blog/tags/november-updateweekly0.5https://gamevau.lt/blog/tags/official-installationsweekly0.5https://gamevau.lt/blog/tags/open-sourceweekly0.5https://gamevau.lt/blog/tags/parental-controlweekly0.5https://gamevau.lt/blog/tags/partnershipweekly0.5https://gamevau.lt/blog/tags/partnershipsweekly0.5https://gamevau.lt/blog/tags/platformweekly0.5https://gamevau.lt/blog/tags/platform-valuesweekly0.5https://gamevau.lt/blog/tags/plugin-systemweekly0.5https://gamevau.lt/blog/tags/pollweekly0.5https://gamevau.lt/blog/tags/poll-resultsweekly0.5https://gamevau.lt/blog/tags/pollsweekly0.5https://gamevau.lt/blog/tags/publicweekly0.5https://gamevau.lt/blog/tags/racistweekly0.5https://gamevau.lt/blog/tags/rawgweekly0.5https://gamevau.lt/blog/tags/rawg-apiweekly0.5https://gamevau.lt/blog/tags/reddit-forumweekly0.5https://gamevau.lt/blog/tags/releaseweekly0.5https://gamevau.lt/blog/tags/renaming-appweekly0.5https://gamevau.lt/blog/tags/revenue-generationweekly0.5https://gamevau.lt/blog/tags/roadmapweekly0.5https://gamevau.lt/blog/tags/safe-environmentweekly0.5https://gamevau.lt/blog/tags/self-hostedweekly0.5https://gamevau.lt/blog/tags/self-hosted-newsletterweekly0.5https://gamevau.lt/blog/tags/selfhosted-podcastweekly0.5https://gamevau.lt/blog/tags/server-updateweekly0.5https://gamevau.lt/blog/tags/sharing-blog-postsweekly0.5https://gamevau.lt/blog/tags/simplifying-game-installationweekly0.5https://gamevau.lt/blog/tags/softwareweekly0.5https://gamevau.lt/blog/tags/software-developmentweekly0.5https://gamevau.lt/blog/tags/software-licensingweekly0.5https://gamevau.lt/blog/tags/software-updatesweekly0.5https://gamevau.lt/blog/tags/solutionweekly0.5https://gamevau.lt/blog/tags/source-availableweekly0.5https://gamevau.lt/blog/tags/source-available-softwareweekly0.5https://gamevau.lt/blog/tags/spamweekly0.5https://gamevau.lt/blog/tags/special-thanksweekly0.5https://gamevau.lt/blog/tags/speculationweekly0.5https://gamevau.lt/blog/tags/spreading-the-wordweekly0.5https://gamevau.lt/blog/tags/startupweekly0.5https://gamevau.lt/blog/tags/steamweekly0.5https://gamevau.lt/blog/tags/subreddit-migrationweekly0.5https://gamevau.lt/blog/tags/subscriptionweekly0.5https://gamevau.lt/blog/tags/subscription-modelweekly0.5https://gamevau.lt/blog/tags/subscription-to-updates-roleweekly0.5https://gamevau.lt/blog/tags/successweekly0.5https://gamevau.lt/blog/tags/supportweekly0.5https://gamevau.lt/blog/tags/support-requestweekly0.5https://gamevau.lt/blog/tags/surge-of-new-usersweekly0.5https://gamevau.lt/blog/tags/sustainabilityweekly0.5https://gamevau.lt/blog/tags/tech-progressweekly0.5https://gamevau.lt/blog/tags/testingweekly0.5https://gamevau.lt/blog/tags/themeweekly0.5https://gamevau.lt/blog/tags/threatsweekly0.5https://gamevau.lt/blog/tags/transition-processweekly0.5https://gamevau.lt/blog/tags/transparencyweekly0.5https://gamevau.lt/blog/tags/trollsweekly0.5https://gamevau.lt/blog/tags/twitch-tvweekly0.5https://gamevau.lt/blog/tags/ui-redesignweekly0.5https://gamevau.lt/blog/tags/ui-updateweekly0.5https://gamevau.lt/blog/tags/upcoming-updateweekly0.5https://gamevau.lt/blog/tags/updateweekly0.5https://gamevau.lt/blog/tags/updatesweekly0.5https://gamevau.lt/blog/tags/user-engagementweekly0.5https://gamevau.lt/blog/tags/user-participationweekly0.5https://gamevau.lt/blog/tags/video-gamesweekly0.5https://gamevau.lt/blog/tags/videogameweekly0.5https://gamevau.lt/blog/tags/votingweekly0.5https://gamevau.lt/docs/advanced-usage/early-access-programweekly0.5https://gamevau.lt/docs/advanced-usage/fail2ban-gamevault-guideweekly0.5https://gamevau.lt/docs/advanced-usage/linux-clientweekly0.5https://gamevau.lt/docs/advanced-usage/rest-apiweekly0.5https://gamevau.lt/docs/advanced-usage/steamdeckweekly0.5https://gamevau.lt/docs/client-docs/dataweekly0.5https://gamevau.lt/docs/client-docs/guiweekly0.5https://gamevau.lt/docs/client-docs/how-to-useweekly0.5https://gamevau.lt/docs/client-docs/setupweekly0.5https://gamevau.lt/docs/client-docs/themesweekly0.5https://gamevau.lt/docs/client-docs/updating-clientweekly0.5https://gamevau.lt/docs/gamevault-plus/client-apisweekly0.5https://gamevau.lt/docs/gamevault-plus/client-setupweekly0.5https://gamevau.lt/docs/gamevault-plus/introductionweekly0.5https://gamevau.lt/docs/gamevault-plus/themesweekly0.5https://gamevau.lt/docs/introweekly0.5https://gamevau.lt/docs/license-contributeweekly0.5https://gamevau.lt/docs/server-docs/adding-gamesweekly0.5https://gamevau.lt/docs/server-docs/backup-and-restoreweekly0.5https://gamevau.lt/docs/server-docs/configurationweekly0.5https://gamevau.lt/docs/server-docs/game-typesweekly0.5https://gamevau.lt/docs/server-docs/indexingweekly0.5https://gamevau.lt/docs/server-docs/mediaweekly0.5https://gamevau.lt/docs/server-docs/metadata-enrichment/metadataweekly0.5https://gamevau.lt/docs/server-docs/metadata-enrichment/provider-igdbweekly0.5https://gamevau.lt/docs/server-docs/parental-controlweekly0.5https://gamevau.lt/docs/server-docs/pluginsweekly0.5https://gamevau.lt/docs/server-docs/server-newsweekly0.5https://gamevau.lt/docs/server-docs/setup/weekly0.5https://gamevau.lt/docs/server-docs/setup/caproverweekly0.5https://gamevau.lt/docs/server-docs/setup/docker-composeweekly0.5https://gamevau.lt/docs/server-docs/setup/nativeweekly0.5https://gamevau.lt/docs/server-docs/setup/synology-container-managerweekly0.5https://gamevau.lt/docs/server-docs/setup/truenas-scaleweekly0.5https://gamevau.lt/docs/server-docs/setup/truenas-scale-legacyweekly0.5https://gamevau.lt/docs/server-docs/setup/unraidweekly0.5https://gamevau.lt/docs/server-docs/structureweekly0.5https://gamevau.lt/docs/server-docs/updating-gamesweekly0.5https://gamevau.lt/docs/server-docs/user-managementweekly0.5https://gamevau.lt/docs/server-docs/websocketsweekly0.5https://gamevau.lt/docs/troubleshootingweekly0.5https://gamevau.lt/weekly0.5 \ No newline at end of file