// ==UserScript== // @name Steam GameStatus // @name:ru Steam GameStatus // @name:zh-CN Steam GameStatus // @name:es Steam GameStatus // @name:pt-BR Steam GameStatus // @name:de Steam GameStatus // @name:fr Steam GameStatus // @name:ja Steam GameStatus // @name:ko Steam GameStatus // @name:pl Steam GameStatus // @namespace https://github.com/NemoKing1210/steam-gamestatus // @version 1.13.0 // @author NemoKing1210 // @description Adds extra game info from gamestatus.info on Steam store cards and game pages // @description:ru Добавляет доп. информацию с gamestatus.info на карточки Steam и страницы игр // @description:zh-CN 在 Steam 商店卡片和游戏页面显示来自 gamestatus.info 的额外游戏信息 // @description:es Añade información extra de gamestatus.info en tarjetas y páginas de Steam // @description:pt-BR Adiciona informações extras do gamestatus.info nos cards e páginas da Steam // @description:de Zeigt zusätzliche Spieldaten von gamestatus.info auf Steam-Karten und Spielseiten // @description:fr Ajoute des infos supplémentaires de gamestatus.info sur les cartes et pages Steam // @description:ja Steamのカードとゲームページに gamestatus.info の追加ゲーム情報を表示 // @description:ko Steam 카드 및 게임 페이지에 gamestatus.info 추가 게임 정보를 표시 // @description:pl Dodaje dodatkowe informacje z gamestatus.info na kartach i stronach Steam // @license MIT // @icon https://gamestatus.info/favicon.ico // @homepage https://github.com/NemoKing1210/steam-gamestatus // @homepageURL https://github.com/NemoKing1210/steam-gamestatus // @source https://github.com/NemoKing1210/steam-gamestatus.git // @supportURL https://github.com/NemoKing1210/steam-gamestatus/issues // @match https://store.steampowered.com/* // @match https://steamcommunity.com/app/* // @tag steam // @tag games // @connect gamestatus.info // @connect cdn.gamestatus.info // @grant GM_addStyle // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_xmlhttpRequest // @run-at document-idle // @noframes // ==/UserScript== (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const a=document.createElement("style");a.textContent=e,document.head.append(a)})(' html.gs-badge-size-sm,.gs-preview[data-size=small]{--gs-card-badge-font: 11px;--gs-card-badge-lh: 19px;--gs-card-badge-gap: 5px;--gs-card-badge-pad-x: 7px;--gs-card-badge-dot: 4px;--gs-card-badge-loading-dot: 10px;--gs-chart-badge-font: 10px;--gs-chart-badge-lh: 16px;--gs-chart-badge-pad-x: 6px}html.gs-badge-size-md,.gs-preview[data-size=medium]{--gs-card-badge-font: 13px;--gs-card-badge-lh: 23px;--gs-card-badge-gap: 6px;--gs-card-badge-pad-x: 9px;--gs-card-badge-dot: 5px;--gs-card-badge-loading-dot: 12px;--gs-chart-badge-font: 12px;--gs-chart-badge-lh: 19px;--gs-chart-badge-pad-x: 7px}html.gs-badge-size-lg,.gs-preview[data-size=large]{--gs-card-badge-font: 15px;--gs-card-badge-lh: 26px;--gs-card-badge-gap: 7px;--gs-card-badge-pad-x: 10px;--gs-card-badge-dot: 6px;--gs-card-badge-loading-dot: 14px;--gs-chart-badge-font: 14px;--gs-chart-badge-lh: 22px;--gs-chart-badge-pad-x: 8px}html.gs-badge-size-xl,.gs-preview[data-size=xlarge]{--gs-card-badge-font: 17px;--gs-card-badge-lh: 29px;--gs-card-badge-gap: 8px;--gs-card-badge-pad-x: 12px;--gs-card-badge-dot: 7px;--gs-card-badge-loading-dot: 16px;--gs-chart-badge-font: 16px;--gs-chart-badge-lh: 25px;--gs-chart-badge-pad-x: 10px}.gs-steam-badge{--gs-accent: #67c1f5;--gs-bg: #384959;--gs-text: #c7d5e0;--gs-muted: #8f98a0;position:absolute;inset:auto;z-index:100;display:inline-flex;align-items:center;gap:var(--gs-card-badge-gap, 6px);max-width:calc(100% - 16px);padding:0 var(--gs-card-badge-pad-x, 9px);border-radius:3px;border:none;background:var(--gs-bg);color:var(--gs-text);font:500 var(--gs-card-badge-font, 13px)/var(--gs-card-badge-lh, 23px) "Motiva Sans",Arial,sans-serif;text-decoration:none;box-shadow:1px 1px #000;pointer-events:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}html.gs-badge-v-top .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){top:8px}html.gs-badge-v-bottom .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){bottom:8px}html.gs-badge-h-left .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){left:8px}html.gs-badge-h-right .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){right:8px}.gs-steam-badge:hover{background:#4a5d70;color:#e3eaef}.gs-steam-badge__dot{width:var(--gs-card-badge-dot, 5px);height:var(--gs-card-badge-dot, 5px);border-radius:50%;flex:0 0 auto;background:var(--gs-accent)}.gs-steam-badge__label{overflow:hidden;text-overflow:ellipsis}.gs-steam-badge--loading{--gs-accent: #67c1f5;cursor:wait;pointer-events:none}.gs-steam-badge--loading .gs-steam-badge__dot{width:var(--gs-card-badge-loading-dot, 12px);height:var(--gs-card-badge-loading-dot, 12px);border:2px solid rgba(103,193,245,.25);border-top-color:#67c1f5;background:transparent;animation:gs-spin .7s linear infinite}.gs-steam-badge--cracked{--gs-accent: #beee11;--gs-bg: #4c6b22;--gs-text: #beee11}.gs-steam-badge--cracked:hover{background:#5a7f28;color:#d4f54a}.gs-steam-badge--cracked .gs-steam-badge__dot{background:#2d4a14}.gs-steam-badge--bypass,.gs-steam-badge--not-cracked-recent{--gs-accent: #ffb321;--gs-text: #e3eaef}.gs-steam-badge--not-cracked-old{--gs-accent: #f87171;--gs-text: #fecaca}.gs-steam-badge--release-today{--gs-accent: #67c1f5;--gs-text: #c7d5e0}.gs-steam-badge--unknown,.gs-steam-badge--missing{--gs-accent: #8f98a0;--gs-text: #b0aeac}.gs-steam-badge--chart{position:static;top:auto;left:auto;z-index:auto;display:inline-flex;margin-top:6px;max-width:100%;white-space:normal;box-shadow:none;font-size:var(--gs-chart-badge-font, 12px);line-height:var(--gs-chart-badge-lh, 19px);padding:0 var(--gs-chart-badge-pad-x, 7px)}.carousel_wide_mode .store_main_capsule:not(.focus) .gs-steam-badge{display:none!important;pointer-events:none!important}.carousel_wide_mode .store_main_capsule.focus .gs-steam-badge{z-index:110}html.gs-no-card-badges .gs-steam-badge:not(.gs-steam-badge--page){display:none!important;pointer-events:none!important}html.gs-no-card-badges .gs-preview .gs-steam-badge{display:inline-flex!important}[class*=StoreSalePriceWidgetContainer]>.gs-steam-badge--chart{align-self:flex-start}.gs-steam-badge--page,a.gs-steam-badge.gs-steam-badge--page,span.gs-steam-badge.gs-steam-badge--page{position:static;top:auto;left:auto;z-index:auto;display:inline-flex;vertical-align:top;align-items:center;margin:0;max-width:none;gap:8px;padding:0 15px;border-radius:3px;border:none;background:var(--gs-bg);color:var(--gs-text);font:500 15px/30px Motiva Sans,Arial,sans-serif;text-decoration:none;box-shadow:1px 1px #000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.gs-steam-badge--page:hover,a.gs-steam-badge.gs-steam-badge--page:hover,span.gs-steam-badge.gs-steam-badge--page:hover{background:#4a5d70;color:#e3eaef;text-decoration:none}.gs-steam-badge--page.gs-steam-badge--cracked:hover,a.gs-steam-badge.gs-steam-badge--page.gs-steam-badge--cracked:hover{background:#5a7f28;color:#d4f54a}.gs-steam-badge--page .gs-steam-badge__dot{width:8px;height:8px;flex-shrink:0}.gs-steam-badge--page .gs-steam-badge__label{overflow:hidden;text-overflow:ellipsis}.gs-steam-badge--page.gs-steam-badge--loading{pointer-events:none;cursor:wait}.gs-steam-badge--page.gs-steam-badge--loading .gs-steam-badge__dot{width:14px;height:14px}.gs-steam-badge__tooltip{position:fixed;z-index:999999;width:min(380px,calc(100vw - 24px));max-width:380px;padding:0;border-radius:3px;border:1px solid #000;background:linear-gradient(180deg,#1b2838,#16202d);color:#c7d5e0;font: 12px/1.45 Motiva Sans,Arial,Helvetica,sans-serif;box-shadow:0 0 12px #000000b3,inset 0 1px #ffffff0a;pointer-events:none;opacity:0;transition:opacity .15s ease;word-wrap:break-word;white-space:normal;overflow:hidden}.gs-steam-badge__tooltip--visible{opacity:1}.gs-steam-badge__tooltip--interactive{pointer-events:auto}.gs-steam-badge__tooltip .gs-tip-body--loading{min-height:120px}.gs-steam-badge__tooltip .gs-tip-skeleton{height:12px;margin:8px 0;border-radius:3px;background:linear-gradient(90deg,#2a3644 25%,#3a4a5c,#2a3644 75%);background-size:200% 100%;animation:gs-tip-shimmer 1.2s ease-in-out infinite}.gs-steam-badge__tooltip .gs-tip-skeleton:first-child{width:82%}.gs-steam-badge__tooltip .gs-tip-skeleton:last-child{width:64%}@keyframes gs-tip-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.gs-steam-badge__tooltip .gs-tip-skeleton{animation:none}.gs-panel__tab,.gs-panel__tabpane[data-gs-pane]:not([hidden]){animation:none;transition:none}}.gs-panel__section.is-disabled{opacity:.45}.gs-panel__section.is-disabled select{cursor:not-allowed}.gs-steam-badge__tooltip .gs-tip-header{display:flex;gap:12px;padding:12px 12px 10px;background:radial-gradient(120% 90% at 0% 0%,rgba(102,192,244,.16),transparent 55%),linear-gradient(90deg,#1a2332,#1b2838);border-bottom:1px solid #000}.gs-steam-badge__tooltip .gs-tip-cover{flex:0 0 92px;width:92px;height:43px;border-radius:2px;object-fit:cover;background:#0e1620;box-shadow:0 0 0 1px #0000008c}.gs-steam-badge__tooltip .gs-tip-header-body{min-width:0;flex:1 1 auto}.gs-steam-badge__tooltip .gs-tip-title{margin:0 0 8px;color:#fff;font-size:14px;font-weight:700;line-height:1.25}.gs-steam-badge__tooltip .gs-tip-title__link{color:#fff;text-decoration:none}.gs-steam-badge__tooltip .gs-tip-title__link:hover{color:#66c0f4;text-decoration:underline}.gs-steam-badge__tooltip .gs-tip-chips{display:flex;flex-wrap:wrap;gap:5px}.gs-steam-badge__tooltip .gs-tip-chip{display:inline-flex;align-items:center;max-width:100%;padding:0 7px;border-radius:2px;border:none;background:#384959;color:#c7d5e0;font:500 11px/18px Motiva Sans,Arial,sans-serif;box-shadow:1px 1px #000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-steam-badge__tooltip .gs-tip-chip--cracked{background:#4c6b22;color:#beee11}.gs-steam-badge__tooltip .gs-tip-chip--bypass,.gs-steam-badge__tooltip .gs-tip-chip--not-cracked-recent{background:#5a4630;color:#ffb321}.gs-steam-badge__tooltip .gs-tip-chip--not-cracked-old{background:#5a3030;color:#fecaca}.gs-steam-badge__tooltip .gs-tip-chip--release-today{background:#2a4a63;color:#67c1f5}.gs-steam-badge__tooltip .gs-tip-chip--unknown,.gs-steam-badge__tooltip .gs-tip-chip--missing{background:#3a4149;color:#b0aeac}.gs-steam-badge__tooltip .gs-tip-chip--aaa{background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);color:#fff;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.35)}.gs-steam-badge__tooltip .gs-tip-chip--protection{background:#2a3644;color:#acb2b8}.gs-steam-badge__tooltip .gs-tip-body{padding:10px 12px 12px}.gs-steam-badge__tooltip .gs-tip-muted{margin:0 0 8px;color:#8f98a0;font-size:12px}.gs-steam-badge__tooltip .gs-tip-section{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.gs-steam-badge__tooltip .gs-tip-section:first-child{margin-top:0;padding-top:0;border-top:none}.gs-steam-badge__tooltip .gs-tip-section-title{margin:0 0 6px;color:#8f98a0;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gs-steam-badge__tooltip .gs-tip-row{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:start;margin-bottom:5px}.gs-steam-badge__tooltip .gs-tip-row:last-child{margin-bottom:0}.gs-steam-badge__tooltip .gs-tip-label{color:#8f98a0;font-size:11px;font-weight:400;line-height:18px}.gs-steam-badge__tooltip .gs-tip-value{color:#dcdedf;word-break:break-word;line-height:18px}.gs-steam-badge__tooltip .gs-tip-scores{display:flex;flex-wrap:wrap;gap:8px}.gs-steam-badge__tooltip .gs-tip-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:6px 10px;border-radius:2px;border:1px solid #000;box-shadow:inset 0 0 0 1px #ffffff0a;text-align:center}.gs-steam-badge__tooltip .gs-tip-score__value{font-size:18px;font-weight:700;line-height:1.1;text-shadow:0 1px 1px rgba(0,0,0,.35)}.gs-steam-badge__tooltip .gs-tip-score__label{margin-top:2px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.85}.gs-steam-badge__tooltip .gs-tip-score--high{background:linear-gradient(180deg,#4c6b22,#3a5219);color:#beee11}.gs-steam-badge__tooltip .gs-tip-score--mid{background:linear-gradient(180deg,#8a6d1a,#6a5214);color:#fc3}.gs-steam-badge__tooltip .gs-tip-score--low{background:linear-gradient(180deg,#8a3030,#6a2020);color:#ff8a8a}.gs-steam-badge__tooltip .gs-tip-score--unknown{background:linear-gradient(180deg,#384959,#2c3845);color:#c7d5e0}.gs-steam-badge__tooltip .gs-tip-specs{display:flex;flex-direction:column;gap:4px}.gs-steam-badge__tooltip .gs-tip-spec{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:start}.gs-steam-badge__tooltip .gs-tip-spec__key{color:#66c0f4;font-size:10px;font-weight:700;letter-spacing:.03em;line-height:16px}.gs-steam-badge__tooltip .gs-tip-spec__val{color:#acb2b8;font-size:11px;line-height:16px;word-break:break-word}.gs-steam-badge__tooltip .gs-tip-desc{margin:0;color:#acb2b8;font-size:11px;line-height:1.45}.gs-steam-badge__tooltip .gs-tip-footer-links a{color:#66c0f4;text-decoration:none;word-break:break-all}.gs-steam-badge__tooltip .gs-tip-footer-links a:hover{color:#fff}.gs-steam-badge__tooltip .gs-tip-footer{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding:10px 12px;border-top:1px solid #000;background:#00000038;font-size:11px;color:#8f98a0}.gs-steam-badge__tooltip .gs-tip-footer-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.gs-steam-badge__tooltip .gs-tip-footer-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.gs-steam-badge__tooltip .gs-tip-footer-sep{color:#4b5561}.gs-steam-badge__tooltip .gs-tip-footer-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,#000,transparent)}.gs-steam-badge__tooltip .gs-tip-repo{display:flex;flex-direction:column;gap:2px;min-width:0;color:#8f98a0;text-decoration:none;word-break:normal}.gs-steam-badge__tooltip .gs-tip-repo:hover{color:#c7d5e0}.gs-steam-badge__tooltip .gs-tip-repo:hover .gs-tip-repo-title{color:#66c0f4}.gs-steam-badge__tooltip .gs-tip-repo-title{color:#67c1f5;font-size:12px;font-weight:700;line-height:1.2}.gs-steam-badge__tooltip .gs-tip-repo-desc{font-size:11px;line-height:1.3}.gs-steam-badge__tooltip .gs-tip-donate-btn{display:inline-block;padding:1px;border-radius:2px;border:none;background:linear-gradient(-60deg,#417a9b 5%,#67c1f5 95%);color:#fff!important;text-decoration:none!important;cursor:pointer;box-shadow:0 0 0 1px #00000059}.gs-steam-badge__tooltip .gs-tip-donate-btn>span{display:block;padding:0 12px;font: 12px/26px Motiva Sans,Arial,sans-serif;color:#fff!important;background:transparent;border-radius:2px;text-align:center}.gs-steam-badge__tooltip .gs-tip-donate-btn:hover{background:linear-gradient(-60deg,#4f8eb0 5%,#7ad0ff 95%);color:#fff!important;text-decoration:none!important}@keyframes gs-spin{to{transform:rotate(360deg)}}#gs-settings-btn.gs-menu-item{cursor:pointer;text-decoration:none}#gs-settings-btn.gs-menu-item.is-open{color:#66c0f4}#gs-settings-btn.gs-header-btn{display:inline-flex;align-items:center;gap:6px;margin-right:8px;height:24px;padding:0 10px;border:none;border-radius:2px;background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);color:#fff;font:700 11px/24px Motiva Sans,Arial,Helvetica,sans-serif;text-shadow:0 1px 1px rgba(0,0,0,.3);cursor:pointer;position:relative;white-space:nowrap;box-shadow:0 0 0 1px #00000059}#gs-settings-btn.gs-header-btn:hover{background:linear-gradient(to bottom,#7dcafa 5%,#4d8bb0 95%)}#gs-settings-btn.gs-header-btn.is-open{background:linear-gradient(to bottom,#a4d007 5%,#536904 95%)}.gs-header-btn__dot{width:7px;height:7px;border-radius:50%;background:#ffffff59;box-shadow:inset 0 0 0 1px #00000040}.gs-header-btn__dot.is-on{background:#beee11;box-shadow:0 0 6px #beee11cc}.gs-panel-overlay{position:fixed;inset:0;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box;background:#000000b8}.gs-panel [hidden]{display:none}.gs-panel-overlay[hidden]{display:none!important}html.gs-modal-open,html.gs-modal-open body{overflow:hidden!important;overscroll-behavior:none!important}html.gs-modal-open body{position:fixed!important;left:0;right:0;width:100%}.gs-panel{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(90vh,760px);overflow:hidden;background:linear-gradient(180deg,#1b2838,#16202d);border:1px solid #000;box-shadow:0 16px 48px #000000a6,inset 0 1px #ffffff0a;color:#c7d5e0;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;border-radius:3px}.gs-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 14px 10px;background:radial-gradient(120% 80% at 0% 0%,rgba(102,192,244,.18),transparent 55%),linear-gradient(90deg,#1a2332,#1b2838);border-bottom:1px solid #000;flex-shrink:0;position:sticky;top:0;z-index:2}.gs-panel__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.gs-panel__version{display:inline-flex;align-items:center;padding:1px 7px;border-radius:2px;background:#66c0f424;border:1px solid rgba(102,192,244,.35);color:#66c0f4;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.4}.gs-panel__title{color:#fff;font-size:14px;font-weight:700}.gs-panel__subtitle{margin-top:2px;color:#8f98a0;font-size:11px}.gs-panel__close{border:0;background:transparent;color:#8f98a0;font-size:20px;line-height:1;cursor:pointer;padding:0 2px}.gs-panel__close:hover{color:#fff}.gs-panel__tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid #000;background:#0000002e;flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.gs-panel__tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0;padding:9px 8px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:#8f98a0;font:700 11px/1.2 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;white-space:nowrap;min-width:0;transition:color .15s ease,border-bottom-color .15s ease}.gs-panel__tab:hover{color:#c7d5e0}.gs-panel__tab.is-active{color:#fff;border-bottom-color:#66c0f4}.gs-panel__tabpane{padding-bottom:4px}.gs-panel__tabpane[hidden]{display:none}.gs-panel__tabpane[data-gs-pane]:not([hidden]){animation:gs-pane-in .16s ease-out}@keyframes gs-pane-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.gs-panel__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.1em;padding:1px 5px;border-radius:999px;font:700 9px/1.3 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:none;border:1px solid transparent}.gs-panel__tab-badge--low{color:#66c0f4;background:#66c0f41f;border-color:#66c0f447}.gs-panel__tab-badge--mid{color:#e5b04a;background:#e5b04a24;border-color:#e5b04a59}.gs-panel__tab-badge--high{color:#f1a3a3;background:#f1a3a324;border-color:#f1a3a359}.gs-panel__tab.is-active .gs-panel__tab-badge--low{color:#b6e3fb}.gs-cache-meter{--gs-cache-found: #66c0f4;--gs-cache-missing: #8f98a0;margin:8px 0 0}.gs-cache-meter__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.gs-cache-meter__pct-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}.gs-cache-meter__pct--low .gs-cache-meter__pct-value{color:#66c0f4}.gs-cache-meter__pct--mid .gs-cache-meter__pct-value{color:#e5b04a}.gs-cache-meter__pct--high .gs-cache-meter__pct-value{color:#f1a3a3}.gs-cache-meter__used-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto;padding-bottom:2px;text-align:right}.gs-cache-meter__used{font-size:12px;font-variant-numeric:tabular-nums;color:#8f98a0}.gs-cache-meter__bar{display:flex;height:14px;border-radius:3px;overflow:hidden;background:#ffffff0d;border:1px solid rgba(0,0,0,.55);box-shadow:inset 0 1px #ffffff0a}.gs-cache-meter__seg{display:block;height:100%;min-width:0}.gs-cache-meter__seg--found{background:linear-gradient(180deg,#8ed0f8 0%,var(--gs-cache-found) 100%)}.gs-cache-meter__seg--missing{background:linear-gradient(180deg,#b6bcc2 0%,var(--gs-cache-missing) 100%)}.gs-cache-meter__seg--free{background:transparent}.gs-cache-meter__legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;font-size:12px;color:#8f98a0;font-variant-numeric:tabular-nums}.gs-cache-meter__row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.gs-cache-meter__name{min-width:0;color:#c7d5e0;font-weight:500}.gs-cache-meter__meta{display:flex;align-items:baseline;gap:10px;flex:0 0 auto;white-space:nowrap}.gs-cache-meter__count{color:#8f98a0}.gs-cache-meter__size{color:#c7d5e0;font-weight:600;min-width:4.5em;text-align:right}.gs-cache-meter__swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto;box-shadow:inset 0 0 0 1px #00000040}.gs-cache-meter__swatch--found{background:var(--gs-cache-found)}.gs-cache-meter__swatch--missing{background:var(--gs-cache-missing)}.gs-cache-meter__swatch--free{background:#ffffff1f;border:1px solid rgba(255,255,255,.12);box-shadow:none}.gs-cache-list{margin-top:8px;max-height:220px;overflow:auto;border:1px solid rgba(0,0,0,.55);border-radius:3px;background:#00000038;scrollbar-width:thin;scrollbar-color:#417a9b transparent}.gs-cache-list__empty{padding:14px 12px;color:#8f98a0;font-size:12px;text-align:center}.gs-cache-list__more{padding:8px 10px;color:#8f98a0;font-size:11px;text-align:center;border-top:1px solid rgba(0,0,0,.35)}.gs-cache-list__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.35)}.gs-cache-list__item:last-child{border-bottom:0}.gs-cache-list__item:hover{background:#66c0f414}.gs-cache-list__main{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.gs-cache-list__kind{flex:0 0 auto;padding:1px 6px;border-radius:2px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid rgba(0,0,0,.45)}.gs-cache-list__kind--missing{color:#b0aeac;background:#8f98a024}.gs-cache-list__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7d5e0;font-size:12px;text-decoration:none}.gs-cache-list__label:hover{color:#66c0f4}.gs-cache-list__meta{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:#8f98a0;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.gs-cache-list__remove{min-width:28px;padding:2px 8px!important;line-height:1.2;font-size:14px!important}.gs-cache-collapser__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;border:0;background:transparent;color:#c7d5e0;font:700 11px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}.gs-cache-collapser__toggle:hover{color:#fff}.gs-cache-collapser__chevron{color:#66c0f4;font-size:12px;line-height:1;transition:transform .15s ease}.gs-cache-collapser__toggle[aria-expanded=true] .gs-cache-collapser__chevron{transform:rotate(90deg)}.gs-cache-collapser__count{margin-left:auto;color:#8f98a0;font-weight:400;letter-spacing:0;text-transform:none}.gs-about{display:flex;flex-direction:column;gap:12px;padding:14px}.gs-about__hero{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gs-about__name{color:#fff;font-size:15px;font-weight:700}.gs-about__blurb{margin:0;color:#c7d5e0;font-size:12px;line-height:1.5}.gs-about__author{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #000;border-radius:3px;background:#00000040;box-shadow:inset 0 1px #ffffff0a;text-decoration:none}.gs-about__author:hover{background:#66c0f414}.gs-about__author-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.gs-about__author-name{color:#fff;font-size:13px;font-weight:700;line-height:1.2}.gs-about__author:hover .gs-about__author-name{color:#66c0f4}.gs-about__author-sub{color:#8f98a0;font-size:11px;line-height:1.3}.gs-about__actions{display:flex;gap:8px}.gs-about__actions .gs-btn{text-decoration:none}.gs-about .gs-hint{margin:0}.gs-panel__body{overflow-x:hidden;overflow-y:auto;flex:1 1 auto;min-height:0;scrollbar-width:thin;scrollbar-color:#417a9b transparent}.gs-panel__section{padding:10px 14px}.gs-panel__section-title{margin:0 0 8px;color:#66c0f4;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gs-panel__divider{height:1px;background:linear-gradient(90deg,transparent,#000,transparent);margin:0 10px}.gs-panel__tabpane[data-gs-pane=general]{padding:12px 12px 8px}.gs-panel__tabpane[data-gs-pane=general] .gs-panel__section{margin:0 0 10px;padding:12px 14px;background:#00000038;border:1px solid rgba(0,0,0,.65);box-shadow:inset 0 1px #ffffff0a;border-radius:3px}.gs-panel__tabpane[data-gs-pane=general] .gs-panel__section:last-child{margin-bottom:4px}.gs-panel__section-title{display:flex;align-items:center;gap:7px}.gs-panel__section-icon{display:inline-flex;flex:0 0 auto;width:14px;height:14px;color:#66c0f4}.gs-panel__section-icon svg{width:100%;height:100%}.gs-preview{position:relative;margin:2px 0 12px;overflow:hidden;border:1px solid #000;border-radius:2px;background:#0e141b;box-shadow:inset 0 1px #ffffff0a}.gs-preview__cover{height:74px;background:radial-gradient(120% 130% at 85% 10%,rgba(102,192,244,.35),transparent 55%),linear-gradient(115deg,#1b2838,#2a475e 55%,#1b2838)}.gs-preview__row{padding:8px 10px 10px}.gs-preview__bar{display:block;height:8px;border-radius:2px;background:#2a3644}.gs-preview__bar+.gs-preview__bar{margin-top:6px}.gs-preview__bar--dim{background:#212c38}.gs-preview .gs-steam-badge{position:absolute;z-index:1;pointer-events:none}.gs-pos-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:230px}.gs-pos-picker__btn{position:relative;height:36px;margin:0;padding:0;cursor:pointer;background:#0e141b;border:1px solid #000;box-shadow:inset 0 1px #ffffff0a;border-radius:2px}.gs-pos-picker__btn:hover{border-color:#417a9b}.gs-pos-picker__btn:focus-visible{outline:1px solid #66c0f4;outline-offset:2px}.gs-pos-picker__btn.is-active{border-color:#66c0f4;box-shadow:inset 0 1px #ffffff0a,0 0 8px #66c0f459}.gs-pos-picker__btn:disabled{opacity:.4;cursor:not-allowed}.gs-pos-picker__dot{position:absolute;width:8px;height:8px;border-radius:50%;border:1px solid #66c0f4}.gs-pos-picker__btn[data-v=top] .gs-pos-picker__dot{top:6px}.gs-pos-picker__btn[data-v=bottom] .gs-pos-picker__dot{bottom:6px}.gs-pos-picker__btn[data-h=left] .gs-pos-picker__dot{left:6px}.gs-pos-picker__btn[data-h=right] .gs-pos-picker__dot{right:6px}.gs-pos-picker__btn.is-active .gs-pos-picker__dot{background:#66c0f4;box-shadow:0 0 6px #66c0f4cc}.gs-missing-row{display:flex;align-items:center;justify-content:space-between;gap:10px}#gs-display-key-row:not([hidden]){display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}#gs-display-key{min-width:120px}.gs-panel__footer{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;border-top:1px solid #000;background:#0003;flex-shrink:0;position:sticky;bottom:0;z-index:2}.gs-panel__footer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.gs-field{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.gs-field:last-child{margin-bottom:0}.gs-field__label{color:#8f98a0;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.gs-field input,.gs-field select{height:30px;padding:0 8px;border:1px solid #000;border-radius:2px;background:#316282;color:#fff;box-shadow:inset 0 0 0 1px #ffffff0d;outline:none;font:inherit}.gs-field input::placeholder{color:#ffffff73}.gs-field input:focus,.gs-field select:focus{background:#3d7a9c;box-shadow:0 0 0 1px #66c0f4}.gs-hint{margin:6px 0 0;color:#8f98a0;font-size:11px;line-height:1.35}.gs-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.gs-switch input{position:absolute;opacity:0;pointer-events:none}.gs-switch__track{width:34px;height:18px;border-radius:9px;background:#0e1620;border:1px solid #000;position:relative;box-shadow:inset 0 1px 2px #00000080;flex:0 0 auto}.gs-switch__track:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#8f98a0;transition:transform .15s ease,background .15s ease}.gs-switch input:checked+.gs-switch__track{background:linear-gradient(to bottom,#66c0f4,#417a9b)}.gs-switch input:checked+.gs-switch__track:after{transform:translate(16px);background:#fff}.gs-switch__label{color:#c7d5e0}.gs-pill{font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:2px;background:#0e1620;color:#8f98a0;border:1px solid #000;flex:0 0 auto}.gs-pill.is-on{color:#beee11;background:#1b3708;border-color:#53760d}.gs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 12px;border:none;border-radius:2px;cursor:pointer;color:#fff;font:700 12px/28px Motiva Sans,Arial,Helvetica,sans-serif;background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);text-shadow:0 1px 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px #0006}.gs-btn:hover{filter:brightness(1.08)}.gs-btn--ghost{background:linear-gradient(to bottom,#3d4450 5%,#2c313a 95%)}.gs-btn--green{background:linear-gradient(to bottom,#a4d007 5%,#536904 95%)}.gs-btn--danger{background:linear-gradient(to bottom,#c45c5c 5%,#8a3030 95%)}.gs-cache-status{margin:8px 0 0;min-height:14px;color:#beee11;font-size:11px}.gs-cache-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}@media(max-width:900px){.gs-header-btn__text{display:none}} '); (function () { 'use strict'; var e=(()=>"undefined"!=typeof GM_getValue?GM_getValue:void 0)(),t=(()=>"undefined"!=typeof GM_registerMenuCommand?GM_registerMenuCommand:void 0)(),a=(()=>"undefined"!=typeof GM_setValue?GM_setValue:void 0)(),n=(()=>"undefined"!=typeof GM_xmlhttpRequest?GM_xmlhttpRequest:void 0)();const s="1.13.0",i="https://gamestatus.info",o=`${i}/#donate`,r="https://github.com/NemoKing1210/steam-gamestatus",c="gs_steam_cache_v5",l="gs_steam_settings",d=2097152,u={cacheHours:6,badgeVertical:"top",badgeHorizontal:"left",badgeSize:"medium",cardDisplay:"badge",cardPosition:"left",displayKey:"ShiftLeft",showMissingBadge:true},p="gs-steam-badge",g={childList:true,subtree:true,attributes:true,attributeFilter:["data-ds-appid","data-sub-id","class"]},h=Object.freeze(["en","ru","zh","es","pt","de","fr","ja","ko","pl"]),m=Object.freeze({en:"English",ru:"Русский",zh:"简体中文",es:"Español",pt:"Português (Brasil)",de:"Deutsch",fr:"Français",ja:"日本語",ko:"한국어",pl:"Polski"}),b=Object.freeze({en:"en",ru:"ru",zh:"zh","zh-cn":"zh","zh-hans":"zh",es:"es",pt:"pt","pt-br":"pt",de:"de",fr:"fr",ja:"ja",ko:"ko",pl:"pl"});function f(e){const t=Math.round(Number(e));return !Number.isFinite(t)||t<0?u.cacheHours:Math.min(t,168)}function y(e){return "bottom"===e?"bottom":"top"}function v(e){return "right"===e?"right":"left"}function S(e){return "right"===e||"top"===e||"bottom"===e?e:"left"}function _(e){return "small"===e||"large"===e||"xlarge"===e?e:"medium"}function w(e){return "hover"===e||"context"===e||"hotkey"===e?e:"badge"}function k(e){return "string"==typeof e&&/^[A-Za-z0-9]{2,20}$/.test(e)?e:u.displayKey}function z(e){return "auto"===e||h.includes(e)?e:u.language}let $=function(){const t=e(l,null);return t&&"object"==typeof t?{...u,...t,cacheHours:f(t.cacheHours),badgeVertical:y(t.badgeVertical),badgeHorizontal:v(t.badgeHorizontal),badgeSize:_(t.badgeSize),cardDisplay:w(t.cardDisplay),cardPosition:S(t.cardPosition),displayKey:k(t.displayKey),showMissingBadge:false!==t.showMissingBadge,language:z(t.language)}:{...u}}(),H=null;function M(){return $}function E(e){var t,n,s,i,o,r,c,d;$={...$,...e,cacheHours:f(null!=(t=e.cacheHours)?t:$.cacheHours),badgeVertical:y(null!=(n=e.badgeVertical)?n:$.badgeVertical),badgeHorizontal:v(null!=(s=e.badgeHorizontal)?s:$.badgeHorizontal),cardDisplay:w(null!=(i=e.cardDisplay)?i:$.cardDisplay),cardPosition:S(null!=(o=e.cardPosition)?o:$.cardPosition),badgeSize:_(null!=(r=e.badgeSize)?r:$.badgeSize),displayKey:k(null!=(c=e.displayKey)?c:$.displayKey),showMissingBadge:"boolean"==typeof e.showMissingBadge?e.showMissingBadge:false!==$.showMissingBadge,language:z(null!=(d=e.language)?d:$.language)},a(l,$),A(),null==H||H();}function L(){const e=f($.cacheHours);return e>0?60*e*60*1e3:0}function A(){const e=document.documentElement;e.classList.remove("gs-badge-v-top","gs-badge-v-bottom","gs-badge-h-left","gs-badge-h-right","gs-badge-size-sm","gs-badge-size-md","gs-badge-size-lg","gs-badge-size-xl","gs-no-card-badges"),e.classList.add("bottom"===$.badgeVertical?"gs-badge-v-bottom":"gs-badge-v-top","right"===$.badgeHorizontal?"gs-badge-h-right":"gs-badge-h-left","small"===$.badgeSize?"gs-badge-size-sm":"large"===$.badgeSize?"gs-badge-size-lg":"xlarge"===$.badgeSize?"gs-badge-size-xl":"gs-badge-size-md"),"badge"!==w($.cardDisplay)&&e.classList.add("gs-no-card-badges");}const C=new Map;let P=null,B=false,D=null;function G(){if(P)return P;try{P=JSON.parse(e(c,"{}"))||{};}catch(t){P={};}return P}function q(){return G()}function T(){B&&P&&(a(c,JSON.stringify(P)),B=false);}function I(){B=true,clearTimeout(D),D=setTimeout(T,1e3);}function j(e){const t=L();if(t<=0)return null;const a=q()[String(e)];return a?Date.now()-a.ts>t?null:a:null}function x(e,t){if(L()<=0)return;const a=q();a[String(e)]={...t,ts:Date.now()},function(e){P=e,I();}(a);}const N="undefined"!=typeof TextEncoder?new TextEncoder:null;function F(e,t){const a=JSON.stringify({[e]:t});return N?N.encode(a).length:a.length}function K(){return Object.entries(q()).map(([e,t])=>{var a;return {appId:e,title:(null==(a=null==t?void 0:t.data)?void 0:a.title)||(null==t?void 0:t.slug)||e,missing:!!(null==t?void 0:t.missing),bytes:F(e,t),ts:Number(null==t?void 0:t.ts)||0}}).sort((e,t)=>t.ts-e.ts)}function R(){const e=K(),t={count:0,bytes:0},a={count:0,bytes:0};for(const s of e){const e=s.missing?a:t;e.count+=1,e.bytes+=s.bytes;}const n=t.bytes+a.bytes;return {usedBytes:n,limitBytes:d,freeBytes:Math.max(0,d-n),totalCount:e.length,found:t,missing:a}}const O=[];let W=0;function U(e){W+=1,e.task().then(e.resolve).catch(e.reject).finally(()=>{W-=1,setTimeout(V,75);});}function V(){for(;W<2&&O.length>0;)U(O.shift());}const J=new Map,Z=new Map;async function X(e){const t=String(e);if(J.has(t))return J.get(t);if(Z.has(t))return Z.get(t);const a=(async()=>{var e;try{const a="store.steampowered.com"===location.hostname,n=`https://store.steampowered.com/api/appdetails?appids=${encodeURIComponent(t)}&filters=basic`,s=await fetch(n,{credentials:a?"same-origin":"omit"});if(!s.ok)return J.set(t,null),null;const i=await s.json(),o=null==i?void 0:i[t],r=(null==o?void 0:o.success)?null==(e=o.data)?void 0:e.name:null,c=r?String(r).replace(/\s+/g," ").trim():null;return J.set(t,c||null),c||null}catch(a){return J.set(t,null),null}finally{Z.delete(t);}})();return Z.set(t,a),a}function Y(e){var t;return Boolean(null==(t=null==e?void 0:e.hasAttribute)?void 0:t.call(e,"data-ds-appid"))}function Q(e){return String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[™®©'’":]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-")}function ee(e){const t=String(e||"").match(/\/app\/(\d+)(?:\/|$|\?)/i);return t?t[1]:null}function te(e){const t=String(e||"").match(/\/app\/\d+\/([^/?#]+)/i);return t?Q(t[1].replace(/_/g,"-")):null}function ae(e,t){return !(!e||!t)&&ee(e)===String(t)}function ne(e,t,{includeClosest:a=false}={}){if(!e||!t)return null;const n=String(t);if(e instanceof HTMLAnchorElement&&ae(e.href,n))return e;if(a&&e.closest){const t=e.closest('a[href*="/app/"]');if(t&&ae(t.href,n))return t}if(!e.querySelectorAll)return null;for(const s of e.querySelectorAll('a[href*="/app/"]'))if(ae(s.href,n))return s;return null}const se=/^(https?-)?(store-)?steam(powered|static)?(-[a-z0-9]+)*(-com)?$|steampowered|steamstatic|akamaihd|^(on-)?wishlist$|^gamestatus$|^(soon-)?on-game-pass$/;function ie(e){if(!e||e.length<2)return false;if(!/[a-z]/.test(e))return false;if(se.test(e))return false;if(/^\d+(-\d+)+$/.test(e))return false;const t=e.split("-").filter(Boolean);return !!t.length&&(!t.every(e=>/^\d+$/.test(e))&&t.filter(e=>/^\d+$/.test(e)).length/t.length<=.5)}function oe(){var e;const t=ee(location.pathname);if(t)return t;if("object"==typeof window.g_rgAppData&&(null==(e=window.g_rgAppData)?void 0:e.appid))return String(window.g_rgAppData.appid);const a=document.querySelector("[data-appid]");return (null==a?void 0:a.getAttribute("data-appid"))||null}const re=[".tab_item_title",".search_name .title",".search_result_row .title",".title",".StoreSaleWidgetTitle",'[class*="item_title"]','[class*="ItemTitle"]','a[href*="/app/"] img[src*="/apps/"] + div'],ce=/^(in library|в библиотеке|owned|ignored|on wishlist|в вишлисте|в желаемом|wishlisted|on game pass|soon on game pass|скоро в game pass|gamestatus(?:…|\.{0,3})?|not in database|нет в базе|load error|ошибка загрузки|\+\d+\s*more)$/i;function le(e){const t=String(e||"").replace(/\s+/g," ").trim();if(!t)return true;if(t.length>100)return true;if(/^-\d+%/.test(t))return true;if(/^\d+%?\s*off\b/i.test(t))return true;if(/\b(руб|₽|usd|eur|uah|gbp|cad|aud|try|idr|vnd|kr)\b/i.test(t)&&/\d/.test(t))return true;if(/^(released|выход|дата выхода|release date)/i.test(t))return true;if(/^free to play$/i.test(t))return true;const a=(t.match(/\d/g)||[]).length;return a>0&&a/t.length>.45&&/%|руб|₽|\$|€|£/.test(t)}function de(e){const t=String(e||"").replace(/\s+/g," ").trim();return !t||!!ce.test(t)||!!/^game\s*status/i.test(t)}function ue(e){return String(e||"").replace(/\s+/g," ").trim().replace(/\s+(banner|capsule|header|poster|logo)$/i,"").trim()}function pe(e,t,a){var n,s,i;const o=[],r=e=>{const t=String(e||"").replace(/\s+/g," ").trim();!t||de(t)||le(t)||o.includes(t)||o.push(t);};for(const d of re){const t=e.querySelector(d);t&&r(t.textContent);}if(Y(e)){const s=t||(null==a?void 0:a(e));r(ue(null==(n=e.querySelector("img[alt]"))?void 0:n.alt));const i=te(null==s?void 0:s.href);i&&ie(i)&&r(i.replace(/-/g," "));}r(ue(null==(s=e.querySelector('img.sale_capsule_image[alt], img.tab_row_capsule[alt], img[class*="capsule"][alt], img[alt]'))?void 0:s.alt));const c=null==(i=null==t?void 0:t.getAttribute("aria-label"))?void 0:i.trim();!c||/^\d+%\s*off\b/i.test(c)||le(c)||r(c.replace(/\.\s*\d+%\s*off.*$/i,"").trim());const l=te(null==t?void 0:t.href);if(l&&ie(l)&&r(l.replace(/-/g," ")),!o.length&&t){const e=t.cloneNode(true);e.querySelectorAll(`.${p}, .ds_flag, .ds_options, .alike_cont, [class*="WishlistFlag"], [class*="wishlist_flag"]`).forEach(e=>e.remove()),r(e.textContent.split("\n").map(e=>e.trim()).find(e=>e&&!le(e)&&!de(e)));}return o[0]||""}function ge(e,t,a){var n,s;const i=[],o=e=>{e&&ie(e)&&!i.includes(e)&&i.push(e);},r=e=>o(te(e));return r(null==t?void 0:t.href),he()&&String(e)===String(oe())&&(r(location.pathname),r(null==(n=document.querySelector('link[rel="canonical"]'))?void 0:n.href),r(null==(s=document.querySelector('meta[property="og:url"]'))?void 0:s.content)),(e=>{const t=String(e||"").replace(/\s+/g," ").trim();!t||le(t)||de(t)||(o(Q(t)),o(Q(t.replace(/\s*[-–—:|].*$/,""))));})(a),i}function he(){return /\/app\/\d+/i.test(location.pathname)}const me=Object.freeze({en:{notInDatabase:"Not in database",cracked:"Ready",notCracked:"Pending",protectionBypass:"Protection bypass",releaseToday:"Release today",unknownStatus:"Unknown status",gameNotFound:"Game not found in the gamestatus.info database",status:"Status",protection:"Protection",group:"Group",release:"Release",crack:"Updated",steamId:"Steam ID",score:"Score",metacritic:"Metacritic",type:"Type",subscriptions:"Subscriptions",hardware:"Hardware",supportProject:"Support project",loadError:"Load error",loading:"GameStatus…",menuSettings:"Steam GameStatus — Settings",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · cache · display options",close:"Close",cancel:"Cancel",save:"Save",saveReload:"Save & Reload page",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position on cards",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Top",posBottom:"Bottom",posLeft:"Left",posRight:"Right",badgePositionHint:"Applies to badges on store cards. Game page chips stay in the header.",badgeSize:"Size on cards",sizeSmall:"Small",sizeMedium:"Medium",sizeLarge:"Large",sizeXLarge:"Very large",badgeSizeHint:"Applies to badges on store cards. Game page chips stay the same size.",showMissing:"Show “not in database” badges",showMissingHint:"When off, cards without a GameStatus match stay unmarked.",on:"ON",off:"OFF",cacheHours:"Cache duration (hours)",cacheHoursHint:"How long to reuse API results (including not-found). 0 disables cache. Clear cache or reload to refetch sooner.",clearCache:"Clear cache",cacheCleared:"Cache cleared ({count})",cacheEmpty:"Cache is empty",cacheClearHint:"Removes all stored GameStatus lookups from this browser profile.",repoLink:"GitHub",repoAbout:"Source code, updates, and issue reports",tabAbout:"About the script",aboutBlurb:"Shows GameStatus.info badges on Steam store cards and game pages: crack status, scores, and details in a hover tooltip.",language:"Interface language",languageHint:"Applies to this panel right away; reload the page to retranslate badges and tooltips.",langAuto:"Auto (browser)",tabGeneral:"General",cacheUsage:"Storage usage",cacheMeterPct:"{pct}% full",cacheMeterUsed:"{used} of {limit}",cacheMeterEntries:"{count} entries",cacheMeterFound:"Found games",cacheMeterMissing:"Not found",cacheMeterFree:"Free",cacheContents:"Stored lookups",cacheListEmpty:"No stored lookups yet — open store pages and they will appear here.",cacheRemoveEntry:"Remove this entry",cacheEntryNotFound:"Not found",cacheListMore:"…and {count} more",settingsWord:"Settings",sectionDisplay:"Display",resetSettings:"Reset to defaults",cardDisplay:"Card display mode",cardDisplayBadge:"Badge on cards",cardDisplayHover:"Tooltip on game hover",cardDisplayHint:"How the GameStatus card opens on store cards. Game page chips are unaffected.",cardDisplayContext:"Right-click",cardDisplayHotkey:"Left click + key",displayKey:"Trigger key",displayKeyHint:"Hold this key and left-click a game to open its card. Clicking without the key navigates as usual.",displayKeyPress:"Press a key…",cardPosition:"Card position",cardPositionHint:"Which side of the game the GameStatus card prefers to open on. The chosen side is only a preference — without enough room, the card opens on the next side that fits.",badgeDisabledHint:"Badge position and size apply only in “Badge on cards” display mode."},ru:{notInDatabase:"Нет в базе",cracked:"Готово",notCracked:"Ожидание",protectionBypass:"Обход защиты",releaseToday:"Релиз сегодня",unknownStatus:"Статус неизвестен",gameNotFound:"Игра не найдена в базе gamestatus.info",status:"Статус",protection:"Защита",group:"Группа",release:"Релиз",crack:"Обновлено",steamId:"Steam ID",score:"Оценка",metacritic:"Metacritic",type:"Тип",subscriptions:"Подписки",hardware:"Железо",supportProject:"Поддержать проект",loadError:"Ошибка загрузки",loading:"GameStatus…",menuSettings:"Steam GameStatus — Настройки",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Бейджи · кеш · отображение",close:"Закрыть",cancel:"Отмена",save:"Сохранить",saveReload:"Сохранить и обновить",sectionBadge:"Бейдж",sectionCache:"Кеш",badgePosition:"Положение на карточках",badgeVertical:"По вертикали",badgeHorizontal:"По горизонтали",posTop:"Сверху",posBottom:"Снизу",posLeft:"Слева",posRight:"Справа",badgePositionHint:"Для бейджей на карточках магазина. На странице игры чип остаётся в шапке.",badgeSize:"Размер на карточках",sizeSmall:"Маленький",sizeMedium:"Средний",sizeLarge:"Большой",sizeXLarge:"Очень большой",badgeSizeHint:"Для бейджей на карточках магазина. На странице игры размер чипа не меняется.",showMissing:"Показывать «нет в базе»",showMissingHint:"Если выключено, карточки без записи в GameStatus остаются без бейджа.",on:"ВКЛ",off:"ВЫКЛ",cacheHours:"Время кеширования (часы)",cacheHoursHint:"Как долго хранить ответы API (включая «не найдено»). 0 отключает кеш. Сброс кеша или обновление страницы — для немедленного запроса.",clearCache:"Сбросить кеш",cacheCleared:"Кеш очищен ({count})",cacheEmpty:"Кеш пуст",cacheClearHint:"Удаляет все сохранённые ответы GameStatus в этом профиле браузера.",repoLink:"GitHub",repoAbout:"Исходный код, обновления и сообщения об ошибках",tabAbout:"О скрипте",aboutBlurb:"Показывает бейджи GameStatus.info на карточках и страницах игр Steam: статус взлома, оценки и детали во всплывающей подсказке.",language:"Язык интерфейса",languageHint:"Панель переведётся сразу; перезагрузите страницу, чтобы перевести бейджи и подсказки.",langAuto:"Авто (браузер)",tabGeneral:"Основные",cacheUsage:"Использование хранилища",cacheMeterPct:"{pct}% занято",cacheMeterUsed:"{used} из {limit}",cacheMeterEntries:"Записей: {count}",cacheMeterFound:"Найденные игры",cacheMeterMissing:"Не найдено",cacheMeterFree:"Свободно",cacheContents:"Сохранённые запросы",cacheListEmpty:"Пока пусто — открывайте страницы магазина, и они появятся здесь.",cacheRemoveEntry:"Удалить запись",cacheEntryNotFound:"Не найдено",cacheListMore:"…и ещё {count}",settingsWord:"Настройки",sectionDisplay:"Отображение",resetSettings:"Сбросить настройки",cardDisplay:"Режим отображения карточки",cardDisplayBadge:"Бейдж на карточках",cardDisplayHover:"Подсказка при наведении на игру",cardDisplayHint:"Как открывается карточка GameStatus на витрине. Чип на странице игры не меняется.",cardDisplayContext:"Правая кнопка мыши",cardDisplayHotkey:"Клик + клавиша",displayKey:"Клавиша для клика",displayKeyHint:"Удерживайте клавишу и кликните по игре, чтобы открыть карточку. Клик без клавиши работает как обычно.",displayKeyPress:"Нажмите клавишу…",cardPosition:"Положение карточки",cardPositionHint:"С какой стороны игры карточка GameStatus предпочитает открываться. Выбранная сторона — лишь приоритет: если места не хватает, карточка открывается на следующей стороне, где оно есть.",badgeDisabledHint:"Позиция и размер бейджа действуют только в режиме «Бейдж на карточках»."},zh:{notInDatabase:"未收录",cracked:"就绪",notCracked:"待定",protectionBypass:"保护绕过",releaseToday:"今日发售",unknownStatus:"状态未知",gameNotFound:"在 gamestatus.info 数据库中未找到该游戏",status:"状态",protection:"保护",group:"组织",release:"发售",crack:"更新",steamId:"Steam ID",score:"评分",metacritic:"Metacritic",type:"类型",subscriptions:"订阅数",hardware:"硬件",supportProject:"支持项目",loadError:"加载失败",loading:"GameStatus…",menuSettings:"Steam GameStatus — 设置",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"徽章 · 缓存 · 显示选项",close:"关闭",cancel:"取消",save:"保存",saveReload:"保存并刷新页面",sectionBadge:"徽章",sectionCache:"缓存",badgePosition:"卡片上的位置",badgeVertical:"垂直",badgeHorizontal:"水平",posTop:"顶部",posBottom:"底部",posLeft:"左侧",posRight:"右侧",badgePositionHint:"适用于商店卡片上的徽章。游戏页徽章仍在页头。",badgeSize:"卡片上的大小",sizeSmall:"小",sizeMedium:"中",sizeLarge:"大",sizeXLarge:"特大",badgeSizeHint:"适用于商店卡片上的徽章。游戏页徽章大小不变。",showMissing:"显示“未收录”徽章",showMissingHint:"关闭后,未在 GameStatus 找到的游戏不显示徽章。",on:"开",off:"关",cacheHours:"缓存时长(小时)",cacheHoursHint:"复用 API 结果(含未找到)的时间。0 禁用缓存。清空缓存或刷新可立即重新请求。",clearCache:"清空缓存",cacheCleared:"已清空缓存({count})",cacheEmpty:"缓存为空",cacheClearHint:"删除此浏览器配置中保存的全部 GameStatus 查询结果。",repoLink:"GitHub",repoAbout:"源代码、更新与问题反馈",tabAbout:"关于脚本",aboutBlurb:"在 Steam 商店卡片和游戏页面上显示 GameStatus.info 徽章:破解状态、评分及悬停提示框中的详情。",language:"界面语言",languageHint:"面板立即生效;刷新页面以翻译徽章和提示框。",langAuto:"自动(浏览器)",tabGeneral:"常规",cacheUsage:"存储用量",cacheMeterPct:"已用 {pct}%",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count} 条记录",cacheMeterFound:"已找到的游戏",cacheMeterMissing:"未找到",cacheMeterFree:"可用",cacheContents:"已存查询",cacheListEmpty:"暂无缓存 — 浏览商店页面后会显示在这里。",cacheRemoveEntry:"删除此条",cacheEntryNotFound:"未找到",cacheListMore:"…还有 {count} 条",settingsWord:"设置",sectionDisplay:"显示",resetSettings:"恢复默认设置",cardDisplay:"卡片显示模式",cardDisplayBadge:"在卡片上显示徽章",cardDisplayHover:"悬停游戏时显示浮层",cardDisplayHint:"GameStatus 卡片在商店列表中的打开方式。游戏页面徽章不受影响。",cardDisplayContext:"右键",cardDisplayHotkey:"左键 + 按键",displayKey:"触发按键",displayKeyHint:"按住此键并左键点击游戏以打开卡片。不按键点击则正常跳转。",displayKeyPress:"请按键…",cardPosition:"卡片位置",cardPositionHint:"GameStatus 卡片优先在游戏的哪一侧打开。所选的一侧只是优先项:空间不足时,卡片会自动在下一个有空间的一侧打开。",badgeDisabledHint:"徽章位置和大小仅在“在卡片上显示徽章”模式下生效。"},es:{notInDatabase:"No está en la base de datos",cracked:"Listo",notCracked:"Pendiente",protectionBypass:"Bypass de protección",releaseToday:"Lanzamiento hoy",unknownStatus:"Estado desconocido",gameNotFound:"Juego no encontrado en la base de datos de gamestatus.info",status:"Estado",protection:"Protección",group:"Grupo",release:"Lanzamiento",crack:"Actualizado",steamId:"Steam ID",score:"Puntuación",metacritic:"Metacritic",type:"Tipo",subscriptions:"Suscripciones",hardware:"Hardware",supportProject:"Apoyar el proyecto",loadError:"Error de carga",loading:"GameStatus…",menuSettings:"Steam GameStatus — Ajustes",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Insignias · caché · visualización",close:"Cerrar",cancel:"Cancelar",save:"Guardar",saveReload:"Guardar y recargar",sectionBadge:"Insignia",sectionCache:"Caché",badgePosition:"Posición en las cartas",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Arriba",posBottom:"Abajo",posLeft:"Izquierda",posRight:"Derecha",badgePositionHint:"Aplica a insignias en cartas de la tienda. En la página del juego permanece en la cabecera.",badgeSize:"Tamaño en las tarjetas",sizeSmall:"Pequeño",sizeMedium:"Mediano",sizeLarge:"Grande",sizeXLarge:"Muy grande",badgeSizeHint:"Aplica a las insignias en las tarjetas de la tienda. En la página del juego el tamaño no cambia.",showMissing:"Mostrar “no está en la base”",showMissingHint:"Si está desactivado, las cartas sin coincidencia en GameStatus quedan sin insignia.",on:"ON",off:"OFF",cacheHours:"Duración de caché (horas)",cacheHoursHint:"Cuánto reutilizar resultados de la API (incluido no encontrado). 0 desactiva la caché. Vaciar o recargar para pedir de nuevo.",clearCache:"Vaciar caché",cacheCleared:"Caché vaciada ({count})",cacheEmpty:"La caché está vacía",cacheClearHint:"Elimina todas las consultas de GameStatus guardadas en este perfil del navegador.",repoLink:"GitHub",repoAbout:"Código fuente, actualizaciones e informes de errores",tabAbout:"Acerca del script",aboutBlurb:"Muestra insignias de GameStatus.info en las cartas y páginas de Steam: estado, puntuaciones y detalles en un tooltip.",language:"Idioma de la interfaz",languageHint:"El panel cambia al instante; recarga la página para traducir insignias y tooltips.",langAuto:"Auto (navegador)",tabGeneral:"General",cacheUsage:"Uso de almacenamiento",cacheMeterPct:"{pct}% lleno",cacheMeterUsed:"{used} de {limit}",cacheMeterEntries:"{count} entradas",cacheMeterFound:"Juegos encontrados",cacheMeterMissing:"No encontrados",cacheMeterFree:"Libre",cacheContents:"Consultas guardadas",cacheListEmpty:"Aún no hay consultas — abre páginas de la tienda y aparecerán aquí.",cacheRemoveEntry:"Eliminar esta entrada",cacheEntryNotFound:"No encontrado",cacheListMore:"…y {count} más",settingsWord:"Ajustes",sectionDisplay:"Visualización",resetSettings:"Restablecer valores",cardDisplay:"Modo de visualización",cardDisplayBadge:"Insignia en las tarjetas",cardDisplayHover:"Ventana al pasar el cursor",cardDisplayHint:"Cómo se abre la tarjeta de GameStatus en las listas. La página del juego no cambia.",cardDisplayContext:"Clic derecho",cardDisplayHotkey:"Clic + tecla",displayKey:"Tecla",displayKeyHint:"Mantén esta tecla y haz clic en un juego para abrir su tarjeta. Sin la tecla, el clic navega como siempre.",displayKeyPress:"Pulsa una tecla…",cardPosition:"Posición de la tarjeta",cardPositionHint:"Lado del juego en el que la tarjeta de GameStatus prefiere abrirse. El lado elegido es solo una preferencia: sin espacio suficiente, la tarjeta se abre en el siguiente lado que quepa.",badgeDisabledHint:"La posición y el tamaño solo se aplican en el modo «Insignia en las tarjetas»."},pt:{notInDatabase:"Não está no banco de dados",cracked:"Pronto",notCracked:"Pendente",protectionBypass:"Bypass de proteção",releaseToday:"Lançamento hoje",unknownStatus:"Status desconhecido",gameNotFound:"Jogo não encontrado no banco de dados do gamestatus.info",status:"Status",protection:"Proteção",group:"Grupo",release:"Lançamento",crack:"Atualizado",steamId:"Steam ID",score:"Pontuação",metacritic:"Metacritic",type:"Tipo",subscriptions:"Inscrições",hardware:"Hardware",supportProject:"Apoiar o projeto",loadError:"Erro ao carregar",loading:"GameStatus…",menuSettings:"Steam GameStatus — Configurações",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Emblemas · cache · exibição",close:"Fechar",cancel:"Cancelar",save:"Salvar",saveReload:"Salvar e recarregar",sectionBadge:"Emblema",sectionCache:"Cache",badgePosition:"Posição nos cards",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Topo",posBottom:"Base",posLeft:"Esquerda",posRight:"Direita",badgePositionHint:"Aplica-se a emblemas nos cards da loja. Na página do jogo permanece no cabeçalho.",badgeSize:"Tamanho nos cards",sizeSmall:"Pequeno",sizeMedium:"Médio",sizeLarge:"Grande",sizeXLarge:"Muito grande",badgeSizeHint:"Aplica-se às badges nos cards da loja. Na página do jogo o tamanho não muda.",showMissing:"Mostrar “não está no banco”",showMissingHint:"Se desativado, cards sem correspondência no GameStatus ficam sem emblema.",on:"ON",off:"OFF",cacheHours:"Duração do cache (horas)",cacheHoursHint:"Por quanto tempo reutilizar resultados da API (incluindo não encontrado). 0 desativa o cache. Limpe ou recarregue para buscar de novo.",clearCache:"Limpar cache",cacheCleared:"Cache limpo ({count})",cacheEmpty:"O cache está vazio",cacheClearHint:"Remove todas as consultas do GameStatus salvas neste perfil do navegador.",repoLink:"GitHub",repoAbout:"Código-fonte, atualizações e relatos de problemas",tabAbout:"Sobre o script",aboutBlurb:"Mostra emblemas do GameStatus.info nos cards e páginas da Steam: status, notas e detalhes em tooltip.",language:"Idioma da interface",languageHint:"O painel muda na hora; recarregue a página para traduzir emblemas e tooltips.",langAuto:"Auto (navegador)",tabGeneral:"Geral",cacheUsage:"Uso de armazenamento",cacheMeterPct:"{pct}% cheio",cacheMeterUsed:"{used} de {limit}",cacheMeterEntries:"{count} entradas",cacheMeterFound:"Jogos encontrados",cacheMeterMissing:"Não encontrados",cacheMeterFree:"Livre",cacheContents:"Consultas salvas",cacheListEmpty:"Nada ainda — abra páginas da loja e elas aparecem aqui.",cacheRemoveEntry:"Remover esta entrada",cacheEntryNotFound:"Não encontrado",cacheListMore:"…e mais {count}",settingsWord:"Configurações",sectionDisplay:"Exibição",resetSettings:"Redefinir padrões",cardDisplay:"Modo de exibição",cardDisplayBadge:"Selo nos cartões",cardDisplayHover:"Dica ao passar o cursor",cardDisplayHint:"Como o cartão GameStatus abre nas listas. A página do jogo não muda.",cardDisplayContext:"Botão direito",cardDisplayHotkey:"Clique + tecla",displayKey:"Tecla",displayKeyHint:"Segure esta tecla e clique num jogo para abrir seu cartão. Sem a tecla, o clique navega normalmente.",displayKeyPress:"Pressione uma tecla…",cardPosition:"Posição do cartão",cardPositionHint:"Lado do jogo em que o cartão do GameStatus prefere abrir. O lado escolhido é apenas uma preferência: sem espaço suficiente, o cartão abre no próximo lado em que couber.",badgeDisabledHint:"Posição e tamanho valem apenas no modo «Selo nos cartões»."},de:{notInDatabase:"Nicht in der Datenbank",cracked:"Bereit",notCracked:"Ausstehend",protectionBypass:"Schutz-Umgehung",releaseToday:"Release heute",unknownStatus:"Status unbekannt",gameNotFound:"Spiel nicht in der gamestatus.info-Datenbank gefunden",status:"Status",protection:"Schutz",group:"Gruppe",release:"Release",crack:"Aktualisiert",steamId:"Steam ID",score:"Bewertung",metacritic:"Metacritic",type:"Typ",subscriptions:"Abonnements",hardware:"Hardware",supportProject:"Projekt unterstützen",loadError:"Ladefehler",loading:"GameStatus…",menuSettings:"Steam GameStatus — Einstellungen",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · Cache · Anzeige",close:"Schließen",cancel:"Abbrechen",save:"Speichern",saveReload:"Speichern & neu laden",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position auf Karten",badgeVertical:"Vertikal",badgeHorizontal:"Horizontal",posTop:"Oben",posBottom:"Unten",posLeft:"Links",posRight:"Rechts",badgePositionHint:"Gilt für Badges auf Store-Karten. Auf der Spielseite bleibt der Chip in der Kopfzeile.",badgeSize:"Größe auf Karten",sizeSmall:"Klein",sizeMedium:"Mittel",sizeLarge:"Groß",sizeXLarge:"Sehr groß",badgeSizeHint:"Gilt für Badges auf Store-Karten. Auf der Spieleseite bleibt die Größe unverändert.",showMissing:"„Nicht in der Datenbank“ anzeigen",showMissingHint:"Wenn aus, bleiben Karten ohne GameStatus-Treffer ohne Badge.",on:"AN",off:"AUS",cacheHours:"Cache-Dauer (Stunden)",cacheHoursHint:"Wie lange API-Ergebnisse wiederverwendet werden (inkl. nicht gefunden). 0 deaktiviert den Cache. Leeren oder neu laden zum Sofortabruf.",clearCache:"Cache leeren",cacheCleared:"Cache geleert ({count})",cacheEmpty:"Cache ist leer",cacheClearHint:"Entfernt alle gespeicherten GameStatus-Abfragen in diesem Browserprofil.",repoLink:"GitHub",repoAbout:"Quellcode, Updates und Fehlerberichte",tabAbout:"Über das Skript",aboutBlurb:"Zeigt GameStatus.info-Badges auf Steam-Karten und Spielseiten: Status, Wertungen und Details im Tooltip.",language:"Oberflächensprache",languageHint:"Das Panel gilt sofort; Seite neu laden, um Badges und Tooltips zu übersetzen.",langAuto:"Auto (Browser)",tabGeneral:"Allgemein",cacheUsage:"Speichernutzung",cacheMeterPct:"{pct}% voll",cacheMeterUsed:"{used} von {limit}",cacheMeterEntries:"{count} Einträge",cacheMeterFound:"Gefundene Spiele",cacheMeterMissing:"Nicht gefunden",cacheMeterFree:"Frei",cacheContents:"Gespeicherte Abfragen",cacheListEmpty:"Noch nichts — Shopseiten öffnen, dann erscheinen sie hier.",cacheRemoveEntry:"Diesen Eintrag entfernen",cacheEntryNotFound:"Nicht gefunden",cacheListMore:"…und {count} weitere",settingsWord:"Einstellungen",sectionDisplay:"Anzeige",resetSettings:"Zurücksetzen",cardDisplay:"Anzeigemodus",cardDisplayBadge:"Badge auf den Karten",cardDisplayHover:"Tooltip beim Darüberfahren",cardDisplayHint:"Wie sich die GameStatus-Karte in den Listen öffnet. Die Spielseite bleibt gleich.",cardDisplayContext:"Rechtsklick",cardDisplayHotkey:"Klick + Taste",displayKey:"Taste",displayKeyHint:"Halte diese Taste und klicke auf ein Spiel, um seine Karte zu öffnen. Ohne Taste navigiert der Klick wie gewohnt.",displayKeyPress:"Taste drücken…",cardPosition:"Position der Karte",cardPositionHint:"An welcher Seite des Spiels die GameStatus-Karte bevorzugt erscheint. Die gewählte Seite ist nur eine Präferenz: Ist dort kein Platz, öffnet sich die Karte an der nächsten Seite mit Platz.",badgeDisabledHint:"Position und Größe gelten nur im Modus „Badge auf den Karten“."},fr:{notInDatabase:"Absent de la base",cracked:"Prêt",notCracked:"En attente",protectionBypass:"Contournement",releaseToday:"Sortie aujourd'hui",unknownStatus:"Statut inconnu",gameNotFound:"Jeu introuvable dans la base gamestatus.info",status:"Statut",protection:"Protection",group:"Groupe",release:"Sortie",crack:"Mis à jour",steamId:"Steam ID",score:"Note",metacritic:"Metacritic",type:"Type",subscriptions:"Abonnements",hardware:"Configuration",supportProject:"Soutenir le projet",loadError:"Erreur de chargement",loading:"GameStatus…",menuSettings:"Steam GameStatus — Paramètres",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · cache · affichage",close:"Fermer",cancel:"Annuler",save:"Enregistrer",saveReload:"Enregistrer et recharger",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position sur les cartes",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Haut",posBottom:"Bas",posLeft:"Gauche",posRight:"Droite",badgePositionHint:"S’applique aux badges des cartes boutique. Sur la page jeu, le chip reste dans l’en-tête.",badgeSize:"Taille sur les cartes",sizeSmall:"Petit",sizeMedium:"Moyen",sizeLarge:"Grand",sizeXLarge:"Très grand",badgeSizeHint:"S’applique aux badges des cartes du magasin. Sur la page du jeu, la taille ne change pas.",showMissing:"Afficher « absent de la base »",showMissingHint:"Si désactivé, les cartes sans correspondance GameStatus restent sans badge.",on:"ON",off:"OFF",cacheHours:"Durée du cache (heures)",cacheHoursHint:"Combien de temps réutiliser les résultats API (y compris introuvable). 0 désactive le cache. Vider ou recharger pour refetch.",clearCache:"Vider le cache",cacheCleared:"Cache vidé ({count})",cacheEmpty:"Le cache est vide",cacheClearHint:"Supprime toutes les requêtes GameStatus enregistrées dans ce profil navigateur.",repoLink:"GitHub",repoAbout:"Code source, mises à jour et signalements",tabAbout:"À propos du script",aboutBlurb:"Affiche les badges GameStatus.info sur les cartes et pages Steam : statut, scores et détails en infobulle.",language:"Langue de l’interface",languageHint:"Le panneau change aussitôt ; rechargez la page pour traduire badges et infobulles.",langAuto:"Auto (navigateur)",tabGeneral:"Général",cacheUsage:"Utilisation du stockage",cacheMeterPct:"{pct}% plein",cacheMeterUsed:"{used} sur {limit}",cacheMeterEntries:"{count} entrées",cacheMeterFound:"Jeux trouvés",cacheMeterMissing:"Introuvables",cacheMeterFree:"Libre",cacheContents:"Requêtes enregistrées",cacheListEmpty:"Rien pour l’instant — ouvrez des pages du magasin, elles apparaîtront ici.",cacheRemoveEntry:"Supprimer cette entrée",cacheEntryNotFound:"Introuvable",cacheListMore:"…et {count} autres",settingsWord:"Paramètres",sectionDisplay:"Affichage",resetSettings:"Réinitialiser",cardDisplay:"Mode d’affichage",cardDisplayBadge:"Badge sur les fiches",cardDisplayHover:"Info-bulle au survol",cardDisplayHint:"Comment la fiche GameStatus s’ouvre dans les listes. La page du jeu ne change pas.",cardDisplayContext:"Clic droit",cardDisplayHotkey:"Clic + touche",displayKey:"Touche",displayKeyHint:"Maintenez cette touche et cliquez sur un jeu pour ouvrir sa fiche. Sans la touche, le clic navigue normalement.",displayKeyPress:"Appuyez sur une touche…",cardPosition:"Position de la carte",cardPositionHint:"Côté du jeu où la carte GameStatus préfère s’ouvrir. Le côté choisi n’est qu’une préférence : sans assez de place, la carte s’ouvre du côté suivant qui convient.",badgeDisabledHint:"La position et la taille ne s’appliquent qu’en mode « Badge sur les fiches »."},ja:{notInDatabase:"データベースに未登録",cracked:"準備完了",notCracked:"保留中",protectionBypass:"保護回避",releaseToday:"本日リリース",unknownStatus:"ステータス不明",gameNotFound:"gamestatus.info のデータベースにゲームが見つかりません",status:"ステータス",protection:"保護",group:"グループ",release:"リリース",crack:"更新",steamId:"Steam ID",score:"スコア",metacritic:"Metacritic",type:"タイプ",subscriptions:"購読数",hardware:"スペック",supportProject:"プロジェクトを支援",loadError:"読み込みエラー",loading:"GameStatus…",menuSettings:"Steam GameStatus — 設定",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"バッジ · キャッシュ · 表示",close:"閉じる",cancel:"キャンセル",save:"保存",saveReload:"保存して再読み込み",sectionBadge:"バッジ",sectionCache:"キャッシュ",badgePosition:"カード上の位置",badgeVertical:"上下",badgeHorizontal:"左右",posTop:"上",posBottom:"下",posLeft:"左",posRight:"右",badgePositionHint:"ストアカードのバッジに適用。ゲームページのチップはヘッダーのままです。",badgeSize:"カード上のサイズ",sizeSmall:"小",sizeMedium:"中",sizeLarge:"大",sizeXLarge:"特大",badgeSizeHint:"ストアカードのバッジに適用されます。ゲームページのチップサイズは変わりません。",showMissing:"「未登録」バッジを表示",showMissingHint:"オフにすると、GameStatus にないゲームはバッジなしのままになります。",on:"ON",off:"OFF",cacheHours:"キャッシュ期間(時間)",cacheHoursHint:"API 結果(未検出含む)を再利用する時間。0 でキャッシュ無効。クリアまたは再読み込みで即再取得。",clearCache:"キャッシュをクリア",cacheCleared:"キャッシュをクリアしました({count})",cacheEmpty:"キャッシュは空です",cacheClearHint:"このブラウザプロファイルに保存された GameStatus の結果をすべて削除します。",repoLink:"GitHub",repoAbout:"ソースコード・更新・不具合報告",tabAbout:"スクリプトについて",aboutBlurb:"Steam のカードやゲームページに GameStatus.info のバッジを表示します:ステータス・スコア・詳細ツールチップ。",language:"表示言語",languageHint:"パネルは即時反映。バッジやツールチップの翻訳には再読み込み。",langAuto:"自動(ブラウザ)",tabGeneral:"一般",cacheUsage:"ストレージ使用量",cacheMeterPct:"使用率 {pct}%",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count} 件",cacheMeterFound:"見つかったゲーム",cacheMeterMissing:"未検出",cacheMeterFree:"空き",cacheContents:"保存済みの問い合わせ",cacheListEmpty:"まだありません — ストアページを開くとここに表示されます。",cacheRemoveEntry:"このエントリを削除",cacheEntryNotFound:"未検出",cacheListMore:"…あと {count} 件",settingsWord:"設定",sectionDisplay:"表示",resetSettings:"デフォルトに戻す",cardDisplay:"カード表示モード",cardDisplayBadge:"カードにバッジ表示",cardDisplayHover:"ホバーでツールチップ表示",cardDisplayHint:"ストア一覧での GameStatus カードの開き方。ゲームページは変わりません。",cardDisplayContext:"右クリック",cardDisplayHotkey:"クリック + キー",displayKey:"トリガーキー",displayKeyHint:"このキーを押しながらゲームをクリックするとカードを開きます。キーなしのクリックは通常通り移動します。",displayKeyPress:"キーを押してください…",cardPosition:"カードの表示位置",cardPositionHint:"GameStatus カードをゲームのどちら側に優先して開くか。選んだ側はあくまで優先で、スペースが足りない場合は入る次の側に自動で開きます。",badgeDisabledHint:"位置とサイズは「カードにバッジ表示」モードでのみ有効です。"},ko:{notInDatabase:"데이터베이스에 없음",cracked:"준비됨",notCracked:"대기 중",protectionBypass:"보호 우회",releaseToday:"오늘 출시",unknownStatus:"상태 불명",gameNotFound:"gamestatus.info 데이터베이스에서 게임을 찾을 수 없습니다",status:"상태",protection:"보호",group:"그룹",release:"출시",crack:"업데이트",steamId:"Steam ID",score:"점수",metacritic:"Metacritic",type:"유형",subscriptions:"구독 수",hardware:"사양",supportProject:"프로젝트 후원",loadError:"로드 오류",loading:"GameStatus…",menuSettings:"Steam GameStatus — 설정",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"배지 · 캐시 · 표시",close:"닫기",cancel:"취소",save:"저장",saveReload:"저장 후 새로고침",sectionBadge:"배지",sectionCache:"캐시",badgePosition:"카드 위치",badgeVertical:"세로",badgeHorizontal:"가로",posTop:"위",posBottom:"아래",posLeft:"왼쪽",posRight:"오른쪽",badgePositionHint:"스토어 카드 배지에 적용됩니다. 게임 페이지 칩은 헤더에 유지됩니다.",badgeSize:"카드 크기",sizeSmall:"작게",sizeMedium:"보통",sizeLarge:"크게",sizeXLarge:"매우 크게",badgeSizeHint:"스토어 카드 배지에 적용됩니다. 게임 페이지 칩 크기는 그대로입니다.",showMissing:"“데이터베이스에 없음” 표시",showMissingHint:"끄면 GameStatus에 없는 게임은 배지 없이 남습니다.",on:"ON",off:"OFF",cacheHours:"캐시 기간(시간)",cacheHoursHint:"API 결과(미발견 포함)를 재사용하는 시간. 0은 캐시 비활성화. 비우거나 새로고침하면 즉시 다시 요청.",clearCache:"캐시 비우기",cacheCleared:"캐시를 비웠습니다 ({count})",cacheEmpty:"캐시가 비어 있습니다",cacheClearHint:"이 브라우저 프로필에 저장된 모든 GameStatus 조회를 삭제합니다.",repoLink:"GitHub",repoAbout:"소스 코드, 업데이트 및 문제 제보",tabAbout:"스크립트 정보",aboutBlurb:"Steam 상점 카드와 게임 페이지에 GameStatus.info 배지를 표시합니다: 상태, 점수 및 툴팁 상세 정보.",language:"인터페이스 언어",languageHint:"패널은 즉시 적용되며, 배지와 툴팁 번역은 새로고침 후 적용됩니다.",langAuto:"자동(브라우저)",tabGeneral:"일반",cacheUsage:"저장소 사용량",cacheMeterPct:"{pct}% 사용 중",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count}개 항목",cacheMeterFound:"찾은 게임",cacheMeterMissing:"미발견",cacheMeterFree:"여유",cacheContents:"저장된 조회",cacheListEmpty:"아직 없음 — 상점 페이지를 열면 여기에 표시됩니다.",cacheRemoveEntry:"이 항목 삭제",cacheEntryNotFound:"미발견",cacheListMore:"…{count}개 더",settingsWord:"설정",sectionDisplay:"표시",resetSettings:"기본값으로 재설정",cardDisplay:"카드 표시 모드",cardDisplayBadge:"카드에 배지 표시",cardDisplayHover:"호버 시 툴팁 표시",cardDisplayHint:"상점 목록에서 GameStatus 카드를 여는 방식. 게임 페이지는 바뀌지 않습니다.",cardDisplayContext:"오른쪽 클릭",cardDisplayHotkey:"클릭 + 키",displayKey:"트리거 키",displayKeyHint:"이 키를 누른 채 게임을 클릭하면 카드가 열립니다. 키 없이 클릭하면 평소처럼 이동합니다.",displayKeyPress:"키를 누르세요…",cardPosition:"카드 위치",cardPositionHint:"GameStatus 카드가 게임의 어느 쪽에 열릴지 우선순위입니다. 선택한 쪽은 우선일 뿐이며, 공간이 부족하면 들어갈 수 있는 다음 쪽에 자동으로 열립니다.",badgeDisabledHint:"위치와 크기는 “카드에 배지 표시” 모드에서만 적용됩니다."},pl:{notInDatabase:"Brak w bazie",cracked:"Gotowe",notCracked:"Oczekujące",protectionBypass:"Obejście zabezpieczeń",releaseToday:"Premiera dziś",unknownStatus:"Nieznany status",gameNotFound:"Gry nie znaleziono w bazie gamestatus.info",status:"Status",protection:"Zabezpieczenie",group:"Grupa",release:"Premiera",crack:"Zaktualizowano",steamId:"Steam ID",score:"Ocena",metacritic:"Metacritic",type:"Typ",subscriptions:"Subskrypcje",hardware:"Sprzęt",supportProject:"Wspieraj projekt",loadError:"Błąd ładowania",loading:"GameStatus…",menuSettings:"Steam GameStatus — Ustawienia",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Odznaki · cache · wyświetlanie",close:"Zamknij",cancel:"Anuluj",save:"Zapisz",saveReload:"Zapisz i odśwież",sectionBadge:"Odznaka",sectionCache:"Cache",badgePosition:"Pozycja na kartach",badgeVertical:"Pionowo",badgeHorizontal:"Poziomo",posTop:"Góra",posBottom:"Dół",posLeft:"Lewo",posRight:"Prawo",badgePositionHint:"Dotyczy odznak na kartach sklepu. Na stronie gry chip zostaje w nagłówku.",badgeSize:"Rozmiar na kartach",sizeSmall:"Mały",sizeMedium:"Średni",sizeLarge:"Duży",sizeXLarge:"Bardzo duży",badgeSizeHint:"Dotyczy odznak na kartach sklepu. Na stronie gry rozmiar chipa się nie zmienia.",showMissing:"Pokazuj „brak w bazie”",showMissingHint:"Gdy wyłączone, karty bez dopasowania w GameStatus pozostają bez odznaki.",on:"WŁ",off:"WYŁ",cacheHours:"Czas cache (godziny)",cacheHoursHint:"Jak długo ponownie używać wyników API (w tym nie znaleziono). 0 wyłącza cache. Wyczyść lub odśwież, by pobrać od razu.",clearCache:"Wyczyść cache",cacheCleared:"Cache wyczyszczony ({count})",cacheEmpty:"Cache jest pusty",cacheClearHint:"Usuwa wszystkie zapisane zapytania GameStatus w tym profilu przeglądarki.",repoLink:"GitHub",repoAbout:"Kod źródłowy, aktualizacje i zgłoszenia błędów",tabAbout:"O skrypcie",aboutBlurb:"Pokazuje odznaki GameStatus.info na kartach i stronach gier Steam: status, oceny i szczegóły w podpowiedzi.",language:"Język interfejsu",languageHint:"Panel zmienia się od razu; odśwież stronę, by przetłumaczyć odznaki i podpowiedzi.",langAuto:"Auto (przeglądarka)",tabGeneral:"Ogólne",cacheUsage:"Zużycie pamięci",cacheMeterPct:"{pct}% pełne",cacheMeterUsed:"{used} z {limit}",cacheMeterEntries:"{count} wpisów",cacheMeterFound:"Znalezione gry",cacheMeterMissing:"Nieznalezione",cacheMeterFree:"Wolne",cacheContents:"Zapisane zapytania",cacheListEmpty:"Jeszcze pusto — otwieraj strony sklepu, a pojawią się tutaj.",cacheRemoveEntry:"Usuń ten wpis",cacheEntryNotFound:"Nie znaleziono",cacheListMore:"…i {count} więcej",settingsWord:"Ustawienia",sectionDisplay:"Wyświetlanie",resetSettings:"Przywróć domyślne",cardDisplay:"Tryb wyświetlania",cardDisplayBadge:"Odznaka na kartach",cardDisplayHover:"Podpowiedź po najechaniu",cardDisplayHint:"Jak otwiera się karta GameStatus na listach. Strona gry bez zmian.",cardDisplayContext:"Prawy przycisk",cardDisplayHotkey:"Klik + klawisz",displayKey:"Klawisz",displayKeyHint:"Przytrzymaj ten klawisz i kliknij grę, aby otworzyć kartę. Klik bez klawisza działa jak zwykle.",displayKeyPress:"Naciśnij klawisz…",cardPosition:"Pozycja karty",cardPositionHint:"Po której stronie gry karta GameStatus ma się preferencyjnie otwierać. Wybrana strona to tylko preferencja: gdy brakuje miejsca, karta otwiera się po następnej stronie, która się zmieści.",badgeDisabledHint:"Pozycja i rozmiar działają tylko w trybie „Odznaka na kartach”."}});let be="en";function fe(e){const t=String(e||"").trim().toLowerCase();return b[t]||b[t.split("-")[0]]||null}function ye(e="auto"){return be="auto"===e?function(){var e;const t=(null==(e=navigator.languages)?void 0:e.length)?navigator.languages:[navigator.language];for(const a of t){const e=fe(a);if(e)return e}return "en"}():fe(e)||"en",be}function ve(){return be}function Se(e,t={}){var a,n,s;const i=null!=(s=null!=(n=null==(a=me[be])?void 0:a[e])?n:me.en[e])?s:e;return Object.entries(t).reduce((e,[t,a])=>e.split(`{${t}}`).join(String(a)),i)}function _e(){return navigator.language||"en-US"}function we(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function ke(e){if(!e)return null;const t=we(e);return t?t.toLocaleDateString(_e()):e}function ze(e){const t=Math.max(0,Number(e)||0);return t<1024?`${Math.round(t)} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(2)} MB`}function $e(e){return `https://gamestatus.info/back/api/gameinfo/game/${encodeURIComponent(e)}/`}async function He(e,t){const a=await function(e){const t=_e();return new Promise((a,s)=>{n({method:"GET",url:e,headers:{Accept:"application/json","Accept-Language":t},timeout:15e3,onload(e){if(404!==e.status)if(e.status<200||e.status>=300)s(new Error(`HTTP ${e.status}`));else try{a(JSON.parse(e.responseText));}catch(t){s(t);}else a(null);},onerror:()=>s(new Error("Network error")),ontimeout:()=>s(new Error("Timeout"))});})}($e(e));return function(e,t){return !(!e||e.steam_prod_id&&String(e.steam_prod_id)!==String(t))}(a,t)?a:null}async function Me(e,t,a){const n=t.slice(0,2);for(const i of n)try{const n=await He(i,e);if(n)return {data:n,slug:i,slugs:t,triedUrls:a,apiUrl:$e(i),missing:!1}}catch(s){}return null}function Ee(e,t,a){const n=String(e),s=j(n);return s?Promise.resolve(s):(C.has(n)||C.set(n,(i=()=>async function(e,t,a){const n=j(e);if(n)return n;let s=de(a)?"":a,i=ge(e,t,s),o=i.map($e),r=false;if(!i.length){const a=await X(e);r=true,a&&(s=a,i=ge(e,t,s),o=i.map($e));}let c=await Me(e,i,o);if(c)return x(e,c),c;if(!r){const a=await X(e);if(a&&a!==s){const n=ge(e,t,a),r=[...new Set([...o,...n.map($e)])];if(c=await Me(e,n,r),c)return x(e,c),c;i=n.length?n:i,o=r,s=a;}}return c={data:null,slug:i[0]||null,slugs:i,triedUrls:o,missing:true},x(e,c),c}(e,t,a),new Promise((e,t)=>{O.push({task:i,resolve:e,reject:t}),V();})).finally(()=>{C.delete(n);})),C.get(n));var i;}function Le(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Ae(e){return Le(e).replace(/`/g,"`")}const Ce=15;function Pe(e,t,a,n){const s=t.left+t.width/2,i=t.top+t.height/2;switch(e){case "left":return {left:t.left-7-a,top:i-n/2};case "right":return {left:t.left+t.width+7,top:i-n/2};case "top":return {left:s-a/2,top:t.top-7-n};case "bottom":return {left:s-a/2,top:t.top+t.height+7};default:return {left:t.left,top:t.top}}}function Be(e,t,a,n,s){return e.left>=Ce&&e.top>=Ce&&e.left+t<=n-Ce&&e.top+a<=s-Ce}function De(e,t,a,n,s){const i=Math.max(e.left,Ce),o=Math.min(e.left+t,n-Ce),r=Math.max(e.top,Ce),c=Math.min(e.top+a,s-Ce);return Math.max(0,o-i)*Math.max(0,c-r)}function Ge(e){if(!e)return "missing";const t=String(e.readable_status||"").toLowerCase(),a=String(e.hacked_groups_en||e.hacked_groups||"").toLowerCase();return /release today|релиз сегодня|выходит сегодня/.test(t)?"release-today":/bypass|обход|hypervisor/.test(a)||/bypass|обход/.test(t)?"bypass":/not cracked|не взлом|не взломан|unbroken|unreleased crack/.test(t)?function(e){const t=we(e.release_date);if(!t)return "not-cracked-recent";const a=new Date;return a.setMonth(a.getMonth()-1),t>a?"not-cracked-recent":"not-cracked-old"}(e):e.crack_date||/cracked|взлом/.test(t)?"cracked":"unknown"}function qe(e,t){return e?e.readable_status?e.readable_status:Se("cracked"===t?"cracked":"not-cracked-recent"===t||"not-cracked-old"===t?"notCracked":"bypass"===t?"protectionBypass":"release-today"===t?"releaseToday":"unknownStatus"):Se("notInDatabase")}function Te(e,t){return t?`\n
\n ${Le(e)}\n ${t}\n
\n `:""}function Ie(e,t=""){return e?`${Le(e)}`:""}function je(e,t){const a=function(e){if(null==e||""===e)return null;const t=Number(e);return Number.isFinite(t)?`${t}`:String(e)}(t);return a?`\n
=75?"high":t>=50?"mid":"low"}(t)}">\n ${Le(a)}\n ${Le(e)}\n
\n `:""}function xe(e,t){const a=(null==t?void 0:t.slug)?`${i}/${t.slug}`:i,n=(null==e?void 0:e.apiUrl)||((null==t?void 0:t.slug)?$e(t.slug):null),s=[n?`API`:"",`GameStatus`].filter(Boolean);return `\n \n `}let Ne=null;function Fe(){return Ne||(Ne=document.createElement("div"),Ne.className=`${p}__tooltip`,document.documentElement.appendChild(Ne)),Ne}function Ke(e,t){const a=Fe();a.innerHTML=t,a.classList.add(`${p}__tooltip--visible`,`${p}__tooltip--interactive`);const n=e.getBoundingClientRect(),s=a.getBoundingClientRect(),{left:i,top:o}=function({preferred:e,anchor:t,tipWidth:a,tipHeight:n,viewportWidth:s,viewportHeight:i}){let o=null,r=-1;for(const c of function(e){return "right"===e?["right","left","top","bottom"]:"top"===e?["top","bottom","left","right"]:"bottom"===e?["bottom","top","left","right"]:["left","right","top","bottom"]}(e)){const e=Pe(c,t,a,n);if(Be(e,a,n,s,i))return e;const l=De(e,a,n,s,i);l>r&&(r=l,o=e);}return function(e,t,a,n,s){const i=s-a-Ce;return {left:Math.max(Ce,Math.min(e.left,n-t-Ce)),top:Math.max(Ce,Math.min(e.top,i))}}(o,a,n,s,i)}({preferred:S(M().cardPosition),anchor:n,tipWidth:s.width,tipHeight:s.height,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});a.style.left=`${i}px`,a.style.top=`${o}px`;}function Re(e,t){Ke(e,function(e){const t=(null==e?void 0:e.data)||null;if(!t)return `\n
\n
\n
GameStatus
\n
${Ie(Se("notInDatabase"),"missing")}
\n
\n
\n
\n

${Le(Se("gameNotFound"))}

\n
\n ${xe(e,null)}\n `;const a=Ge(t),n=qe(t,a),s=(o=t.protections,String(o||"").split(/[,;/|]+/).map(e=>e.trim()).filter(Boolean)).map(e=>Ie(e,"protection")).join("");var o;const r=function(e){return e?"ru"===ve()?e.hacked_groups||e.hacked_groups_en:e.hacked_groups_en||e.hacked_groups:null}(t),c=[Ie(n,a),t.is_AAA?Ie("AAA","aaa"):"",s,r?Ie(r):""].filter(Boolean).join(""),l=t.short_image?``:"",d=[Te(Se("release"),ke(t.release_date)?Le(ke(t.release_date)):""),Te(Se("crack"),ke(t.crack_date)?Le(ke(t.crack_date)):""),Te(Se("steamId"),t.steam_prod_id?Le(String(t.steam_prod_id)):""),Te(Se("subscriptions"),t.count_subscribe>0?Le(String(t.count_subscribe)):"")].join(""),u=[je(Se("score"),t.user_score),je(Se("metacritic"),t.mata_score)].filter(Boolean).join(""),p=u?`
${u}
`:"",g=function(e,t=140){const a=String(e||"").trim();return a.length<=t?a:`${a.slice(0,t-1).trim()}…`}(function(e){return e?"ru"===ve()?e.description||e.description_en:e.description_en||e.description:""}(t),180),h=g?`

${Le(g)}

`:"";return `\n
\n ${l}\n
\n
${function(e){const t=Le((null==e?void 0:e.title)||"GameStatus");return (null==e?void 0:e.slug)?`${t}`:t}(t)}
\n
${c}
\n
\n
\n
\n ${d?`
${d}
`:""}\n ${p}\n ${function(e){if(!e||"object"!=typeof e)return "";const t=[["CPU",e.cpu_info],["RAM",e.ram_info],["GPU",e.gpu_info],["OS",e.os_info]].filter(([,e])=>e);return t.length?`\n
\n
${Le(Se("hardware"))}
\n
\n ${t.map(([e,t])=>`\n
\n ${Le(e)}\n ${Le(t)}\n
`).join("")}\n
\n
\n `:""}(t.specs_info)}\n ${h}\n
\n ${xe(e,t)}\n `}(t));}function Oe(){null==Ne||Ne.classList.remove(`${p}__tooltip--visible`,`${p}__tooltip--interactive`);}let We=null,Ue=false,Ve=false;function Je(e,t,a,n){Ve||(Ve=true,Fe().addEventListener("mouseenter",()=>null==We?void 0:We.cancelHide()),Fe().addEventListener("mouseleave",()=>null==We?void 0:We.scheduleHide()),document.addEventListener("click",e=>{if(!Ue)return;const t=Fe();t.classList.contains(`${p}__tooltip--visible`)&&!t.contains(e.target)&&(Ue=false,Oe());},true),document.addEventListener("keydown",e=>{"Escape"===e.key&&Ue&&(Ue=false,Oe());}));let s=0,i=null,o=null;const r=()=>"function"==typeof n?n():"",c={show:n=>{Ue=!!n,We=c,clearTimeout(i),i=null;const l=++s,d=r();o&&d&&o.id===d?Re(e,o.entry):(o=null,Ke(e,function(e){const t='
';return `\n
\n
\n
${Le(e||Se("loading"))}
\n
${Ie(Se("loading"),"")}
\n
\n
\n
\n ${t}\n ${t}\n ${t}\n
\n `}("function"==typeof a?a():"")),Promise.resolve().then(()=>t()).then(t=>{l===s&&(!t||d&&r()!==d?Oe():(o={id:d,entry:t},Re(e,t)));}));},scheduleHide:()=>{clearTimeout(i),i=setTimeout(()=>{e.matches(":hover")||Fe().matches(":hover")||(s++,We===c&&(We=null,Ue=false),Oe());},180);},cancelHide:()=>{clearTimeout(i),i=null;}};return c}function Ze(e){return "1"!==e.dataset.gsHoverBound&&(e.dataset.gsHoverBound="1",true)}function Xe(e=false,t=false){const a=document.createElement("span");return a.className=`${p} ${p}--loading${e?` ${p}--page`:""}${t?` ${p}--chart`:""}`,a.innerHTML=`${Le(Se("loading"))}`,a}function Ye(e,t={}){const{isPage:a=false,isChart:n=false,appId:s=null}=t,o=(null==e?void 0:e.data)||null,r=Ge(o),c=qe(o,r),l=(null==o?void 0:o.slug)?`${i}/${o.slug}`:i,d=document.createElement("a");return d.className=`${p} ${p}--${r}${a?` ${p}--page`:""}${n?` ${p}--chart`:""}`,d.href=l,d.target="_blank",d.rel="noopener noreferrer",d.setAttribute("data-gs-processed","1"),d.dataset.gsAppId=String(s||(null==o?void 0:o.steam_prod_id)||""),d.innerHTML=`${Le(c)}`,function(e,t){const a=()=>{e.removeEventListener("mouseenter",a),e.removeEventListener("focus",a);const n=Fe();let s=null;const i=()=>{clearTimeout(s),Re(e,t);},o=()=>{clearTimeout(s),s=setTimeout(Oe,120);};e.addEventListener("mouseenter",i),e.addEventListener("focus",i),e.addEventListener("mouseleave",o),e.addEventListener("blur",o),n.addEventListener("mouseenter",()=>clearTimeout(s)),n.addEventListener("mouseleave",o),i();};e.addEventListener("mouseenter",a),e.addEventListener("focus",a);}(d,e),d}let Qe=null,et=false,tt=null,at=null,nt=false,st=false;const it=new Set,ot=new WeakMap,rt=new Set,ct=[];function lt(e){var t,a,n,s,i,o;if(e.nodeType!==Node.ELEMENT_NODE)return false;const r=e;if("gs-panel-overlay"===r.id||"gs-panel"===r.id||"gs-settings-btn"===r.id)return false;if(null==(t=r.closest)?void 0:t.call(r,"#gs-panel-overlay"))return false;if(null==(a=r.classList)?void 0:a.contains(p))return false;if(null==(n=r.closest)?void 0:n.call(r,`.${p}__tooltip`))return false;if(null==(s=r.closest)?void 0:s.call(r,'[data-gs-observed="1"]')){const e=r.closest('[data-gs-observed="1"]');if(e&&!bt(e))return false}return !!(null==(i=r.matches)?void 0:i.call(r,'a[href*="/app/"]'))||Boolean(null==(o=r.querySelector)?void 0:o.call(r,'a[href*="/app/"]'))}function dt(e){var t;return (null==(t=null==e?void 0:e.classList)?void 0:t.contains("store_main_capsule"))&&Boolean(e.closest(".carousel_wide_mode"))}function ut(e){return !dt(e)||e.classList.contains("focus")}function pt(e,t){const a=ht(e);if(!a||!t)return false;const n=t.querySelector(`.${p}:not(.${p}--loading)`);return !(!n||!n.dataset.gsAppId||n.dataset.gsAppId===a||(n.remove(),Lt(t),e!==t&&"1"===e.dataset.gsObserved&&(delete e.dataset.gsObserved,delete e.dataset.gsAppId,delete e.dataset.gsTitle),0))}function gt(e){var t;return (null==(t=e.querySelector('td a[href*="/app/"] img[src*="/apps/"]'))?void 0:t.closest("a"))||e.querySelector('a[href*="/app/"]')}function ht(e){if(!e)return null;if(e instanceof HTMLAnchorElement){const t=ee(e.href);if(t)return t}const t=e.getAttribute("data-ds-appid")||e.dataset.dsAppid;if(t)return t;if(vt(e)){const t=gt(e);return t?ee(t.href):null}return null}function mt(e,t){return ht(e)||String(t||"")}function bt(e){return function(e){return e?new Set([...e.querySelectorAll("[data-ds-appid]")].map(e=>e.getAttribute("data-ds-appid")).filter(Boolean)).size:0}(e)>1}function ft(e,t){var a;if(e.classList.contains(p))return;if(e.closest(".home_content_reason"))return;if(null==(a=e.closest)?void 0:a.call(e,"#gs-panel-overlay, #gs-settings-btn"))return;const n=ee(e.href);if(!n)return;if(he()&&n===oe())return;const s=function(e){const t=function(e){const t=e.closest("tr");if(!t)return null;if(!t.querySelector('[class*="StoreSalePriceWidgetContainer"]'))return null;const a=new Set([...t.querySelectorAll('a[href*="/app/"]')].map(e=>ee(e.href)).filter(Boolean));if(1!==a.size)return null;const n=ee(e.href);return n&&!a.has(n)?null:t}(e);if(t)return t;const a=St(e);if(a)return a;const n=function(e){const t=ee(e.href);if(!t)return null;if(e.hasAttribute("data-ds-appid"))return e;const a=e.querySelector(`[data-ds-appid="${t}"]`)||e.querySelector("[data-ds-appid]");if(a){const e=a.getAttribute("data-ds-appid");if(!e||e===t)return a}const n=e.closest("[data-ds-appid]");return (null==n?void 0:n.getAttribute("data-ds-appid"))===t?n:null}(e);if(n)return n;const s=ee(e.href),i=e.closest(["[data-ds-appid]",".sale_capsule",".tab_row_item",".search_result_row",".browse_item",".store_capsule",".capsule",".home_content_items",".gamelink",".Panel",'div[class*="Capsule"]','div[class*="Item"]'].join(", "));if(i&&bt(i)&&s){return i.querySelector(`[data-ds-appid="${s}"]`)||null}if(null==i?void 0:i.classList.contains("single_buttonbar")){const t=St(e);if(t)return t}return i||e.parentElement}(e);if(!s||s.closest(".apphub_AppName, .game_area_purchase, #game_highlights"))return;if(!ut(s))return;const i=ht(s);if(i&&i!==n)return;const o=wt(s);if(!o)return;if(o.querySelector(`.${p}:not(.${p}--loading)`))return;if("1"===o.dataset.gsObserved&&o.querySelector(`.${p}--loading`))return;const r=$t(s)||e,c=pe(s,r,$t),l=i||n,d=t.get(l);d&&!function(e,t){if(!t)return true;if(t.contains(e))return false;if(e.contains(t))return true;if(Y(e)&&!Y(t))return true;if(Y(t)&&!Y(e))return false;if(vt(e)&&!vt(t))return true;if(vt(t)&&!vt(e))return false;const a=wt(e),n=wt(t);return a!==e&&!(n!==t)}(s,d.card)||t.set(l,{card:s,link:r,title:c});}function yt(e,t=new Map){return e instanceof HTMLAnchorElement&&e.href.includes("/app/")&&ft(e,t),e.querySelectorAll('a[href*="/app/"]').forEach(e=>ft(e,t)),t}function vt(e){var t;return Boolean((null==(t=null==e?void 0:e.matches)?void 0:t.call(e,"tr"))&&e.querySelector('[class*="StoreSalePriceWidgetContainer"]'))}function St(e){const t=e.closest(".home_content.single, .home_content_single_ctn");if(!t)return null;const a=t.querySelector(".home_content_items[data-ds-appid], .gamelink[data-ds-appid]");if(!a)return null;const n=ee(e.href),s=ht(a);return n&&s&&n!==s?null:a}function _t(e){return e?e.querySelector(".microtrailer_wrapper")||e.querySelector(".capsule.capsule_image_ctn.main_capsule")||e.querySelector(".capsule_image_ctn.main_capsule")||e.querySelector(".capsule.capsule_image_ctn")||e.querySelector(".capsule_image_ctn")||e.querySelector("a.capsule_image_ctn"):null}function wt(e){if(!e)return e;if(vt(e)){const t=e.querySelector('[class*="StoreSalePriceWidgetContainer"]');if(t)return t}const t=_t(e);if(t)return t;const a=e.closest(".home_content.single, .home_content_single_ctn");if(a){const t=a.querySelector(".home_content_items[data-ds-appid], .gamelink[data-ds-appid]");return _t(t)||t||e}return e}function kt(e,t){e&&t&&(e.querySelectorAll("."+p).forEach(e=>{t.contains(e)||e.remove();}),[...t.querySelectorAll("."+p)].slice(1).forEach(e=>e.remove()));}function zt(e){var t;if(!(null==(t=null==e?void 0:e.hasAttribute)?void 0:t.call(e,"data-ds-appid")))return false;const a=ht(e);if(!a)return false;const n=wt(e);return "1"===n.dataset.gsObserved&&n.dataset.gsAppId!==a&&(Lt(n),e!==n&&"1"===e.dataset.gsObserved&&(delete e.dataset.gsObserved,delete e.dataset.gsAppId,delete e.dataset.gsTitle),true)}function $t(e){if(e instanceof HTMLAnchorElement&&e.href.includes("/app/"))return e;const t=ht(e);if(t){const a=ne(e,t,{includeClosest:Y(e)})||(Y(e)?ne(e.parentElement,t,{includeClosest:true}):null);if(a)return a}if(vt(e)){const t=gt(e);if(t)return t}return e.querySelector('a[href*="/app/"]')}function Ht(){at||0===ct.length||et||(at=requestAnimationFrame(()=>{at=null,ct.splice(0,3).forEach(({card:e,appId:t,link:a,title:n})=>{!async function(e,t,a,n){var s;const i=wt(e),o=vt(e),r=mt(e,t),c=$t(e)||a;if(!At())return void(null==(s=i.querySelector(`.${p}--loading`))||s.remove());const l=n||pe(e,c,$t),d=i.querySelector(`.${p}--loading`);if(i.dataset.gsAppId&&i.dataset.gsAppId!==r)null==d||d.remove();else try{const e=await Ee(r,c,l);if(i.dataset.gsAppId&&i.dataset.gsAppId!==r)return void(null==d||d.remove());if(!Ct(e))return void requestAnimationFrame(()=>{i.dataset.gsAppId&&i.dataset.gsAppId!==r?null==d||d.remove():(null==d||d.remove(),i.dataset.gsMissingHidden="1");});const t=Ye(e,{isChart:o,appId:r});requestAnimationFrame(()=>{i.dataset.gsAppId&&i.dataset.gsAppId!==r?null==d||d.remove():null==d||d.replaceWith(t);});}catch(u){if(i.dataset.gsAppId&&i.dataset.gsAppId!==r)return void(null==d||d.remove());if(!M().showMissingBadge)return void(null==d||d.remove());const e=Ye({data:null},{isChart:o,appId:r});e.querySelector(`.${p}__label`).textContent=Se("loadError"),requestAnimationFrame(()=>{i.dataset.gsAppId&&i.dataset.gsAppId!==r?null==d||d.remove():null==d||d.replaceWith(e);});}}(e,t,a,n);}),ct.length>0&&Ht();}));}function Mt(e){const t=M().displayKey,a=/^(Alt|Control|Shift|Meta)/.exec(t||"");return a?!!e[`${a[1].toLowerCase()}Key`]:it.has(t)}const Et=new IntersectionObserver(e=>{At()&&e.forEach(e=>{if(!e.isIntersecting)return;const t=e.target,a=t.closest("[data-ds-appid]")||t.closest("tr")||t.closest(".home_content_items[data-ds-appid], .gamelink[data-ds-appid], [data-ds-appid]")||t;if(!ut(a))return;const n=mt(a,t.dataset.gsAppId);if(!n)return;const s=$t(a)||function(e){return e instanceof HTMLAnchorElement&&/\/app\/\d+/i.test(e.href)?e:$t(e)}(a);!function(e,t,a,n){const s=wt(e);Et.unobserve(s),ct.push({card:e,appId:t,link:a,title:n}),et||Ht();}(a,n,s,t.dataset.gsTitle||pe(a,s,$t));});},{root:null,rootMargin:"80px 0px",threshold:.05});function Lt(e){e.querySelectorAll(`.${p}`).forEach(e=>e.remove()),Et.unobserve(e),delete e.dataset.gsObserved,delete e.dataset.gsAppId,delete e.dataset.gsTitle;}function At(){return "badge"===M().cardDisplay}function Ct(e){return !!(null==e?void 0:e.data)||false!==M().showMissingBadge}function Pt(e){e.size&&(nt||(nt=true,window.addEventListener("scroll",()=>{et=true,clearTimeout(tt),tt=setTimeout(()=>{et=false,Ht();},150);},{passive:true}),st||(st=true,window.addEventListener("keydown",e=>{it.add(e.code);}),window.addEventListener("keyup",e=>{it.delete(e.code);}),window.addEventListener("blur",()=>it.clear()))),null==Qe||Qe.disconnect(),requestAnimationFrame(()=>{try{e.forEach(({card:e,link:t,title:a},n)=>{const s=mt(e,n);if(ht(e)&&String(n)!==s)return;if(!ut(e))return;if(!At()){if(bt(e))return;if("1"===e.dataset.gsHoverBound)return;const n=M().cardDisplay,i=$t(e)||t,o=a||pe(e,i,$t),r=()=>async function(e,t,a,n){try{const s=mt(e,n);if(!s)return null;const i=$t(e)||t,o=a||pe(e,i,$t),r=await Ee(s,i,o);return mt(e,n)!==s?null:r}catch(s){return null}}(e,i,o,s),c=()=>a||pe(e,$t(e)||i,$t),l=()=>mt(e,s),d=function(e){var t;null==(t=ot.get(e))||t.abort();const a=new AbortController;return ot.set(e,a),rt.add(a),a.signal.addEventListener("abort",()=>rt.delete(a)),a.signal}(e);return void("context"===n?function(e,t,a,n,s){if(!Ze(e))return;const i=Je(e,t,a,n),o=s?{signal:s}:void 0;e.addEventListener("contextmenu",e=>{e.preventDefault(),i.show(!0);},o),e.addEventListener("mouseleave",i.scheduleHide,o),e.addEventListener("blur",i.scheduleHide,o);}(e,r,c,l,d):"hotkey"===n?function(e,t,a,n,s,i){if(!Ze(e))return;const o=Je(e,t,a,n),r=i?{signal:i}:void 0;e.addEventListener("click",e=>{var t,a;0===e.button&&"function"==typeof s&&s(e)&&(null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"a"))&&(e.preventDefault(),o.show(!0));},r),e.addEventListener("mouseleave",o.scheduleHide,r),e.addEventListener("blur",o.scheduleHide,r);}(e,r,c,l,Mt,d):function(e,t,a,n,s){if(!Ze(e))return;const i=Je(e,t,a,n),o=s?{signal:s}:void 0;e.addEventListener("mouseenter",()=>i.show(!1),o),e.addEventListener("focus",()=>i.show(!1),o),e.addEventListener("mouseleave",i.scheduleHide,o),e.addEventListener("blur",i.scheduleHide,o);}(e,r,c,l,d))}const i=wt(e),o=vt(e);if(pt(e,i));else if("1"===i.dataset.gsObserved){if(i.dataset.gsAppId===s)return;Lt(i);}!function(e){const t=e.closest(".home_content.single, .home_content_single_ctn");t&&t.querySelectorAll(".single_buttonbar ."+p).forEach(e=>e.remove());}(e),function(e,t){e&&bt(e)&&(kt(e,t),"1"===e.dataset.gsObserved&&e!==t&&(delete e.dataset.gsObserved,delete e.dataset.gsAppId,delete e.dataset.gsTitle));}(e,i),kt(e,i),o||function(e){const t=e.style.position;if(!t||"static"===t){if(!t&&"static"!==getComputedStyle(e).position)return;e.style.position="relative";}}(i),i.dataset.gsObserved="1",i.dataset.gsAppId=s,i.dataset.gsTitle=a,bt(e)&&e!==i||(e.dataset.gsObserved="1"),i.querySelector(`.${p}`)||i.appendChild(Xe(!1,o)),Et.observe(i);});}finally{Qe&&document.body&&Qe.observe(document.body,g);}}));}function Bt(){Pt(yt(document));}function Dt(){rt.forEach(e=>e.abort()),rt.clear(),ct.length=0,document.querySelectorAll('[data-gs-hover-bound="1"]').forEach(e=>{delete e.dataset.gsHoverBound;}),document.querySelectorAll('[data-gs-observed="1"]').forEach(e=>{Lt(e),delete e.dataset.gsMissingHidden;}),Bt();}function Gt(e){const t=Math.max(0,Math.min(100,Number(e)||0));return t>=90?"high":t>=70?"mid":"low"}function qt(e,t,a=document){var n;const s=null==(n=a.querySelector)?void 0:n.call(a,e);if(!s)return;const i=document.createElement("div");i.innerHTML=t.trim();const o=i.firstElementChild;o&&s.replaceWith(o);}function Tt(e=document){var t,a;const n=R();qt("[data-gs-cache-meter]",function(){const e=R(),t=Math.max(e.usedBytes,e.limitBytes,1),a=Math.round(e.usedBytes/e.limitBytes*100),n=(e,a,n)=>{const s=Math.max(0,Math.min(100,e/t*100));return s<=0?"":``},s=(e,t,a,n)=>`\n
  • \n \n ${Le(t)}\n \n ${Le(Se("cacheMeterEntries",{count:a}))}\n ${Le(n)}\n \n
  • `;return `\n
    \n
    \n
    \n ${Le(Se("cacheMeterPct",{pct:a}))}\n
    \n
    \n ${Le(Se("cacheMeterUsed",{used:ze(e.usedBytes),limit:ze(e.limitBytes)}))}\n
    \n
    \n \n \n
    `}(),e),qt("[data-gs-cache-list]",function(){const e=K();if(!e.length)return `
    \n
    ${Le(Se("cacheListEmpty"))}
    \n
    `;const t=e.slice(0,100);return `
    ${t.map(e=>`\n
    \n
    \n ${e.missing?`${Le(Se("cacheEntryNotFound"))}`:""}\n ${Le(e.title)}\n
    \n
    \n ${Le(ze(e.bytes))}\n \n
    \n
    `).join("")}${e.length>t.length?`
    ${Le(Se("cacheListMore",{count:e.length-t.length}))}
    `:""}
    `}(),e);const s=null==(t=e.querySelector)?void 0:t.call(e,'[data-gs="cache-list-toggle"]'),i=null==(a=e.querySelector)?void 0:a.call(e,"[data-gs-cache-list]");if(s&&i){i.hidden="true"!==s.getAttribute("aria-expanded");const e=s.querySelector("[data-gs-cache-list-count]");e&&(e.textContent=Se("cacheMeterEntries",{count:n.totalCount}));}qt("[data-gs-cache-tab-badge]",function(){const e=R(),t=Math.round(e.usedBytes/e.limitBytes*100);return `${t}%`}(),e);}let It=false;function jt(){return document.querySelector("#account_dropdown .popup_body.popup_menu")}function xt(e){e.preventDefault(),e.stopPropagation(),function(){if("function"==typeof window.HideMenu)try{return void window.HideMenu("account_pulldown","account_dropdown")}catch(e){}const t=document.getElementById("account_dropdown");t&&(t.style.display="none",t.style.visibility="hidden");}(),Xt();}async function Nt(){if(await function(e,t=15e3){return new Promise(a=>{const n=document.querySelector(e);if(n)return void a(n);const s=new MutationObserver(()=>{const t=document.querySelector(e);t&&(s.disconnect(),a(t));});s.observe(document.documentElement,{childList:true,subtree:true}),setTimeout(()=>{s.disconnect(),a(document.querySelector(e));},t);})}("#global_actions",2e4),document.getElementById("gs-settings-btn"))return Ft(),document.getElementById("gs-settings-btn");const e=jt();return e?function(e){if(document.getElementById("gs-settings-btn"))return document.getElementById("gs-settings-btn");const t=document.createElement("a");return t.id="gs-settings-btn",t.className="popup_menu_item gs-menu-item",t.href="#",t.title=Se("btnTitle"),t.innerHTML=`${Le(Se("settingsWord"))} ${Le(Se("btnText"))}`,t.addEventListener("click",xt),e.appendChild(t),Kt(),t}(e):function(e){if(!e||document.getElementById("gs-settings-btn"))return Ft(),document.getElementById("gs-settings-btn");const t=document.createElement("button");t.type="button",t.id="gs-settings-btn",t.className="gs-header-btn",t.title=Se("btnTitle"),t.innerHTML=`\n ${Le(Se("settingsWord"))} · ${Le(Se("btnText"))}\n \n `,t.addEventListener("click",xt);const a=e.querySelector("#srbb-settings-btn"),n=e.querySelector(".sih-features-button");return e.insertBefore(t,a?a.nextSibling:n||e.firstChild),Kt(),Ft(),t}(document.querySelector("#global_actions"))}function Ft(){const e=document.getElementById("gs-settings-dot"),t=M(),a=t.cacheHours!==u.cacheHours||t.badgeVertical!==u.badgeVertical||t.badgeHorizontal!==u.badgeHorizontal||t.badgeSize!==u.badgeSize||t.cardDisplay!==u.cardDisplay||t.cardPosition!==u.cardPosition||t.displayKey!==u.displayKey||t.showMissingBadge!==u.showMissingBadge||t.language!==u.language;e&&(e.classList.toggle("is-on",a),e.title=Se(a?"on":"off"));}function Kt(){if(document.getElementById("gs-panel-overlay"))return;const e=document.createElement("div");e.id="gs-panel-overlay",e.className="gs-panel-overlay",e.hidden=true,e.setAttribute("role","presentation");const t=document.createElement("div");t.id="gs-panel",t.className="gs-panel",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-label",Se("panelTitle")),t.innerHTML=`\n
    \n
    \n
    \n
    ${Le(Se("panelTitle"))}
    \n v${Le(s)}\n
    \n
    ${Le(Se("panelSubtitle"))}
    \n
    \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n
    \n
    \n
    ${Le(Se("language"))}
    \n \n

    ${Le(Se("languageHint"))}

    \n
    \n
    \n
    ${Le(Se("sectionDisplay"))}
    \n \n

    ${Le(Se("cardDisplayHint"))}

    \n \n \n \n

    ${Le(Se("cardPositionHint"))}

    \n
    \n
    \n
    ${Le(Se("sectionBadge"))}
    \n \n \n \n

    ${Le(Se("badgeSizeHint"))}

    \n
    \n ${Le(Se("badgePosition"))}\n
    \n \n \n \n \n
    \n \n \n
    \n

    ${Le(Se("badgePositionHint"))}

    \n
    \n\n
    \n
    ${Le(Se("showMissing"))}
    \n
    \n \n ${Le(Se("off"))}\n
    \n

    ${Le(Se("showMissingHint"))}

    \n
    \n\n
    \n \n\n \n
    \n\n \n `,e.appendChild(t),document.body.appendChild(e),e.addEventListener("click",t=>{t.target===e&&Xt(false);}),t.querySelectorAll("[data-gs-tab]").forEach(e=>{e.addEventListener("click",()=>function(e){const t=document.getElementById("gs-panel");t&&e&&(t.querySelectorAll("[data-gs-tab]").forEach(t=>{const a=t.getAttribute("data-gs-tab")===e;t.classList.toggle("is-active",a),t.setAttribute("aria-selected",a?"true":"false");}),t.querySelectorAll("[data-gs-pane]").forEach(t=>{t.hidden=t.getAttribute("data-gs-pane")!==e;}));}(e.getAttribute("data-gs-tab")));}),t.querySelector('[data-gs="save"]').addEventListener("click",()=>{Zt(),Xt(false);}),t.querySelector('[data-gs="reset"]').addEventListener("click",()=>{E({...u}),ye(M().language),Jt(),Dt();}),t.querySelectorAll('[data-gs="close"]').forEach(e=>e.addEventListener("click",()=>Xt(false))),t.querySelector('[data-gs="save-run"]').addEventListener("click",()=>{Zt(),Xt(false),location.reload();}),t.querySelector('[data-gs="clear-cache"]').addEventListener("click",()=>{const e=function(){const e=Object.keys(q()).length;return P={},B=false,clearTimeout(D),D=null,a(c,"{}"),C.clear(),e}(),n=t.querySelector("#gs-cache-status");n&&(n.textContent=e>0?Se("cacheCleared",{count:e}):Se("cacheEmpty")),Tt();}),t.addEventListener("click",e=>{var a,n,s,i;const o=null==(n=(a=e.target).closest)?void 0:n.call(a,'[data-gs="cache-list-toggle"]');if(o){e.preventDefault();const a="true"===o.getAttribute("aria-expanded");o.setAttribute("aria-expanded",a?"false":"true");const n=t.querySelector("[data-gs-cache-list]");return void(n&&(n.hidden=a))}const r=null==(i=(s=e.target).closest)?void 0:i.call(s,'[data-gs="cache-remove"]');if(!r)return;e.preventDefault();const c=r.getAttribute("data-gs-app-id");if(c&&function(e){const t=q(),a=String(e);return a in t&&(delete t[a],C.delete(a),I(),true)}(c)){Tt();const e=t.querySelector("#gs-cache-status");e&&(e.textContent=Se("cacheCleared",{count:1}));}}),t.querySelector("#gs-show-missing").addEventListener("change",()=>Wt()),t.querySelector("#gs-language").addEventListener("change",()=>{const e=z(t.querySelector("#gs-language").value);E({language:e}),ye(e),Jt();}),t.querySelector("#gs-card-display").addEventListener("change",()=>Ot()),t.querySelector("#gs-display-key").addEventListener("click",()=>function(){const e=document.getElementById("gs-panel"),t=null==e?void 0:e.querySelector("#gs-display-key");if(!t)return;t.textContent=Se("displayKeyPress"),t.blur();const a=e=>{if(e.preventDefault(),e.stopPropagation(),window.removeEventListener("keydown",a,true),"Escape"===e.code)return void(t.textContent=Rt(M().displayKey));const n=k(e.code);E({displayKey:n}),t.textContent=Rt(n);};window.addEventListener("keydown",a,true);}()),document.addEventListener("keydown",e=>{"Escape"===e.key&&It&&Xt(false);}),t.querySelector("#gs-badge-size").addEventListener("change",()=>Vt()),t.querySelectorAll("#gs-pos-picker [data-v]").forEach(e=>{e.addEventListener("click",()=>{e.disabled||(t.querySelector("#gs-badge-vertical").value=e.dataset.v,t.querySelector("#gs-badge-horizontal").value=e.dataset.h,Ut(),Vt());});});}function Rt(e){const t=String(e||"").replace(/(Left|Right)$/,"");return t.startsWith("Key")?t.slice(3):t.startsWith("Digit")?t.slice(5):t||"Shift"}function Ot(){var e;const t=document.getElementById("gs-panel");if(!t)return;const a=w(t.querySelector("#gs-card-display").value),n="badge"===a;null==(e=t.querySelector("#gs-badge-section"))||e.classList.toggle("is-disabled",!n),t.querySelectorAll("#gs-badge-section select").forEach(e=>{e.disabled=!n;}),t.querySelectorAll("#gs-pos-picker button").forEach(e=>{e.disabled=!n;});const s=t.querySelector("[data-gs-badge-gated-hint]");s&&(s.hidden=n);const i="hotkey"===a,o=t.querySelector("#gs-display-key-row");o&&(o.hidden=!i);const r=t.querySelector("#gs-display-key-hint");r&&(r.hidden=!i);}function Wt(){const e=document.getElementById("gs-panel");if(!e)return;const t=e.querySelector("#gs-show-missing").checked,a=e.querySelector("#gs-show-missing-pill");a.textContent=Se(t?"on":"off"),a.classList.toggle("is-on",t);}function Ut(){var e,t;const a=document.getElementById("gs-panel");if(!a)return;const n=y(null==(e=a.querySelector("#gs-badge-vertical"))?void 0:e.value),s=v(null==(t=a.querySelector("#gs-badge-horizontal"))?void 0:t.value);a.querySelectorAll("#gs-pos-picker [data-v]").forEach(e=>{e.classList.toggle("is-active",e.dataset.v===n&&e.dataset.h===s);});}function Vt(){var e,t,a;const n=document.getElementById("gs-panel"),s=null==n?void 0:n.querySelector("#gs-badge-preview");if(!s)return;const i=y(null==(e=n.querySelector("#gs-badge-vertical"))?void 0:e.value),o=v(null==(t=n.querySelector("#gs-badge-horizontal"))?void 0:t.value);s.dataset.size=_(null==(a=n.querySelector("#gs-badge-size"))?void 0:a.value);const r=s.querySelector("[data-gs-preview-badge]");r&&(r.style.top="top"===i?"8px":"auto",r.style.bottom="bottom"===i?"8px":"auto",r.style.left="left"===o?"8px":"auto",r.style.right="right"===o?"8px":"auto");}function Jt(){const e=document.getElementById("gs-panel");if(!e)return;const t=M();e.querySelector("#gs-badge-vertical").value=y(t.badgeVertical),e.querySelector("#gs-badge-horizontal").value=v(t.badgeHorizontal),e.querySelector("#gs-badge-size").value=_(t.badgeSize),e.querySelector("#gs-card-display").value=w(t.cardDisplay),e.querySelector("#gs-card-position").value=S(t.cardPosition),e.querySelector("#gs-display-key").textContent=Rt(k(t.displayKey)),e.querySelector("#gs-show-missing").checked=false!==t.showMissingBadge,e.querySelector("#gs-cache-hours").value=String(f(t.cacheHours)),e.querySelector("#gs-language").value=z(t.language),Wt(),Ot(),Ut(),Vt();const a=e.querySelector("#gs-preview-label");a&&(a.textContent=Se("cracked"));const n=e.querySelector("#gs-cache-status");n&&(n.textContent=""),Tt();}function Zt(){const e=document.getElementById("gs-panel");if(!e)return;const t=M().cardDisplay;E({badgeVertical:e.querySelector("#gs-badge-vertical").value,badgeHorizontal:e.querySelector("#gs-badge-horizontal").value,badgeSize:e.querySelector("#gs-badge-size").value,cardDisplay:e.querySelector("#gs-card-display").value,cardPosition:e.querySelector("#gs-card-position").value,showMissingBadge:e.querySelector("#gs-show-missing").checked,cacheHours:f(e.querySelector("#gs-cache-hours").value),language:e.querySelector("#gs-language").value}),M().cardDisplay!==t&&Dt();}function Xt(e){var t;Kt();const a=document.getElementById("gs-panel-overlay");a&&(It="boolean"==typeof e?e:!It,a.hidden=!It,null==(t=document.getElementById("gs-settings-btn"))||t.classList.toggle("is-open",It),function(){const e=document.documentElement,t=document.body;if(It){if(Yt)return;const a=window.scrollY||e.scrollTop||t.scrollTop||0,n=Math.max(0,window.innerWidth-e.clientWidth);return Yt={y:a,pad:t.style.paddingRight},e.classList.add("gs-modal-open"),t.style.paddingRight=n?`${n}px`:Yt.pad,t.style.top=`-${a}px`,document.addEventListener("wheel",Qt,{passive:false,capture:true}),void document.addEventListener("touchmove",Qt,{passive:false,capture:true})}if(!Yt)return void e.classList.remove("gs-modal-open");const{y:a,pad:n}=Yt;Yt=null,document.removeEventListener("wheel",Qt,{capture:true}),document.removeEventListener("touchmove",Qt,{capture:true}),e.classList.remove("gs-modal-open"),t.style.top="",t.style.paddingRight=n,window.scrollTo(0,a);}(),It&&(Ue=false,We=null,Oe(),Jt()));}let Yt=null;function Qt(e){It&&(function(e){const t=document.querySelector("#gs-panel .gs-panel__body");return !!(t&&e instanceof Node&&t.contains(e))}(e.target)||e.preventDefault());}var ea;H="function"==typeof(ea=Ft)?ea:null;const ta=[{scan:()=>{document.getElementById("gs-settings-btn")||Nt();}},{scan:()=>{!async function(){const e=oe();if(!e)return;const t=document.querySelector(".apphub_OtherSiteInfo");if(!t||"1"===t.dataset.gsPageProcessed)return;if(t.querySelector(`.${p}`))return;t.dataset.gsPageProcessed="1";const a=Xe(true);t.prepend(a);const n=(null==(i=null==(s=document.querySelector(".apphub_AppName"))?void 0:s.textContent)?void 0:i.trim())||(null==(r=null==(o=document.querySelector("#appHubAppName"))?void 0:o.textContent)?void 0:r.trim())||document.title.replace(/\s+on Steam.*$/i,"").trim();var s,i,o,r;const c=ne(document,e)||document.querySelector(`a[href*="/app/${e}"]`)||{href:location.pathname};try{const t=await Ee(e,c,n);if(!Ct(t))return void a.remove();a.replaceWith(Ye(t,{isPage:!0}));}catch(l){if(!M().showMissingBadge)return void a.remove();const e=Ye({data:null},{isPage:true});e.querySelector(`.${p}__label`).textContent=Se("loadError"),a.replaceWith(e);}}();}},{scan:e=>{Array.isArray(e)&&e.length>0?function(e){Pt(function(e){const t=new Map;return e.forEach(e=>yt(e,t)),t}(e));}(e):Bt();}}];let aa=null,na=false;const sa=[];let ia=null;const oa=(...e)=>{clearTimeout(ia),ia=setTimeout(()=>function(){const e=sa.splice(0,sa.length);na||(na=true,e.length=0);for(const t of ta)t.scan(e);}(...e),450);};function ra(){var e;ye(null!=(e=M().language)?e:"auto"),A(),G(),window.addEventListener("pagehide",T),Nt(),new MutationObserver(()=>{const e=document.getElementById("gs-settings-btn"),t=jt();if((null==e?void 0:e.classList.contains("gs-header-btn"))&&t)return e.remove(),void Nt();e||Nt();}).observe(document.documentElement,{childList:true,subtree:true}),"function"==typeof t&&t(Se("menuSettings"),()=>{Nt().then(()=>Xt(true));}),oa(),aa=new MutationObserver(e=>{const t=function(e){const t=[];let a=false;for(const n of e){if("attributes"===n.type){const e=n.target;if(!(e instanceof Element))continue;if("class"===n.attributeName&&dt(e)){e.classList.contains("focus")&&(pt(e,wt(e))&&(a=true),t.push(e));continue}if(!e.hasAttribute("data-ds-appid"))continue;zt(e)&&(a=true),t.push(e);continue}for(const e of n.addedNodes)lt(e)&&t.push(e);}return a&&!t.length&&t.push(document.body),t}(e);t.length&&(sa.push(...t),oa());}),Qe=aa,aa.observe(document.body,g);}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",ra):ra(); })();