From 1fab5ff540c9c67538b90bf125f0c7ea824cec72 Mon Sep 17 00:00:00 2001 From: ReznoRMichael Date: Sun, 14 Feb 2021 03:22:54 +0100 Subject: [PATCH] v1.0.3 release --- docs/app.js | 305 +--------- docs/index.html | 138 +---- docs/main.css | 1102 +---------------------------------- src/partials/analytics.html | 2 +- 4 files changed, 4 insertions(+), 1543 deletions(-) diff --git a/docs/app.js b/docs/app.js index 34ccfea..2028ad5 100644 --- a/docs/app.js +++ b/docs/app.js @@ -1,304 +1 @@ -/* - * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./src/js/HKCheckCompletion.js": -/*!*************************************!*\ - !*** ./src/js/HKCheckCompletion.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hk_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hk-database.js */ \"./src/js/hk-database.js\");\n/* harmony import */ var _hk_dictionary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hk-dictionary.js */ \"./src/js/hk-dictionary.js\");\n/* harmony import */ var _img_health_mask_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../img/health-mask.png */ \"./src/img/health-mask.png\");\n/* harmony import */ var _img_health_mask_steel_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../img/health-mask-steel.png */ \"./src/img/health-mask-steel.png\");\n/* harmony import */ var _img_soul_orb_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/soul-orb.png */ \"./src/img/soul-orb.png\");\n/* harmony import */ var _img_notch_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../img/notch.png */ \"./src/img/notch.png\");\n/* harmony import */ var _img_notch_filled_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../img/notch-filled.png */ \"./src/img/notch-filled.png\");\n/* harmony import */ var _img_notch_overcharmed_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../img/notch-overcharmed.png */ \"./src/img/notch-overcharmed.png\");\n/* harmony import */ var _img_geo_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../img/geo.png */ \"./src/img/geo.png\");\n/* harmony import */ var _img_geo_shade_png__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../img/geo-shade.png */ \"./src/img/geo-shade.png\");\n/* eslint-disable no-prototype-builtins */\n// ---------------- Load main Hollow Knight database file ----------------- //\n\n // ---------------- Load image files (necessary for Webpack) ----------------- //\n\n\n\n\n\n\n\n\n // ---------------- Constants ----------------- //\n// const DATA_UNKNOWN = \"Data unknown\";\n\nvar SYMBOL_FALSE = \"\"; // \"❌ \"\n\nvar SYMBOL_TRUE = \"\"; // \"✅ \"\n// const SYMBOL_INFO = \"\"; // \"ℹ \"\n\nvar SYMBOL_EMPTY = \"\";\nvar FLEUR_DIVIDE = \"
\"; // ---------------- Variables ----------------- //\n// let currentData = DATA_UNKNOWN;\n\nvar completionSymbol = SYMBOL_FALSE;\nvar divStart = [\"
\"].join(\"\\n\");\nvar divStartCenter = [\"
\"].join(\"\\n\");\nvar divEnd = [\"
\"].join(\"\\n\");\nvar pSpan = \"\";\nvar benchHKCCBegin, benchHKCCEnd; // ---------------- Functions ----------------- //\n\n/**\r\n * Main Function. Checks Hollow Knight game completion by analyzing the save file\r\n * @param {object} jsonObject Decoded save data in JavaScript Object Notation form (JSON)\r\n */\n\nfunction HKCheckCompletion(jsonObject) {\n // start benchmark\n benchHKCCBegin = new Date();\n var HKPlayerData;\n var HKWorldItems;\n var HKSceneData;\n\n if (jsonObject.hasOwnProperty(\"playerData\")) {\n HKPlayerData = jsonObject.playerData;\n } else return false;\n\n if (jsonObject.hasOwnProperty(\"sceneData\")) {\n HKSceneData = jsonObject.sceneData;\n\n if (jsonObject.sceneData.hasOwnProperty(\"persistentBoolItems\")) {\n HKWorldItems = jsonObject.sceneData.persistentBoolItems;\n } else return false;\n } else return false; // Pre-Cleaning and filling initial data (h2, id) needed for FillHTML()\n\n\n PrefillHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID); // Prevents adding current percent data after each function call (each click of Analyze button)\n\n ResetCompletion(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID); // ================================================================================== //\n // ---------------- Time Played ----------------- //\n\n CheckPlayTime(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.playTime); // ---------------- Game Completion Status ----------------- //\n\n CheckCompletionPercent(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.completionPercentage); // ---------------- Fleur Divide ----------------- //\n\n AppendHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, FLEUR_DIVIDE); // ---------------- Health Masks ----------------- //\n\n CheckHealthMasks(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.maxHealthBase, HKPlayerData.permadeathMode); // ---------------- Soul Orbs ----------------- //\n\n CheckSoulOrbs(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.maxMP + HKPlayerData.MPReserveMax); // ---------------- Charm Notches (Slots) ----------------- //\n\n CheckNotches(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.charmSlots, HKPlayerData.charmSlotsFilled); // ---------------- Geo Amount ----------------- //\n\n CheckGeo(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.intro, HKPlayerData.geo, HKPlayerData.geoPool); // ---------------- Bosses (Base Game) --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.bosses, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.BOSSES, HKPlayerData); // ---------------- Gruz Mother and Mawlek (World Map) --------------------- //\n\n if (HKWorldItems) CheckWorldDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.bosses, \"Battle Scene\", _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.BOSSES_WORLD, HKWorldItems); // ---------------- Charms --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.charms, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.CHARMS, HKPlayerData); // ---------------- Colosseum of Fools --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.colosseum, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.COLOSSEUM, HKPlayerData); // ---------------- Dreamers --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.dreamers, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DREAMERS, HKPlayerData); // ---------------- Dream Nail and Essence --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.dreamNail, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DREAMNAIL, HKPlayerData); // ---------------- Equipment --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.equipment, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.EQUIPMENT, HKPlayerData); // ---------------- Nail Upgrades --------------------- //\n\n CheckNailUpgrades(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.nailUpgrades, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILUPGRADES, HKPlayerData); // ---------------- Mask Shards --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.maskShards, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.MASKSHARDS, HKPlayerData); // ---------------- Mask Shards (World Map) --------------------- //\n\n CheckWorldDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.maskShards, \"Heart Piece\", _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.MASKSHARDS_WORLD, HKWorldItems); // ---------------- Nail Arts --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.nailArts, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILARTS, HKPlayerData); // ---------------- Spells --------------------- //\n\n CheckSpellLevel(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.spells, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SPELLS, HKPlayerData); // ---------------- Vessel Fragments --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.vesselFragments, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.VESSELFRAGMENTS, HKPlayerData); // ---------------- Vessel Fragments (World Map) --------------------- //\n\n CheckWorldDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.vesselFragments, \"Vessel Fragment\", _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.VESSELFRAGMENTS_WORLD, HKWorldItems); // ---------------- Warrior Dreams --------------------- //\n\n CheckWarriorDreams(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.warriorDreams, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.WARRIORDREAMS, HKPlayerData); // ---------------- Grimm Troupe Content Pack --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.grimmTroupe, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GRIMMTROUPE, HKPlayerData);\n HKPlayerData.grimmChildLevel >= 4 ? CurrentDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.grimmTroupe) : CurrentDataFalse();\n FillHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.grimmTroupe, \"Nightmare King Grimm / Banishment\", \"Dirtmouth or Howling Cliffs\"); // ---------------- Lifeblood Content Pack --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.lifeblood, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.LIFEBLOOD, HKPlayerData); // ---------------- Godmaster Content Pack --------------------- //\n\n CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.godmaster, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER, HKPlayerData);\n CheckGodmasterDoors(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.godmaster, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER_DOORS, HKPlayerData); // ---------------- Fleur Divide ----------------- //\n\n AppendHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.godmaster, FLEUR_DIVIDE); // ------------------------- Essential Things ----------------------------- //\n\n CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.essential, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.ESSENTIAL, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- //\n\n AppendHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.essential, FLEUR_DIVIDE); // ------------------------- Achievements ----------------------------- //\n\n CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.achievements, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.ACHIEVEMENTS, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- //\n\n AppendHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.achievements, FLEUR_DIVIDE); // ------------------------- Game Statistics ----------------------------- //\n\n CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.statistics, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.STATISTICS, HKPlayerData, HKWorldItems, HKSceneData); // ------------------------- Hints ----------------------------- //\n\n CheckHintsTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.hints, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.HINTS, HKPlayerData, HKWorldItems); // ------------------------- Fill completion ----------------------------- //\n\n CompletionHTML(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID, HKPlayerData.completionPercentage); // Prevents wrong checkbox behaviour (must run after everything is finished)\n\n CheckboxHintsToggle();\n CheckboxSpoilersToggle(); // finish and show benchmark\n\n benchHKCCEnd = new Date();\n console.info(\"HKCheckCompletion() time (ms) =\", benchHKCCEnd - benchHKCCBegin);\n return true;\n}\n/**\r\n * Cleans \"generated\" and fills all HTML elements of ids from a given list. Creates only div with id, and h2 with title inside it.\r\n * @param {object} jsObj Object with HTML data to fill\r\n */\n\n\nfunction PrefillHTML(jsObj) {\n // Clean \"generated\" div\n document.getElementById(\"generated\").innerHTML = \"\";\n var id = \"\";\n var h2 = \"\";\n var h2id = \"\";\n var mp = \"\"; // max Percent\n\n var cl = \"\"; // class\n\n for (var i in jsObj) {\n id = jsObj[i].id;\n h2 = jsObj[i].h2;\n h2id = \"h2-\" + jsObj[i].id;\n mp = \"
\".concat(i === \"intro\" ? 0 : jsObj[i].maxPercent, \"%
\");\n if (!jsObj[i].hasOwnProperty(\"maxPercent\")) mp = \"\";\n document.getElementById(\"generated\").innerHTML += \"
\" + \"
\"; // document.getElementById(id).innerHTML += \"

\" + h2 + mp + \"

\";\n\n document.getElementById(id).innerHTML += \"

\").concat(h2).concat(mp, \"

\");\n }\n}\n/**\r\n * Replaces the h2 titles with a current percent/max percent values as read from the save file\r\n * @param {object} jsObj Object with HTML data to fill\r\n */\n\n\nfunction CompletionHTML(jsObj, hkGameCompletion) {\n var h2 = \"\";\n var h2id = \"\";\n var cl = \"\";\n var clGreen = \"box-green\";\n var clRed = \"box-red\";\n var cp = 0; // current Percent\n\n var mp = 0; // max Percent\n\n var fillText = \"\";\n\n for (var i in jsObj) {\n h2 = jsObj[i].h2;\n h2id = \"h2-\" + jsObj[i].id;\n jsObj[i].hasOwnProperty(\"percent\") ? cp = jsObj[i].percent : cp = 0;\n if (i === \"intro\") cp = hkGameCompletion; // Don't use percent-box for Essentials, Achievements, Statistics\n\n if (!jsObj[i].hasOwnProperty(\"maxPercent\")) {\n fillText = \"\";\n } // otherwise use percent-box with values cp/mp%\n else {\n mp = jsObj[i].maxPercent;\n\n if (i === \"maskShards\") {\n var perc = jsObj[i].percent;\n perc % 4 ? cp = Math.floor(perc / 4) : cp = perc / 4;\n } else if (i === \"vesselFragments\") {\n var _perc = jsObj[i].percent;\n _perc % 3 ? cp = Math.floor(_perc / 3) : cp = _perc / 3;\n } // switches the box to red when a section (h2) is 0\n\n\n if (cp === 0) {\n cl = \" \".concat(clRed);\n } // switches the box to green when a section (h2) is completed\n else if (cp === mp) {\n cl = \" \".concat(clGreen);\n } // default is blue (partially completed and starting value)\n else cl = \"\"; // needed for Game Status to show percentage properly (adds a slash for all boxes except the Game Status one)\n\n\n if (jsObj[i].hasOwnProperty(\"percent\")) cp += \"/\";\n fillText = \"
\").concat(i === \"intro\" ? cp : cp + jsObj[i].maxPercent, \"%
\");\n }\n\n document.getElementById(h2id).innerHTML = h2 + fillText;\n }\n}\n/**\r\n * Generates and appends a new entry inside the HTML of a given ID\r\n * @param {object} divId object containing div ID and h2 title of the HTML element\r\n * @param {string} textPrefix Main name of the entry\r\n * @param {string} textSuffix Optional suffix after the main name (spoilers: locations, costs etc.)\r\n */\n\n\nfunction FillHTML(divId) {\n var textPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Unknown Completion Element: \";\n var textSuffix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"Unknown Description Element\";\n var icon = completionSymbol;\n var b = [\"\", \"\"];\n if (!textPrefix.length) b = [\"\", \"\"];\n var span = [\"\", \"\"];\n var spoilerSpan = [\"\", \"\"];\n\n if (divId === _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID.hints) {\n span[0] = \"\";\n icon = \"\";\n }\n\n var dash = \"\";\n if (textSuffix.length && textPrefix.length) dash = \"— \";\n document.getElementById(divId.id).innerHTML += divStart + icon + b[0] + textPrefix + b[1] + span[0] + pSpan + spoilerSpan[0] + dash + textSuffix + spoilerSpan[1] + span[1] + divEnd;\n}\n/**\r\n * Adds HTML string to an element with a given ID.\r\n * @param {object} divId object containing div ID of the HTML element to append to\r\n * @param {string} content HTML contents to append\r\n */\n\n\nfunction AppendHTML(divId, content) {\n document.getElementById(divId.id).innerHTML += \"\\n\" + content;\n}\n/**\r\n * Switches global variable to a \"completed\" symbol. Adds +1 or +2 to percent property.\r\n */\n\n\nfunction CurrentDataTrue() {\n var divId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n completionSymbol = SYMBOL_TRUE;\n\n if (divId) {\n divId.percent++;\n if (divId.id === \"hk-equipment\") divId.percent++; // double % for equipment\n }\n}\n/**\r\n * Switches global variable to a \"not completed\" symbol\r\n */\n\n\nfunction CurrentDataFalse() {\n completionSymbol = SYMBOL_FALSE;\n}\n/**\r\n * Switches global variable to an \"information\" symbol\r\n */\n\n/* function CurrentDataInfo() {\r\n completionSymbol = SYMBOL_INFO;\r\n} */\n\n/**\r\n * Switches global variable to no symbol (span with left padding)\r\n */\n\n\nfunction CurrentDataBlank() {\n completionSymbol = SYMBOL_EMPTY;\n}\n/**\r\n * Fills HTML with the playTime value of the save file\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} playTime Number of total gameplay time in seconds\r\n */\n\n\nfunction CheckPlayTime(divId, playTime) {\n var icon = \"\";\n var seconds = Math.floor(playTime);\n var minutes = Math.floor(seconds / 60 % 60);\n var hours = Math.floor(seconds / 3600);\n var sec = Math.floor(seconds % 60);\n if (sec < 10) sec = \"0\" + sec;\n if (minutes < 10) minutes = \"0\" + minutes;\n var textFill = \"Time Played:\" + pSpan + \"\" + hours + \" h \" + minutes + \" min \" + sec + \" sec\";\n document.getElementById(divId.id).innerHTML += divStart + icon + textFill + divEnd;\n}\n/**\r\n * Searches for completionPercentage in playerData and fills HTML with the value of the save file\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} completionPercentage Number of completion percentage\r\n */\n\n\nfunction CheckCompletionPercent(divId, completionPercentage) {\n completionPercentage >= 112 ? CurrentDataTrue() : CurrentDataFalse();\n var textFill = \"Game Completion:\" + pSpan + \"\" + completionPercentage + \" %\" + pSpan + \"(out of \" + divId.maxPercent + \" %)\";\n document.getElementById(divId.id).innerHTML += divStart + completionSymbol + textFill + divEnd;\n}\n/**\r\n * Fills HTML with appropriate number of health mask images\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} masks Number of max health masks from the save (baseline without charms and lifeblood)\r\n * @param {number} permadeathMode Value of permadeathMode property. 0 = Normal, 1 = Steel Soul, 2 = Steel Soul broken save\r\n */\n\n\nfunction CheckHealthMasks(divId) {\n var masks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var permadeathMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var icon = SYMBOL_EMPTY;\n var textFill = \"Health:\";\n var maskImages = \"\";\n var maskNormal = \"health mask image\");\n var maskSteel = \"steel health mask image\");\n var maskImg = \"\";\n permadeathMode > 0 ? maskImg = maskSteel : maskImg = maskNormal;\n\n for (var i = 0; i < masks; i++) {\n maskImages += maskImg;\n }\n\n document.getElementById(divId.id).innerHTML += divStartCenter + icon + textFill + maskImages + divEnd;\n}\n/**\r\n * Fills HTML with appropriate number of soul orbs images\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} totalSoul Number of max Soul reserve from the save. 99 = full Soul Orb\r\n */\n\n\nfunction CheckSoulOrbs(divId, totalSoul) {\n var icon = SYMBOL_EMPTY;\n var textFill = \"Soul:\";\n var soulImages = \"\";\n var soulNormal = \"soul orb image\");\n var soulImg = soulNormal;\n\n for (var i = 0, total = totalSoul / 33; i < total; i++) {\n soulImages += soulImg;\n }\n\n document.getElementById(divId.id).innerHTML += divStartCenter + icon + textFill + soulImages + divEnd;\n}\n/**\r\n * Fills HTML with the Geo value of the save file\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} geoValue Number of total Geo value\r\n */\n\n\nfunction CheckGeo(divId) {\n var geoValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var geoPoolValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var icon = SYMBOL_EMPTY;\n var textFill = \"Geo:geo symbol image\").concat(geoValue, \"\"); // Show Shade Geo value and image only if Shade has at least 1 Geo on it\n\n if (geoPoolValue > 0) textFill += \"\\n \".concat(pSpan, \"+shade geo symbol image\").concat(geoPoolValue, \"\"); // Show also total Geo (Geo + Shade Geo) if player has at least 1 geo alongside the shade geo\n\n if (geoValue > 0 && geoPoolValue > 0) textFill += \"\".concat(pSpan, \"=\").concat(pSpan, \"\").concat(geoValue + geoPoolValue, \"\");\n document.getElementById(divId.id).innerHTML += divStartCenter + icon + textFill + divEnd;\n}\n/**\r\n * Fills HTML with appropriate number of notch images\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {number} totalNotches Number of total Charm Notches the player has. 11 = max\r\n * @param {number} filledNotches Number of total used Charm Notches (including overcharmed notches). 15 = max\r\n */\n\n\nfunction CheckNotches(divId) {\n var totalNotches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n var filledNotches = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var _ = 0,\n overcharmedNotches = _.overcharmedNotches,\n unusedNotches = _.unusedNotches; // How many overcharmed notches images to show\n\n overcharmedNotches = filledNotches - totalNotches;\n if (overcharmedNotches < 1) overcharmedNotches = 0; // How many unused notches images to show\n\n unusedNotches = totalNotches - filledNotches;\n if (unusedNotches < 1) unusedNotches = 0; // Correct number of filled/used notches images to show when player is overcharmed\n\n if (filledNotches > totalNotches) filledNotches = totalNotches;\n var icon = SYMBOL_EMPTY;\n var textFill = \"Notches:\".concat(pSpan);\n var notchImages = \"\";\n var notchNormalImage = \"notch image\");\n var notchFilledImage = \"notch image\");\n var notchOvercharmedImage = \"notch image\"); // First check filled (used) notches and fill them (skips if no filled notches)\n\n if (filledNotches > 0) {\n for (var i = 0; i < filledNotches; i++) {\n notchImages += notchFilledImage;\n }\n } // Second check overcharmed notches and fill them (skips if player is not overcharmed)\n\n\n if (overcharmedNotches > 0) {\n for (var _i = 0; _i < overcharmedNotches; _i++) {\n notchImages += notchOvercharmedImage;\n }\n } // Lastly, fill all unused notches\n\n\n if (unusedNotches > 0) {\n for (var _i2 = 0; _i2 < unusedNotches; _i2++) {\n notchImages += notchNormalImage;\n }\n }\n\n document.getElementById(divId.id).innerHTML += divStartCenter + icon + textFill + notchImages + divEnd;\n}\n/**\r\n * Verifies if the data in a specific object is true or false, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing data to be verified (use copy - data inside this object will be deleted)\r\n * @param {object} playerData Reference/pointer to specific data where to search\r\n */\n\n\nfunction CheckIfDataTrue(divId, dataObject, playerData) {\n for (var i in dataObject) {\n switch (i) {\n case \"gotCharm_36\":\n // prevents green checkbox and adding 1% when only got one white fragment\n playerData.gotQueenFragment === true && playerData.gotKingFragment === true ? CurrentDataTrue(divId) : CurrentDataFalse();\n break;\n\n default:\n playerData[i] === true ? CurrentDataTrue(divId) : CurrentDataFalse();\n }\n\n FillHTML(divId, dataObject[i].name, dataObject[i].spoiler);\n }\n}\n/**\r\n * Verifies if the data in a specific object is 0 or > 0, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing data to be verified (use copy - data inside this object will be deleted)\r\n * @param {object} playerData Reference/pointer to specific data where to search\r\n */\n\n\nfunction CheckSpellLevel(divId, dataObject, playerData) {\n for (var i in dataObject) {\n switch (i) {\n case \"vengefulSpirit\":\n case \"shadeSoul\":\n playerData.fireballLevel >= dataObject[i].fireballLevel ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[i].name, dataObject[i].spoiler);\n break;\n\n case \"desolateDive\":\n case \"descendingDark\":\n playerData.quakeLevel >= dataObject[i].quakeLevel ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[i].name, dataObject[i].spoiler);\n break;\n\n case \"howlingWraiths\":\n case \"abyssShriek\":\n playerData.screamLevel >= dataObject[i].screamLevel ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[i].name, dataObject[i].spoiler);\n break;\n\n default:\n break;\n }\n }\n}\n/**\r\n * Verifies if the data in a specific object is 0 or > 0, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing data to be verified\r\n * @param {object} playerData Reference/pointer to specific data where to search\r\n */\n\n\nfunction CheckWarriorDreams(divId, dataObject, playerData) {\n for (var i in dataObject) {\n playerData[i] >= 2 ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[i].name, dataObject[i].spoiler);\n }\n}\n/**\r\n * Verifies if the Godmaster Pantheons 1-4 are completed by the player, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing pantheon data to be verified\r\n * @param {object} playerData Reference/pointer to specific data where to search in the save file\r\n */\n\n\nfunction CheckGodmasterDoors(divId, dataObject, playerData) {\n // appends \"pantheon\" to every array element\n // same as names in the database object\n var pantheon = [\"Master\", \"Artist\", \"Sage\", \"Knight\"].map(function (element) {\n return \"pantheon\" + element;\n });\n\n for (var i = 0; i < 4; i++) {\n playerData[\"bossDoorStateTier\" + (i + 1)].completed === true ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[pantheon[i]].name, dataObject[pantheon[i]].spoiler);\n }\n}\n/**\r\n * Verifies the level of player's nail upgrades, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing nail upgrades data to be verified\r\n * @param {object} playerData Reference/pointer to specific data where to search in the save file\r\n */\n\n\nfunction CheckNailUpgrades(divId, dataObject, playerData) {\n // appends \"Nail\" to every array element\n // same as names in the database object\n var nail = [\"old\", \"sharpened\", \"channeled\", \"coiled\", \"pure\"].map(function (element) {\n return element + \"Nail\";\n });\n\n for (var i = 0; i < 5; i++) {\n playerData.nailSmithUpgrades >= i ? CurrentDataTrue(divId) : CurrentDataFalse();\n FillHTML(divId, dataObject[nail[i]].name, dataObject[nail[i]].spoiler);\n }\n\n if (divId.percent) divId.percent--; // subject one for the Old Nail\n}\n/**\r\n * Verifies if the data in a specific object are true or false, and appends HTML accordingly. Creates a copy of dataObject.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {string} idText Text string inside save data to search for\r\n * @param {object} dataObject Object containing data to be verified\r\n * @param {object} worldData Reference/pointer to specific data where to search\r\n */\n\n\nfunction CheckWorldDataTrue(divId, idText, dataObject, worldData) {\n var orderedArray = [];\n var size = ObjectLength(dataObject); // Order the items before displaying them (creates a copy of dataObject)\n\n for (var i in dataObject) {\n orderedArray.push([i, dataObject[i].name, dataObject[i].spoiler, false]);\n } // Search for completed items and mark them for display\n\n\n for (var _i3 = 0, length = worldData.length; _i3 < length; _i3++) {\n for (var j = 0; j < size; j++) {\n if (worldData[_i3].id === idText && worldData[_i3].sceneName === orderedArray[j][0] && worldData[_i3].activated === true) {\n orderedArray[j][3] = true;\n }\n }\n } // Display the items as they were initially ordered\n\n\n for (var _i4 = 0; _i4 < size; _i4++) {\n CurrentDataFalse();\n if (orderedArray[_i4][3] === true) CurrentDataTrue(divId);\n FillHTML(divId, orderedArray[_i4][1], orderedArray[_i4][2]);\n }\n}\n/**\r\n * Verifies if the data in a specific object are true or false, or checks what values they have, and appends HTML accordingly.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject Object containing data to be verified\r\n * @param {object} playerData Reference/pointer to specific data where to search\r\n * @param {object} worldData Reference/pointer to specific data where to search\r\n */\n\n\nfunction CheckAdditionalThings(divId, dataObject, playerData, worldData, sceneData) {\n var textPrefix = \"\";\n var textSuffix = \"\";\n /**\r\n * Searches for a given item in the in-game area and returns true when found and collected.\r\n * @param {string} itemArea Code of the in-game area on the map\r\n * @param {string} itemId Name of the item\r\n * @returns {boolean}\r\n */\n\n function FindWorldItem() {\n var itemArea = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var itemId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Shiny Item\";\n\n for (var i = 0, length = worldData.length; i < length; i++) {\n if (worldData[i].id === itemId) {\n if (worldData[i].sceneName === itemArea) {\n if (worldData[i].activated === true) return true;\n }\n }\n }\n\n return false;\n }\n /**\r\n * Searches for a given item that the player has found and returns the amount of them that the player completed.\r\n * @param {string} itemId Name of the item\r\n * @returns {number}\r\n */\n\n\n function CountWorldItem() {\n var itemId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var total = 0;\n\n for (var i = 0, length = worldData.length; i < length; i++) {\n if (worldData[i].id === itemId) {\n if (worldData[i].activated === true) total++;\n }\n }\n\n return total;\n }\n /**\r\n * Counts the number of maps the player has acquired (from the list in an array)\r\n * @param {array} mapArray Array of strings with area map names\r\n * @returns {number}\r\n */\n\n\n function CountMaps(mapArray) {\n var totalMaps = 0;\n\n for (var i = 0, len = mapArray.length; i < len; i++) {\n if (playerData[mapArray[i]] === true) totalMaps++;\n }\n\n return totalMaps;\n }\n /**\r\n * Counts the total amount of Geo Rocks Unbroken or Broken. Logs to console all the Unbroken IDs and Map locations.\r\n * @param {number} arrayLength How many items the Geo Rocks array is currently storing (for iteration)\r\n * @param {string} mode Choose which Geo Rocks to count (broken or unbroken)\r\n */\n\n\n function CountGeoRocks(arrayLength) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"unbroken\";\n var countTotal = 0;\n var geoRocksLog = [];\n\n if (mode === \"unbroken\") {\n for (var i = 0; i < arrayLength; i++) {\n if (sceneData.geoRocks[i].hitsLeft > 0) {\n countTotal++;\n geoRocksLog.push(\"#\".concat(countTotal, \" \\uD83C\\uDFD4\\uFE0F \").concat(sceneData.geoRocks[i].id, \" \\uD83D\\uDDFA\\uFE0F \").concat(TranslateMapName(sceneData.geoRocks[i].sceneName), \" \\u2328\\uFE0F \").concat(sceneData.geoRocks[i].sceneName));\n }\n }\n\n if (!countTotal) {\n console.log(\"%cAll Geo Rocks Broken!\", \"color: #16c60c; font-weight: 700;\");\n } else {\n console.groupCollapsed(\"%cUnbroken Geo Rocks (\".concat(countTotal, \"):\"), \"color: #16c60c; font-weight: 700;\");\n\n for (var _i5 = 0, length = geoRocksLog.length; _i5 < length; _i5++) {\n console.log(geoRocksLog[_i5]);\n }\n\n console.groupEnd();\n }\n } else {\n for (var _i6 = 0; _i6 < arrayLength; _i6++) {\n if (sceneData.geoRocks[_i6].hitsLeft === 0) countTotal++;\n }\n }\n\n return countTotal;\n }\n\n function LogMissingGrubs() {\n var rescuedGrubsSceneList = [];\n\n for (var i = 0, _length = worldData.length; i < _length; i++) {\n if (worldData[i].id.includes(\"Grub Bottle\")) {\n if (worldData[i].activated === true) {\n // There are 3 duplicates of the same map scene name from older game save files. Prevents adding duplicates\n\n /* if (worldData[i].sceneName === \"Ruins2_11\" && worldData[i].id === \"Grub Bottle (1)\") {\r\n continue;\r\n } else if (worldData[i].sceneName === \"Ruins2_11\" && worldData[i].id === \"Grub Bottle (2)\") {\r\n continue;\r\n } else { */\n rescuedGrubsSceneList.push(worldData[i].sceneName); // }\n }\n }\n } // Filtering the reference database Grub list to include only the missing values\n\n\n var missingGrubsList = _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GRUBS_LIST.filter(function (x) {\n return !rescuedGrubsSceneList.includes(x);\n });\n var length = missingGrubsList.length;\n\n if (!length) {\n console.log(\"%cAll Grubs Rescued!\", \"color: #16c60c; font-weight: 700;\");\n } else {\n console.groupCollapsed(\"%cUnrescued Grubs (\".concat(length, \"):\"), \"color: #16c60c; font-weight: 700;\");\n\n for (var _i7 = 0; _i7 < length; _i7++) {\n console.log(\"#\".concat(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GRUBS_LIST.indexOf(missingGrubsList[_i7]) + 1, \" \\uD83D\\uDDFA\\uFE0F \").concat(TranslateMapName(missingGrubsList[_i7]), \" \\u2328\\uFE0F \").concat(missingGrubsList[_i7]));\n }\n\n console.groupEnd();\n }\n\n return false;\n } // Start main loop\n\n\n for (var i in dataObject) {\n textPrefix = dataObject[i].name;\n dataObject[i].hasOwnProperty(\"spoiler\") ? textSuffix = dataObject[i].spoiler : textSuffix = \"\";\n var _2 = 0,\n amount = _2.amount,\n countTotal = _2.countTotal,\n total = _2.total,\n unbroken = _2.unbroken,\n broken = _2.broken,\n discoveredTotal = _2.discoveredTotal;\n\n switch (i) {\n case \"areaMaps\":\n case \"grubsCollected\":\n case \"dreamOrbs\":\n case \"fountainGeo\":\n case \"nailDamage\":\n case \"stationsOpened\":\n case \"charmSlots\":\n case \"whisperingRoots\":\n case \"journalEntriesCompleted\":\n case \"journalNotesCompleted\":\n case \"whiteDefenderDefeats\":\n case \"greyPrinceDefeats\":\n if (i === \"areaMaps\") {\n amount = CountMaps(dataObject[i].list);\n } else if (i === \"whisperingRoots\") {\n amount = CountWorldItem(\"Dream Plant\");\n } else {\n amount = playerData[i];\n }\n\n if (i === \"stationsOpened\") {\n if (playerData.openedHiddenStation === true) amount++;\n }\n\n countTotal = amount;\n\n if (i === \"journalEntriesCompleted\" || i === \"journalNotesCompleted\") {\n countTotal = amount + \" / \" + playerData.journalEntriesTotal;\n }\n\n if (i === \"grubsCollected\") LogMissingGrubs();\n textPrefix += \": \" + countTotal;\n\n if (i === \"greyPrinceDefeats\") {\n if (playerData.zoteDead === true || playerData.zoteRescuedBuzzer === false && playerData.hasWalljump === true) {\n textPrefix = \"\".concat(textPrefix, \"\");\n textSuffix = \"\".concat(textSuffix, \"\");\n }\n }\n\n amount >= dataObject[i].max ? CurrentDataTrue() : CurrentDataBlank();\n break;\n\n case \"geoPool\":\n case \"rancidEggs\":\n case \"xunFlowerBrokeTimes\":\n textPrefix += \": \" + Math.abs(playerData[i]);\n i === \"geoPool\" && playerData[i] > 0 ? CurrentDataBlank() : CurrentDataTrue();\n break;\n\n case \"geoRocks\":\n discoveredTotal = sceneData.geoRocks.length;\n unbroken = CountGeoRocks(discoveredTotal, \"unbroken\");\n broken = CountGeoRocks(discoveredTotal, \"broken\");\n textPrefix += \": \".concat(unbroken, \" | \").concat(broken, \" | \").concat(discoveredTotal);\n CurrentDataTrue();\n break;\n\n case \"shopkeeperKey\":\n playerData.hasSlykey === true || playerData.gaveSlykey === true ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"elegantKey\":\n playerData.hasWhiteKey === true || playerData.usedWhiteKey === true ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"loveKey\":\n playerData.hasLoveKey === true || playerData.openedLoveDoor === true ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"simpleKeyCityOfTears\":\n // #2\n FindWorldItem(\"Ruins1_17\", \"Shiny Item\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"simpleKeyAncientBasin\":\n // #3\n FindWorldItem(\"Abyss_20\", \"Shiny Item Stand\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreAncientBasin\":\n // #1\n FindWorldItem(\"Abyss_17\", \"Battle Scene Ore\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreSeer\":\n // #2\n playerData.dreamReward2 === true ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreCrystalPeak\":\n // #3\n FindWorldItem(\"Mines_34\", \"Shiny Item Stand\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreDeepnest\":\n // #4\n FindWorldItem(\"Deepnest_32\", \"Shiny Item Stand\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreGrubfather\":\n // #5\n FindWorldItem(\"Crossroads_38\", \"Shiny Item Ore\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"paleOreColosseum\":\n // #6\n FindWorldItem(\"Room_Colosseum_Silver\", \"Shiny Item\") ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"relicsWandererJournal\":\n case \"relicsHallownestSeal\":\n case \"relicsKingsIdol\":\n case \"relicsArcaneEgg\":\n total = playerData[dataObject[i].nameHeld] + playerData[dataObject[i].nameSold];\n total >= dataObject[i].max ? CurrentDataTrue() : CurrentDataBlank();\n textPrefix += \": \" + total;\n break;\n\n case \"bossDoorStateTier5\":\n playerData[i].completed === true ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"killsBindingSeal\":\n playerData[i] == 0 ? CurrentDataTrue() : CurrentDataFalse();\n break;\n\n case \"killedVoidIdol_1\":\n playerData[i] === true ? CurrentDataTrue() : CurrentDataFalse();\n if (playerData[i] === false && (playerData.killedVoidIdol_2 === true || playerData.killedVoidIdol_3 === true)) CurrentDataTrue();\n break;\n\n case \"killedVoidIdol_2\":\n playerData[i] === true ? CurrentDataTrue() : CurrentDataFalse();\n if (playerData[i] === false && playerData.killedVoidIdol_3 === true) CurrentDataTrue();\n break;\n\n case \"greyPrinceDefeated\":\n if (playerData.zoteDead === true || playerData.zoteRescuedBuzzer === false && playerData.hasWalljump === true) {\n textPrefix = \"\".concat(textPrefix, \"\");\n textSuffix = \"\".concat(textSuffix, \"\");\n }\n\n playerData[i] === true ? CurrentDataTrue() : CurrentDataBlank();\n if (playerData.zoteRescuedBuzzer === true && playerData[i] === false) CurrentDataFalse();\n break;\n\n case \"zoteStatus\":\n CurrentDataFalse();\n\n if (playerData.zoteDead === true) {\n textPrefix = dataObject[i].nameNeglect;\n textSuffix = dataObject[i].spoilerNeglect;\n CurrentDataTrue();\n } else if (playerData.killedZote === true) {\n textPrefix = dataObject[i].nameRivalry;\n textSuffix = dataObject[i].spoilerRivalry;\n CurrentDataTrue();\n } else if (playerData.zoteRescuedBuzzer === false) {\n if (playerData.hasWalljump === false) {\n textPrefix = dataObject[i].nameTrappedVengefly;\n textSuffix = dataObject[i].spoilerTrappedVengefly;\n } else if (playerData.hasWalljump === true) {\n textPrefix = dataObject[i].nameNotRescuedVengefly;\n textSuffix = dataObject[i].spoilerNotRescuedVengefly;\n }\n } else if (playerData.zoteRescuedBuzzer === true) {\n if (playerData.zoteRescuedDeepnest === false) {\n textPrefix = dataObject[i].nameTrappedDeepnest;\n textSuffix = dataObject[i].spoilerTrappedDeepnest;\n } else if (playerData.zoteRescuedDeepnest === true) {\n if (playerData.killedZote === false) {\n textPrefix = dataObject[i].nameColosseum;\n textSuffix = dataObject[i].spoilerColosseum;\n }\n }\n }\n\n break;\n\n case \"nailsmithStatus\":\n CurrentDataFalse();\n\n if (playerData.nailsmithKilled === true) {\n textPrefix = dataObject[i].namePurity;\n textSuffix = dataObject[i].spoilerPurity;\n CurrentDataTrue();\n } else if (playerData.nailsmithConvoArt === true) {\n textPrefix = dataObject[i].nameHappyCouple;\n textSuffix = dataObject[i].spoilerHappyCouple;\n CurrentDataTrue();\n } else if (playerData.nailsmithSpared === true) {\n textPrefix = dataObject[i].nameSheoHutWaiting;\n textSuffix = dataObject[i].spoilerSheoHutWaiting;\n } else {\n textPrefix = dataObject[i].nameUpgradeNail;\n textSuffix = dataObject[i].spoilerUpgradeNail;\n }\n\n break;\n\n case \"mrMushroomState\":\n CheckMrMushroomState(divId, dataObject[i], playerData[i]);\n break;\n\n default:\n playerData[i] === true ? CurrentDataTrue() : CurrentDataFalse();\n } // end switch (i)\n\n\n if (i === \"mrMushroomState\") continue;\n FillHTML(divId, textPrefix, textSuffix);\n } // end for (let i in dataObject)\n\n}\n/**\r\n * Checks and fills all the 7 locations of Mr Mushroom.\r\n * @param {object} divId ID of the HTML element for data appending\r\n * @param {object} dataObject object containing the Mr Mushroom name and spoilers/locations\r\n * @param {number} mrMushroomState playerData.mrMushroomState read from the save file. (0-8)\r\n */\n\n\nfunction CheckMrMushroomState(divId, dataObject) {\n var mrMushroomState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (mrMushroomState > 1) {\n for (var i = 1; i <= 7; i++) {\n mrMushroomState > i ? CurrentDataTrue() : CurrentDataFalse();\n FillHTML(divId, \"\".concat(dataObject.name, \" #\").concat(i), dataObject[\"spoiler\" + i]);\n }\n } else {\n CurrentDataFalse();\n\n for (var _i8 = 1; _i8 <= 7; _i8++) {\n FillHTML(divId, \"\".concat(dataObject.name, \" #\").concat(_i8), dataObject[\"spoiler\" + _i8]);\n }\n }\n}\n/**\r\n * Checks, validates and shows hints to the player depending on their save progression, in chronological order. Shows only hint for the last uncompleted event. If Hollow Knight is defeated, shows a dummy text.\r\n * @param {object} divId object containing div hints ID and h2 title\r\n * @param {object} dataObject object containing all hints data\r\n * @param {object} playerData object containing HK Player Data to look in\r\n * @param {object} worldData object containing HK World Data to look in\r\n * @returns {bool} true when defeated Hollow Knight, false if not\r\n */\n\n\nfunction CheckHintsTrue(divId, dataObject, playerData, worldData) {\n if (playerData.killedHollowKnight === true) {\n // a text to show when player already finished their first playthrough (killed Hollow Knight first time)\n FillHTML(divId, \"\", \"...a successful Knight who doesn't need hints anymore. The Knight explores the world of Hallownest patiently in constant search of its remaining secrets...\");\n return true;\n }\n\n for (var i in dataObject) {\n if (playerData[i] === true) {\n continue;\n } else if (i === \"fireballLevel\") {\n if (playerData[i] >= 1) {\n continue;\n } else {\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } else if (i === \"Crossroads_04\") {\n var GruzMotherDefeated = false;\n\n for (var k = 0, length = worldData.length; k < length; k++) {\n if (worldData[k].id === \"Battle Scene\" && worldData[k].sceneName === \"Crossroads_04\" && worldData[k].activated === true) {\n GruzMotherDefeated = true;\n break;\n }\n }\n\n if (GruzMotherDefeated) {\n continue; // next dataObject (i)\n } else {\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } else if (i === \"dungDefenderOrHornet2\") {\n if (playerData.defeatedDungDefender === true) {\n continue;\n } else if (playerData.hornetOutskirtsDefeated === true) {\n continue;\n } else {\n // if no Dung Defender or Hornet 2\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } else if (i === \"ismaTearOrShadeCloak\") {\n if (playerData.hasAcidArmour === true) {\n continue;\n } else if (playerData.hasKingsBrand === true) {\n if (playerData.hasShadowDash === true) {\n continue;\n } else {\n // if Kings Brand but no Shade Cloak\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } else {\n // if no Isma's Tear or Kings Brand\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } else {\n // if anything from the hints list is not done\n FillHTML(divId, \"\", dataObject[i].spoiler);\n return false;\n }\n } // end: for (let i in dataObject)\n\n} // function CheckHintsTrue()\n\n/**\r\n * Pre-Cleans HTML. Reads contents inside text area and parses it to a JavaScript object. If not empty, runs HKCheckCompletion() to check data.\r\n */\n\n\nfunction HKReadTextArea() {\n var textAreaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n // refresh and prepare document for filling with data from the save\n InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID);\n var contents = document.getElementById(textAreaId).value;\n\n if (contents.length) {\n try {\n var jsonObject = JSON.parse(contents); // console.log(jsonObject);\n\n if (jsonObject.hasOwnProperty(\"playerData\")) HKCheckCompletion(jsonObject); // console.log(jsonObject);\n } catch (error) {\n alert(\"This seems like not a valid Hollow Knight save. \".concat(error));\n console.info(\"This seems like not a valid Hollow Knight save. \".concat(error));\n }\n }\n}\n/**\r\n * Checks the length of a JavaScript Object like Array.length\r\n * @param {object} object JavaScript Object\r\n * @return {number} length of the Object\r\n */\n\n\nfunction ObjectLength(object) {\n var length = 0;\n\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n ++length;\n }\n }\n\n return length;\n}\n/**\r\n * Populate all HTML with given ID and their initial data set as false (used at DOM load)\r\n * @param {object} divIdObj JavaScript Object containing all HTML IDs to populate\r\n */\n\n\nfunction InitialHTMLPopulate(divIdObj) {\n PrefillHTML(divIdObj);\n CurrentDataFalse(); // Play Time\n\n CheckPlayTime(divIdObj.intro, 0); // Game Completion\n\n CheckCompletionPercent(divIdObj.intro, 0); // Fleur Divide\n\n AppendHTML(divIdObj.intro, FLEUR_DIVIDE); // Health Masks\n\n CheckHealthMasks(divIdObj.intro); // Soul Orbs\n\n CheckSoulOrbs(divIdObj.intro, 99); // Charm Notches\n\n CheckNotches(divIdObj.intro); // Geo\n\n CheckGeo(divIdObj.intro); // First Hint Only\n\n FillHTML(divIdObj.hints, \"\", _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.HINTS.fireballLevel.spoiler); // Temp arrays storing references (addresses) to objects for looping through them (duplicates important)\n\n var hkObjArray = [_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.BOSSES, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.BOSSES_WORLD, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.CHARMS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.EQUIPMENT, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILARTS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.MASKSHARDS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.MASKSHARDS_WORLD, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.VESSELFRAGMENTS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.VESSELFRAGMENTS_WORLD, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DREAMERS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.COLOSSEUM, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DREAMNAIL, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.WARRIORDREAMS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GRIMMTROUPE, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.LIFEBLOOD, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.ESSENTIAL, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.ACHIEVEMENTS, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.STATISTICS]; // duplicates and order important - must be the same as in hkObjArray[]\n\n var divObjArray = [divIdObj.bosses, divIdObj.bosses, divIdObj.charms, divIdObj.equipment, divIdObj.nailArts, divIdObj.maskShards, divIdObj.maskShards, divIdObj.vesselFragments, divIdObj.vesselFragments, divIdObj.dreamers, divIdObj.colosseum, divIdObj.dreamNail, divIdObj.warriorDreams, divIdObj.grimmTroupe, divIdObj.lifeblood, divIdObj.godmaster, divIdObj.essential, divIdObj.achievements, divIdObj.statistics]; // Looped filling to reduce redundancy\n\n do {\n for (var entry in hkObjArray[0]) {\n if (entry === \"mrMushroomState\") continue;\n FillHTML(divObjArray[0], hkObjArray[0][entry].name, hkObjArray[0][entry].spoiler);\n }\n\n divObjArray.shift();\n } while (hkObjArray.shift()); // Nail Upgrades Misc\n\n\n for (var i in _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILUPGRADES) {\n FillHTML(divIdObj.nailUpgrades, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILUPGRADES[i].name, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.NAILUPGRADES[i].spoiler);\n } // Spells Misc\n\n\n for (var _i9 in _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SPELLS) {\n FillHTML(divIdObj.spells, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SPELLS[_i9].name, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SPELLS[_i9].spoiler);\n } // Nightmare King Grimm / Banishment Misc\n\n\n FillHTML(divIdObj.grimmTroupe, \"Nightmare King Grimm / Banishment\", \"Dirtmouth or Howling Cliffs\"); // Godmaster Doors Misc\n\n for (var _i10 in _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER_DOORS) {\n FillHTML(divIdObj.godmaster, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER_DOORS[_i10].name, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.GODMASTER_DOORS[_i10].spoiler);\n } // Mr Mushroom 1 - 7\n\n\n CheckMrMushroomState(divIdObj.achievements, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.ACHIEVEMENTS.mrMushroomState); // Fleur Dividers\n\n AppendHTML(divIdObj.godmaster, FLEUR_DIVIDE);\n AppendHTML(divIdObj.essential, FLEUR_DIVIDE);\n AppendHTML(divIdObj.achievements, FLEUR_DIVIDE); // Check local storage first to set proper checkbox state before the below functions start (default is always unchecked)\n\n if (localStorage.getItem(\"hkCheckboxHints\") === \"checked\") document.getElementById(\"checkbox-hints\").checked = true;\n if (localStorage.getItem(\"hkCheckboxSpoilers\") === \"checked\") document.getElementById(\"checkbox-spoilers\").checked = true; // Prevents wrong checkbox behaviour (must run after everything is finished)\n\n CheckboxHintsToggle();\n CheckboxSpoilersToggle();\n}\n/**\r\n * Toggles display of \"hk-hints\". On click with no parameters or on demand when called with a parameter\r\n * @param {string} param \"hide\", \"show\" or none (optional)\r\n */\n\n\nfunction CheckboxHintsToggle() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"none\";\n var checkboxId = document.getElementById(\"checkbox-hints\");\n\n switch (param) {\n case \"hide\":\n document.getElementById(\"hk-hints\").classList.add(\"hidden\");\n checkboxId.value = \"hints-off\";\n checkboxId.checked = false; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxHints\", \"unchecked\");\n break;\n\n case \"show\":\n document.getElementById(\"hk-hints\").classList.remove(\"hidden\");\n checkboxId.value = \"hints-on\";\n checkboxId.checked = true; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxHints\", \"checked\");\n break;\n\n default:\n // This runs when the checkbox is not checked\n if (checkboxId.checked === false) {\n document.getElementById(\"hk-hints\").classList.add(\"hidden\");\n checkboxId.value = \"hints-off\"; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxHints\", \"unchecked\");\n } // This runs when the checkbox is checked\n else {\n document.getElementById(\"hk-hints\").classList.remove(\"hidden\");\n checkboxId.value = \"hints-on\"; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxHints\", \"checked\");\n }\n\n }\n}\n/**\r\n * Toggles display of \".spoiler-span\" class. On click with no parameters or on demand when called with a parameter\r\n * @param {string} param \"hide\", \"show\" or none (optional)\r\n */\n\n\nfunction CheckboxSpoilersToggle() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"none\";\n var checkboxId = document.getElementById(\"checkbox-spoilers\");\n var allClassElements = document.querySelectorAll(\".spoiler-span\");\n var length = allClassElements.length;\n\n switch (param) {\n case \"hide\":\n for (var i = 0; i < length; i++) {\n allClassElements[i].classList.add(\"hidden\");\n }\n\n checkboxId.value = \"spoilers-off\";\n checkboxId.checked = false; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxSpoilers\", \"unchecked\");\n break;\n\n case \"show\":\n for (var _i11 = 0; _i11 < length; _i11++) {\n allClassElements[_i11].classList.remove(\"hidden\");\n }\n\n checkboxId.value = \"spoilers-on\";\n checkboxId.checked = true; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxSpoilers\", \"checked\");\n break;\n\n default:\n // This runs when the checkbox is not checked\n if (checkboxId.checked === false) {\n for (var _i12 = 0; _i12 < length; _i12++) {\n allClassElements[_i12].classList.add(\"hidden\");\n }\n\n checkboxId.value = \"spoilers-off\"; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxSpoilers\", \"unchecked\");\n } // This runs when the checkbox is checked\n else {\n for (var _i13 = 0; _i13 < length; _i13++) {\n allClassElements[_i13].classList.remove(\"hidden\");\n }\n\n checkboxId.value = \"spoilers-on\"; // remember this choice for subsequent page visits and browser restarts\n\n localStorage.setItem(\"hkCheckboxSpoilers\", \"checked\");\n }\n\n }\n}\n/**\r\n * Zero-fill all \"percent\" properties in the JSON Object (reset to default)\r\n * @param {object} jsObj object containing the \"percent\" properties to be reset to 0\r\n */\n\n\nfunction ResetCompletion(jsObj) {\n for (var i in jsObj) {\n if (jsObj[i].hasOwnProperty(\"percent\")) jsObj[i].percent = 0;\n }\n}\n/**\r\n * Focuses, selects and copies to clipboard contents inside a clicked element. Includes optional tooltip update after the copying is done.\r\n * @param {MouseEvent} mouseEvent from the clicked element (AddEventListener)\r\n * @param {string} tooltipId Element ID of the tooltip to update\r\n * @param {string} tooltipFill Updated contents of the tooltip\r\n */\n\n\nfunction SelectCopyInputText(mouseEvent) {\n var tooltipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var tooltipFill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n var element = document.getElementById(mouseEvent.target.id); // this prevents the un-selected effect after clicking the second time (clears all selection first)\n\n if (window.getSelection) {\n window.getSelection().removeAllRanges();\n }\n\n element.focus(); // best to focus the element first before selecting\n\n element.select();\n element.setSelectionRange(0, 99999); // for mobile devices\n // Copy the text inside the text field to clipboard\n\n document.execCommand(\"copy\"); // optional tooltip showing\n\n if (tooltipFill.length && tooltipId.length) FillInnerHTML(tooltipId, tooltipFill);\n}\n/**\r\n * Fills the innerHTML of a given HTML Element with provided contents\r\n * @param {string} elementId Element ID to update\r\n * @param {string} textFill Updated contents (innerHTML)\r\n */\n\n\nfunction FillInnerHTML(elementId, textFill) {\n var element = document.getElementById(elementId);\n element.innerHTML = textFill;\n}\n/**\r\n * Returns a translated map location name string.\r\n * @param {string} mapCode Code of the Hollow Knight map location the game developers use\r\n * @param {object} dictionary Main data source for translation\r\n */\n\n\nfunction TranslateMapName(mapCode) {\n var dictionary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _hk_dictionary_js__WEBPACK_IMPORTED_MODULE_1__.default;\n var translation = mapCode;\n if (dictionary.hasOwnProperty(mapCode)) translation = dictionary[mapCode];\n return translation;\n} // Populate HTML at load (before img and css)\n\n\ndocument.addEventListener(\"DOMContentLoaded\", InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.DIV_ID)); // Does an action when the save file location input text is clicked once (auto select & copy to clipboard)\n\ndocument.getElementById(\"save-location-input\").addEventListener(\"click\", function (e) {\n SelectCopyInputText(e, \"save-location-input-tooltip\", \"Copied save file location to clipboard\");\n}, false);\ndocument.getElementById(\"save-location-input\").addEventListener(\"mouseout\", function () {\n FillInnerHTML(\"save-location-input-tooltip\", \"Click once to copy to clipboard\");\n}, false); // Make functions global so they can be used on click and change events (for Webpack)\n\nwindow.HKReadTextArea = HKReadTextArea;\nwindow.InitialHTMLPopulate = InitialHTMLPopulate;\nwindow.CheckboxSpoilersToggle = CheckboxSpoilersToggle;\nwindow.CheckboxHintsToggle = CheckboxHintsToggle;\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/HKCheckCompletion.js?"); - -/***/ }), - -/***/ "./src/js/LoadSaveFile.js": -/*!********************************!*\ - !*** ./src/js/LoadSaveFile.js ***! - \********************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -eval("/* global require HKReadTextArea */\n\n/* \r\n Parts of the code thanks to bloodorca https://github.com/bloodorca/hollow (base64.js, functions.js) with slight modifications.\r\n The steps used there for decryption were taken from KayDeeTee https://github.com/KayDeeTee/Hollow-Knight-SaveManager\r\n Without these two people the existence of this tool wouldn't be possible :)\r\n*/\n// ---------------- Constants ----------------- //\n// AES JS for file decryption\nvar aesjs = __webpack_require__(/*! ./aes-js.js */ \"./src/js/aes-js.js\");\n\nvar CSHARP_HEADER = [0, 1, 0, 0, 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0]; // 22 bytes\n\nvar BASE64_ARRAY = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".split(\"\").map(function (c) {\n return c.charCodeAt(0);\n});\nvar BASE64_DECODE_TABLE = new Map(BASE64_ARRAY.map(function (ord, i) {\n return [ord, i];\n}));\nvar AES_KEY = new TextEncoder().encode('UKu52ePUBwetZ9wNX88o54dnfKRu0T1l'); // encodes a string to Uint8Array (prepare for AES JS)\n\nvar ECB_STREAM_CIPHER = new aesjs.ModeOfOperation.ecb(AES_KEY); // create a new AES stream cipher object using the encoded key\n// ---------------- Variables ----------------- //\n\nvar benchLSFBegin, benchLSFEnd, benchTotal; // ---------------- Functions ----------------- //\n\n/**\r\n * Main input tag file function. Selects the first file, reads it as an Array Buffer, starts the processing of the file when loaded.\r\n * Starts benchmarking.\r\n * @param {FileList} input FileList object containing a list of File objects. The FileList behaves like an array, so you can check its length property to get the number of selected files.\r\n */\n// eslint-disable-next-line no-unused-vars\n\nfunction LoadSaveFile(input) {\n var startTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n // console.info(\"Input length: \" + input.files.length)\n // Cease further processing if user canceled the file input dialog\n if (input.files.length < 1) return false; // start benchmark\n\n benchLSFBegin = startTime; // Prepares a File object from the first file of the input files for reading as an Array Buffer\n\n var inputFileObject = input.files[0]; // Cleans the file list to avoid problems after subsequent use\n // document.getElementById(\"save-area-file\").value = \"\";\n // 1. read file\n // The ArrayBuffer object is used to represent a generic, fixed-length raw binary data buffer.\n // It is an array of bytes, often referred to in other languages as a \"byte array\".\n // new FileReader()\n\n var inputReader = new FileReader(); // readAsArrayBuffer(file)\n\n inputReader.readAsArrayBuffer(inputFileObject); // addEventListener(\"load\", function) - to decode the file when loaded\n\n inputReader.addEventListener(\"load\", ProcessFileObject);\n}\n/**\r\n * Reads the File object as an Array Buffer and does all other operations (decoding, decryption, conversion to string, pasting to text area).\r\n * Launches the HKReadTextArea() function automatically after pasting the string to text area\r\n */\n\n\nfunction ProcessFileObject() {\n var inputArrayBuffer = this.result;\n var decodedString; // 2. Decode file\n\n try {\n // Uint8Array(ArrayBuffer) uint8_t equivalent in C\n inputArrayBuffer = new Uint8Array(inputArrayBuffer); // ArrayBuffer.slice()\n // The slice() method copies up to, but not including, the byte indicated by the end parameter.\n\n inputArrayBuffer.slice(); // remove C# header and LengthPrefixedString header (ArrayBuffer)\n\n inputArrayBuffer = RemoveHeaders(inputArrayBuffer); // base64 Decoding (ArrayBuffer)\n\n inputArrayBuffer = Base64Decode(inputArrayBuffer); // AES decryption (ECB) removes pkcs7 padding (ArrayBuffer)\n\n inputArrayBuffer = AESDecryption(inputArrayBuffer); // Convert ArrayBuffer to string/text TextDecoder().decode(ArrayBuffer)\n\n decodedString = new TextDecoder().decode(inputArrayBuffer); // 4. Paste decoded string file to text area\n\n document.getElementById(\"save-area\").value = \"\";\n document.getElementById(\"save-area\").value = decodedString; // finish and show benchmark\n\n benchLSFEnd = new Date();\n console.info(\"LoadSaveFile() time (ms) =\", benchLSFEnd - benchLSFBegin); // after pasting the decoded string, launch the main analyzing function immediately\n\n HKReadTextArea(\"save-area\"); // finish total and show benchmark\n\n benchTotal = new Date();\n console.info(\"Total time (ms) =\", benchTotal - benchLSFBegin); // alert(`Decoded String: ${decodedString}`);\n // alert(`Array Buffer: ${inputArrayBuffer}`);\n } catch (error) {\n alert(\"The file cannot be decoded. \".concat(error));\n console.info(\"The file cannot be decoded. \".concat(error));\n }\n}\n/**\r\n * Removes C# header, LengthPrefixedString header and byte 11 at the end of the Uint8 Array Buffer\r\n * @param {Uint8Array} buffer Uint8Array buffer for removing the header from\r\n * @param {Uint8Array} csHeader Uint8Array for the C# header length calculation\r\n * @returns {Uint8Array}\r\n */\n\n\nfunction RemoveHeaders(buffer) {\n var csHeader = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CSHARP_HEADER;\n // Remove the fixed C# header and byte 11 at the end. \n buffer = buffer.subarray(csHeader.length, buffer.length - 1); // Remove LengthPrefixedString header\n\n var lengthCount = 0;\n\n for (var i = 0; i < 5; i++) {\n lengthCount++;\n\n if ((buffer[i] & 0x80) == 0) {\n break;\n }\n }\n\n return buffer.subarray(lengthCount);\n}\n/**\r\n * Decodes an Array Buffer using a Base64 decode table\r\n * @param {Uint8Array} buffer Uint8Array Buffer to decode\r\n * @returns {Uint8Array}\r\n */\n\n\nfunction Base64Decode(buffer) {\n buffer = new Uint8Array(buffer).slice();\n buffer = buffer.map(function (v) {\n return BASE64_DECODE_TABLE.get(v);\n }); // The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present.\n\n var p = buffer.indexOf(64);\n var end;\n\n if (p != -1) {\n end = p;\n } else {\n end = buffer.length;\n }\n\n buffer = buffer.subarray(0, end);\n var output = new Uint8Array(3 * buffer.length / 4);\n var continuous = Math.floor(buffer.length / 4) * 4;\n\n for (var i = 0; i < continuous; i += 4) {\n var k = 3 * i / 4;\n output[k] = buffer[i] << 2 | buffer[i + 1] >> 4;\n output[k + 1] = (buffer[i + 1] & 0x0F) << 4 | buffer[i + 2] >> 2;\n output[k + 2] = (buffer[i + 2] & 0x03) << 6 | buffer[i + 3];\n }\n\n if (buffer[continuous] != undefined) {\n var _k = 3 * continuous / 4;\n\n output[_k] = buffer[continuous] << 2 | buffer[continuous + 1] >> 4;\n\n if (buffer[continuous + 2] != undefined) {\n output[_k + 1] = (buffer[continuous + 1] & 0x0F) << 4 | buffer[continuous + 2] >> 2;\n }\n }\n\n return output;\n}\n/**\r\n * Decrypt an Uint8Array Buffer using aesjs (ECB) and a predefined AES key + remove pkcs7 padding\r\n * @param {Uint8Array} buffer Uint8Array buffer to decrypt\r\n * @returns {Uint8Array}\r\n */\n\n\nfunction AESDecryption(buffer) {\n var cipherObject = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ECB_STREAM_CIPHER;\n var output = cipherObject.decrypt(buffer);\n return output.subarray(0, -output[output.length - 1]);\n} // Make functions global so they can be used on click and change events (for Webpack)\n\n\nwindow.LoadSaveFile = LoadSaveFile;\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/LoadSaveFile.js?"); - -/***/ }), - -/***/ "./src/js/aes-js.js": -/*!**************************!*\ - !*** ./src/js/aes-js.js ***! - \**************************/ -/***/ (function(module) { - -"use strict"; -eval("/* eslint-disable */\n\n\n(function (root) {\n function checkInt(value) {\n return parseInt(value) === value;\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) {\n return false;\n }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n } // It's an array; check it is a valid representation of a byte\n\n\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n } // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n\n\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n\n targetArray.set(sourceArray, targetStart);\n }\n\n var convertUtf8 = function () {\n function toBytes(text) {\n var result = [],\n i = 0;\n text = encodeURI(text);\n\n while (i < text.length) {\n var c = text.charCodeAt(i++); // if it is a % sign, encode the following 2 bytes as a hex value\n\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16));\n i += 2; // otherwise, just the actual byte\n } else {\n result.push(c);\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [],\n i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode((c & 0x1f) << 6 | bytes[i + 1] & 0x3f));\n i += 2;\n } else {\n result.push(String.fromCharCode((c & 0x0f) << 12 | (bytes[i + 1] & 0x3f) << 6 | bytes[i + 2] & 0x3f));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes\n };\n }();\n\n var convertHex = function () {\n function toBytes(text) {\n var result = [];\n\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n } // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n\n\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes\n };\n }(); // Number of rounds by keysize\n\n\n var numberOfRounds = {\n 16: 10,\n 24: 12,\n 32: 14\n }; // Round constant words\n\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91]; // S-box and Inverse S-box (S is for Substitution)\n\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]; // Transformations for encryption\n\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c]; // Transformations for decryption\n\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0]; // Transformations for decryption key expansion\n\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]);\n }\n\n return result;\n }\n\n var AES = function AES(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n };\n\n AES.prototype._prepare = function () {\n var rounds = numberOfRounds[this.key.length];\n\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n } // encryption round keys\n\n\n this._Ke = []; // decryption round keys\n\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4; // convert the key into ints\n\n var tk = convertToInt32(this.key); // copy values into round key arrays\n\n var index;\n\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n } // key expansion (fips-197 section 5.2)\n\n\n var rconpointer = 0;\n var t = KC,\n tt;\n\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= S[tt >> 16 & 0xFF] << 24 ^ S[tt >> 8 & 0xFF] << 16 ^ S[tt & 0xFF] << 8 ^ S[tt >> 24 & 0xFF] ^ rcon[rconpointer] << 24;\n rconpointer += 1; // key expansion (for non-256 bit)\n\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n } // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n\n } else {\n for (var i = 1; i < KC / 2; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n tt = tk[KC / 2 - 1];\n tk[KC / 2] ^= S[tt & 0xFF] ^ S[tt >> 8 & 0xFF] << 8 ^ S[tt >> 16 & 0xFF] << 16 ^ S[tt >> 24 & 0xFF] << 24;\n\n for (var i = KC / 2 + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n } // copy values into round key arrays\n\n\n var i = 0,\n r,\n c;\n\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n } // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n\n\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = U1[tt >> 24 & 0xFF] ^ U2[tt >> 16 & 0xFF] ^ U3[tt >> 8 & 0xFF] ^ U4[tt & 0xFF];\n }\n }\n };\n\n AES.prototype.encrypt = function (plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0]; // convert plaintext to (ints ^ key)\n\n var t = convertToInt32(plaintext);\n\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n } // apply round transforms\n\n\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = T1[t[i] >> 24 & 0xff] ^ T2[t[(i + 1) % 4] >> 16 & 0xff] ^ T3[t[(i + 2) % 4] >> 8 & 0xff] ^ T4[t[(i + 3) % 4] & 0xff] ^ this._Ke[r][i];\n }\n\n t = a.slice();\n } // the last round is special\n\n\n var result = createArray(16),\n tt;\n\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i] = (S[t[i] >> 24 & 0xff] ^ tt >> 24) & 0xff;\n result[4 * i + 1] = (S[t[(i + 1) % 4] >> 16 & 0xff] ^ tt >> 16) & 0xff;\n result[4 * i + 2] = (S[t[(i + 2) % 4] >> 8 & 0xff] ^ tt >> 8) & 0xff;\n result[4 * i + 3] = (S[t[(i + 3) % 4] & 0xff] ^ tt) & 0xff;\n }\n\n return result;\n };\n\n AES.prototype.decrypt = function (ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0]; // convert plaintext to (ints ^ key)\n\n var t = convertToInt32(ciphertext);\n\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n } // apply round transforms\n\n\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = T5[t[i] >> 24 & 0xff] ^ T6[t[(i + 3) % 4] >> 16 & 0xff] ^ T7[t[(i + 2) % 4] >> 8 & 0xff] ^ T8[t[(i + 1) % 4] & 0xff] ^ this._Kd[r][i];\n }\n\n t = a.slice();\n } // the last round is special\n\n\n var result = createArray(16),\n tt;\n\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i] = (Si[t[i] >> 24 & 0xff] ^ tt >> 24) & 0xff;\n result[4 * i + 1] = (Si[t[(i + 3) % 4] >> 16 & 0xff] ^ tt >> 16) & 0xff;\n result[4 * i + 2] = (Si[t[(i + 2) % 4] >> 8 & 0xff] ^ tt >> 8) & 0xff;\n result[4 * i + 3] = (Si[t[(i + 1) % 4] & 0xff] ^ tt) & 0xff;\n }\n\n return result;\n };\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n\n\n var ModeOfOperationECB = function ModeOfOperationECB(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n this._aes = new AES(key);\n };\n\n ModeOfOperationECB.prototype.encrypt = function (plaintext) {\n plaintext = coerceArray(plaintext);\n\n if (plaintext.length % 16 !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n };\n\n ModeOfOperationECB.prototype.decrypt = function (ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if (ciphertext.length % 16 !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n\n\n var ModeOfOperationCBC = function ModeOfOperationCBC(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n this._aes = new AES(key);\n };\n\n ModeOfOperationCBC.prototype.encrypt = function (plaintext) {\n plaintext = coerceArray(plaintext);\n\n if (plaintext.length % 16 !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n };\n\n ModeOfOperationCBC.prototype.decrypt = function (ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if (ciphertext.length % 16 !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n\n\n var ModeOfOperationCFB = function ModeOfOperationCFB(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) {\n segmentSize = 1;\n }\n\n this.segmentSize = segmentSize;\n this._shiftRegister = coerceArray(iv, true);\n this._aes = new AES(key);\n };\n\n ModeOfOperationCFB.prototype.encrypt = function (plaintext) {\n if (plaintext.length % this.segmentSize != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n var xorSegment;\n\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n } // Shift the register\n\n\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n };\n\n ModeOfOperationCFB.prototype.decrypt = function (ciphertext) {\n if (ciphertext.length % this.segmentSize != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n var xorSegment;\n\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n } // Shift the register\n\n\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n\n\n var ModeOfOperationOFB = function ModeOfOperationOFB(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n this._aes = new AES(key);\n };\n\n ModeOfOperationOFB.prototype.encrypt = function (plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }; // Decryption is symetric\n\n\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n /**\n * Counter object for CTR common mode of operation\n */\n\n var Counter = function Counter(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n } // We allow 0, but anything false-ish uses the default 1\n\n\n if (initialValue !== 0 && !initialValue) {\n initialValue = 1;\n }\n\n if (typeof initialValue === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n } else {\n this.setBytes(initialValue);\n }\n };\n\n Counter.prototype.setValue = function (value) {\n if (typeof value !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n };\n\n Counter.prototype.setBytes = function (bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function () {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n };\n /**\n * Mode Of Operation - Counter (CTR)\n */\n\n\n var ModeOfOperationCTR = function ModeOfOperationCTR(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter);\n }\n\n this._counter = counter;\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n this._aes = new AES(key);\n };\n\n ModeOfOperationCTR.prototype.encrypt = function (plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n\n this._counter.increment();\n }\n\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }; // Decryption is symetric\n\n\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt; ///////////////////////\n // Padding\n // See:https://tools.ietf.org/html/rfc2315\n\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - data.length % 16;\n var result = createArray(data.length + padder);\n copyArray(data, result);\n\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n\n if (data.length < 16) {\n throw new Error('PKCS#7 invalid length');\n }\n\n var padder = data[data.length - 1];\n\n if (padder > 16) {\n throw new Error('PKCS#7 padding byte out of range');\n }\n\n var length = data.length - padder;\n\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n } ///////////////////////\n // Exporting\n // The block cipher\n\n\n var aesjs = {\n AES: AES,\n Counter: Counter,\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray\n }\n }; // node.js\n\n if (true) {\n module.exports = aesjs; // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else {}\n})(this);\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/aes-js.js?"); - -/***/ }), - -/***/ "./src/js/hk-database.js": -/*!*******************************!*\ - !*** ./src/js/hk-database.js ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => __WEBPACK_DEFAULT_EXPORT__\n/* harmony export */ });\n// ---------------- Hollow Knight Data Constant Objects ----------------- //\n\n/*\r\n This is the whole database for the tool, based on the .json save file data\r\n*/\nvar HK = {\n DIV_ID: {\n intro: {\n h2: \"Game Status\",\n id: \"hk-intro\",\n maxPercent: 112\n },\n hints: {\n h2: \"My friend Elderbug once told me about...\",\n id: \"hk-hints\"\n },\n bosses: {\n h2: \"Bosses\",\n id: \"hk-bosses\",\n percent: 0,\n maxPercent: 14\n },\n charms: {\n h2: \"Charms\",\n id: \"hk-charms\",\n percent: 0,\n maxPercent: 36\n },\n equipment: {\n h2: \"Equipment\",\n id: \"hk-equipment\",\n percent: 0,\n maxPercent: 14\n },\n nailUpgrades: {\n h2: \"Nail Upgrades\",\n id: \"hk-nailupgrades\",\n percent: 0,\n maxPercent: 4\n },\n nailArts: {\n h2: \"Nail Arts\",\n id: \"hk-nailarts\",\n percent: 0,\n maxPercent: 3\n },\n spells: {\n h2: \"Spells\",\n id: \"hk-spells\",\n percent: 0,\n maxPercent: 6\n },\n maskShards: {\n h2: \"Mask Shards\",\n id: \"hk-maskshards\",\n percent: 0,\n maxPercent: 4\n },\n vesselFragments: {\n h2: \"Vessel Fragments\",\n id: \"hk-vesselfragments\",\n percent: 0,\n maxPercent: 3\n },\n dreamNail: {\n h2: \"Dream Nail and Essence\",\n id: \"hk-dreamnail\",\n percent: 0,\n maxPercent: 3\n },\n warriorDreams: {\n h2: \"Warrior Dreams\",\n id: \"hk-warriordreams\",\n percent: 0,\n maxPercent: 7\n },\n dreamers: {\n h2: \"Dreamers\",\n id: \"hk-dreamers\",\n percent: 0,\n maxPercent: 3\n },\n colosseum: {\n h2: \"Colosseum of Fools\",\n id: \"hk-colosseum\",\n percent: 0,\n maxPercent: 3\n },\n grimmTroupe: {\n h2: \"Grimm Troupe Content Pack\",\n id: \"hk-grimmtroupe\",\n percent: 0,\n maxPercent: 6\n },\n lifeblood: {\n h2: \"Lifeblood Content Pack\",\n id: \"hk-lifeblood\",\n percent: 0,\n maxPercent: 1\n },\n godmaster: {\n h2: \"Godmaster Content Pack\",\n id: \"hk-godmaster\",\n percent: 0,\n maxPercent: 5\n },\n essential: {\n h2: \"Game Completion Essentials\",\n id: \"hk-essential\"\n },\n achievements: {\n h2: \"Achievements Essentials\",\n id: \"hk-achievements\"\n },\n statistics: {\n h2: \"Game Statistics\",\n id: \"hk-statistics\"\n }\n },\n // hk-hints\n HINTS: {\n fireballLevel: {\n spoiler: \"...a mysterious shaman living in a dwelling below the town of Dirtmouth\"\n },\n hornet1Defeated: {\n spoiler: \"...a skilled protector guarding ruins in a lush green forest\"\n },\n hasDash: {\n spoiler: \"...an old cloak lying on a green path near a broken shell\"\n },\n hasWalljump: {\n spoiler: \"...a sharp claw lying forgotten somewhere amidst the insect village\"\n },\n Crossroads_04: {\n spoiler: \"...a mother sleeping peacefully below the town of Dirtmouth\"\n },\n slyRescued: {\n spoiler: \"...a fellow town bug who seems to be lost somewhere in the crossroads\"\n },\n hasLantern: {\n spoiler: \"...a precious item able to carry some light to even the darkest places\"\n },\n hasSuperDash: {\n spoiler: \"...some powerful crystal beating somewhere deep inside the mines\"\n },\n hasDreamNail: {\n spoiler: \"...a weapon from a dream world only found where the souls can peacefully rest\"\n },\n killedInfectedKnight: {\n spoiler: \"...a shattered corpse forgotten in a windy cave in the ancient depths below the city\"\n },\n hasDoubleJump: {\n spoiler: \"...something incredibly light dropped by a monarchfly in the ancient depths below the city\"\n },\n killedBlackKnight: {\n spoiler: \"...discarded shells of black guards lying on the floor of a high spire\"\n },\n lurienDefeated: {\n spoiler: \"...a dreamer sleeping somewhere at the top of a high spire\"\n },\n dungDefenderOrHornet2: {\n spoiler: \"...a skilled combatant living at the heart of the sewers or watching over a shell amidst ash falling from the sky\"\n },\n ismaTearOrShadeCloak: {\n spoiler: \"...something precious in a grove accessed from the waterways or a massive royal door guarding a cloak behind the darkness\"\n },\n defeatedMegaJelly: {\n spoiler: \"...an intelligent being floating inside hidden archives behind the fog\"\n },\n monomonDefeated: {\n spoiler: \"...a dreamer sleeping somewhere hidden in a foggy area\"\n },\n hegemolDefeated: {\n spoiler: \"...a dreamer sleeping near a spider nest area\"\n },\n killedHollowKnight: {\n spoiler: \"...a disturbance inside a black temple\"\n }\n },\n // hk-bosses\n BOSSES: {\n falseKnightDefeated: {\n name: \"False Knight\",\n spoiler: \"Forgotten Crossroads\",\n wiki: \"False_Knight\"\n },\n // \"Battle Scene\" - \"Crossroads_10\" ?\n hornet1Defeated: {\n name: \"Hornet Protector\",\n spoiler: \"Greenpath\",\n wiki: \"Hornet_Protector\"\n },\n defeatedDungDefender: {\n name: \"Dung Defender\",\n spoiler: \"Royal Waterways\",\n wiki: \"Dung_Defender\"\n },\n mageLordDefeated: {\n name: \"Soul Master\",\n spoiler: \"City of Tears: Soul Sanctum\",\n wiki: \"Soul_Master\"\n },\n killedBlackKnight: {\n name: \"Watcher Knights\",\n spoiler: \"City of Tears: Watcher's Spire\",\n wiki: \"Watcher_Knight\"\n },\n collectorDefeated: {\n name: \"The Collector\",\n spoiler: \"City of Tears: Tower of Love\",\n wiki: \"Collector\"\n },\n defeatedMantisLords: {\n name: \"Mantis Lords\",\n spoiler: \"Mantis Village\",\n wiki: \"Mantis_Lords\"\n },\n defeatedMegaJelly: {\n name: \"Uumuu\",\n spoiler: \"Fog Canyon: Teacher's Archives\",\n wiki: \"Uumuu\"\n },\n hornetOutskirtsDefeated: {\n name: \"Hornet Sentinel\",\n spoiler: \"Kingdom's Edge\",\n wiki: \"Hornet_Sentinel\"\n },\n killedInfectedKnight: {\n name: \"Broken Vessel\",\n spoiler: \"Ancient Basin\",\n wiki: \"Broken_Vessel\"\n },\n killedMimicSpider: {\n name: \"Nosk\",\n spoiler: \"Deepnest\",\n wiki: \"Nosk\"\n },\n // \"Battle Scene\" - \"Deepnest_32\" ?\n killedTraitorLord: {\n name: \"Traitor Lord\",\n spoiler: \"Queen's Gardens\",\n wiki: \"Traitor_Lord\"\n } // \"Battle Scene\" - \"Fungus3_23\" ?\n\n },\n // hk-bosses\n // \"Battle Scene\" sceneData.persistentBoolItems.id\n BOSSES_WORLD: {\n Crossroads_04: {\n name: \"Gruz Mother\",\n spoiler: \"Forgotten Crossroads\",\n wiki: \"Gruz_Mother\"\n },\n // killedBigFly\n Crossroads_09: {\n name: \"Brooding Mawlek\",\n spoiler: \"Forgotten Crossroads\",\n wiki: \"Brooding_Mawlek\"\n } // killedMawlek\n\n },\n // reference: https://radiance.host/apidocs/Charms.html\n CHARMS: {\n gotCharm_1: {\n name: \"#1 Gathering Swarm\",\n spoiler: \"Sly: 300 Geo\"\n },\n // 1\n gotCharm_2: {\n name: \"#2 Wayward Compass\",\n spoiler: \"Iselda: 220 Geo\"\n },\n // 1\n gotCharm_3: {\n name: \"#3 Grubsong\",\n spoiler: \"Grubfather: 10 Grubs rescued\"\n },\n // 1\n gotCharm_4: {\n name: \"#4 Stalwart Shell\",\n spoiler: \"Sly: 200 Geo\"\n },\n // 2\n gotCharm_5: {\n name: \"#5 Baldur Shell\",\n spoiler: \"Howling Cliffs\"\n },\n // 2\n gotCharm_6: {\n name: \"#6 Fury of the Fallen\",\n spoiler: \"King's Pass\"\n },\n // 2\n gotCharm_7: {\n name: \"#7 Quick Focus\",\n spoiler: \"Salubra: 800 Geo\"\n },\n // 3\n gotCharm_8: {\n name: \"#8 Lifeblood Heart\",\n spoiler: \"Salubra: 250 Geo\"\n },\n // 2\n gotCharm_9: {\n name: \"#9 Lifeblood Core\",\n spoiler: \"The Abyss: 15 Lifeblood masks\"\n },\n // 3\n gotCharm_10: {\n name: \"#10 Defender's Crest\",\n spoiler: \"Royal Waterways\"\n },\n // 1\n gotCharm_11: {\n name: \"#11 Flukenest\",\n spoiler: \"Royal Waterways\"\n },\n // 3\n gotCharm_12: {\n name: \"#12 Thorns of Agony\",\n spoiler: \"Greenpath\"\n },\n // 1\n gotCharm_13: {\n name: \"#13 Mark of Pride\",\n spoiler: \"Mantis Village\"\n },\n // 3\n gotCharm_14: {\n name: \"#14 Steady Body\",\n spoiler: \"Salubra: 120 Geo\"\n },\n // 1\n gotCharm_15: {\n name: \"#15 Heavy Blow\",\n spoiler: \"Sly: 350 Geo + Shopkeeper's Key\"\n },\n // 2\n gotCharm_16: {\n name: \"#16 Sharp Shadow\",\n spoiler: \"Deepnest\"\n },\n // 2\n gotCharm_17: {\n name: \"#17 Spore Shroom\",\n spoiler: \"Fungal Wastes\"\n },\n // 1\n gotCharm_18: {\n name: \"#18 Longnail\",\n spoiler: \"Salubra: 300 Geo\"\n },\n // 2\n gotCharm_19: {\n name: \"#19 Shaman Stone\",\n spoiler: \"Salubra: 220 Geo\"\n },\n // 3\n gotCharm_20: {\n name: \"#20 Soul Catcher\",\n spoiler: \"Forgotten Crossroads: Ancestral Mound\"\n },\n // 2\n gotCharm_21: {\n name: \"#21 Soul Eater\",\n spoiler: \"Resting Grounds\"\n },\n // 4\n gotCharm_22: {\n name: \"#22 Glowing Womb\",\n spoiler: \"Forgotten Crossroads\"\n },\n // 2\n gotCharm_23: {\n name: \"#23 Fragile Heart\",\n spoiler: \"Leg Eater: 350/280 Geo\"\n },\n // 2\n gotCharm_24: {\n name: \"#24 Fragile Greed\",\n spoiler: \"Leg Eater: 250/200 Geo\"\n },\n // 2\n gotCharm_25: {\n name: \"#25 Fragile Strength\",\n spoiler: \"Leg Eater: 600/480 Geo\"\n },\n // 3\n gotCharm_26: {\n name: \"#26 Nailmaster’s Glory\",\n spoiler: \"Sly: All Nail Arts\"\n },\n // 1\n gotCharm_27: {\n name: \"#27 Joni’s Blessing\",\n spoiler: \"Howling Cliffs: Joni's Repose\"\n },\n // 4\n gotCharm_28: {\n name: \"#28 Shape of Unn\",\n spoiler: \"Greenpath: Lake of Unn\"\n },\n // 2\n gotCharm_29: {\n name: \"#29 Hiveblood\",\n spoiler: \"The Hive\"\n },\n // 4\n gotCharm_30: {\n name: \"#30 Dream Wielder\",\n spoiler: \"Seer: 500 Essence\"\n },\n // 1\n gotCharm_31: {\n name: \"#31 Dashmaster\",\n spoiler: \"Fungal Wastes\"\n },\n // 2\n gotCharm_32: {\n name: \"#32 Quick Slash\",\n spoiler: \"Kingdom's Edge\"\n },\n // 3\n gotCharm_33: {\n name: \"#33 Spell Twister\",\n spoiler: \"City of Tears: Soul Sanctum\"\n },\n // 2\n gotCharm_34: {\n name: \"#34 Deep Focus\",\n spoiler: \"Crystal Peak\"\n },\n // 4\n gotCharm_35: {\n name: \"#35 Grubberfly’s Elegy\",\n spoiler: \"Grubfather: 46 Grubs rescued\"\n },\n // 3\n gotCharm_36: {\n name: \"#36 Kingsoul\",\n spoiler: \"Queen's Gardens + Ancient Basin\"\n } // 5\n\n },\n COLOSSEUM: {\n colosseumBronzeCompleted: {\n name: \"Trial of the Warrior\",\n spoiler: \"Little Fool: 100 Geo\"\n },\n colosseumSilverCompleted: {\n name: \"Trial of the Conqueror\",\n spoiler: \"Little Fool: 450 Geo + Warrior completed\"\n },\n colosseumGoldCompleted: {\n name: \"Trial of the Fool\",\n spoiler: \"Little Fool: 800 Geo + Conqueror completed\"\n }\n },\n DREAMERS: {\n lurienDefeated: {\n name: \"Lurien the Watcher\",\n spoiler: \"City of Tears: Watcher's Spire\"\n },\n monomonDefeated: {\n name: \"Monomon the Teacher\",\n spoiler: \"Fog Canyon: Teacher's Archives\"\n },\n hegemolDefeated: {\n name: \"Herrah the Beast\",\n spoiler: \"Deepnest: Distant Village\"\n }\n },\n DREAMNAIL: {\n hasDreamNail: {\n name: \"Dream Nail acquired\",\n spoiler: \"Resting Grounds\"\n },\n dreamNailUpgraded: {\n name: \"Awoken Dream Nail\",\n spoiler: \"Seer: 1800 Essence\"\n },\n mothDeparted: {\n name: \"Hear the Seer's final words\",\n spoiler: \"Seer: 2400 Essence\"\n }\n },\n EQUIPMENT: {\n hasDash: {\n name: \"Mothwing Cloak\",\n spoiler: \"Greenpath: Dash ability\"\n },\n hasWalljump: {\n name: \"Mantis Claw\",\n spoiler: \"Mantis Village: Wall Jump ability\"\n },\n hasSuperDash: {\n name: \"Crystal Heart\",\n spoiler: \"Crystal Peak: Super Dash ability\"\n },\n hasDoubleJump: {\n name: \"Monarch Wings\",\n spoiler: \"Ancient Basin: Double Jump ability\"\n },\n hasAcidArmour: {\n name: \"Isma's Tear\",\n spoiler: \"Royal Waterways: Acid Armour ability\"\n },\n hasKingsBrand: {\n name: \"King's Brand\",\n spoiler: \"Kingdom's Edge\"\n },\n hasShadowDash: {\n name: \"Shade Cloak\",\n spoiler: \"The Abyss: Shadow Dash ability\"\n }\n },\n MASKSHARDS: {\n slyShellFrag1: {\n name: \"Mask Shard #1\",\n spoiler: \"Sly: 150 Geo\"\n },\n slyShellFrag2: {\n name: \"Mask Shard #2\",\n spoiler: \"Sly: 500 Geo\"\n },\n slyShellFrag3: {\n name: \"Mask Shard #3\",\n spoiler: \"Sly: 800 Geo + Shopkeeper's Key\"\n },\n slyShellFrag4: {\n name: \"Mask Shard #4\",\n spoiler: \"Sly: 1500 Geo + Shopkeeper's Key\"\n },\n dreamReward7: {\n name: \"Mask Shard #5\",\n spoiler: \"Seer: 1500 Essence\"\n }\n },\n // \"Heart Piece\" sceneData.persistentBoolItems.id\n MASKSHARDS_WORLD: {\n Crossroads_13: {\n name: \"Mask Shard #6\",\n spoiler: \"Forgotten Crossroads: below Hot Springs\"\n },\n Crossroads_09: {\n name: \"Mask Shard #7\",\n spoiler: \"Forgotten Crossroads: Brooding Mawlek\"\n },\n Crossroads_38: {\n name: \"Mask Shard #8\",\n spoiler: \"Grubfather: 5 Grubs rescued\"\n },\n Room_Bretta: {\n name: \"Mask Shard #9\",\n spoiler: \"Dirtmouth: Bretta's Room, rescue Bretta\"\n },\n Fungus2_01: {\n name: \"Mask Shard #10\",\n spoiler: \"Queen's Station, requires Mantis Claw\"\n },\n Waterways_04b: {\n name: \"Mask Shard #11\",\n spoiler: \"Royal Waterways\"\n },\n Fungus1_36: {\n name: \"Mask Shard #12\",\n spoiler: \"Greenpath: Stone Sanctuary\"\n },\n Mines_32: {\n name: \"Mask Shard #13\",\n spoiler: \"Crystal Peak: Enraged Guardian\"\n },\n Fungus2_25: {\n name: \"Mask Shard #14\",\n spoiler: \"Deepnest: entrance from Fungal Wastes\"\n },\n Hive_04: {\n name: \"Mask Shard #15\",\n spoiler: \"The Hive, use Hive Guardian\"\n },\n Room_Mansion: {\n name: \"Mask Shard #16\",\n spoiler: \"Resting Grounds: Delicate Flower\"\n }\n },\n VESSELFRAGMENTS: {\n slyVesselFrag1: {\n name: \"Vessel Fragment #1\",\n spoiler: \"Sly: 550 Geo\"\n },\n slyVesselFrag2: {\n name: \"Vessel Fragment #2\",\n spoiler: \"Sly: 900 Geo + Shopkeeper's Key\"\n },\n dreamReward5: {\n name: \"Vessel Fragment #3\",\n spoiler: \"Seer: 700 Essence\"\n },\n vesselFragStagNest: {\n name: \"Vessel Fragment #4\",\n spoiler: \"Stag Nest\"\n }\n },\n // \"Vessel Fragment\" sceneData.persistentBoolItems.id\n VESSELFRAGMENTS_WORLD: {\n Fungus1_13: {\n name: \"Vessel Fragment #5\",\n spoiler: \"Greenpath: near Queen's Gardens exit\"\n },\n Crossroads_37: {\n name: \"Vessel Fragment #6\",\n spoiler: \"Forgotten Crossroads: unlock City of Tears lift\"\n },\n Ruins2_09: {\n name: \"Vessel Fragment #7\",\n spoiler: \"Above King's Station\"\n },\n Deepnest_38: {\n name: \"Vessel Fragment #8\",\n spoiler: \"Deepnest: Goam platforming challenge\"\n },\n Abyss_04: {\n name: \"Vessel Fragment #9\",\n spoiler: \"Ancient Basin Fountain: 3000 Geo\"\n }\n },\n NAILARTS: {\n hasDashSlash: {\n name: \"Great Slash\",\n spoiler: \"Nailmaster Sheo: Greenpath\"\n },\n // this is correct\n hasUpwardSlash: {\n name: \"Dash Slash\",\n spoiler: \"Nailmaster Oro: Kingdom's Edge, 800 Geo\"\n },\n // this is correct\n hasCyclone: {\n name: \"Cyclone Slash\",\n spoiler: \"Nailmaster Mato: Howling Cliffs\"\n }\n },\n NAILUPGRADES: {\n oldNail: {\n name: \"#0 Old Nail\",\n spoiler: \"Starting Weapon\"\n },\n sharpenedNail: {\n name: \"#1 Sharpened Nail\",\n spoiler: \"Nailsmith: 250 Geo\"\n },\n channeledNail: {\n name: \"#2 Channeled Nail\",\n spoiler: \"Nailsmith: 800 Geo + 1 Pale Ore\"\n },\n coiledNail: {\n name: \"#3 Coiled Nail\",\n spoiler: \"Nailsmith: 2000 Geo + 2 Pale Ore\"\n },\n pureNail: {\n name: \"#4 Pure Nail\",\n spoiler: \"Nailsmith: 4000 Geo + 3 Pale Ore\"\n }\n },\n SPELLS: {\n vengefulSpirit: {\n fireballLevel: 1,\n name: \"Vengeful Spirit\",\n spoiler: \"Forgotten Crossroads: Ancestral Mound\"\n },\n shadeSoul: {\n fireballLevel: 2,\n name: \"Shade Soul\",\n spoiler: \"City of Tears: Soul Sanctum + Elegant Key\"\n },\n desolateDive: {\n quakeLevel: 1,\n name: \"Desolate Dive\",\n spoiler: \"City of Tears: Soul Sanctum\"\n },\n descendingDark: {\n quakeLevel: 2,\n name: \"Descending Dark\",\n spoiler: \"Crystal Peak: Crystallised Mound\"\n },\n howlingWraiths: {\n screamLevel: 1,\n name: \"Howling Wraiths\",\n spoiler: \"Fog Canyon: Overgrown Mound\"\n },\n abyssShriek: {\n screamLevel: 2,\n name: \"Abyss Shriek\",\n spoiler: \"The Abyss\"\n }\n },\n WARRIORDREAMS: {\n xeroDefeated: {\n name: \"Xero\",\n spoiler: \"Resting Grounds\"\n },\n noEyesDefeated: {\n name: \"No Eyes\",\n spoiler: \"Greenpath: Stone Sanctuary\"\n },\n elderHuDefeated: {\n name: \"Elder Hu\",\n spoiler: \"Fungal Wastes\"\n },\n aladarSlugDefeated: {\n name: \"Gorb\",\n spoiler: \"Howling Cliffs\"\n },\n mumCaterpillarDefeated: {\n name: \"Marmu\",\n spoiler: \"Queen's Gardens\"\n },\n galienDefeated: {\n name: \"Galien\",\n spoiler: \"Deepnest\"\n },\n markothDefeated: {\n name: \"Markoth\",\n spoiler: \"Kingdom's Edge, requires Shade Cloak\"\n }\n },\n GRIMMTROUPE: {\n gotCharm_37: {\n name: \"Charm #37 Sprintmaster\",\n spoiler: \"Sly: 400 Geo + Shopkeeper's Key\"\n },\n gotCharm_38: {\n name: \"Charm #38 Dreamshield\",\n spoiler: \"Resting Grounds\"\n },\n gotCharm_39: {\n name: \"Charm #39 Weaversong\",\n spoiler: \"Deepnest: Weaver's Den\"\n },\n gotCharm_40: {\n name: \"Charm #40 Grimmchild / Carefree Melody\",\n spoiler: \"Dirtmouth\"\n },\n killedGrimm: {\n name: \"Troupe Leader Grimm\",\n spoiler: \"Dirtmouth\"\n }\n },\n LIFEBLOOD: {\n killedHiveKnight: {\n name: \"Hive Knight\",\n spoiler: \"The Hive\"\n }\n },\n GODMASTER_DOORS: {\n pantheonMaster: {\n name: \"#1 Pantheon of the Master\",\n spoiler: \"Godhome\"\n },\n pantheonArtist: {\n name: \"#2 Pantheon of the Artist\",\n spoiler: \"Godhome\"\n },\n pantheonSage: {\n name: \"#3 Pantheon of the Sage\",\n spoiler: \"Godhome\"\n },\n pantheonKnight: {\n name: \"#4 Pantheon of the Knight\",\n spoiler: \"Godhome\"\n }\n },\n GODMASTER: {\n hasGodfinder: {\n name: \"Godtuner\",\n spoiler: \"Junk Pit, requires Simple Key\"\n }\n },\n ESSENTIAL: {\n grubsCollected: {\n name: \"Grubs Rescued\",\n spoiler: \"out of 46 total\",\n max: 46\n },\n dreamOrbs: {\n name: \"Essence Collected\",\n spoiler: \"Dream Nail (2400 for completion)\",\n max: 2400\n },\n stationsOpened: {\n name: \"Stag Stations opened\",\n spoiler: \"out of 10 total\",\n max: 10\n },\n fountainGeo: {\n name: \"Geo in Fountain\",\n spoiler: \"Ancient Basin: 3000 Geo maximum\",\n max: 3000\n },\n slyRescued: {\n name: \"Sly Rescued\",\n spoiler: \"Forgotten Crossroads, near Gruz Mother\"\n },\n brettaRescued: {\n name: \"Bretta Rescued\",\n spoiler: \"Fungal Wastes, near Dashmaster charm statue\"\n },\n hasLantern: {\n name: \"Lumafly Lantern\",\n spoiler: \"Sly: 1800 Geo\"\n },\n shopkeeperKey: {\n name: \"Shopkeeper's Key\",\n spoiler: \"Crystal Peak\"\n },\n elegantKey: {\n name: \"Elegant Key\",\n spoiler: \"Sly: 800 Geo + Shopkeeper's Key\"\n },\n loveKey: {\n name: \"Love Key\",\n spoiler: \"Queen's Gardens, near Fungal Wastes\"\n },\n slySimpleKey: {\n name: \"Simple Key #1\",\n spoiler: \"Sly: 950 Geo\"\n },\n simpleKeyCityOfTears: {\n name: \"Simple Key #2\",\n spoiler: \"City of Tears\"\n },\n simpleKeyAncientBasin: {\n name: \"Simple Key #3\",\n spoiler: \"Ancient Basin\"\n },\n gotLurkerKey: {\n name: \"Simple Key #4\",\n spoiler: \"Kingdom's Edge: Colosseum of Fools\"\n },\n paleOreAncientBasin: {\n name: \"Pale Ore #1\",\n spoiler: \"Ancient Basin\"\n },\n paleOreSeer: {\n name: \"Pale Ore #2\",\n spoiler: \"Seer: 300 Essence\"\n },\n paleOreCrystalPeak: {\n name: \"Pale Ore #3\",\n spoiler: \"Crystal Peak: Hallownest's Crown\"\n },\n paleOreDeepnest: {\n name: \"Pale Ore #4\",\n spoiler: \"Deepnest, Nosk reward\"\n },\n paleOreGrubfather: {\n name: \"Pale Ore #5\",\n spoiler: \"Grubfather: 31 Grubs rescued\"\n },\n paleOreColosseum: {\n name: \"Pale Ore #6\",\n spoiler: \"Colosseum of Fools: Trial of the Conqueror\"\n },\n hasTramPass: {\n name: \"Tram Pass\",\n spoiler: \"Deepnest, Failed Tramway\"\n },\n nightmareLanternLit: {\n name: \"Nightmare Lantern Lit\",\n spoiler: \"Howling Cliffs, corpse of a large bug\"\n }\n },\n GRUBS_LIST: [\"Crossroads_35\", \"Crossroads_03\", \"Crossroads_05\", \"Crossroads_48\", \"Crossroads_31\", \"Fungus1_06\", \"Fungus1_07\", \"Fungus1_21\", \"Fungus1_28\", \"Fungus2_18\", \"Ruins1_05\", \"Mines_04\", \"Mines_03\", \"Mines_31\", \"Mines_19\", \"Ruins1_32\", \"RestingGrounds_10\", \"Ruins_House_01\", \"Mines_35\", \"Mines_16\", \"Waterways_04\", \"Waterways_13\", \"Abyss_19\", \"Abyss_17\", \"Mines_24\", \"Fungus1_13\", \"Fungus3_47\", \"Fungus3_10\", \"Fungus3_48\", \"Fungus3_22\", \"Ruins2_07\", \"Ruins2_11\", \"Ruins2_11\", \"Ruins2_11\", \"Deepnest_East_11\", \"Deepnest_East_14\", \"Fungus2_20\", \"Ruins2_03\", \"Deepnest_36\", \"Deepnest_03\", \"Deepnest_31\", \"Deepnest_39\", \"Deepnest_Spider_Town\", \"Waterways_14\", \"Hive_03\", \"Hive_04\"],\n ACHIEVEMENTS: {\n areaMaps: {\n name: \"Area Maps\",\n spoiler: \"Cornifer and Iselda (out of 13)\",\n max: 13,\n list: [\"mapCrossroads\", \"mapGreenpath\", \"mapFogCanyon\", \"mapRoyalGardens\", \"mapFungalWastes\", \"mapCity\", \"mapWaterways\", \"mapMines\", \"mapDeepnest\", \"mapCliffs\", \"mapOutskirts\", \"mapRestingGrounds\", \"mapAbyss\"]\n },\n journalEntriesCompleted: {\n name: \"Creatures Encountered\",\n spoiler: \"Hunter's Journal (164 max)\",\n max: 164\n },\n journalNotesCompleted: {\n name: \"Hunter Notes Completed\",\n spoiler: \"Hunter's Journal (164 max)\",\n max: 164\n },\n hasJournal: {\n name: \"Hunter's Journal\",\n spoiler: \"Greenpath: Hunter\"\n },\n hasHuntersMark: {\n name: \"Hunter's Mark\",\n spoiler: \"Greenpath: Hunter\"\n },\n killedPrayerSlug: {\n name: \"Journal: Maggot\",\n spoiler: \"Forgotten Crossroads: False Knight secret room\"\n },\n killedOrangeScuttler: {\n name: \"Journal: Lightseed\",\n spoiler: \"Infected Crossroads\"\n },\n killedPigeon: {\n name: \"Journal: Maskfly\",\n spoiler: \"Greenpath, Queen's Gardens\"\n },\n killedLazyFlyer: {\n name: \"Journal: Aluba\",\n spoiler: \"Lake of Unn, Queen's Gardens (near White Lady)\"\n },\n killedAcidFlyer: {\n name: \"Journal: Duranda\",\n spoiler: \"Greenpath: Nailmaster Sheo's tent path\"\n },\n killedAcidWalker: {\n name: \"Journal: Durandoo\",\n spoiler: \"Greenpath, Queen's Gardens\"\n },\n killedPlantShooter: {\n name: \"Journal: Gulka\",\n spoiler: \"Greenpath: west of Stone Sanctuary\"\n },\n killedMushroomTurret: {\n name: \"Journal: Sporg\",\n spoiler: \"Fungal Wastes\"\n },\n killedZapBug: {\n name: \"Journal: Charged Lumafly\",\n spoiler: \"Fog Canyon: Teacher's Archives (tank)\"\n },\n killedCrystalCrawler: {\n name: \"Journal: Crystal Crawler\",\n spoiler: \"Crystal Peak\"\n },\n killedGorgeousHusk: {\n name: \"Journal: Gorgeous Husk\",\n spoiler: \"City of Tears: secret room\"\n },\n killedWorm: {\n name: \"Journal: Goam\",\n spoiler: \"Infected Crossroads: near Fungal Wastes entrance\"\n },\n killedBigCentipede: {\n name: \"Journal: Garpede\",\n spoiler: \"Deepnest: east of Hot Spring\"\n },\n killedAbyssTendril: {\n name: \"Journal: Void Tendrils\",\n spoiler: \"The Abyss: secret room\"\n },\n killedPaleLurker: {\n name: \"Journal: Pale Lurker\",\n spoiler: \"Colosseum of Fools: secret area\"\n },\n falseKnightDreamDefeated: {\n name: \"Failed Champion\",\n spoiler: \"Forgotten Crossroads\"\n },\n mageLordDreamDefeated: {\n name: \"Soul Tyrant\",\n spoiler: \"City of Tears: Soul Sanctum\"\n },\n infectedKnightDreamDefeated: {\n name: \"Lost Kin\",\n spoiler: \"Ancient Basin\"\n },\n whiteDefenderDefeated: {\n name: \"White Defender\",\n spoiler: \"Royal Waterways\"\n },\n greyPrinceDefeated: {\n name: \"Grey Prince Zote\",\n spoiler: \"Dirtmouth: Bretta's Room (per save choice)\"\n },\n killedHollowKnight: {\n name: \"Hollow Knight\",\n spoiler: \"Forgotten Crossroads: Black Egg Temple\"\n },\n salubraBlessing: {\n name: \"Salubra's Blessing\",\n spoiler: \"Salubra: 800 Geo + all 40 Charms found\"\n },\n gotShadeCharm: {\n name: \"Void Heart\",\n spoiler: \"Kingsoul + Birthplace\"\n },\n killedFinalBoss: {\n name: \"Radiance\",\n spoiler: \"Forgotten Crossroads: Black Egg Temple\"\n },\n bossDoorStateTier5: {\n name: \"Embrace the Void\",\n spoiler: \"Godhome: Pantheon of Hallownest\"\n },\n zoteStatus: {\n name: \"Zote Status\",\n nameNeglect: \"Zote Choice: Neglect\",\n nameRivalry: \"Zote Choice: Rivalry\",\n nameTrappedVengefly: \"Zote Status: Vengefly\",\n nameNotRescuedVengefly: \"Zote Status: Greenpath\",\n nameTrappedDeepnest: \"Zote Status: Deepnest\",\n nameColosseum: \"Zote Status: Colosseum of Fools\",\n spoiler: \"One achievement per save file\",\n spoilerNeglect: \"Left Zote to die\",\n spoilerRivalry: \"Defeated Zote in the Colosseum of Fools\",\n spoilerTrappedVengefly: \"Greenpath, defeat Vengefly King\",\n spoilerNotRescuedVengefly: \"Check what happened with Zote\",\n spoilerTrappedDeepnest: \"Deepnest, free from cobwebs\",\n spoilerColosseum: \"Trial of the Warrior\"\n },\n nailsmithStatus: {\n name: \"Nailsmith Status\",\n nameHappyCouple: \"Nailsmith Choice: Happy Couple\",\n namePurity: \"Nailsmith Choice: Purity\",\n nameSheoHutWaiting: \"Nailsmith Status: Sheo\",\n nameUpgradeNail: \"Nailsmith Status: Waiting\",\n spoiler: \"One achievement per save file\",\n spoilerHappyCouple: \"Found a new calling\",\n spoilerPurity: \"Slain with Pure Nail\",\n spoilerSheoHutWaiting: \"Waiting at Sheo's Hut\",\n spoilerUpgradeNail: \"Upgrade Nail to Pure Nail\"\n },\n mrMushroomState: {\n name: \"Mr Mushroom\",\n spoiler1: \"Fungal Wastes, near Cornifer\",\n spoiler2: \"Kingdom's Edge, near Isma's Grove\",\n spoiler3: \"Deepnest, near Galien\",\n spoiler4: \"Howling Cliffs, near Nailmaster Mato\",\n spoiler5: \"Ancient Basin, near Monarch Wings\",\n spoiler6: \"Fog Canyon, near Overgrown Mound\",\n spoiler7: \"King's Pass, game starting location\"\n }\n /* \r\n Mr Mushroom data\r\n case SplitName.MrMushroom1: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 2; break;\r\n case SplitName.MrMushroom2: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 3; break;\r\n case SplitName.MrMushroom3: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 4; break;\r\n case SplitName.MrMushroom4: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 5; break;\r\n case SplitName.MrMushroom5: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 6; break;\r\n case SplitName.MrMushroom6: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 7; break;\r\n case SplitName.MrMushroom7: shouldSplit = mem.PlayerData(Offset.mrMushroomState) == 8; break;\r\n \"mrMushroomState\": 4, < this is the current location of Mr Mushroom (Howling Cliffs)\r\n 1. Spawn of self, their minds unite, (Fungal Wastes)\r\n 2. Aside the source of acid blight, (Kingdom's Edge, near Isma's Grove)\r\n 3. Aglow in darkest, winding depths, (Deepnest, near Galien)\r\n 4. Winds all howl above fossilstone steps, (Howling Cliffs)\r\n 5. Monarchflys in air set still, (Ancient Basin, near the Monarch Wings location)\r\n 6. To Root's domain and snail once shrill, (Fog Canyon, near Overgrown Mound)\r\n 7. Path of Wyrm, at new lands entered, (King's Pass)\r\n 8. There journeys end. The kingdom ventured.\r\n */\n\n },\n STATISTICS: {\n nailDamage: {\n name: \"Nail Damage\",\n spoiler: \"Nailsmith upgrades, City of Tears\",\n max: 21\n },\n charmSlots: {\n name: \"Charm Notches\",\n spoiler: \"out of 11 total\",\n max: 11\n },\n whisperingRoots: {\n name: \"Whispering Roots completed\",\n spoiler: \"Dream Nail (out of 15)\",\n max: 15\n },\n relicsWandererJournal: {\n name: \"Relic #1 found total\",\n nameHeld: \"trinket1\",\n nameSold: \"soldTrinket1\",\n spoiler: \"Wanderer's Journal (out of 14)\",\n max: 14\n },\n relicsHallownestSeal: {\n name: \"Relic #2 found total\",\n nameHeld: \"trinket2\",\n nameSold: \"soldTrinket2\",\n spoiler: \"Hallownest Seal (out of 17)\",\n max: 17\n },\n relicsKingsIdol: {\n name: \"Relic #3 found total\",\n nameHeld: \"trinket3\",\n nameSold: \"soldTrinket3\",\n spoiler: \"King's Idol (out of 8)\",\n max: 8\n },\n relicsArcaneEgg: {\n name: \"Relic #4 found total\",\n nameHeld: \"trinket4\",\n nameSold: \"soldTrinket4\",\n spoiler: \"Arcane Egg (4 max, 1 missable)\",\n max: 4\n },\n geoRocks: {\n name: \"Geo Rocks\",\n spoiler: \"Unbroken/Broken/Discovered Total\"\n },\n geoPool: {\n name: \"Shade Geo\",\n spoiler: \"Amount of Geo the Shade is currently holding\",\n min: 0\n },\n // not ghostCoins\n rancidEggs: {\n name: \"Rancid Eggs\",\n spoiler: \"Find: Hallownest, Buy: Sly, Tuk\"\n },\n xunFlowerBrokeTimes: {\n name: \"Delicate Flowers broken\",\n spoiler: \"Resting Grounds: Grey Mourner\"\n },\n notchShroomOgres: {\n name: \"Charm Notch #1\",\n spoiler: \"Fungal Wastes: Shroom Ogres room\"\n },\n salubraNotch1: {\n name: \"Charm Notch #2\",\n spoiler: \"Salubra: 120 Geo + 5 Charms found\"\n },\n salubraNotch2: {\n name: \"Charm Notch #3\",\n spoiler: \"Salubra: 500 Geo + 10 Charms found\"\n },\n salubraNotch3: {\n name: \"Charm Notch #4\",\n spoiler: \"Salubra: 900 Geo + 18 Charms found\"\n },\n salubraNotch4: {\n name: \"Charm Notch #5\",\n spoiler: \"Salubra: 1400 Geo + 25 Charms found\"\n },\n colosseumBronzeCompleted: {\n name: \"Charm Notch #6\",\n spoiler: \"Colosseum of Fools: Trial of the Warrior\"\n },\n notchFogCanyon: {\n name: \"Charm Notch #7\",\n spoiler: \"Fog Canyon: explosive eggs room\"\n },\n gotGrimmNotch: {\n name: \"Charm Notch #8\",\n spoiler: \"Dirtmouth: Troupe Leader Grimm\"\n },\n hasDreamGate: {\n name: \"Dream Gate\",\n spoiler: \"Seer: 900 Essence\"\n },\n fragileGreed_unbreakable: {\n name: \"Unbreakable Greed\",\n spoiler: \"Divine: Fragile Greed + 9000 Geo\"\n },\n fragileHealth_unbreakable: {\n name: \"Unbreakable Heart\",\n spoiler: \"Divine: Fragile Heart + 12000 Geo\"\n },\n fragileStrength_unbreakable: {\n name: \"Unbreakable Strength\",\n spoiler: \"Divine: Fragile Strength + 15000 Geo\"\n },\n killedMenderBug: {\n name: \"Journal: Menderbug\",\n spoiler: \"Forgotten Crossroads + destroy sign\"\n },\n killedBindingSeal: {\n name: \"Journal: Seal of Binding\",\n spoiler: \"White Palace: Path of Pain completion\"\n },\n killedGodseekerMask: {\n name: \"Journal: Weathered Mask\",\n spoiler: \"Godhome: Land of Storms\"\n },\n killedVoidIdol_1: {\n name: \"Journal: Void Idol Attuned\",\n spoiler: \"Godhome: Hall of Gods, defeat all\"\n },\n killedVoidIdol_2: {\n name: \"Journal: Void Idol Ascended\",\n spoiler: \"Godhome: Hall of Gods, defeat all\"\n },\n killedVoidIdol_3: {\n name: \"Journal: Void Idol Radiant\",\n spoiler: \"Godhome: Hall of Gods, defeat all\"\n },\n whiteDefenderDefeats: {\n name: \"White Defender times defeated\",\n spoiler: \"Royal Waterways (5 max)\",\n max: 5\n },\n greyPrinceDefeats: {\n name: \"Grey Prince Zote times defeated\",\n spoiler: \"Dirtmouth (10 max)\",\n max: 10\n },\n whitePalaceSecretRoomVisited: {\n name: \"White Palace Secret Room visited\",\n spoiler: \"Help identify this room!\"\n },\n killsBindingSeal: {\n name: \"Path of Pain\",\n spoiler: \"White Palace: main secret area\"\n }\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HK);\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/hk-database.js?"); - -/***/ }), - -/***/ "./src/js/hk-dictionary.js": -/*!*********************************!*\ - !*** ./src/js/hk-dictionary.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => __WEBPACK_DEFAULT_EXPORT__\n/* harmony export */ });\nvar MAP = {\n \"Tutorial_01\": \"King's_Pass\",\n \"Town\": \"Dirtmouth\",\n \"Room_shop\": \"Sly\",\n \"Room_Sly_Storeroom\": \"Sly_Basement\",\n \"Room_Town_Stag_Station\": \"Dirtmouth_Stag\",\n \"Room_mapper\": \"Iselda\",\n \"Room_Bretta\": \"Bretta\",\n \"Room_Bretta_Basement\": \"Bretta_Basement\",\n \"Room_Ouiji\": \"Jiji\",\n \"Room_Jinn\": \"Jinn\",\n \"Room_Tram_RG\": \"Upper_Tram\",\n \"Room_Tram\": \"Lower_Tram\",\n \"Crossroads_01\": \"Crossroads_Well\",\n \"Crossroads_02\": \"Crossroads_Outside_Temple\",\n \"Crossroads_03\": \"Crossroads_Outside_Stag\",\n \"Crossroads_04\": \"Crossroads_Gruz_Mother\",\n \"Crossroads_05\": \"Crossroads_Central_Grub\",\n \"Crossroads_06\": \"Crossroads_Outside_Mound\",\n \"Crossroads_07\": \"Crossroads_Gruzzer\",\n \"Crossroads_08\": \"Crossroads_Aspid_Arena\",\n \"Crossroads_09\": \"Crossroads_Mawlek_Boss\",\n \"Crossroads_10\": \"Crossroads_False_Knight_Arena\",\n \"Crossroads_11_alt\": \"Crossroads_Greenpath_Entrance\",\n \"Crossroads_12\": \"Crossroads_Corridor_to_Acid_Grub\",\n \"Crossroads_13\": \"Crossroads_Goam_Mask_Shard\",\n \"Crossroads_14\": \"Crossroads_Outside_Myla\",\n \"Crossroads_15\": \"Crossroads_Corridor_to_Tram\",\n \"Crossroads_16\": \"Crossroads_Above_Lever\",\n \"Crossroads_18\": \"Crossroads_Fungal_Entrance\",\n \"Crossroads_19\": \"Crossroads_Before_Gruz_Mother\",\n \"Crossroads_21\": \"Crossroads_Outside_False_Knight\",\n \"Crossroads_22\": \"Crossroads_Glowing_Womb_Arena\",\n \"Crossroads_25\": \"Crossroads_Mawlek_Entrance\",\n \"Crossroads_27\": \"Crossroads_Outside_Tram\",\n \"Crossroads_30\": \"Crossroads_Hot_Spring\",\n \"Crossroads_31\": \"Crossroads_Spike_Grub\",\n \"Crossroads_33\": \"Crossroads_Cornifer\",\n \"Crossroads_35\": \"Crossroads_Acid_Grub\",\n \"Crossroads_36\": \"Crossroads_Mawlek_Middle\",\n \"Crossroads_37\": \"Crossroads_Vessel_Fragment\",\n \"Crossroads_38\": \"Crossroads_Grubfather\",\n \"Crossroads_39\": \"Crossroads_Corridor_Right_of_Temple\",\n \"Crossroads_40\": \"Crossroads_Corridor_Right_of_Central_Grub\",\n \"Crossroads_42\": \"Crossroads_Right_Of_Mask_Shard\",\n \"Crossroads_43\": \"Crossroads_Corridor_to_Elevator\",\n \"Crossroads_45\": \"Crossroads_Myla\",\n \"Crossroads_46\": \"Crossroads_Tram\",\n \"Crossroads_47\": \"Crossroads_Stag\",\n \"Crossroads_48\": \"Crossroads_Guarded_Grub\",\n \"Crossroads_49\": \"Crossroads_Elevator\",\n \"Crossroads_52\": \"Crossroads_Goam_Journal\",\n \"Crossroads_ShamanTemple\": \"Crossroads_Ancestral_Mound\",\n \"Room_Mender_House\": \"Crossroads_Menderbug\",\n \"Room_Charm_Shop\": \"Crossroads_Salubra\",\n \"Room_ruinhouse\": \"Crossroads_Rescue_Sly\",\n \"Room_temple\": \"Crossroads_Inside_Temple\",\n \"Fungus1_01\": \"Greenpath_Entrance\",\n \"Fungus1_01b\": \"Greenpath_Waterfall_Bench\",\n \"Fungus1_02\": \"Greenpath_First_Hornet_Sighting\",\n \"Fungus1_03\": \"Greenpath_Storerooms\",\n \"Fungus1_04\": \"Greenpath_Hornet\",\n \"Fungus1_05\": \"Greenpath_Outside_Thorns\",\n \"Fungus1_06\": \"Greenpath_Cornifer\",\n \"Fungus1_07\": \"Greenpath_Outside_Hunter\",\n \"Fungus1_08\": \"Greenpath_Hunter\",\n \"Fungus1_09\": \"Greenpath_Sheo_Gauntlet\",\n \"Fungus1_10\": \"Greenpath_Acid_Bridge\",\n \"Fungus1_11\": \"Greenpath_Above_Fog_Canyon\",\n \"Fungus1_12\": \"Greenpath_MMC_Corridor\",\n \"Fungus1_13\": \"Greenpath_Whispering_Root\",\n \"Fungus1_14\": \"Greenpath_Thorns_of_Agony\",\n \"Fungus1_15\": \"Greenpath_Outside_Sheo\",\n \"Fungus1_16_alt\": \"Greenpath_Stag\",\n \"Fungus1_17\": \"Greenpath_Charger_Corridor\",\n \"Fungus1_19\": \"Greenpath_Above_Sanctuary_Bench\",\n \"Fungus1_20_v02\": \"Greenpath_Vengefly_King\",\n \"Fungus1_21\": \"Greenpath_Outside_Hornet\",\n \"Fungus1_22\": \"Greenpath_Outside_Stag\",\n \"Fungus1_25\": \"Greenpath_Corridor_to_Unn\",\n \"Fungus1_26\": \"Greenpath_Lake_Of_Unn\",\n \"Fungus1_29\": \"Greenpath_Massive_Moss_Charger\",\n \"Fungus1_30\": \"Greenpath_Below_Toll_Bench\",\n \"Fungus1_31\": \"Greenpath_Toll\",\n \"Fungus1_32\": \"Greenpath_Moss_Knight_Arena\",\n \"Fungus1_34\": \"Greenpath_Stone_Sanctuary_Entrance\",\n \"Fungus1_35\": \"Greenpath_Stone_Sanctuary\",\n \"Fungus1_36\": \"Greenpath_Stone_Sanctuary_Mask_Shard\",\n \"Fungus1_37\": \"Greenpath_Sanctuary_Bench\",\n \"Fungus1_Slug\": \"Greenpath_Unn\",\n \"Room_nailmaster_02\": \"Greenpath_Sheo\",\n \"Room_Slug_Shrine\": \"Greenpath_Unn_Bench\",\n \"Deepnest_01\": \"Fungal_Deepnest_Fall\",\n \"Fungus2_01\": \"Fungal_Queen's_Station\",\n \"Fungus2_02\": \"Fungal_Queen's_Stag\",\n \"Fungus2_03\": \"Fungal_Outside_Queen's\",\n \"Fungus2_04\": \"Fungal_Below_Ogres\",\n \"Fungus2_05\": \"Fungal_Shrumal_Ogres\",\n \"Fungus2_06\": \"Fungal_Outside_Leg_Eater\",\n \"Fungus2_07\": \"Fungal_Shrumal_Warrior_Acid_Bridge\",\n \"Fungus2_08\": \"Fungal_Outside_Elder_Hu\",\n \"Fungus2_09\": \"Fungal_Cloth_Corridor\",\n \"Fungus2_10\": \"Fungal_Left_Of_Pilgrim's_Way\",\n \"Fungus2_11\": \"Fungal_Right_of_Bouncy_Grub\",\n \"Fungus2_12\": \"Fungal_Mantis_Corridor\",\n \"Fungus2_13\": \"Fungal_Bretta_Bench\",\n \"Fungus2_14\": \"Fungal_Mantis_Village\",\n \"Fungus2_15\": \"Fungal_Mantis_Lords\",\n \"Fungus2_17\": \"Fungal_Above_Mantis_Village\",\n \"Fungus2_18\": \"Fungal_Cornifer\",\n \"Fungus2_19\": \"Fungal_Right_Of_Spore_Shroom\",\n \"Fungus2_20\": \"Fungal_Spore_Shroom\",\n \"Fungus2_21\": \"Fungal_Pilgrim's_Way\",\n \"Fungus2_23\": \"Fungal_Dashmaster\",\n \"Fungus2_26\": \"Fungal_Leg_Eater\",\n \"Fungus2_28\": \"Fungal_Shrumal_Warrior_Loop\",\n \"Fungus2_29\": \"Fungal_Core_Upper\",\n \"Fungus2_30\": \"Fungal_Core_Lower\",\n \"Fungus2_31\": \"Fungal_Mantis_Rewards\",\n \"Fungus2_32\": \"Fungal_Elder_Hu\",\n \"Fungus2_33\": \"Fungal_Leg_Eater_Root\",\n \"Fungus2_34\": \"Fungal_Willoh\",\n \"Fungus3_01\": \"Fog_Upper_West_Tall\",\n \"Fungus3_02\": \"Fog_Lower_West_Tall\",\n \"Fungus3_03\": \"Fog_Queen's_Gardens_Acid_Entrance\",\n \"Fungus3_24\": \"Fog_Corridor_to_Overgrown_Mound\",\n \"Fungus3_25\": \"Fog_Cornifer\",\n \"Fungus3_25b\": \"Fog_Corridor_to_Cornifer\",\n \"Fungus3_26\": \"Fog_East_Tall\",\n \"Fungus3_27\": \"Fog_Corridor_to_Archives\",\n \"Fungus3_28\": \"Fog_Charm_Notch\",\n \"Fungus3_30\": \"Fog_Lifeblood\",\n \"Fungus3_35\": \"Fog_Millibelle\",\n \"Fungus3_44\": \"Fog_Overgrown_Mound_Entrance\",\n \"Fungus3_47\": \"Fog_Archives_Entrance\",\n \"Fungus3_archive\": \"Fog_Archives_Bench\",\n \"Fungus3_archive_02\": \"Fog_Uumuu_Arena\",\n \"Room_Fungus_Shaman\": \"Fog_Overgrown_Mound\",\n \"Cliffs_01\": \"Cliffs_Main\",\n \"Cliffs_02\": \"Cliffs_Gorb\",\n \"Cliffs_03\": \"Cliffs_Stag_Nest\",\n \"Cliffs_04\": \"Cliffs_Joni's_Dark\",\n \"Cliffs_05\": \"Cliffs_Joni's_Pickup\",\n \"Cliffs_06\": \"Cliffs_Grimm_Lantern\",\n \"Fungus1_28\": \"Cliffs_Baldur's_Shell\",\n \"Room_nailmaster\": \"Cliffs_Mato\",\n \"Mines_01\": \"Crystal_Dive_Entrance\",\n \"Mines_02\": \"Crystal_Dark_Entrance\",\n \"Mines_03\": \"Crystal_Spike_Grub\",\n \"Mines_04\": \"Crystal_Entrance_Conveyors\",\n \"Mines_05\": \"Crystal_Above_Spike_Grub\",\n \"Mines_06\": \"Crystal_Deep_Focus_Gauntlet\",\n \"Mines_07\": \"Crystal_Dark_Room\",\n \"Mines_10\": \"Crystal_Elevator_Entrance\",\n \"Mines_11\": \"Crystal_Left_Of_Guardian\",\n \"Mines_13\": \"Crystal_Top_Corridor\",\n \"Mines_16\": \"Crystal_Mimic\",\n \"Mines_17\": \"Crystal_Corridor_to_Spike_Grub\",\n \"Mines_18\": \"Crystal_Guardian_Bench\",\n \"Mines_19\": \"Crystal_Grub_Crushers\",\n \"Mines_20\": \"Crystal_East_Tall\",\n \"Mines_23\": \"Crystal_Crown_Whispering_Root\",\n \"Mines_24\": \"Crystal_Crown_Grub\",\n \"Mines_25\": \"Crystal_Crown_Climb\",\n \"Mines_28\": \"Crystal_Outside_Mound\",\n \"Mines_29\": \"Crystal_Dark_Bench\",\n \"Mines_30\": \"Crystal_Cornifer\",\n \"Mines_31\": \"Crystal_Crystal_Heart_Gauntlet\",\n \"Mines_32\": \"Crystal_Enraged_Guardian_Arena\",\n \"Mines_33\": \"Crossroads_Peak_Dark_Toll\",\n \"Mines_34\": \"Crystal_Crown_Peak\",\n \"Mines_35\": \"Crystal_Mound\",\n \"Mines_36\": \"Crystal_Deep_Focus\",\n \"Mines_37\": \"Crystal_Chest_Crushers\",\n \"Abyss_02\": \"Basin_Broken_Bridge\",\n \"Abyss_03\": \"Basin_Tram\",\n \"Abyss_04\": \"Basin_Fountain\",\n \"Abyss_05\": \"Basin_Palace_Grounds\",\n \"Abyss_17\": \"Basin_Cloth\",\n \"Abyss_18\": \"Basin_Corridor_to_Broken_Vessel\",\n \"Abyss_19\": \"Basin_Broken_Vessel_Grub\",\n \"Abyss_20\": \"Basin_Simple_Key\",\n \"Abyss_21\": \"Basin_Monarch_Wings\",\n \"Abyss_22\": \"Basin_Hidden_Station\",\n \"Abyss_06_Core\": \"Abyss_Core\",\n \"Abyss_08\": \"Abyss_Lifeblood_Core\",\n \"Abyss_09\": \"Abyss_Lighthouse_Climb\",\n \"Abyss_10\": \"Abyss_Shade_Cloak\",\n \"Abyss_12\": \"Abyss_Shriek\",\n \"Abyss_15\": \"Abyss_Birthplace\",\n \"Abyss_16\": \"Abyss_Corridor_to_Lighthouse\",\n \"Abyss_Lighthouse_room\": \"Abyss_Lighthouse\",\n \"Crossroads_46b\": \"Grounds_Tram\",\n \"Crossroads_50\": \"Grounds_Blue_Lake\",\n \"RestingGrounds_02\": \"Grounds_Xero\",\n \"RestingGrounds_04\": \"Grounds_Dream_Nail_Entrance\",\n \"RestingGrounds_05\": \"Grounds_Whispering_Root\",\n \"RestingGrounds_06\": \"Grounds_Corridor_Below_Xero\",\n \"RestingGrounds_07\": \"Grounds_Seer\",\n \"RestingGrounds_08\": \"Grounds_Spirit's_Glade\",\n \"RestingGrounds_09\": \"Grounds_Stag\",\n \"RestingGrounds_10\": \"Grounds_Crypts\",\n \"RestingGrounds_12\": \"Grounds_Outside_Grey_Mourner\",\n \"RestingGrounds_17\": \"Grounds_Dreamshield\",\n \"Room_Mansion\": \"Grounds_Grey_Mourner\",\n \"Ruins2_10\": \"Grounds_Elevator\",\n \"Abyss_03_c\": \"Edge_Tram\",\n \"Deepnest_East_01\": \"Edge_Left_Of_Hive\",\n \"Deepnest_East_02\": \"Edge_Above_Hive\",\n \"Deepnest_East_03\": \"Edge_Entrance\",\n \"Deepnest_East_04\": \"Edge_Bardoon\",\n \"Deepnest_East_06\": \"Edge_Outside_Oro\",\n \"Deepnest_East_07\": \"Edge_Whispering_Root\",\n \"Deepnest_East_08\": \"Edge_Great_Hopper_Idol\",\n \"Deepnest_East_09\": \"Edge_Corridor_Outside_Colosseum\",\n \"Deepnest_East_10\": \"Edge_Markoth_Arena\",\n \"Deepnest_East_11\": \"Edge_Below_Camp_Bench\",\n \"Deepnest_East_12\": \"Edge_Hornet_Sentinel_Corridor\",\n \"Deepnest_East_13\": \"Edge_Camp_Bench\",\n \"Deepnest_East_14\": \"Edge_Below_Oro\",\n \"Deepnest_East_14b\": \"Edge_Quick_Slash\",\n \"Deepnest_East_15\": \"Edge_Lifeblood\",\n \"Deepnest_East_16\": \"Edge_Oro_Scarecrow\",\n \"Deepnest_East_17\": \"Edge_420_Geo_Rock\",\n \"Deepnest_East_18\": \"Edge_Outside_Markoth\",\n \"Deepnest_East_Hornet\": \"Edge_Hornet_Sentinel_Arena\",\n \"GG_Lurker\": \"Edge_Pale_Lurker\",\n \"Room_Colosseum_01\": \"Edge_Colo_Entrance\",\n \"Room_Colosseum_02\": \"Edge_Colo_Bench\",\n \"Room_Colosseum_Bronze\": \"Edge_Colo_1_Arena\",\n \"Room_Colosseum_Gold\": \"Edge_Colo_3_Arena\",\n \"Room_Colosseum_Silver\": \"Edge_Colo_2_Arena\",\n \"Room_Colosseum_Spectate\": \"Edge_Colo_Spectate\",\n \"Room_nailmaster_03\": \"Edge_Oro\",\n \"Room_Wyrm\": \"Edge_Cast-Off_Shell\",\n \"Abyss_01\": \"City_Broken_Elevator\",\n \"Crossroads_49b\": \"City_Left_Elevator\",\n \"Room_nailsmith\": \"City_Nailsmith\",\n \"Ruins_Bathhouse\": \"City_Pleasure_House_Bench\",\n \"Ruins_Elevator\": \"City_Pleasure_House_Elevator\",\n \"Ruins_House_01\": \"City_Guarded_Grub\",\n \"Ruins_House_02\": \"City_Gorgeous_Husk\",\n \"Ruins_House_03\": \"City_Emilitia\",\n \"Ruins1_01\": \"City_Pilgrim's_Entrance\",\n \"Ruins1_02\": \"City_Quirrel_Bench\",\n \"Ruins1_03\": \"City_Rafters\",\n \"Ruins1_04\": \"City_Outside_Nailsmith\",\n \"Ruins1_05\": \"City_Grub_Above_Lemm\",\n \"Ruins1_05b\": \"City_Lemm\",\n \"Ruins1_05c\": \"City_Egg_Above_Lemm\",\n \"Ruins1_06\": \"City_Corridor_to_Storerooms\",\n \"Ruins1_09\": \"City_Soul_Twister_Arena\",\n \"Ruins1_17\": \"City_Whispering_Root\",\n \"Ruins1_18\": \"City_Corridor_to_Spire\",\n \"Ruins1_23\": \"City_Sanctum_Entrance\",\n \"Ruins1_24\": \"City_Soul_Master_Arena\",\n \"Ruins1_25\": \"City_Sanctum_East_Elevators\",\n \"Ruins1_27\": \"City_Hollow_Knight_Fountain\",\n \"Ruins1_28\": \"City_Storerooms\",\n \"Ruins1_29\": \"City_Storerooms_Stag\",\n \"Ruins1_30\": \"City_Sanctum_Spell_Twister\",\n \"Ruins1_31\": \"City_Toll_Bench\",\n \"Ruins1_31b\": \"City_Shade_Soul_Arena\",\n \"Ruins1_32\": \"City_Soul_Master_Rewards\",\n \"Ruins2_01\": \"City_Spire_Second_Floor\",\n \"Ruins2_01_b\": \"City_Spire_First_Floor\",\n \"Ruins2_03\": \"City_Spire_Fourth_Floor\",\n \"Ruins2_03b\": \"City_Spire_Third_Floor\",\n \"Ruins2_04\": \"City_Right_Hub\",\n \"Ruins2_05\": \"City_Above_King's\",\n \"Ruins2_06\": \"City_King's_Station\",\n \"Ruins2_07\": \"City_Grub_Below_King's\",\n \"Ruins2_08\": \"City_King's_Stag\",\n \"Ruins2_09\": \"City_King's_Vessel_Fragment\",\n \"Ruins2_10b\": \"City_Right_Elevator\",\n \"Ruins2_11\": \"City_Collector_Arena\",\n \"Ruins2_11_b\": \"City_Tower_of_Love\",\n \"Ruins2_Watcher_Room\": \"City_Lurien_Elevator\",\n \"Hive_01\": \"Hive_Entrance\",\n \"Hive_02\": \"Hive_Whispering_Root\",\n \"Hive_03\": \"Hive_Outside_Grub\",\n \"Hive_03_c\": \"Hive_Outside_Shortcut\",\n \"Hive_04\": \"Hive_Mask_Shard\",\n \"Hive_05\": \"Hive_Knight_Arena\",\n \"GG_Pipeway\": \"Waterways_Flukemunga_Corridor\",\n \"GG_Waterways\": \"Waterways_Junk_Pit\",\n \"Room_GG_Shortcut\": \"Waterways_Fluke_Hermit\",\n \"Waterways_01\": \"Waterways_Entrance\",\n \"Waterways_02\": \"Waterways_Main_Bench\",\n \"Waterways_03\": \"Waterways_Tuk\",\n \"Waterways_04\": \"Waterways_Hidden_Grub\",\n \"Waterways_04b\": \"Waterways_Mask_Shard\",\n \"Waterways_05\": \"Waterways_Dung_Defender_Arena\",\n \"Waterways_06\": \"Waterways_Corridor_to_Broken_Elevator\",\n \"Waterways_07\": \"Waterways_Left_Of_Isma's_Grove\",\n \"Waterways_08\": \"Waterways_Outside_Flukemarm\",\n \"Waterways_09\": \"Waterways_Cornifer\",\n \"Waterways_12\": \"Waterways_Flukemarm_Arena\",\n \"Waterways_13\": \"Waterways_Isma's_Grove\",\n \"Waterways_14\": \"Waterways_Edge_Acid_Corridor\",\n \"Waterways_15\": \"Waterways_Dung_Defender's_Cave\",\n \"Abyss_03_b\": \"Deepnest_Tram\",\n \"Deepnest_01b\": \"Deepnest_Upper_Cornifer\",\n \"Deepnest_02\": \"Deepnest_Outside_Mimics\",\n \"Deepnest_03\": \"Deepnest_Left_Of_Hot_Spring\",\n \"Deepnest_09\": \"Deepnest_Distant_Village_Stag\",\n \"Deepnest_10\": \"Deepnest_Distant_Village\",\n \"Deepnest_14\": \"Deepnest_Failed_Tramway_Bench\",\n \"Deepnest_16\": \"Deepnest_After_Lower_Cornifer\",\n \"Deepnest_17\": \"Deepnest_Garpede_Corridor_Below_Cornifer\",\n \"Deepnest_26\": \"Deepnest_Failed_Tramway_Lifeblood\",\n \"Deepnest_26b\": \"Deepnest_Tram_Pass\",\n \"Deepnest_30\": \"Deepnest_Hot_Spring\",\n \"Deepnest_31\": \"Deepnest_Nosk_Corridor\",\n \"Deepnest_32\": \"Deepnest_Nosk_Arena\",\n \"Deepnest_33\": \"Deepnest_Zote_Arena\",\n \"Deepnest_34\": \"Deepnest_First_Devout\",\n \"Deepnest_35\": \"Deepnest_Outside_Galien\",\n \"Deepnest_36\": \"Deepnest_Mimics\",\n \"Deepnest_37\": \"Deepnest_Corridor_to_Tram\",\n \"Deepnest_38\": \"Deepnest_Vessel_Fragment\",\n \"Deepnest_39\": \"Deepnest_Whispering_Root\",\n \"Deepnest_40\": \"Deepnest_Galien_Arena\",\n \"Deepnest_41\": \"Deepnest_Midwife\",\n \"Deepnest_42\": \"Deepnest_Outside_Mask_Maker\",\n \"Deepnest_44\": \"Deepnest_Sharp_Shadow\",\n \"Deepnest_45_v02\": \"Deepnest_Weaver's_Den\",\n \"Deepnest_Spider_Town\": \"Deepnest_Beast's_Den\",\n \"Fungus2_25\": \"Deepnest_Lower_Cornifer\",\n \"Room_Mask_Maker\": \"Deepnest_Mask_Maker\",\n \"Room_spider_small\": \"Deepnest_Brumm\",\n \"Deepnest_43\": \"Gardens_Corridor_To_Deepnest\",\n \"Fungus1_23\": \"Gardens_First_Loodle_Corridor\",\n \"Fungus1_24\": \"Gardens_Cornifer\",\n \"Fungus3_04\": \"Gardens_Before_Petra_Arena\",\n \"Fungus3_05\": \"Gardens_Petra_Arena\",\n \"Fungus3_08\": \"Gardens_Lower_Petra_Corridor\",\n \"Fungus3_10\": \"Gardens_Main_Arena\",\n \"Fungus3_11\": \"Gardens_Whispering_Root\",\n \"Fungus3_13\": \"Gardens_Outside_Stag\",\n \"Fungus3_21\": \"Gardens_Corridor_to_Traitor_Lord\",\n \"Fungus3_22\": \"Gardens_Upper_Grub\",\n \"Fungus3_23\": \"Gardens_Traitor_Lord_Arena\",\n \"Fungus3_34\": \"Gardens_Entrance\",\n \"Fungus3_39\": \"Gardens_Moss_Prophet\",\n \"Fungus3_49\": \"Gardens_Traitor's_Child's_Grave\",\n \"Fungus3_40\": \"Gardens_Gardens_Stag\",\n \"Fungus3_48\": \"Gardens_Outside_White_Lady\",\n \"Fungus3_50\": \"Gardens_Toll_Bench\",\n \"Room_Queen\": \"Gardens_White_Lady\",\n \"White_Palace_01\": \"Palace_Entrance\",\n \"White_Palace_02\": \"Palace_First_Mold\",\n \"White_Palace_03_hub\": \"Palace_Hub\",\n \"White_Palace_04\": \"Palace_Left_Of_Hub\",\n \"White_Palace_05\": \"Palace_Saw_Room\",\n \"White_Palace_06\": \"Palace_Balcony\",\n \"White_Palace_07\": \"Palace_Lamp_Pogo\",\n \"White_Palace_08\": \"Palace_Workshop\",\n \"White_Palace_09\": \"Palace_Throne\",\n \"White_Palace_11\": \"Palace_Outside\",\n \"White_Palace_12\": \"Palace_Spike_Drop\",\n \"White_Palace_13\": \"Palace_Thorn_Jump\",\n \"White_Palace_14\": \"Palace_Hell_Corridor\",\n \"White_Palace_15\": \"Palace_Caged_Lever\",\n \"White_Palace_16\": \"Palace_Saw_Climb\",\n \"White_Palace_17\": \"POP_Lever\",\n \"White_Palace_18\": \"POP_Entrance\",\n \"White_Palace_19\": \"POP_Vertical\",\n \"White_Palace_20\": \"POP_Final\",\n \"Dream_Final_Boss\": \"Egg_Radiance\",\n \"Room_Final_Boss_Atrium\": \"Egg_Bench\",\n \"Room_Final_Boss_Core\": \"Egg_Hollow_Knight\",\n \"Grimm_Divine\": \"Grimm_Divine\",\n \"Grimm_Main_Tent\": \"Grimm_Tent\",\n \"Grimm_Nightmare\": \"Grimm_NKG\",\n \"Dream_01_False_Knight\": \"Dream_Failed_Champion\",\n \"Dream_02_Mage_Lord\": \"Dream_Soul_Tyrant\",\n \"Dream_03_Infected_Knight\": \"Dream_Lost_Kin\",\n \"Dream_04_White_Defender\": \"Dream_White_Defender\",\n \"Dream_Abyss\": \"Dream_Abyss\",\n \"Dream_Backer_Shrine\": \"Dream_Outside_Shrine\",\n \"Dream_Guardian_Hegemol\": \"Dream_Herrah\",\n \"Dream_Guardian_Lurien\": \"Dream_Lurien\",\n \"Dream_Guardian_Monomon\": \"Dream_Monomon\",\n \"Dream_Mighty_Zote\": \"Dream_Grey_Prince_Zote\",\n \"Dream_Nailcollection\": \"Dream_Nail\",\n \"Dream_Room_Believer_Shrine\": \"Dream_Shrine_of_Believers\",\n \"GG_Atrium\": \"Godhome_Atrium\",\n \"GG_Atrium_Roof\": \"Godhome_Roof\",\n \"GG_Blue_Room\": \"Godhome_Lifeblood\",\n \"GG_Land_Of_Storms\": \"Godhome_Land_Of_Storms\",\n \"GG_Mighty_Zote\": \"GG_Enchanting_Vigorous_Diligent_Overwhelming_Gorgeous_Passionate_Terrifying_Beautiful_Zote\",\n \"GG_Unlock_Wastes\": \"Godhome_Godtuner\",\n \"GG_Workshop\": \"Godhome_Hall_Of_Gods\"\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MAP);\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/hk-dictionary.js?"); - -/***/ }), - -/***/ "./src/css/cookieconsent.css": -/*!***********************************!*\ - !*** ./src/css/cookieconsent.css ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/css/cookieconsent.css?"); - -/***/ }), - -/***/ "./src/css/fontello.css": -/*!******************************!*\ - !*** ./src/css/fontello.css ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/css/fontello.css?"); - -/***/ }), - -/***/ "./src/css/simpleicon.css": -/*!********************************!*\ - !*** ./src/css/simpleicon.css ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/css/simpleicon.css?"); - -/***/ }), - -/***/ "./src/css/style.css": -/*!***************************!*\ - !*** ./src/css/style.css ***! - \***************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/css/style.css?"); - -/***/ }), - -/***/ "./src/img/geo-shade.png": -/*!*******************************!*\ - !*** ./src/img/geo-shade.png ***! - \*******************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/geo-shade.png?"); - -/***/ }), - -/***/ "./src/img/geo.png": -/*!*************************!*\ - !*** ./src/img/geo.png ***! - \*************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/geo.png?"); - -/***/ }), - -/***/ "./src/img/health-mask-steel.png": -/*!***************************************!*\ - !*** ./src/img/health-mask-steel.png ***! - \***************************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAApCAMAAACMabAwAAAC2VBMVEVtbHIAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAADBEAACUAACUAGSMAFiMAACUAGQAAGSMAACMAGSgAIADIxtOfnaf/9vb79Pb57/Hs4+fs5Ofq5Obs4efn4efi3N7f1t3e1dvY0dja0dbTztjU0NXTztPOxtPNx8/IwcjIwcrCwcjCvsi8u8i8ucTAvMTCu8LCu8i8vs63tcKxr7ywr7qurLasqbaqqLWqqbWqrLeqrLywrLixrLesqbGpqLKkpbGkorCho6+dnq+YnKqYnaqWmKaYmKSXmaqSkZ2NjZuIkJ+IjJ+FjJ2Di5uCiZiAg5d/gZN9gZJ4gZZ4f5d9fY99gY2ChJKFhJKAh52Ai52IiZhOXHpSW3hSYHhQX3RQXHRQW3JOV3pSYIBSZYBSaYBcaYBmbH1mZ3ViYm9gYnJcXGxZYXRccohmco9md49ve49yfZJvdoh9fIKAe4KDgYVsbHd1cngAAAAAACUAGSUAGTcAJUUlJTcsMUE3MUk3Pk43QFU3QVU3PlxBSGA3RWZFUG9JU3RVV2JZWmJFSVVFPlwAGQAADBEAER3x6Ozz6Ozx5ufz7O7x6vbY097b1tzRydO4tLq8tbqysr+kqbekpbedoredorFib4UAN1LkMeulAAAAanRSTlP9AAECBAcICQoLDRASFxsgISIjJCUoLC0wMTI1ODtBQkNGRU9QUVtgYWJkZmppaG5wcnN4eoqOkJGSk5WXmaOnrLG4vb7AwcLIzNDU2+Di6Of+/fj39fPx8u/t6vr++fXtz7+mqaQ3KP39OkFJMQAAAv1JREFUeNpt0wOMZNsax9F1TluF9ti2ET0hfLajZ13bto3o2raiUfXYtlVdbUs1+sU7a3/hPwzOLSs3NwjCroLeMklXKBIloLrhtP7SQuGISF4p4Fjdzn4TBICiEeVF15Qdz91bpGZE450a9+6pO+vGX1ub/q+l4IXTmq/wcOElOR6Jra5Piy5wrSNjbwb8131X7fhP+0XdpE8UtzY5+hKQ/bxa7vDLrAe6iSBAzvRXHR1+B8i+/DX8+g5+UHrvxo29Ihg/8/qNS7XjYg/nZWdHyuuPJFNXH3BVIiUTFcMvsVS65pTCSixZHK/sFdFipXDJXVDSRKq2spJf7b/86iOpkCB2SeROXHJHe7uHh4pEIpJHVL5mqdxKmZRErEXbHXiiNCqHZPOx+vElrxwqyizdF1KYQ1tbWytEKyoq4nGl1J4GOZEQfI/L4ebpFRAvGAVlquQXhcDlbsf13wDi8ULHGaxQJJOs0INJHXhzbH0/Gbm9pXXM0dpbrt4fBoBMImMNVFEOAjIBOeQPI11U+ms9yM8vH0u6CqPJ7SCzQ1Ozi+5UYFoSCNDCyN3+su6iltoQdT7CcBcu5ES9+ZA00ITBg0dDTH1NiOq7kyWGT+9+7QO1NKb4kNPVgiCo/P6ep277vCqRSOz6sKt3Nie6W//s7V9U/X5EEOJo6vhooHYcNBvoQLUQkvfGS0FTh4H2HiuPPXK8T1SfMnoX5OxI3ygyUsYhggBmTLp4b6SU03O/Ia+MgBW/2HnXlo2E4MAJkRT2fAHH0bTi0ClHdwmE4OTB++NWn159DOxesWLF2kODT1+3pyG9uR1Rs147RsVJOIzB8289cICOgWWPmlj49zVGFiOL1R0W+29VMwaEaRMvT60RQz06FnvinZPOEuZO+m9qzakYpxi8yKNZzwCh/nbkiMyUTCYZ/Kc0IBio9FuJhH/8/e/JVxOJ7w4P+hOcRX72MxKJXy0qDs4SaTLvRz/72c9+9cNJGcHZIl3myDmL5kwaPADSIl1WXlZwdp232w5zYmcccAAAAABJRU5ErkJggg==\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/health-mask-steel.png?"); - -/***/ }), - -/***/ "./src/img/health-mask.png": -/*!*********************************!*\ - !*** ./src/img/health-mask.png ***! - \*********************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/health-mask.png?"); - -/***/ }), - -/***/ "./src/img/notch-filled.png": -/*!**********************************!*\ - !*** ./src/img/notch-filled.png ***! - \**********************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/notch-filled.png?"); - -/***/ }), - -/***/ "./src/img/notch-overcharmed.png": -/*!***************************************!*\ - !*** ./src/img/notch-overcharmed.png ***! - \***************************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/notch-overcharmed.png?"); - -/***/ }), - -/***/ "./src/img/notch.png": -/*!***************************!*\ - !*** ./src/img/notch.png ***! - \***************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAuCAMAAABZAGpeAAABMlBMVEUAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCwwQERQQERQaHSEbHiMZHCAPEBMKCwwLDA4KCwwZHCASFBcAAAAGBgcLDA4NDhAPEBMQERQVFxoaHSEbHiMhJCojJy0mKjEnKzIpLTQrLzcuMzsvNDwvND0yN0A1OkQ2PEY3PUc4Pkg/RlFCSVVDSldGTVpHT1xIUF1KUl9LU2FOVmVRWWhRWmlSW2pUXWxYYXJdZ3in/4oOAAAAQHRSTlMABhQZHSMlKjFGS01PUFxdZWdoanBxd4OElJ2jra6wsbS1zM3Q1NfZ3uHq8vP09ff7/P3++v77+unMvczocHAx+yhOAgAAAZZJREFUeNrt1IOWI0EUxvGbWdvKzkpja6VvmGZVbFT0/q+wt7mq7uVRTn5xuv4t0dTEuHT/1erW9tbGwsNL9BvOPNmARwqBjbnL9Cu3VwEIyQTD5lNKN4sToKaGTNWE2Mf+3AylyAJwu6PQoFk2DONlJpOhBDchZWP0jSEXR7OJwbl1yMbwu4ALExeSguwhj/8+4CKXW0oIzu9Y5d7Ip1RNhY0SwHXS+miVwg1oCQCF1shXE3hOWu+tUi8YDwjBTStaxPIp0vlg1Xvh+JpSqoBCFGxcJJ09tz4MgoL32Tk46PgbLoGbpLMbBuGsx8WDYhTc/T/B3nG8SipYpTi4RTpvjPzId3zMB7BRAFrhRm/qL4y3htPxg/YxfOFeQtJu/WQYlVFQyGg8qwEvSOvza8PohOdQo9FojQICuEF673JS8sn3vY6ZePLR6RVw8cP4tNObrnLQ6H83Pu0CYlku6p1RRFXSL1H2CDm7Wm0qT00AOJyfoVR3VgHbFgyerWf0K2cfbyA2f4V+w8V7/q1ybfHBNZqaGF8AvGjIgXx3DDQAAAAASUVORK5CYII=\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/notch.png?"); - -/***/ }), - -/***/ "./src/img/soul-orb.png": -/*!******************************!*\ - !*** ./src/img/soul-orb.png ***! - \******************************/ -/***/ ((module) => { - -"use strict"; -eval("module.exports = \"data:image/png;base64,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\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/soul-orb.png?"); - -/***/ }), - -/***/ "./src/img/thumbnail1200x628.jpg": -/*!***************************************!*\ - !*** ./src/img/thumbnail1200x628.jpg ***! - \***************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -eval("module.exports = __webpack_require__.p + \"img/thumbnail1200x628.jpg\";\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/img/thumbnail1200x628.jpg?"); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ if(__webpack_module_cache__[moduleId]) { -/******/ return __webpack_module_cache__[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/************************************************************************/ -(() => { -/*!*************************!*\ - !*** ./src/js/index.js ***! - \*************************/ -eval("/* global require */\n// Handle cookies\n// require(\"./cookies.js\");\n// CSS\n__webpack_require__(/*! ../css/cookieconsent.css */ \"./src/css/cookieconsent.css\");\n\n__webpack_require__(/*! ../css/fontello.css */ \"./src/css/fontello.css\");\n\n__webpack_require__(/*! ../css/simpleicon.css */ \"./src/css/simpleicon.css\");\n\n__webpack_require__(/*! ../css/style.css */ \"./src/css/style.css\"); // required for meta tags (social) to be visible by Webpack\n\n\n__webpack_require__(/*! ../img/thumbnail1200x628.jpg */ \"./src/img/thumbnail1200x628.jpg\"); // Instantly load test save file from .json (fast Debugging script)\n// require(\"./LoadJson.js\");\n// Load Save File for opening files, decoding, decryption\n\n\n__webpack_require__(/*! ./LoadSaveFile.js */ \"./src/js/LoadSaveFile.js\"); // Main script for analyzing the decoded save file and generating the page on the fly\n// require(\"./HKCheckCompletion.js\");\n\n\n__webpack_require__(/*! ./HKCheckCompletion.js */ \"./src/js/HKCheckCompletion.js\");\n\n//# sourceURL=webpack://hollow-knight-completion-check/./src/js/index.js?"); -})(); - -/******/ })() -; \ No newline at end of file +(()=>{var e={853:(e,r,a)=>{"use strict";a.r(r);const s={DIV_ID:{intro:{h2:"Game Status",id:"hk-intro",maxPercent:112},hints:{h2:"My friend Elderbug once told me about...",id:"hk-hints"},bosses:{h2:"Bosses",id:"hk-bosses",percent:0,maxPercent:14},charms:{h2:"Charms",id:"hk-charms",percent:0,maxPercent:36},equipment:{h2:"Equipment",id:"hk-equipment",percent:0,maxPercent:14},nailUpgrades:{h2:"Nail Upgrades",id:"hk-nailupgrades",percent:0,maxPercent:4},nailArts:{h2:"Nail Arts",id:"hk-nailarts",percent:0,maxPercent:3},spells:{h2:"Spells",id:"hk-spells",percent:0,maxPercent:6},maskShards:{h2:"Mask Shards",id:"hk-maskshards",percent:0,maxPercent:4},vesselFragments:{h2:"Vessel Fragments",id:"hk-vesselfragments",percent:0,maxPercent:3},dreamNail:{h2:"Dream Nail and Essence",id:"hk-dreamnail",percent:0,maxPercent:3},warriorDreams:{h2:"Warrior Dreams",id:"hk-warriordreams",percent:0,maxPercent:7},dreamers:{h2:"Dreamers",id:"hk-dreamers",percent:0,maxPercent:3},colosseum:{h2:"Colosseum of Fools",id:"hk-colosseum",percent:0,maxPercent:3},grimmTroupe:{h2:"Grimm Troupe Content Pack",id:"hk-grimmtroupe",percent:0,maxPercent:6},lifeblood:{h2:"Lifeblood Content Pack",id:"hk-lifeblood",percent:0,maxPercent:1},godmaster:{h2:"Godmaster Content Pack",id:"hk-godmaster",percent:0,maxPercent:5},essential:{h2:"Game Completion Essentials",id:"hk-essential"},achievements:{h2:"Achievements Essentials",id:"hk-achievements"},statistics:{h2:"Game Statistics",id:"hk-statistics"}},HINTS:{fireballLevel:{spoiler:"...a mysterious shaman living in a dwelling below the town of Dirtmouth"},hornet1Defeated:{spoiler:"...a skilled protector guarding ruins in a lush green forest"},hasDash:{spoiler:"...an old cloak lying on a green path near a broken shell"},hasWalljump:{spoiler:"...a sharp claw lying forgotten somewhere amidst the insect village"},Crossroads_04:{spoiler:"...a mother sleeping peacefully below the town of Dirtmouth"},slyRescued:{spoiler:"...a fellow town bug who seems to be lost somewhere in the crossroads"},hasLantern:{spoiler:"...a precious item able to carry some light to even the darkest places"},hasSuperDash:{spoiler:"...some powerful crystal beating somewhere deep inside the mines"},hasDreamNail:{spoiler:"...a weapon from a dream world only found where the souls can peacefully rest"},killedInfectedKnight:{spoiler:"...a shattered corpse forgotten in a windy cave in the ancient depths below the city"},hasDoubleJump:{spoiler:"...something incredibly light dropped by a monarchfly in the ancient depths below the city"},killedBlackKnight:{spoiler:"...discarded shells of black guards lying on the floor of a high spire"},lurienDefeated:{spoiler:"...a dreamer sleeping somewhere at the top of a high spire"},dungDefenderOrHornet2:{spoiler:"...a skilled combatant living at the heart of the sewers or watching over a shell amidst ash falling from the sky"},ismaTearOrShadeCloak:{spoiler:"...something precious in a grove accessed from the waterways or a massive royal door guarding a cloak behind the darkness"},defeatedMegaJelly:{spoiler:"...an intelligent being floating inside hidden archives behind the fog"},monomonDefeated:{spoiler:"...a dreamer sleeping somewhere hidden in a foggy area"},hegemolDefeated:{spoiler:"...a dreamer sleeping near a spider nest area"},killedHollowKnight:{spoiler:"...a disturbance inside a black temple"}},BOSSES:{falseKnightDefeated:{name:"False Knight",spoiler:"Forgotten Crossroads",wiki:"False_Knight"},hornet1Defeated:{name:"Hornet Protector",spoiler:"Greenpath",wiki:"Hornet_Protector"},defeatedDungDefender:{name:"Dung Defender",spoiler:"Royal Waterways",wiki:"Dung_Defender"},mageLordDefeated:{name:"Soul Master",spoiler:"City of Tears: Soul Sanctum",wiki:"Soul_Master"},killedBlackKnight:{name:"Watcher Knights",spoiler:"City of Tears: Watcher's Spire",wiki:"Watcher_Knight"},collectorDefeated:{name:"The Collector",spoiler:"City of Tears: Tower of Love",wiki:"Collector"},defeatedMantisLords:{name:"Mantis Lords",spoiler:"Mantis Village",wiki:"Mantis_Lords"},defeatedMegaJelly:{name:"Uumuu",spoiler:"Fog Canyon: Teacher's Archives",wiki:"Uumuu"},hornetOutskirtsDefeated:{name:"Hornet Sentinel",spoiler:"Kingdom's Edge",wiki:"Hornet_Sentinel"},killedInfectedKnight:{name:"Broken Vessel",spoiler:"Ancient Basin",wiki:"Broken_Vessel"},killedMimicSpider:{name:"Nosk",spoiler:"Deepnest",wiki:"Nosk"},killedTraitorLord:{name:"Traitor Lord",spoiler:"Queen's Gardens",wiki:"Traitor_Lord"}},BOSSES_WORLD:{Crossroads_04:{name:"Gruz Mother",spoiler:"Forgotten Crossroads",wiki:"Gruz_Mother"},Crossroads_09:{name:"Brooding Mawlek",spoiler:"Forgotten Crossroads",wiki:"Brooding_Mawlek"}},CHARMS:{gotCharm_1:{name:"#1 Gathering Swarm",spoiler:"Sly: 300 Geo"},gotCharm_2:{name:"#2 Wayward Compass",spoiler:"Iselda: 220 Geo"},gotCharm_3:{name:"#3 Grubsong",spoiler:"Grubfather: 10 Grubs rescued"},gotCharm_4:{name:"#4 Stalwart Shell",spoiler:"Sly: 200 Geo"},gotCharm_5:{name:"#5 Baldur Shell",spoiler:"Howling Cliffs"},gotCharm_6:{name:"#6 Fury of the Fallen",spoiler:"King's Pass"},gotCharm_7:{name:"#7 Quick Focus",spoiler:"Salubra: 800 Geo"},gotCharm_8:{name:"#8 Lifeblood Heart",spoiler:"Salubra: 250 Geo"},gotCharm_9:{name:"#9 Lifeblood Core",spoiler:"The Abyss: 15 Lifeblood masks"},gotCharm_10:{name:"#10 Defender's Crest",spoiler:"Royal Waterways"},gotCharm_11:{name:"#11 Flukenest",spoiler:"Royal Waterways"},gotCharm_12:{name:"#12 Thorns of Agony",spoiler:"Greenpath"},gotCharm_13:{name:"#13 Mark of Pride",spoiler:"Mantis Village"},gotCharm_14:{name:"#14 Steady Body",spoiler:"Salubra: 120 Geo"},gotCharm_15:{name:"#15 Heavy Blow",spoiler:"Sly: 350 Geo + Shopkeeper's Key"},gotCharm_16:{name:"#16 Sharp Shadow",spoiler:"Deepnest"},gotCharm_17:{name:"#17 Spore Shroom",spoiler:"Fungal Wastes"},gotCharm_18:{name:"#18 Longnail",spoiler:"Salubra: 300 Geo"},gotCharm_19:{name:"#19 Shaman Stone",spoiler:"Salubra: 220 Geo"},gotCharm_20:{name:"#20 Soul Catcher",spoiler:"Forgotten Crossroads: Ancestral Mound"},gotCharm_21:{name:"#21 Soul Eater",spoiler:"Resting Grounds"},gotCharm_22:{name:"#22 Glowing Womb",spoiler:"Forgotten Crossroads"},gotCharm_23:{name:"#23 Fragile Heart",spoiler:"Leg Eater: 350/280 Geo"},gotCharm_24:{name:"#24 Fragile Greed",spoiler:"Leg Eater: 250/200 Geo"},gotCharm_25:{name:"#25 Fragile Strength",spoiler:"Leg Eater: 600/480 Geo"},gotCharm_26:{name:"#26 Nailmaster’s Glory",spoiler:"Sly: All Nail Arts"},gotCharm_27:{name:"#27 Joni’s Blessing",spoiler:"Howling Cliffs: Joni's Repose"},gotCharm_28:{name:"#28 Shape of Unn",spoiler:"Greenpath: Lake of Unn"},gotCharm_29:{name:"#29 Hiveblood",spoiler:"The Hive"},gotCharm_30:{name:"#30 Dream Wielder",spoiler:"Seer: 500 Essence"},gotCharm_31:{name:"#31 Dashmaster",spoiler:"Fungal Wastes"},gotCharm_32:{name:"#32 Quick Slash",spoiler:"Kingdom's Edge"},gotCharm_33:{name:"#33 Spell Twister",spoiler:"City of Tears: Soul Sanctum"},gotCharm_34:{name:"#34 Deep Focus",spoiler:"Crystal Peak"},gotCharm_35:{name:"#35 Grubberfly’s Elegy",spoiler:"Grubfather: 46 Grubs rescued"},gotCharm_36:{name:"#36 Kingsoul",spoiler:"Queen's Gardens + Ancient Basin"}},COLOSSEUM:{colosseumBronzeCompleted:{name:"Trial of the Warrior",spoiler:"Little Fool: 100 Geo"},colosseumSilverCompleted:{name:"Trial of the Conqueror",spoiler:"Little Fool: 450 Geo + Warrior completed"},colosseumGoldCompleted:{name:"Trial of the Fool",spoiler:"Little Fool: 800 Geo + Conqueror completed"}},DREAMERS:{lurienDefeated:{name:"Lurien the Watcher",spoiler:"City of Tears: Watcher's Spire"},monomonDefeated:{name:"Monomon the Teacher",spoiler:"Fog Canyon: Teacher's Archives"},hegemolDefeated:{name:"Herrah the Beast",spoiler:"Deepnest: Distant Village"}},DREAMNAIL:{hasDreamNail:{name:"Dream Nail acquired",spoiler:"Resting Grounds"},dreamNailUpgraded:{name:"Awoken Dream Nail",spoiler:"Seer: 1800 Essence"},mothDeparted:{name:"Hear the Seer's final words",spoiler:"Seer: 2400 Essence"}},EQUIPMENT:{hasDash:{name:"Mothwing Cloak",spoiler:"Greenpath: Dash ability"},hasWalljump:{name:"Mantis Claw",spoiler:"Mantis Village: Wall Jump ability"},hasSuperDash:{name:"Crystal Heart",spoiler:"Crystal Peak: Super Dash ability"},hasDoubleJump:{name:"Monarch Wings",spoiler:"Ancient Basin: Double Jump ability"},hasAcidArmour:{name:"Isma's Tear",spoiler:"Royal Waterways: Acid Armour ability"},hasKingsBrand:{name:"King's Brand",spoiler:"Kingdom's Edge"},hasShadowDash:{name:"Shade Cloak",spoiler:"The Abyss: Shadow Dash ability"}},MASKSHARDS:{slyShellFrag1:{name:"Mask Shard #1",spoiler:"Sly: 150 Geo"},slyShellFrag2:{name:"Mask Shard #2",spoiler:"Sly: 500 Geo"},slyShellFrag3:{name:"Mask Shard #3",spoiler:"Sly: 800 Geo + Shopkeeper's Key"},slyShellFrag4:{name:"Mask Shard #4",spoiler:"Sly: 1500 Geo + Shopkeeper's Key"},dreamReward7:{name:"Mask Shard #5",spoiler:"Seer: 1500 Essence"}},MASKSHARDS_WORLD:{Crossroads_13:{name:"Mask Shard #6",spoiler:"Forgotten Crossroads: below Hot Springs"},Crossroads_09:{name:"Mask Shard #7",spoiler:"Forgotten Crossroads: Brooding Mawlek"},Crossroads_38:{name:"Mask Shard #8",spoiler:"Grubfather: 5 Grubs rescued"},Room_Bretta:{name:"Mask Shard #9",spoiler:"Dirtmouth: Bretta's Room, rescue Bretta"},Fungus2_01:{name:"Mask Shard #10",spoiler:"Queen's Station, requires Mantis Claw"},Waterways_04b:{name:"Mask Shard #11",spoiler:"Royal Waterways"},Fungus1_36:{name:"Mask Shard #12",spoiler:"Greenpath: Stone Sanctuary"},Mines_32:{name:"Mask Shard #13",spoiler:"Crystal Peak: Enraged Guardian"},Fungus2_25:{name:"Mask Shard #14",spoiler:"Deepnest: entrance from Fungal Wastes"},Hive_04:{name:"Mask Shard #15",spoiler:"The Hive, use Hive Guardian"},Room_Mansion:{name:"Mask Shard #16",spoiler:"Resting Grounds: Delicate Flower"}},VESSELFRAGMENTS:{slyVesselFrag1:{name:"Vessel Fragment #1",spoiler:"Sly: 550 Geo"},slyVesselFrag2:{name:"Vessel Fragment #2",spoiler:"Sly: 900 Geo + Shopkeeper's Key"},dreamReward5:{name:"Vessel Fragment #3",spoiler:"Seer: 700 Essence"},vesselFragStagNest:{name:"Vessel Fragment #4",spoiler:"Stag Nest"}},VESSELFRAGMENTS_WORLD:{Fungus1_13:{name:"Vessel Fragment #5",spoiler:"Greenpath: near Queen's Gardens exit"},Crossroads_37:{name:"Vessel Fragment #6",spoiler:"Forgotten Crossroads: unlock City of Tears lift"},Ruins2_09:{name:"Vessel Fragment #7",spoiler:"Above King's Station"},Deepnest_38:{name:"Vessel Fragment #8",spoiler:"Deepnest: Goam platforming challenge"},Abyss_04:{name:"Vessel Fragment #9",spoiler:"Ancient Basin Fountain: 3000 Geo"}},NAILARTS:{hasDashSlash:{name:"Great Slash",spoiler:"Nailmaster Sheo: Greenpath"},hasUpwardSlash:{name:"Dash Slash",spoiler:"Nailmaster Oro: Kingdom's Edge, 800 Geo"},hasCyclone:{name:"Cyclone Slash",spoiler:"Nailmaster Mato: Howling Cliffs"}},NAILUPGRADES:{oldNail:{name:"#0 Old Nail",spoiler:"Starting Weapon"},sharpenedNail:{name:"#1 Sharpened Nail",spoiler:"Nailsmith: 250 Geo"},channeledNail:{name:"#2 Channeled Nail",spoiler:"Nailsmith: 800 Geo + 1 Pale Ore"},coiledNail:{name:"#3 Coiled Nail",spoiler:"Nailsmith: 2000 Geo + 2 Pale Ore"},pureNail:{name:"#4 Pure Nail",spoiler:"Nailsmith: 4000 Geo + 3 Pale Ore"}},SPELLS:{vengefulSpirit:{fireballLevel:1,name:"Vengeful Spirit",spoiler:"Forgotten Crossroads: Ancestral Mound"},shadeSoul:{fireballLevel:2,name:"Shade Soul",spoiler:"City of Tears: Soul Sanctum + Elegant Key"},desolateDive:{quakeLevel:1,name:"Desolate Dive",spoiler:"City of Tears: Soul Sanctum"},descendingDark:{quakeLevel:2,name:"Descending Dark",spoiler:"Crystal Peak: Crystallised Mound"},howlingWraiths:{screamLevel:1,name:"Howling Wraiths",spoiler:"Fog Canyon: Overgrown Mound"},abyssShriek:{screamLevel:2,name:"Abyss Shriek",spoiler:"The Abyss"}},WARRIORDREAMS:{xeroDefeated:{name:"Xero",spoiler:"Resting Grounds"},noEyesDefeated:{name:"No Eyes",spoiler:"Greenpath: Stone Sanctuary"},elderHuDefeated:{name:"Elder Hu",spoiler:"Fungal Wastes"},aladarSlugDefeated:{name:"Gorb",spoiler:"Howling Cliffs"},mumCaterpillarDefeated:{name:"Marmu",spoiler:"Queen's Gardens"},galienDefeated:{name:"Galien",spoiler:"Deepnest"},markothDefeated:{name:"Markoth",spoiler:"Kingdom's Edge, requires Shade Cloak"}},GRIMMTROUPE:{gotCharm_37:{name:"Charm #37 Sprintmaster",spoiler:"Sly: 400 Geo + Shopkeeper's Key"},gotCharm_38:{name:"Charm #38 Dreamshield",spoiler:"Resting Grounds"},gotCharm_39:{name:"Charm #39 Weaversong",spoiler:"Deepnest: Weaver's Den"},gotCharm_40:{name:"Charm #40 Grimmchild / Carefree Melody",spoiler:"Dirtmouth"},killedGrimm:{name:"Troupe Leader Grimm",spoiler:"Dirtmouth"}},LIFEBLOOD:{killedHiveKnight:{name:"Hive Knight",spoiler:"The Hive"}},GODMASTER_DOORS:{pantheonMaster:{name:"#1 Pantheon of the Master",spoiler:"Godhome"},pantheonArtist:{name:"#2 Pantheon of the Artist",spoiler:"Godhome"},pantheonSage:{name:"#3 Pantheon of the Sage",spoiler:"Godhome"},pantheonKnight:{name:"#4 Pantheon of the Knight",spoiler:"Godhome"}},GODMASTER:{hasGodfinder:{name:"Godtuner",spoiler:"Junk Pit, requires Simple Key"}},ESSENTIAL:{grubsCollected:{name:"Grubs Rescued",spoiler:"out of 46 total",max:46},dreamOrbs:{name:"Essence Collected",spoiler:"Dream Nail (2400 for completion)",max:2400},stationsOpened:{name:"Stag Stations opened",spoiler:"out of 10 total",max:10},fountainGeo:{name:"Geo in Fountain",spoiler:"Ancient Basin: 3000 Geo maximum",max:3e3},slyRescued:{name:"Sly Rescued",spoiler:"Forgotten Crossroads, near Gruz Mother"},brettaRescued:{name:"Bretta Rescued",spoiler:"Fungal Wastes, near Dashmaster charm statue"},hasLantern:{name:"Lumafly Lantern",spoiler:"Sly: 1800 Geo"},shopkeeperKey:{name:"Shopkeeper's Key",spoiler:"Crystal Peak"},elegantKey:{name:"Elegant Key",spoiler:"Sly: 800 Geo + Shopkeeper's Key"},loveKey:{name:"Love Key",spoiler:"Queen's Gardens, near Fungal Wastes"},slySimpleKey:{name:"Simple Key #1",spoiler:"Sly: 950 Geo"},simpleKeyCityOfTears:{name:"Simple Key #2",spoiler:"City of Tears"},simpleKeyAncientBasin:{name:"Simple Key #3",spoiler:"Ancient Basin"},gotLurkerKey:{name:"Simple Key #4",spoiler:"Kingdom's Edge: Colosseum of Fools"},paleOreAncientBasin:{name:"Pale Ore #1",spoiler:"Ancient Basin"},paleOreSeer:{name:"Pale Ore #2",spoiler:"Seer: 300 Essence"},paleOreCrystalPeak:{name:"Pale Ore #3",spoiler:"Crystal Peak: Hallownest's Crown"},paleOreDeepnest:{name:"Pale Ore #4",spoiler:"Deepnest, Nosk reward"},paleOreGrubfather:{name:"Pale Ore #5",spoiler:"Grubfather: 31 Grubs rescued"},paleOreColosseum:{name:"Pale Ore #6",spoiler:"Colosseum of Fools: Trial of the Conqueror"},hasTramPass:{name:"Tram Pass",spoiler:"Deepnest, Failed Tramway"},nightmareLanternLit:{name:"Nightmare Lantern Lit",spoiler:"Howling Cliffs, corpse of a large bug"}},GRUBS_LIST:["Crossroads_35","Crossroads_03","Crossroads_05","Crossroads_48","Crossroads_31","Fungus1_06","Fungus1_07","Fungus1_21","Fungus1_28","Fungus2_18","Ruins1_05","Mines_04","Mines_03","Mines_31","Mines_19","Ruins1_32","RestingGrounds_10","Ruins_House_01","Mines_35","Mines_16","Waterways_04","Waterways_13","Abyss_19","Abyss_17","Mines_24","Fungus1_13","Fungus3_47","Fungus3_10","Fungus3_48","Fungus3_22","Ruins2_07","Ruins2_11","Ruins2_11","Ruins2_11","Deepnest_East_11","Deepnest_East_14","Fungus2_20","Ruins2_03","Deepnest_36","Deepnest_03","Deepnest_31","Deepnest_39","Deepnest_Spider_Town","Waterways_14","Hive_03","Hive_04"],ACHIEVEMENTS:{areaMaps:{name:"Area Maps",spoiler:"Cornifer and Iselda (out of 13)",max:13,list:["mapCrossroads","mapGreenpath","mapFogCanyon","mapRoyalGardens","mapFungalWastes","mapCity","mapWaterways","mapMines","mapDeepnest","mapCliffs","mapOutskirts","mapRestingGrounds","mapAbyss"]},journalEntriesCompleted:{name:"Creatures Encountered",spoiler:"Hunter's Journal (164 max)",max:164},journalNotesCompleted:{name:"Hunter Notes Completed",spoiler:"Hunter's Journal (164 max)",max:164},hasJournal:{name:"Hunter's Journal",spoiler:"Greenpath: Hunter"},hasHuntersMark:{name:"Hunter's Mark",spoiler:"Greenpath: Hunter"},killedPrayerSlug:{name:"Journal: Maggot",spoiler:"Forgotten Crossroads: False Knight secret room"},killedOrangeScuttler:{name:"Journal: Lightseed",spoiler:"Infected Crossroads"},killedPigeon:{name:"Journal: Maskfly",spoiler:"Greenpath, Queen's Gardens"},killedLazyFlyer:{name:"Journal: Aluba",spoiler:"Lake of Unn, Queen's Gardens (near White Lady)"},killedAcidFlyer:{name:"Journal: Duranda",spoiler:"Greenpath: Nailmaster Sheo's tent path"},killedAcidWalker:{name:"Journal: Durandoo",spoiler:"Greenpath, Queen's Gardens"},killedPlantShooter:{name:"Journal: Gulka",spoiler:"Greenpath: west of Stone Sanctuary"},killedMushroomTurret:{name:"Journal: Sporg",spoiler:"Fungal Wastes"},killedZapBug:{name:"Journal: Charged Lumafly",spoiler:"Fog Canyon: Teacher's Archives (tank)"},killedCrystalCrawler:{name:"Journal: Crystal Crawler",spoiler:"Crystal Peak"},killedGorgeousHusk:{name:"Journal: Gorgeous Husk",spoiler:"City of Tears: secret room"},killedWorm:{name:"Journal: Goam",spoiler:"Infected Crossroads: near Fungal Wastes entrance"},killedBigCentipede:{name:"Journal: Garpede",spoiler:"Deepnest: east of Hot Spring"},killedAbyssTendril:{name:"Journal: Void Tendrils",spoiler:"The Abyss: secret room"},killedPaleLurker:{name:"Journal: Pale Lurker",spoiler:"Colosseum of Fools: secret area"},falseKnightDreamDefeated:{name:"Failed Champion",spoiler:"Forgotten Crossroads"},mageLordDreamDefeated:{name:"Soul Tyrant",spoiler:"City of Tears: Soul Sanctum"},infectedKnightDreamDefeated:{name:"Lost Kin",spoiler:"Ancient Basin"},whiteDefenderDefeated:{name:"White Defender",spoiler:"Royal Waterways"},greyPrinceDefeated:{name:"Grey Prince Zote",spoiler:"Dirtmouth: Bretta's Room (per save choice)"},killedHollowKnight:{name:"Hollow Knight",spoiler:"Forgotten Crossroads: Black Egg Temple"},salubraBlessing:{name:"Salubra's Blessing",spoiler:"Salubra: 800 Geo + all 40 Charms found"},gotShadeCharm:{name:"Void Heart",spoiler:"Kingsoul + Birthplace"},killedFinalBoss:{name:"Radiance",spoiler:"Forgotten Crossroads: Black Egg Temple"},bossDoorStateTier5:{name:"Embrace the Void",spoiler:"Godhome: Pantheon of Hallownest"},zoteStatus:{name:"Zote Status",nameNeglect:"Zote Choice: Neglect",nameRivalry:"Zote Choice: Rivalry",nameTrappedVengefly:"Zote Status: Vengefly",nameNotRescuedVengefly:"Zote Status: Greenpath",nameTrappedDeepnest:"Zote Status: Deepnest",nameColosseum:"Zote Status: Colosseum of Fools",spoiler:"One achievement per save file",spoilerNeglect:"Left Zote to die",spoilerRivalry:"Defeated Zote in the Colosseum of Fools",spoilerTrappedVengefly:"Greenpath, defeat Vengefly King",spoilerNotRescuedVengefly:"Check what happened with Zote",spoilerTrappedDeepnest:"Deepnest, free from cobwebs",spoilerColosseum:"Trial of the Warrior"},nailsmithStatus:{name:"Nailsmith Status",nameHappyCouple:"Nailsmith Choice: Happy Couple",namePurity:"Nailsmith Choice: Purity",nameSheoHutWaiting:"Nailsmith Status: Sheo",nameUpgradeNail:"Nailsmith Status: Waiting",spoiler:"One achievement per save file",spoilerHappyCouple:"Found a new calling",spoilerPurity:"Slain with Pure Nail",spoilerSheoHutWaiting:"Waiting at Sheo's Hut",spoilerUpgradeNail:"Upgrade Nail to Pure Nail"},mrMushroomState:{name:"Mr Mushroom",spoiler1:"Fungal Wastes, near Cornifer",spoiler2:"Kingdom's Edge, near Isma's Grove",spoiler3:"Deepnest, near Galien",spoiler4:"Howling Cliffs, near Nailmaster Mato",spoiler5:"Ancient Basin, near Monarch Wings",spoiler6:"Fog Canyon, near Overgrown Mound",spoiler7:"King's Pass, game starting location"}},STATISTICS:{nailDamage:{name:"Nail Damage",spoiler:"Nailsmith upgrades, City of Tears",max:21},charmSlots:{name:"Charm Notches",spoiler:"out of 11 total",max:11},whisperingRoots:{name:"Whispering Roots completed",spoiler:"Dream Nail (out of 15)",max:15},relicsWandererJournal:{name:"Relic #1 found total",nameHeld:"trinket1",nameSold:"soldTrinket1",spoiler:"Wanderer's Journal (out of 14)",max:14},relicsHallownestSeal:{name:"Relic #2 found total",nameHeld:"trinket2",nameSold:"soldTrinket2",spoiler:"Hallownest Seal (out of 17)",max:17},relicsKingsIdol:{name:"Relic #3 found total",nameHeld:"trinket3",nameSold:"soldTrinket3",spoiler:"King's Idol (out of 8)",max:8},relicsArcaneEgg:{name:"Relic #4 found total",nameHeld:"trinket4",nameSold:"soldTrinket4",spoiler:"Arcane Egg (4 max, 1 missable)",max:4},geoRocks:{name:"Geo Rocks",spoiler:"Unbroken/Broken/Discovered Total"},geoPool:{name:"Shade Geo",spoiler:"Amount of Geo the Shade is currently holding",min:0},rancidEggs:{name:"Rancid Eggs",spoiler:"Find: Hallownest, Buy: Sly, Tuk"},xunFlowerBrokeTimes:{name:"Delicate Flowers broken",spoiler:"Resting Grounds: Grey Mourner"},notchShroomOgres:{name:"Charm Notch #1",spoiler:"Fungal Wastes: Shroom Ogres room"},salubraNotch1:{name:"Charm Notch #2",spoiler:"Salubra: 120 Geo + 5 Charms found"},salubraNotch2:{name:"Charm Notch #3",spoiler:"Salubra: 500 Geo + 10 Charms found"},salubraNotch3:{name:"Charm Notch #4",spoiler:"Salubra: 900 Geo + 18 Charms found"},salubraNotch4:{name:"Charm Notch #5",spoiler:"Salubra: 1400 Geo + 25 Charms found"},colosseumBronzeCompleted:{name:"Charm Notch #6",spoiler:"Colosseum of Fools: Trial of the Warrior"},notchFogCanyon:{name:"Charm Notch #7",spoiler:"Fog Canyon: explosive eggs room"},gotGrimmNotch:{name:"Charm Notch #8",spoiler:"Dirtmouth: Troupe Leader Grimm"},hasDreamGate:{name:"Dream Gate",spoiler:"Seer: 900 Essence"},fragileGreed_unbreakable:{name:"Unbreakable Greed",spoiler:"Divine: Fragile Greed + 9000 Geo"},fragileHealth_unbreakable:{name:"Unbreakable Heart",spoiler:"Divine: Fragile Heart + 12000 Geo"},fragileStrength_unbreakable:{name:"Unbreakable Strength",spoiler:"Divine: Fragile Strength + 15000 Geo"},killedMenderBug:{name:"Journal: Menderbug",spoiler:"Forgotten Crossroads + destroy sign"},killedBindingSeal:{name:"Journal: Seal of Binding",spoiler:"White Palace: Path of Pain completion"},killedGodseekerMask:{name:"Journal: Weathered Mask",spoiler:"Godhome: Land of Storms"},killedVoidIdol_1:{name:"Journal: Void Idol Attuned",spoiler:"Godhome: Hall of Gods, defeat all"},killedVoidIdol_2:{name:"Journal: Void Idol Ascended",spoiler:"Godhome: Hall of Gods, defeat all"},killedVoidIdol_3:{name:"Journal: Void Idol Radiant",spoiler:"Godhome: Hall of Gods, defeat all"},whiteDefenderDefeats:{name:"White Defender times defeated",spoiler:"Royal Waterways (5 max)",max:5},greyPrinceDefeats:{name:"Grey Prince Zote times defeated",spoiler:"Dirtmouth (10 max)",max:10},whitePalaceSecretRoomVisited:{name:"White Palace Secret Room visited",spoiler:"Help identify this room!"},killsBindingSeal:{name:"Path of Pain",spoiler:"White Palace: main secret area"}}},o={Tutorial_01:"King's_Pass",Town:"Dirtmouth",Room_shop:"Sly",Room_Sly_Storeroom:"Sly_Basement",Room_Town_Stag_Station:"Dirtmouth_Stag",Room_mapper:"Iselda",Room_Bretta:"Bretta",Room_Bretta_Basement:"Bretta_Basement",Room_Ouiji:"Jiji",Room_Jinn:"Jinn",Room_Tram_RG:"Upper_Tram",Room_Tram:"Lower_Tram",Crossroads_01:"Crossroads_Well",Crossroads_02:"Crossroads_Outside_Temple",Crossroads_03:"Crossroads_Outside_Stag",Crossroads_04:"Crossroads_Gruz_Mother",Crossroads_05:"Crossroads_Central_Grub",Crossroads_06:"Crossroads_Outside_Mound",Crossroads_07:"Crossroads_Gruzzer",Crossroads_08:"Crossroads_Aspid_Arena",Crossroads_09:"Crossroads_Mawlek_Boss",Crossroads_10:"Crossroads_False_Knight_Arena",Crossroads_11_alt:"Crossroads_Greenpath_Entrance",Crossroads_12:"Crossroads_Corridor_to_Acid_Grub",Crossroads_13:"Crossroads_Goam_Mask_Shard",Crossroads_14:"Crossroads_Outside_Myla",Crossroads_15:"Crossroads_Corridor_to_Tram",Crossroads_16:"Crossroads_Above_Lever",Crossroads_18:"Crossroads_Fungal_Entrance",Crossroads_19:"Crossroads_Before_Gruz_Mother",Crossroads_21:"Crossroads_Outside_False_Knight",Crossroads_22:"Crossroads_Glowing_Womb_Arena",Crossroads_25:"Crossroads_Mawlek_Entrance",Crossroads_27:"Crossroads_Outside_Tram",Crossroads_30:"Crossroads_Hot_Spring",Crossroads_31:"Crossroads_Spike_Grub",Crossroads_33:"Crossroads_Cornifer",Crossroads_35:"Crossroads_Acid_Grub",Crossroads_36:"Crossroads_Mawlek_Middle",Crossroads_37:"Crossroads_Vessel_Fragment",Crossroads_38:"Crossroads_Grubfather",Crossroads_39:"Crossroads_Corridor_Right_of_Temple",Crossroads_40:"Crossroads_Corridor_Right_of_Central_Grub",Crossroads_42:"Crossroads_Right_Of_Mask_Shard",Crossroads_43:"Crossroads_Corridor_to_Elevator",Crossroads_45:"Crossroads_Myla",Crossroads_46:"Crossroads_Tram",Crossroads_47:"Crossroads_Stag",Crossroads_48:"Crossroads_Guarded_Grub",Crossroads_49:"Crossroads_Elevator",Crossroads_52:"Crossroads_Goam_Journal",Crossroads_ShamanTemple:"Crossroads_Ancestral_Mound",Room_Mender_House:"Crossroads_Menderbug",Room_Charm_Shop:"Crossroads_Salubra",Room_ruinhouse:"Crossroads_Rescue_Sly",Room_temple:"Crossroads_Inside_Temple",Fungus1_01:"Greenpath_Entrance",Fungus1_01b:"Greenpath_Waterfall_Bench",Fungus1_02:"Greenpath_First_Hornet_Sighting",Fungus1_03:"Greenpath_Storerooms",Fungus1_04:"Greenpath_Hornet",Fungus1_05:"Greenpath_Outside_Thorns",Fungus1_06:"Greenpath_Cornifer",Fungus1_07:"Greenpath_Outside_Hunter",Fungus1_08:"Greenpath_Hunter",Fungus1_09:"Greenpath_Sheo_Gauntlet",Fungus1_10:"Greenpath_Acid_Bridge",Fungus1_11:"Greenpath_Above_Fog_Canyon",Fungus1_12:"Greenpath_MMC_Corridor",Fungus1_13:"Greenpath_Whispering_Root",Fungus1_14:"Greenpath_Thorns_of_Agony",Fungus1_15:"Greenpath_Outside_Sheo",Fungus1_16_alt:"Greenpath_Stag",Fungus1_17:"Greenpath_Charger_Corridor",Fungus1_19:"Greenpath_Above_Sanctuary_Bench",Fungus1_20_v02:"Greenpath_Vengefly_King",Fungus1_21:"Greenpath_Outside_Hornet",Fungus1_22:"Greenpath_Outside_Stag",Fungus1_25:"Greenpath_Corridor_to_Unn",Fungus1_26:"Greenpath_Lake_Of_Unn",Fungus1_29:"Greenpath_Massive_Moss_Charger",Fungus1_30:"Greenpath_Below_Toll_Bench",Fungus1_31:"Greenpath_Toll",Fungus1_32:"Greenpath_Moss_Knight_Arena",Fungus1_34:"Greenpath_Stone_Sanctuary_Entrance",Fungus1_35:"Greenpath_Stone_Sanctuary",Fungus1_36:"Greenpath_Stone_Sanctuary_Mask_Shard",Fungus1_37:"Greenpath_Sanctuary_Bench",Fungus1_Slug:"Greenpath_Unn",Room_nailmaster_02:"Greenpath_Sheo",Room_Slug_Shrine:"Greenpath_Unn_Bench",Deepnest_01:"Fungal_Deepnest_Fall",Fungus2_01:"Fungal_Queen's_Station",Fungus2_02:"Fungal_Queen's_Stag",Fungus2_03:"Fungal_Outside_Queen's",Fungus2_04:"Fungal_Below_Ogres",Fungus2_05:"Fungal_Shrumal_Ogres",Fungus2_06:"Fungal_Outside_Leg_Eater",Fungus2_07:"Fungal_Shrumal_Warrior_Acid_Bridge",Fungus2_08:"Fungal_Outside_Elder_Hu",Fungus2_09:"Fungal_Cloth_Corridor",Fungus2_10:"Fungal_Left_Of_Pilgrim's_Way",Fungus2_11:"Fungal_Right_of_Bouncy_Grub",Fungus2_12:"Fungal_Mantis_Corridor",Fungus2_13:"Fungal_Bretta_Bench",Fungus2_14:"Fungal_Mantis_Village",Fungus2_15:"Fungal_Mantis_Lords",Fungus2_17:"Fungal_Above_Mantis_Village",Fungus2_18:"Fungal_Cornifer",Fungus2_19:"Fungal_Right_Of_Spore_Shroom",Fungus2_20:"Fungal_Spore_Shroom",Fungus2_21:"Fungal_Pilgrim's_Way",Fungus2_23:"Fungal_Dashmaster",Fungus2_26:"Fungal_Leg_Eater",Fungus2_28:"Fungal_Shrumal_Warrior_Loop",Fungus2_29:"Fungal_Core_Upper",Fungus2_30:"Fungal_Core_Lower",Fungus2_31:"Fungal_Mantis_Rewards",Fungus2_32:"Fungal_Elder_Hu",Fungus2_33:"Fungal_Leg_Eater_Root",Fungus2_34:"Fungal_Willoh",Fungus3_01:"Fog_Upper_West_Tall",Fungus3_02:"Fog_Lower_West_Tall",Fungus3_03:"Fog_Queen's_Gardens_Acid_Entrance",Fungus3_24:"Fog_Corridor_to_Overgrown_Mound",Fungus3_25:"Fog_Cornifer",Fungus3_25b:"Fog_Corridor_to_Cornifer",Fungus3_26:"Fog_East_Tall",Fungus3_27:"Fog_Corridor_to_Archives",Fungus3_28:"Fog_Charm_Notch",Fungus3_30:"Fog_Lifeblood",Fungus3_35:"Fog_Millibelle",Fungus3_44:"Fog_Overgrown_Mound_Entrance",Fungus3_47:"Fog_Archives_Entrance",Fungus3_archive:"Fog_Archives_Bench",Fungus3_archive_02:"Fog_Uumuu_Arena",Room_Fungus_Shaman:"Fog_Overgrown_Mound",Cliffs_01:"Cliffs_Main",Cliffs_02:"Cliffs_Gorb",Cliffs_03:"Cliffs_Stag_Nest",Cliffs_04:"Cliffs_Joni's_Dark",Cliffs_05:"Cliffs_Joni's_Pickup",Cliffs_06:"Cliffs_Grimm_Lantern",Fungus1_28:"Cliffs_Baldur's_Shell",Room_nailmaster:"Cliffs_Mato",Mines_01:"Crystal_Dive_Entrance",Mines_02:"Crystal_Dark_Entrance",Mines_03:"Crystal_Spike_Grub",Mines_04:"Crystal_Entrance_Conveyors",Mines_05:"Crystal_Above_Spike_Grub",Mines_06:"Crystal_Deep_Focus_Gauntlet",Mines_07:"Crystal_Dark_Room",Mines_10:"Crystal_Elevator_Entrance",Mines_11:"Crystal_Left_Of_Guardian",Mines_13:"Crystal_Top_Corridor",Mines_16:"Crystal_Mimic",Mines_17:"Crystal_Corridor_to_Spike_Grub",Mines_18:"Crystal_Guardian_Bench",Mines_19:"Crystal_Grub_Crushers",Mines_20:"Crystal_East_Tall",Mines_23:"Crystal_Crown_Whispering_Root",Mines_24:"Crystal_Crown_Grub",Mines_25:"Crystal_Crown_Climb",Mines_28:"Crystal_Outside_Mound",Mines_29:"Crystal_Dark_Bench",Mines_30:"Crystal_Cornifer",Mines_31:"Crystal_Crystal_Heart_Gauntlet",Mines_32:"Crystal_Enraged_Guardian_Arena",Mines_33:"Crossroads_Peak_Dark_Toll",Mines_34:"Crystal_Crown_Peak",Mines_35:"Crystal_Mound",Mines_36:"Crystal_Deep_Focus",Mines_37:"Crystal_Chest_Crushers",Abyss_02:"Basin_Broken_Bridge",Abyss_03:"Basin_Tram",Abyss_04:"Basin_Fountain",Abyss_05:"Basin_Palace_Grounds",Abyss_17:"Basin_Cloth",Abyss_18:"Basin_Corridor_to_Broken_Vessel",Abyss_19:"Basin_Broken_Vessel_Grub",Abyss_20:"Basin_Simple_Key",Abyss_21:"Basin_Monarch_Wings",Abyss_22:"Basin_Hidden_Station",Abyss_06_Core:"Abyss_Core",Abyss_08:"Abyss_Lifeblood_Core",Abyss_09:"Abyss_Lighthouse_Climb",Abyss_10:"Abyss_Shade_Cloak",Abyss_12:"Abyss_Shriek",Abyss_15:"Abyss_Birthplace",Abyss_16:"Abyss_Corridor_to_Lighthouse",Abyss_Lighthouse_room:"Abyss_Lighthouse",Crossroads_46b:"Grounds_Tram",Crossroads_50:"Grounds_Blue_Lake",RestingGrounds_02:"Grounds_Xero",RestingGrounds_04:"Grounds_Dream_Nail_Entrance",RestingGrounds_05:"Grounds_Whispering_Root",RestingGrounds_06:"Grounds_Corridor_Below_Xero",RestingGrounds_07:"Grounds_Seer",RestingGrounds_08:"Grounds_Spirit's_Glade",RestingGrounds_09:"Grounds_Stag",RestingGrounds_10:"Grounds_Crypts",RestingGrounds_12:"Grounds_Outside_Grey_Mourner",RestingGrounds_17:"Grounds_Dreamshield",Room_Mansion:"Grounds_Grey_Mourner",Ruins2_10:"Grounds_Elevator",Abyss_03_c:"Edge_Tram",Deepnest_East_01:"Edge_Left_Of_Hive",Deepnest_East_02:"Edge_Above_Hive",Deepnest_East_03:"Edge_Entrance",Deepnest_East_04:"Edge_Bardoon",Deepnest_East_06:"Edge_Outside_Oro",Deepnest_East_07:"Edge_Whispering_Root",Deepnest_East_08:"Edge_Great_Hopper_Idol",Deepnest_East_09:"Edge_Corridor_Outside_Colosseum",Deepnest_East_10:"Edge_Markoth_Arena",Deepnest_East_11:"Edge_Below_Camp_Bench",Deepnest_East_12:"Edge_Hornet_Sentinel_Corridor",Deepnest_East_13:"Edge_Camp_Bench",Deepnest_East_14:"Edge_Below_Oro",Deepnest_East_14b:"Edge_Quick_Slash",Deepnest_East_15:"Edge_Lifeblood",Deepnest_East_16:"Edge_Oro_Scarecrow",Deepnest_East_17:"Edge_420_Geo_Rock",Deepnest_East_18:"Edge_Outside_Markoth",Deepnest_East_Hornet:"Edge_Hornet_Sentinel_Arena",GG_Lurker:"Edge_Pale_Lurker",Room_Colosseum_01:"Edge_Colo_Entrance",Room_Colosseum_02:"Edge_Colo_Bench",Room_Colosseum_Bronze:"Edge_Colo_1_Arena",Room_Colosseum_Gold:"Edge_Colo_3_Arena",Room_Colosseum_Silver:"Edge_Colo_2_Arena",Room_Colosseum_Spectate:"Edge_Colo_Spectate",Room_nailmaster_03:"Edge_Oro",Room_Wyrm:"Edge_Cast-Off_Shell",Abyss_01:"City_Broken_Elevator",Crossroads_49b:"City_Left_Elevator",Room_nailsmith:"City_Nailsmith",Ruins_Bathhouse:"City_Pleasure_House_Bench",Ruins_Elevator:"City_Pleasure_House_Elevator",Ruins_House_01:"City_Guarded_Grub",Ruins_House_02:"City_Gorgeous_Husk",Ruins_House_03:"City_Emilitia",Ruins1_01:"City_Pilgrim's_Entrance",Ruins1_02:"City_Quirrel_Bench",Ruins1_03:"City_Rafters",Ruins1_04:"City_Outside_Nailsmith",Ruins1_05:"City_Grub_Above_Lemm",Ruins1_05b:"City_Lemm",Ruins1_05c:"City_Egg_Above_Lemm",Ruins1_06:"City_Corridor_to_Storerooms",Ruins1_09:"City_Soul_Twister_Arena",Ruins1_17:"City_Whispering_Root",Ruins1_18:"City_Corridor_to_Spire",Ruins1_23:"City_Sanctum_Entrance",Ruins1_24:"City_Soul_Master_Arena",Ruins1_25:"City_Sanctum_East_Elevators",Ruins1_27:"City_Hollow_Knight_Fountain",Ruins1_28:"City_Storerooms",Ruins1_29:"City_Storerooms_Stag",Ruins1_30:"City_Sanctum_Spell_Twister",Ruins1_31:"City_Toll_Bench",Ruins1_31b:"City_Shade_Soul_Arena",Ruins1_32:"City_Soul_Master_Rewards",Ruins2_01:"City_Spire_Second_Floor",Ruins2_01_b:"City_Spire_First_Floor",Ruins2_03:"City_Spire_Fourth_Floor",Ruins2_03b:"City_Spire_Third_Floor",Ruins2_04:"City_Right_Hub",Ruins2_05:"City_Above_King's",Ruins2_06:"City_King's_Station",Ruins2_07:"City_Grub_Below_King's",Ruins2_08:"City_King's_Stag",Ruins2_09:"City_King's_Vessel_Fragment",Ruins2_10b:"City_Right_Elevator",Ruins2_11:"City_Collector_Arena",Ruins2_11_b:"City_Tower_of_Love",Ruins2_Watcher_Room:"City_Lurien_Elevator",Hive_01:"Hive_Entrance",Hive_02:"Hive_Whispering_Root",Hive_03:"Hive_Outside_Grub",Hive_03_c:"Hive_Outside_Shortcut",Hive_04:"Hive_Mask_Shard",Hive_05:"Hive_Knight_Arena",GG_Pipeway:"Waterways_Flukemunga_Corridor",GG_Waterways:"Waterways_Junk_Pit",Room_GG_Shortcut:"Waterways_Fluke_Hermit",Waterways_01:"Waterways_Entrance",Waterways_02:"Waterways_Main_Bench",Waterways_03:"Waterways_Tuk",Waterways_04:"Waterways_Hidden_Grub",Waterways_04b:"Waterways_Mask_Shard",Waterways_05:"Waterways_Dung_Defender_Arena",Waterways_06:"Waterways_Corridor_to_Broken_Elevator",Waterways_07:"Waterways_Left_Of_Isma's_Grove",Waterways_08:"Waterways_Outside_Flukemarm",Waterways_09:"Waterways_Cornifer",Waterways_12:"Waterways_Flukemarm_Arena",Waterways_13:"Waterways_Isma's_Grove",Waterways_14:"Waterways_Edge_Acid_Corridor",Waterways_15:"Waterways_Dung_Defender's_Cave",Abyss_03_b:"Deepnest_Tram",Deepnest_01b:"Deepnest_Upper_Cornifer",Deepnest_02:"Deepnest_Outside_Mimics",Deepnest_03:"Deepnest_Left_Of_Hot_Spring",Deepnest_09:"Deepnest_Distant_Village_Stag",Deepnest_10:"Deepnest_Distant_Village",Deepnest_14:"Deepnest_Failed_Tramway_Bench",Deepnest_16:"Deepnest_After_Lower_Cornifer",Deepnest_17:"Deepnest_Garpede_Corridor_Below_Cornifer",Deepnest_26:"Deepnest_Failed_Tramway_Lifeblood",Deepnest_26b:"Deepnest_Tram_Pass",Deepnest_30:"Deepnest_Hot_Spring",Deepnest_31:"Deepnest_Nosk_Corridor",Deepnest_32:"Deepnest_Nosk_Arena",Deepnest_33:"Deepnest_Zote_Arena",Deepnest_34:"Deepnest_First_Devout",Deepnest_35:"Deepnest_Outside_Galien",Deepnest_36:"Deepnest_Mimics",Deepnest_37:"Deepnest_Corridor_to_Tram",Deepnest_38:"Deepnest_Vessel_Fragment",Deepnest_39:"Deepnest_Whispering_Root",Deepnest_40:"Deepnest_Galien_Arena",Deepnest_41:"Deepnest_Midwife",Deepnest_42:"Deepnest_Outside_Mask_Maker",Deepnest_44:"Deepnest_Sharp_Shadow",Deepnest_45_v02:"Deepnest_Weaver's_Den",Deepnest_Spider_Town:"Deepnest_Beast's_Den",Fungus2_25:"Deepnest_Lower_Cornifer",Room_Mask_Maker:"Deepnest_Mask_Maker",Room_spider_small:"Deepnest_Brumm",Deepnest_43:"Gardens_Corridor_To_Deepnest",Fungus1_23:"Gardens_First_Loodle_Corridor",Fungus1_24:"Gardens_Cornifer",Fungus3_04:"Gardens_Before_Petra_Arena",Fungus3_05:"Gardens_Petra_Arena",Fungus3_08:"Gardens_Lower_Petra_Corridor",Fungus3_10:"Gardens_Main_Arena",Fungus3_11:"Gardens_Whispering_Root",Fungus3_13:"Gardens_Outside_Stag",Fungus3_21:"Gardens_Corridor_to_Traitor_Lord",Fungus3_22:"Gardens_Upper_Grub",Fungus3_23:"Gardens_Traitor_Lord_Arena",Fungus3_34:"Gardens_Entrance",Fungus3_39:"Gardens_Moss_Prophet",Fungus3_49:"Gardens_Traitor's_Child's_Grave",Fungus3_40:"Gardens_Gardens_Stag",Fungus3_48:"Gardens_Outside_White_Lady",Fungus3_50:"Gardens_Toll_Bench",Room_Queen:"Gardens_White_Lady",White_Palace_01:"Palace_Entrance",White_Palace_02:"Palace_First_Mold",White_Palace_03_hub:"Palace_Hub",White_Palace_04:"Palace_Left_Of_Hub",White_Palace_05:"Palace_Saw_Room",White_Palace_06:"Palace_Balcony",White_Palace_07:"Palace_Lamp_Pogo",White_Palace_08:"Palace_Workshop",White_Palace_09:"Palace_Throne",White_Palace_11:"Palace_Outside",White_Palace_12:"Palace_Spike_Drop",White_Palace_13:"Palace_Thorn_Jump",White_Palace_14:"Palace_Hell_Corridor",White_Palace_15:"Palace_Caged_Lever",White_Palace_16:"Palace_Saw_Climb",White_Palace_17:"POP_Lever",White_Palace_18:"POP_Entrance",White_Palace_19:"POP_Vertical",White_Palace_20:"POP_Final",Dream_Final_Boss:"Egg_Radiance",Room_Final_Boss_Atrium:"Egg_Bench",Room_Final_Boss_Core:"Egg_Hollow_Knight",Grimm_Divine:"Grimm_Divine",Grimm_Main_Tent:"Grimm_Tent",Grimm_Nightmare:"Grimm_NKG",Dream_01_False_Knight:"Dream_Failed_Champion",Dream_02_Mage_Lord:"Dream_Soul_Tyrant",Dream_03_Infected_Knight:"Dream_Lost_Kin",Dream_04_White_Defender:"Dream_White_Defender",Dream_Abyss:"Dream_Abyss",Dream_Backer_Shrine:"Dream_Outside_Shrine",Dream_Guardian_Hegemol:"Dream_Herrah",Dream_Guardian_Lurien:"Dream_Lurien",Dream_Guardian_Monomon:"Dream_Monomon",Dream_Mighty_Zote:"Dream_Grey_Prince_Zote",Dream_Nailcollection:"Dream_Nail",Dream_Room_Believer_Shrine:"Dream_Shrine_of_Believers",GG_Atrium:"Godhome_Atrium",GG_Atrium_Roof:"Godhome_Roof",GG_Blue_Room:"Godhome_Lifeblood",GG_Land_Of_Storms:"Godhome_Land_Of_Storms",GG_Mighty_Zote:"GG_Enchanting_Vigorous_Diligent_Overwhelming_Gorgeous_Passionate_Terrifying_Beautiful_Zote",GG_Unlock_Wastes:"Godhome_Godtuner",GG_Workshop:"Godhome_Hall_Of_Gods"};var t,n,i=a(943),l=a(668),A=a(696),u=a(391),d=a(249),h=a(402),m=a(881),c=a(613),g="",_="",p="",f="
",C=g,S=["
"].join("\n"),y=["
"].join("\n"),D=["
"].join("\n"),k="";function w(e){var r,a,o;return t=new Date,!(!e.hasOwnProperty("playerData")||(r=e.playerData,!e.hasOwnProperty("sceneData")||(o=e.sceneData,!e.sceneData.hasOwnProperty("persistentBoolItems")||(a=e.sceneData.persistentBoolItems,E(s.DIV_ID),function(e){for(var r in e)e[r].hasOwnProperty("percent")&&(e[r].percent=0)}(s.DIV_ID),F(s.DIV_ID.intro,r.playTime),I(s.DIV_ID.intro,r.completionPercentage),v(s.DIV_ID.intro,f),M(s.DIV_ID.intro,r.maxHealthBase,r.permadeathMode),P(s.DIV_ID.intro,r.maxMP+r.MPReserveMax),H(s.DIV_ID.intro,r.charmSlots,r.charmSlotsFilled),L(s.DIV_ID.intro,r.geo,r.geoPool),K(s.DIV_ID.bosses,s.BOSSES,r),a&&W(s.DIV_ID.bosses,"Battle Scene",s.BOSSES_WORLD,a),K(s.DIV_ID.charms,s.CHARMS,r),K(s.DIV_ID.colosseum,s.COLOSSEUM,r),K(s.DIV_ID.dreamers,s.DREAMERS,r),K(s.DIV_ID.dreamNail,s.DREAMNAIL,r),K(s.DIV_ID.equipment,s.EQUIPMENT,r),function(e,r,a){for(var s=["old","sharpened","channeled","coiled","pure"].map((function(e){return e+"Nail"})),o=0;o<5;o++)a.nailSmithUpgrades>=o?b(e):B(),G(e,r[s[o]].name,r[s[o]].spoiler);e.percent&&e.percent--}(s.DIV_ID.nailUpgrades,s.NAILUPGRADES,r),K(s.DIV_ID.maskShards,s.MASKSHARDS,r),W(s.DIV_ID.maskShards,"Heart Piece",s.MASKSHARDS_WORLD,a),K(s.DIV_ID.nailArts,s.NAILARTS,r),function(e,r,a){for(var s in r)switch(s){case"vengefulSpirit":case"shadeSoul":a.fireballLevel>=r[s].fireballLevel?b(e):B(),G(e,r[s].name,r[s].spoiler);break;case"desolateDive":case"descendingDark":a.quakeLevel>=r[s].quakeLevel?b(e):B(),G(e,r[s].name,r[s].spoiler);break;case"howlingWraiths":case"abyssShriek":a.screamLevel>=r[s].screamLevel?b(e):B(),G(e,r[s].name,r[s].spoiler)}}(s.DIV_ID.spells,s.SPELLS,r),K(s.DIV_ID.vesselFragments,s.VESSELFRAGMENTS,r),W(s.DIV_ID.vesselFragments,"Vessel Fragment",s.VESSELFRAGMENTS_WORLD,a),function(e,r,a){for(var s in r)a[s]>=2?b(e):B(),G(e,r[s].name,r[s].spoiler)}(s.DIV_ID.warriorDreams,s.WARRIORDREAMS,r),K(s.DIV_ID.grimmTroupe,s.GRIMMTROUPE,r),r.grimmChildLevel>=4?b(s.DIV_ID.grimmTroupe):B(),G(s.DIV_ID.grimmTroupe,"Nightmare King Grimm / Banishment","Dirtmouth or Howling Cliffs"),K(s.DIV_ID.lifeblood,s.LIFEBLOOD,r),K(s.DIV_ID.godmaster,s.GODMASTER,r),function(e,r,a){for(var s=["Master","Artist","Sage","Knight"].map((function(e){return"pantheon"+e})),o=0;o<4;o++)!0===a["bossDoorStateTier"+(o+1)].completed?b(e):B(),G(e,r[s[o]].name,r[s[o]].spoiler)}(s.DIV_ID.godmaster,s.GODMASTER_DOORS,r),v(s.DIV_ID.godmaster,f),T(s.DIV_ID.essential,s.ESSENTIAL,r,a),v(s.DIV_ID.essential,f),T(s.DIV_ID.achievements,s.ACHIEVEMENTS,r,a),v(s.DIV_ID.achievements,f),T(s.DIV_ID.statistics,s.STATISTICS,r,a,o),function(e,r,a,s){if(!0===a.killedHollowKnight)return G(e,"","...a successful Knight who doesn't need hints anymore. The Knight explores the world of Hallownest patiently in constant search of its remaining secrets..."),!0;for(var o in r)if(!0!==a[o]){if("fireballLevel"===o){if(a[o]>=1)continue;return G(e,"",r[o].spoiler),!1}if("Crossroads_04"===o){for(var t=!1,n=0,i=s.length;n").concat("intro"===l?t:t+e[l].maxPercent,"%
")}else i="";document.getElementById(s).innerHTML=a+i}}(s.DIV_ID,r.completionPercentage),x(),U(),n=new Date,console.info("HKCheckCompletion() time (ms) =",n-t),0))))}function E(e){document.getElementById("generated").innerHTML="";var r="",a="",s="",o="";for(var t in e)r=e[t].id,a=e[t].h2,s="h2-"+e[t].id,o="
".concat("intro"===t?0:e[t].maxPercent,"%
"),e[t].hasOwnProperty("maxPercent")||(o=""),document.getElementById("generated").innerHTML+="
",document.getElementById(r).innerHTML+="

").concat(a).concat(o,"

")}function G(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unknown Completion Element: ",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Unknown Description Element",o=C,t=["",""];r.length||(t=["",""]);var n=["",""],i=["",""];e===s.DIV_ID.hints&&(n[0]="",o="");var l="";a.length&&r.length&&(l="— "),document.getElementById(e.id).innerHTML+=S+o+t[0]+r+t[1]+n[0]+k+i[0]+l+a+i[1]+n[1]+D}function v(e,r){document.getElementById(e.id).innerHTML+="\n"+r}function b(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";C=_,e&&(e.percent++,"hk-equipment"===e.id&&e.percent++)}function B(){C=g}function R(){C=p}function F(e,r){var a=Math.floor(r),s=Math.floor(a/60%60),o=Math.floor(a/3600),t=Math.floor(a%60);t<10&&(t="0"+t),s<10&&(s="0"+s);var n="Time Played:"+k+""+o+" h "+s+" min "+t+" sec";document.getElementById(e.id).innerHTML+=S+""+n+D}function I(e,r){r>=112?b():B();var a="Game Completion:"+k+""+r+" %"+k+"(out of "+e.maxPercent+" %)";document.getElementById(e.id).innerHTML+=S+C+a+D}function M(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=p,o="Health:",t="",n="health mask image"),A="steel health mask image"),u="";u=a>0?A:n;for(var d=0;d"),o=0,t=r/33;oSoul:"+a+D}function L(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=p,o="Geo:geo symbol image").concat(r,"");a>0&&(o+="\n ".concat(k,"+shade geo symbol image").concat(a,"")),r>0&&a>0&&(o+="".concat(k,"=").concat(k,"").concat(r+a,"")),document.getElementById(e.id).innerHTML+=y+s+o+D}function H(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=0,o=s.overcharmedNotches,t=s.unusedNotches;(o=a-r)<1&&(o=0),(t=r-a)<1&&(t=0),a>r&&(a=r);var n=p,i="Notches:".concat(k),l="",A="notch image"),m="notch image"),c="notch image");if(a>0)for(var g=0;g0)for(var _=0;_0)for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Shiny Item",a=0,s=o.length;a0&&void 0!==arguments[0]?arguments[0]:"",r=0,a=0,s=o.length;a1&&void 0!==arguments[1]?arguments[1]:"unbroken",a=0,s=[];if("unbroken"===r){for(var o=0;o0&&(a++,s.push("#".concat(a," 🏔️ ").concat(t.geoRocks[o].id," 🗺️ ").concat(Q(t.geoRocks[o].sceneName)," ⌨️ ").concat(t.geoRocks[o].sceneName)));if(a){console.groupCollapsed("%cUnbroken Geo Rocks (".concat(a,"):"),"color: #16c60c; font-weight: 700;");for(var n=0,i=s.length;n".concat(n,""),i="".concat(i,"")),c>=r[m].max?b():R();break;case"geoPool":case"rancidEggs":case"xunFlowerBrokeTimes":n+=": "+Math.abs(a[m]),"geoPool"===m&&a[m]>0?R():b();break;case"geoRocks":p=d(C=t.geoRocks.length,"unbroken"),f=d(C,"broken"),n+=": ".concat(p," | ").concat(f," | ").concat(C),b();break;case"shopkeeperKey":!0===a.hasSlykey||!0===a.gaveSlykey?b():B();break;case"elegantKey":!0===a.hasWhiteKey||!0===a.usedWhiteKey?b():B();break;case"loveKey":!0===a.hasLoveKey||!0===a.openedLoveDoor?b():B();break;case"simpleKeyCityOfTears":l("Ruins1_17","Shiny Item")?b():B();break;case"simpleKeyAncientBasin":l("Abyss_20","Shiny Item Stand")?b():B();break;case"paleOreAncientBasin":l("Abyss_17","Battle Scene Ore")?b():B();break;case"paleOreSeer":!0===a.dreamReward2?b():B();break;case"paleOreCrystalPeak":l("Mines_34","Shiny Item Stand")?b():B();break;case"paleOreDeepnest":l("Deepnest_32","Shiny Item Stand")?b():B();break;case"paleOreGrubfather":l("Crossroads_38","Shiny Item Ore")?b():B();break;case"paleOreColosseum":l("Room_Colosseum_Silver","Shiny Item")?b():B();break;case"relicsWandererJournal":case"relicsHallownestSeal":case"relicsKingsIdol":case"relicsArcaneEgg":(_=a[r[m].nameHeld]+a[r[m].nameSold])>=r[m].max?b():R(),n+=": "+_;break;case"bossDoorStateTier5":!0===a[m].completed?b():B();break;case"killsBindingSeal":0==a[m]?b():B();break;case"killedVoidIdol_1":!0===a[m]?b():B(),!1!==a[m]||!0!==a.killedVoidIdol_2&&!0!==a.killedVoidIdol_3||b();break;case"killedVoidIdol_2":!0===a[m]?b():B(),!1===a[m]&&!0===a.killedVoidIdol_3&&b();break;case"greyPrinceDefeated":(!0===a.zoteDead||!1===a.zoteRescuedBuzzer&&!0===a.hasWalljump)&&(n="".concat(n,""),i="".concat(i,"")),!0===a[m]?b():R(),!0===a.zoteRescuedBuzzer&&!1===a[m]&&B();break;case"zoteStatus":B(),!0===a.zoteDead?(n=r[m].nameNeglect,i=r[m].spoilerNeglect,b()):!0===a.killedZote?(n=r[m].nameRivalry,i=r[m].spoilerRivalry,b()):!1===a.zoteRescuedBuzzer?!1===a.hasWalljump?(n=r[m].nameTrappedVengefly,i=r[m].spoilerTrappedVengefly):!0===a.hasWalljump&&(n=r[m].nameNotRescuedVengefly,i=r[m].spoilerNotRescuedVengefly):!0===a.zoteRescuedBuzzer&&(!1===a.zoteRescuedDeepnest?(n=r[m].nameTrappedDeepnest,i=r[m].spoilerTrappedDeepnest):!0===a.zoteRescuedDeepnest&&!1===a.killedZote&&(n=r[m].nameColosseum,i=r[m].spoilerColosseum));break;case"nailsmithStatus":B(),!0===a.nailsmithKilled?(n=r[m].namePurity,i=r[m].spoilerPurity,b()):!0===a.nailsmithConvoArt?(n=r[m].nameHappyCouple,i=r[m].spoilerHappyCouple,b()):!0===a.nailsmithSpared?(n=r[m].nameSheoHutWaiting,i=r[m].spoilerSheoHutWaiting):(n=r[m].nameUpgradeNail,i=r[m].spoilerUpgradeNail);break;case"mrMushroomState":O(e,r[m],a[m]);break;default:!0===a[m]?b():B()}"mrMushroomState"!==m&&G(e,n,i)}}function O(e,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(a>1)for(var s=1;s<=7;s++)a>s?b():B(),G(e,"".concat(r.name," #").concat(s),r["spoiler"+s]);else{B();for(var o=1;o<=7;o++)G(e,"".concat(r.name," #").concat(o),r["spoiler"+o])}}function N(e){E(e),B(),F(e.intro,0),I(e.intro,0),v(e.intro,f),M(e.intro),P(e.intro,99),H(e.intro),L(e.intro),G(e.hints,"",s.HINTS.fireballLevel.spoiler);var r=[s.BOSSES,s.BOSSES_WORLD,s.CHARMS,s.EQUIPMENT,s.NAILARTS,s.MASKSHARDS,s.MASKSHARDS_WORLD,s.VESSELFRAGMENTS,s.VESSELFRAGMENTS_WORLD,s.DREAMERS,s.COLOSSEUM,s.DREAMNAIL,s.WARRIORDREAMS,s.GRIMMTROUPE,s.LIFEBLOOD,s.GODMASTER,s.ESSENTIAL,s.ACHIEVEMENTS,s.STATISTICS],a=[e.bosses,e.bosses,e.charms,e.equipment,e.nailArts,e.maskShards,e.maskShards,e.vesselFragments,e.vesselFragments,e.dreamers,e.colosseum,e.dreamNail,e.warriorDreams,e.grimmTroupe,e.lifeblood,e.godmaster,e.essential,e.achievements,e.statistics];do{for(var o in r[0])"mrMushroomState"!==o&&G(a[0],r[0][o].name,r[0][o].spoiler);a.shift()}while(r.shift());for(var t in s.NAILUPGRADES)G(e.nailUpgrades,s.NAILUPGRADES[t].name,s.NAILUPGRADES[t].spoiler);for(var n in s.SPELLS)G(e.spells,s.SPELLS[n].name,s.SPELLS[n].spoiler);for(var i in G(e.grimmTroupe,"Nightmare King Grimm / Banishment","Dirtmouth or Howling Cliffs"),s.GODMASTER_DOORS)G(e.godmaster,s.GODMASTER_DOORS[i].name,s.GODMASTER_DOORS[i].spoiler);O(e.achievements,s.ACHIEVEMENTS.mrMushroomState),v(e.godmaster,f),v(e.essential,f),v(e.achievements,f),"checked"===localStorage.getItem("hkCheckboxHints")&&(document.getElementById("checkbox-hints").checked=!0),"checked"===localStorage.getItem("hkCheckboxSpoilers")&&(document.getElementById("checkbox-spoilers").checked=!0),x(),U()}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"none",r=document.getElementById("checkbox-hints");switch(e){case"hide":document.getElementById("hk-hints").classList.add("hidden"),r.value="hints-off",r.checked=!1,localStorage.setItem("hkCheckboxHints","unchecked");break;case"show":document.getElementById("hk-hints").classList.remove("hidden"),r.value="hints-on",r.checked=!0,localStorage.setItem("hkCheckboxHints","checked");break;default:!1===r.checked?(document.getElementById("hk-hints").classList.add("hidden"),r.value="hints-off",localStorage.setItem("hkCheckboxHints","unchecked")):(document.getElementById("hk-hints").classList.remove("hidden"),r.value="hints-on",localStorage.setItem("hkCheckboxHints","checked"))}}function U(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"none",r=document.getElementById("checkbox-spoilers"),a=document.querySelectorAll(".spoiler-span"),s=a.length;switch(e){case"hide":for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:o,a=e;return r.hasOwnProperty(e)&&(a=r[e]),a}document.addEventListener("DOMContentLoaded",N(s.DIV_ID)),document.getElementById("save-location-input").addEventListener("click",(function(e){!function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",s=document.getElementById(e.target.id);window.getSelection&&window.getSelection().removeAllRanges(),s.focus(),s.select(),s.setSelectionRange(0,99999),document.execCommand("copy"),a.length&&r.length&&V(r,a)}(e,"save-location-input-tooltip","Copied save file location to clipboard")}),!1),document.getElementById("save-location-input").addEventListener("mouseout",(function(){V("save-location-input-tooltip","Click once to copy to clipboard")}),!1),window.HKReadTextArea=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";N(s.DIV_ID);var r=document.getElementById(e).value;if(r.length)try{var a=JSON.parse(r);a.hasOwnProperty("playerData")&&w(a)}catch(e){alert("This seems like not a valid Hollow Knight save. ".concat(e)),console.info("This seems like not a valid Hollow Knight save. ".concat(e))}},window.InitialHTMLPopulate=N,window.CheckboxSpoilersToggle=U,window.CheckboxHintsToggle=x},280:(e,r,a)=>{var s,o,t,n=a(929),i=[0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,6,1,0,0,0],l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split("").map((function(e){return e.charCodeAt(0)})),A=new Map(l.map((function(e,r){return[e,r]}))),u=(new TextEncoder).encode("UKu52ePUBwetZ9wNX88o54dnfKRu0T1l"),d=new n.ModeOfOperation.ecb(u);function h(){var e,r=this.result;try{(r=new Uint8Array(r)).slice(),r=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:d).decrypt(e);return r.subarray(0,-r[r.length-1])}(r=function(e){var r,a=(e=(e=new Uint8Array(e).slice()).map((function(e){return A.get(e)}))).indexOf(64);r=-1!=a?a:e.length,e=e.subarray(0,r);for(var s=new Uint8Array(3*e.length/4),o=4*Math.floor(e.length/4),t=0;t>4,s[n+1]=(15&e[t+1])<<4|e[t+2]>>2,s[n+2]=(3&e[t+2])<<6|e[t+3]}if(null!=e[o]){var i=3*o/4;s[i]=e[o]<<2|e[o+1]>>4,null!=e[o+2]&&(s[i+1]=(15&e[o+1])<<4|e[o+2]>>2)}return s}(r=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i;e=e.subarray(r.length,e.length-1);for(var a=0,s=0;s<5&&(a++,0!=(128&e[s]));s++);return e.subarray(a)}(r))),e=(new TextDecoder).decode(r),document.getElementById("save-area").value="",document.getElementById("save-area").value=e,o=new Date,console.info("LoadSaveFile() time (ms) =",o-s),HKReadTextArea("save-area"),t=new Date,console.info("Total time (ms) =",t-s)}catch(e){alert("The file cannot be decoded. ".concat(e)),console.info("The file cannot be decoded. ".concat(e))}}window.LoadSaveFile=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;if(e.files.length<1)return!1;s=r;var a=e.files[0],o=new FileReader;o.readAsArrayBuffer(a),o.addEventListener("load",h)}},929:function(e){"use strict";!function(r){function a(e){return parseInt(e)===e}function s(e){if(!a(e.length))return!1;for(var r=0;r255)return!1;return!0}function o(e,r){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return r&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!s(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(a(e.length)&&s(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function t(e){return new Uint8Array(e)}function n(e,r,a,s,o){null==s&&null==o||(e=e.slice?e.slice(s,o):Array.prototype.slice.call(e,s,o)),r.set(e,a)}var i,l={toBytes:function(e){var r=[],a=0;for(e=encodeURI(e);a191&&s<224?(r.push(String.fromCharCode((31&s)<<6|63&e[a+1])),a+=2):(r.push(String.fromCharCode((15&s)<<12|(63&e[a+1])<<6|63&e[a+2])),a+=3)}return r.join("")}},A=(i="0123456789abcdef",{toBytes:function(e){for(var r=[],a=0;a>4]+i[15&s])}return r.join("")}}),u={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],m=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],c=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],g=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],_=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],p=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],f=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],C=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],S=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],y=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],D=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],k=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],w=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],E=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function G(e){for(var r=[],a=0;a>2,this._Ke[a][r%4]=t[r],this._Kd[e-a][r%4]=t[r];for(var n,i=0,l=o;l>16&255]<<24^h[n>>8&255]<<16^h[255&n]<<8^h[n>>24&255]^d[i]<<24,i+=1,8!=o)for(r=1;r>8&255]<<8^h[n>>16&255]<<16^h[n>>24&255]<<24,r=o/2+1;r>2,m=l%4,this._Ke[A][m]=t[r],this._Kd[e-A][m]=t[r++],l++}for(var A=1;A>24&255]^k[n>>16&255]^w[n>>8&255]^E[255&n]},v.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var r=this._Ke.length-1,a=[0,0,0,0],s=G(e),o=0;o<4;o++)s[o]^=this._Ke[0][o];for(var n=1;n>24&255]^g[s[(o+1)%4]>>16&255]^_[s[(o+2)%4]>>8&255]^p[255&s[(o+3)%4]]^this._Ke[n][o];s=a.slice()}var i,l=t(16);for(o=0;o<4;o++)i=this._Ke[r][o],l[4*o]=255&(h[s[o]>>24&255]^i>>24),l[4*o+1]=255&(h[s[(o+1)%4]>>16&255]^i>>16),l[4*o+2]=255&(h[s[(o+2)%4]>>8&255]^i>>8),l[4*o+3]=255&(h[255&s[(o+3)%4]]^i);return l},v.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var r=this._Kd.length-1,a=[0,0,0,0],s=G(e),o=0;o<4;o++)s[o]^=this._Kd[0][o];for(var n=1;n>24&255]^C[s[(o+3)%4]>>16&255]^S[s[(o+2)%4]>>8&255]^y[255&s[(o+1)%4]]^this._Kd[n][o];s=a.slice()}var i,l=t(16);for(o=0;o<4;o++)i=this._Kd[r][o],l[4*o]=255&(m[s[o]>>24&255]^i>>24),l[4*o+1]=255&(m[s[(o+3)%4]>>16&255]^i>>16),l[4*o+2]=255&(m[s[(o+2)%4]>>8&255]^i>>8),l[4*o+3]=255&(m[255&s[(o+1)%4]]^i);return l};var b=function e(r){if(!(this instanceof e))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new v(r)};b.prototype.encrypt=function(e){if((e=o(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var r=t(e.length),a=t(16),s=0;s=0;--r)this._counter[r]=e%256,e>>=8},I.prototype.setBytes=function(e){if(16!=(e=o(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},I.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var M=function e(r,a){if(!(this instanceof e))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",a instanceof I||(a=new I(a)),this._counter=a,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new v(r)};M.prototype.encrypt=function(e){for(var r=o(e,!0),a=0;a16)throw new Error("PKCS#7 padding byte out of range");for(var a=e.length-r,s=0;s{"use strict";a.r(r)},144:(e,r,a)=>{"use strict";a.r(r)},197:(e,r,a)=>{"use strict";a.r(r)},591:(e,r,a)=>{"use strict";a.r(r)},613:e=>{"use strict";e.exports="data:image/png;base64,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"},881:e=>{"use strict";e.exports="data:image/png;base64,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"},668:e=>{"use strict";e.exports="data:image/png;base64,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"},943:e=>{"use strict";e.exports="data:image/png;base64,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"},249:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAuCAYAAABu3ppsAAAI0ElEQVR42tWaBXTbVhSGy0RjZmZmZmZm8Nj1mB2PGYouM3NctJMUQnaY0WWPF2Zwsq3W7q/p6lxrCpThnO/IMUj/9+59T5LdLjvjn6Io3TrDDjnYzg/beXZ20K68BYaDdxdb0FPQy0BPQfddIiN3KA5iDNZPEgqFBnVAb4mJRNed2R49ODgdvD+ora3dn2lqajq8sbHxMElDQ8Mhkvr6+oMMQn1RFSkAdnT4HjJ0TU3NvgiCwMFg8HjQ0tJyOqDQ5xk4n54/jaH3nkCfOxJgH9gX7XOgEOm+XZVoI3hfGby5ufkYCnIiAiEgoOcup+euJ26V0Hvuou2NgN5zBXEZxCDLMvT3oZoIJHpJie0Kjx7lUlP5D6aDHw1aW1vPARTg2mBj8BaVuuCzgJ57xcBzEgp8L4AIgAhtjwLUhvuhGnTsPpBgkW0OT9sBMjwd7GQODijIfRy8ub7ZDuj5rw0MBfT5DwA9fhmwCCpD20tYBHOJJbZVgMP3I/aR4elAF3Nw2j5Pz7+L0FnpWaNmTZuV4rA7fvrqi69aNRRsRztH/z16xOg/PMs8uf4i/yz6zBjiE6CJ3Ccl0FKQgADgXNsUHv1uCH8zh//555/fdS9zj0No+wf2VgbBJRCQuJe7N/4S+CUSIpqEjbZPC4mTISGq0KNdCV62xIloAMDE0sKfRturgBZ+cFZW1peODx1uCh8iFDB58jQV13JPGJMnTjbj7/zi/IzqhuqJtL9v6Rhv0P4fAVqLnoAlFwsHr0yc01RAnE17ITxKCAFeaUT4FxE+wh6RhfAAoWPjfSqB30qU9es2KjUVNTo52TmKZ4VHxSji8Xh+pf1OkxL0+BYpgW6ARLsCPPpYxgyjf7oMn5GRESHDz5wxM8TBGYSWlJSU6EDGKJHkSyqREvT4ASy3QmAA2pqr0O7o85kV4TH66HsWQPh33nsnWobPzMwMyfBcASAFJIXFhUp0dLQu4FroUpITk3MhoVXhGVkFLK2ogqmAOHWjRH0wcbTRP4Z2cBZGoqay5r6qiirruHHjJtlstj+HOEcr8xYtUQI/lejkFaxXvCmZKr6kbJ2c3ICyaVPgfxL5+YXKnLkulYmTJ4ZiVseE1m5Yuyb4d/BHroI2oU/DQqLNhV5hk1leUbIA9z5WAgjgzAoBb4L3C+tr1mzbazYFAt7kTA7PwU0FQEpqDoCIqQQEwKrYVVXNfzdPokH7mI5rIW6CAC5XcJbujEA/CGD0taXsQtreLkeftjI8HndWAFBof5jE6tUJmoCoQjC8CsjToQC3DwRk+0DAG++10si7CUUKYMsC3EKeVbGKa7FLJ2ZlrBQAGHlZBV0AxMTGbDYKYC4a28g4gXvyZQPOuvSB46iNziWBa2hH98ye7/p8sHXwhk8++TQ0a/6iUDaNIkimMMC/fqOKJ8qjkpaSpuNZrj5HS6xXSU7PA5DgCU+fCygLFy1Upk2fBvDe6srKyoloI20yX08ZTjIKILtRoC8xyChAPDJ89Fin9WVrJQvI8Hgsw+MxlVtn4wb9NSmgBjcKjB47Gu9rpTN8jBSgbjiDKnFERwK92xOwWW0hFkBwxr8xwAL0d5pSUqGFFyC0rAIEcvL8XAW8pgtApri4eNsEZAtJgY8//jxMIDYuhUcfAgjOo28qkFMY2DkCZpfO1GsH0oeO1W5QriAe/iAiYuLzLz4fskc4QrNmLwp5omLVyZtXtF4NkJCYoE7YwqL/JmdNQ1CCwBQyBuAxo69kRgG/3x9FGT6jYz9F/X8HcbrZUtquANZfbRW6a9iI0d+0J4DgEICIUWDj5l+U2DgfXle3UsC/NtChAHE5C3AF5D2CUaIvTtu4/uBbRSFQ3pYAQiM8SyA0k5aaiZFvUwBIgfmL5rf+8ssvs6WA2TLKAqZVgAC3Ea7RZ8+NfMfyosWPKgwd5lQFWIIFpASWTgmeM7ZPTq4fo48tRh3hAa5OKysqKpw4D6B9OiNgvJTuh17T7nvPxA6iV6164fGnnl9AKN//OFxZsjxaBwHklWd2XiGL6ODkluBLUzKzC9VtQkKyPvp47BztDDFut7uIAn9JvILqa3PxmLq6ugM0ge5SwCjRg+gDAa2NTqLeu4BG93oK/u2jTzxfA4mRYyaECQSoVYyXzxIERXgW4PBg4YLIMAHq/0UU+D3iceIaLcMRuDtEh0iB9i6p+8oqQECtwpOWLAi8Y3eEScT6UiDRKQEgR18KrHCvKKOR/0KOPgT4zkwKmN5SysksqwABWQUICAkIALQPRDg4VicggxvD435ZkaNPx3udR58FZPuYCsjJbKwCyocrUyypXq/33sefenwuoYDvh/yo4qETmySWJqkkJTMcXCPNmDFDxfGxQxkybEjQtdSFq9DPiefpeLfxzT2WdSws/BWL/LK5MxIDsQPsiCV8Pt9LFD5WSoydPBN0SsC1ZDkH11mybMl6Dk/czOHxHZEm0I/owQL8r1NVgATODVIiauWaJ6XEhxGfAF1k4TKPBKFVRo8eqyLDT58+vViGBzTvzhbhByCLDN8Zie5SAgJS4o+yKlXisScfm/LoU48GHn+MRAgW+eqbryT4ykXC4ZupEm6a9O/I8DiBytYBcvQ7LQHkpTa3E75w0r6puKyoqOhW5xjn+5anLKlE9fO0QgHLE5YtEqvN2iIZMnRIIf0bgjMtQM9j0uKiTbuQPBTLJq88MvyOkjgCEiziS/XdP2rkKLvlSct0yFDoX4wCtldtm8dPGj8vLS1tKAfnUaf9XcThsfK1E37HSKCskGARnCtA099N9wMK95iBRySi188BMjz2L8ODHf1LTU8ISAmEl1DIqw1cJUFoCYJzeGAWfkdK9BB3cANRbv6lRvsy7ASqyiksI8HzAL/mYJXBz09oSezD7BcaZmdIdAeQ4K8ieaWCDCYhApqB1xAa4ETJ7cLBQfvBd7wI6AMgAvgXHVwCMPhb0J+DAxmc2dU/cPcQ9EFV2kOGBrvtV3zjD98iUA8Jt0c7obuCvfK/HXTZ0/7tytD/AucPrGrttKCIAAAAAElFTkSuQmCC"},402:e=>{"use strict";e.exports="data:image/png;base64,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"},391:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAuCAMAAABZAGpeAAABMlBMVEUAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCwwQERQQERQaHSEbHiMZHCAPEBMKCwwLDA4KCwwZHCASFBcAAAAGBgcLDA4NDhAPEBMQERQVFxoaHSEbHiMhJCojJy0mKjEnKzIpLTQrLzcuMzsvNDwvND0yN0A1OkQ2PEY3PUc4Pkg/RlFCSVVDSldGTVpHT1xIUF1KUl9LU2FOVmVRWWhRWmlSW2pUXWxYYXJdZ3in/4oOAAAAQHRSTlMABhQZHSMlKjFGS01PUFxdZWdoanBxd4OElJ2jra6wsbS1zM3Q1NfZ3uHq8vP09ff7/P3++v77+unMvczocHAx+yhOAgAAAZZJREFUeNrt1IOWI0EUxvGbWdvKzkpja6VvmGZVbFT0/q+wt7mq7uVRTn5xuv4t0dTEuHT/1erW9tbGwsNL9BvOPNmARwqBjbnL9Cu3VwEIyQTD5lNKN4sToKaGTNWE2Mf+3AylyAJwu6PQoFk2DONlJpOhBDchZWP0jSEXR7OJwbl1yMbwu4ALExeSguwhj/8+4CKXW0oIzu9Y5d7Ip1RNhY0SwHXS+miVwg1oCQCF1shXE3hOWu+tUi8YDwjBTStaxPIp0vlg1Xvh+JpSqoBCFGxcJJ09tz4MgoL32Tk46PgbLoGbpLMbBuGsx8WDYhTc/T/B3nG8SipYpTi4RTpvjPzId3zMB7BRAFrhRm/qL4y3htPxg/YxfOFeQtJu/WQYlVFQyGg8qwEvSOvza8PohOdQo9FojQICuEF673JS8sn3vY6ZePLR6RVw8cP4tNObrnLQ6H83Pu0CYlku6p1RRFXSL1H2CDm7Wm0qT00AOJyfoVR3VgHbFgyerWf0K2cfbyA2f4V+w8V7/q1ybfHBNZqaGF8AvGjIgXx3DDQAAAAASUVORK5CYII="},696:e=>{"use strict";e.exports="data:image/png;base64,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"},379:(e,r,a)=>{"use strict";e.exports=a.p+"img/thumbnail1200x628.jpg"}},r={};function a(s){if(r[s])return r[s].exports;var o=r[s]={exports:{}};return e[s].call(o.exports,o,o.exports,a),o.exports}a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var s=r.getElementsByTagName("script");s.length&&(e=s[s.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),a(656),a(144),a(197),a(591),a(379),a(280),a(853)})(); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index da36751..1748f37 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,137 +1 @@ - - - - - - - - - - - Hollow Knight: Save Game Completion Analyzer Web Tool - - - - - - - - - - - - - - - - - - - - - -
- -
- -

Hollow Knight: Analyze Save Completion

- -

- Support Tool (PayPal) -
- Official Steam Guide - Instagram - Youtube - Twitter - GitHub -
- -

- - - Click once to copy to clipboard -
-

- Choose a HK user*.dat save OR paste from Save Editor | - Testing Save -

-

- -
- -
- -
- -
- - - -
- - - -
- -
- - - -
- -
- - -
- -
- -
- - - -
- - -
- -
- -

- Work-In-Progress. Feedback: Steam Discussions Steam Guide.
- Programmed, written and created by 🉑 rezno[R] © 2020–2021
- Support Tool (PayPal) -

- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file +Hollow Knight: Save Game Completion Analyzer Web Tool

Hollow Knight: Analyze Save Completion

Support Tool (PayPal)
Official Steam Guide Instagram Youtube Twitter GitHub

Click once to copy to clipboard

Choose a HK user*.dat save OR paste from Save Editor | Testing Save

Work-In-Progress. Feedback: Steam Discussions Steam Guide.
Programmed, written and created by 🉑 rezno[R] © 2020–2021
Support Tool (PayPal)

\ No newline at end of file diff --git a/docs/main.css b/docs/main.css index f5546b4..e18ceb5 100644 --- a/docs/main.css +++ b/docs/main.css @@ -1,1101 +1 @@ -.cc-window { - opacity: 1; - -webkit-transition: opacity 1s ease; - transition: opacity 1s ease -} - -.cc-window.cc-invisible { - opacity: 0 -} - -.cc-animate.cc-revoke { - -webkit-transition: transform 1s ease; - -webkit-transition: -webkit-transform 1s ease; - transition: -webkit-transform 1s ease; - transition: transform 1s ease; - transition: transform 1s ease, -webkit-transform 1s ease -} - -.cc-animate.cc-revoke.cc-top { - -webkit-transform: translateY(-2em); - transform: translateY(-2em) -} - -.cc-animate.cc-revoke.cc-bottom { - -webkit-transform: translateY(2em); - transform: translateY(2em) -} - -.cc-animate.cc-revoke.cc-active.cc-top { - -webkit-transform: translateY(0); - transform: translateY(0) -} - -.cc-animate.cc-revoke.cc-active.cc-bottom { - -webkit-transform: translateY(0); - transform: translateY(0) -} - -.cc-revoke:hover { - -webkit-transform: translateY(0); - transform: translateY(0) -} - -.cc-grower { - max-height: 0; - overflow: hidden; - -webkit-transition: max-height 1s; - transition: max-height 1s -} - -.cc-revoke, -.cc-window { - position: fixed; - overflow: hidden; - -webkit-box-sizing: border-box; - box-sizing: border-box; - font-family: Helvetica, Calibri, Arial, sans-serif; - font-size: 16px; - line-height: 1.5em; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - z-index: 9999 -} - -.cc-window.cc-static { - position: static -} - -.cc-window.cc-floating { - padding: 2em; - max-width: 24em; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column -} - -.cc-window.cc-banner { - padding: 1em 1.8em; - width: 100%; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row -} - -.cc-revoke { - padding: .5em -} - -.cc-revoke:hover { - text-decoration: underline -} - -.cc-header { - font-size: 18px; - font-weight: 700 -} - -.cc-btn, -.cc-close, -.cc-link, -.cc-revoke { - cursor: pointer -} - -.cc-link { - opacity: .8; - display: inline-block; - padding: .2em; - text-decoration: underline -} - -.cc-link:hover { - opacity: 1 -} - -.cc-link:active, -.cc-link:visited { - color: initial -} - -.cc-btn { - display: block; - padding: .4em .8em; - font-size: .9em; - font-weight: 700; - border-width: 2px; - border-style: solid; - text-align: center; - white-space: nowrap -} - -.cc-highlight .cc-btn:first-child { - background-color: transparent; - border-color: transparent -} - -.cc-highlight .cc-btn:first-child:focus, -.cc-highlight .cc-btn:first-child:hover { - background-color: transparent; - text-decoration: underline -} - -.cc-close { - display: block; - position: absolute; - top: .5em; - right: .5em; - font-size: 1.6em; - opacity: .9; - line-height: .75 -} - -.cc-close:focus, -.cc-close:hover { - opacity: 1 -} - -.cc-revoke.cc-top { - top: 0; - left: 3em; - border-bottom-left-radius: .5em; - border-bottom-right-radius: .5em -} - -.cc-revoke.cc-bottom { - bottom: 0; - left: 3em; - border-top-left-radius: .5em; - border-top-right-radius: .5em -} - -.cc-revoke.cc-left { - left: 3em; - right: unset -} - -.cc-revoke.cc-right { - right: 3em; - left: unset -} - -.cc-top { - top: 1em -} - -.cc-left { - left: 1em -} - -.cc-right { - right: 1em -} - -.cc-bottom { - bottom: 1em -} - -.cc-floating>.cc-link { - margin-bottom: 1em -} - -.cc-floating .cc-message { - display: block; - margin-bottom: 1em -} - -.cc-window.cc-floating .cc-compliance { - -webkit-box-flex: 1; - -ms-flex: 1 0 auto; - flex: 1 0 auto -} - -.cc-window.cc-banner { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center -} - -.cc-banner.cc-top { - left: 0; - right: 0; - top: 0 -} - -.cc-banner.cc-bottom { - left: 0; - right: 0; - bottom: 0 -} - -.cc-banner .cc-message { - display: block; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - max-width: 100%; - margin-right: 1em -} - -.cc-compliance { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -ms-flex-line-pack: justify; - align-content: space-between -} - -.cc-floating .cc-compliance>.cc-btn { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1 -} - -.cc-btn+.cc-btn { - margin-left: .5em -} - -@media print { - - .cc-revoke, - .cc-window { - display: none - } -} - -@media screen and (max-width:900px) { - .cc-btn { - white-space: normal - } -} - -@media screen and (max-width:414px) and (orientation:portrait), -screen and (max-width:736px) and (orientation:landscape) { - .cc-window.cc-top { - top: 0 - } - - .cc-window.cc-bottom { - bottom: 0 - } - - .cc-window.cc-banner, - .cc-window.cc-floating, - .cc-window.cc-left, - .cc-window.cc-right { - left: 0; - right: 0 - } - - .cc-window.cc-banner { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column - } - - .cc-window.cc-banner .cc-compliance { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto - } - - .cc-window.cc-floating { - max-width: none - } - - .cc-window .cc-message { - margin-bottom: 1em - } - - .cc-window.cc-banner { - -webkit-box-align: unset; - -ms-flex-align: unset; - align-items: unset - } - - .cc-window.cc-banner .cc-message { - margin-right: 0 - } -} - -.cc-floating.cc-theme-classic { - padding: 1.2em; - border-radius: 5px -} - -.cc-floating.cc-type-info.cc-theme-classic .cc-compliance { - text-align: center; - display: inline; - -webkit-box-flex: 0; - -ms-flex: none; - flex: none -} - -.cc-theme-classic .cc-btn { - border-radius: 5px -} - -.cc-theme-classic .cc-btn:last-child { - min-width: 140px -} - -.cc-floating.cc-type-info.cc-theme-classic .cc-btn { - display: inline-block -} - -.cc-theme-edgeless.cc-window { - padding: 0 -} - -.cc-floating.cc-theme-edgeless .cc-message { - margin: 2em; - margin-bottom: 1.5em -} - -.cc-banner.cc-theme-edgeless .cc-btn { - margin: 0; - padding: .8em 1.8em; - height: 100% -} - -.cc-banner.cc-theme-edgeless .cc-message { - margin-left: 1em -} - -.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn { - margin-left: 0 -} -@font-face { - font-family: 'fontello'; - src: url(data:application/vnd.ms-fontobject;base64,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); - src: url(data:application/vnd.ms-fontobject;base64,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#iefix) format('embedded-opentype'), - url(data:font/woff2;base64,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) format('woff2'), - url(data:font/woff;base64,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) format('woff'), - url(data:font/ttf;base64,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) format('truetype'), - url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMjEgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9udGVsbG8iIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvbnRlbGxvIiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJjYW5jZWwiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMCA5MHEwIDM2IDI2IDYybDE5NSAxOTUtMTk1IDE5NnEtMjYgMjUtMjYgNjF0MjYgNjEgNjEgMjUgNjEtMjVsMTk2LTE5NiAxOTUgMTk2cTI1IDI1IDYxIDI1dDYxLTI1IDI1LTYxLTI1LTYxbC0xOTUtMTk2IDE5NS0xOTVxMjUtMjYgMjUtNjJ0LTI1LTYxcS0yNS0yNS02MS0yNXQtNjEgMjVsLTE5NSAxOTUtMTk2LTE5NXEtMjUtMjUtNjEtMjV0LTYxIDI1cS0yNiAyNi0yNiA2MXoiIGhvcml6LWFkdi14PSI2ODYuNSIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjbG9jayIgdW5pY29kZT0iJiN4ZTgwNDsiIGQ9Ik00NjAgODEwcTE5MCAwIDMyNS0xMzV0MTM1LTMyNS0xMzUtMzI1LTMyNS0xMzUtMzI1IDEzNS0xMzUgMzI1IDEzNSAzMjUgMzI1IDEzNXogbTAtODIwcTE1MCAwIDI1NSAxMDZ0MTA1IDI1NHEwIDE1MC0xMDUgMjU1dC0yNTUgMTA1cS0xNDggMC0yNTQtMTA1dC0xMDYtMjU1cTAtMTQ4IDEwNi0yNTR0MjU0LTEwNnogbTM2IDYyMGwwLTI0NCAxNTAtMTUwLTUwLTUwLTE3MCAxNzAgMCAyNzQgNzAgMHoiIGhvcml6LWFkdi14PSI5MjAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iZG93bmxvYWQtY2xvdWQiIHVuaWNvZGU9IiYjeGYwZWQ7IiBkPSJNNzE0IDMzMnEwIDgtNSAxM3QtMTMgNWgtMTI1djE5NnEwIDgtNSAxM3QtMTIgNWgtMTA4cS03IDAtMTItNXQtNS0xM3YtMTk2aC0xMjVxLTggMC0xMy01dC01LTEzcTAtOCA1LTEzbDE5Ni0xOTZxNS01IDEzLTV0MTMgNWwxOTYgMTk2cTUgNiA1IDEzeiBtMzU3LTEyNXEwLTg5LTYyLTE1MXQtMTUyLTYzaC02MDdxLTEwMyAwLTE3NyA3M3QtNzMgMTc3cTAgNzIgMzkgMTM0dDEwNSA5MnEtMSAxNy0xIDI0IDAgMTE4IDg0IDIwMnQyMDIgODRxODcgMCAxNTktNDl0MTA1LTEyOXE0MCAzNSA5MyAzNSA1OSAwIDEwMS00MnQ0Mi0xMDFxMC00My0yMy03NyA3Mi0xNyAxMTktNzZ0NDYtMTMzeiIgaG9yaXotYWR2LXg9IjEwNzEuNCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJvay1zcXVhcmVkIiB1bmljb2RlPSImI3hmMTRhOyIgZD0iTTM4MiAxMjVsMzQzIDM0M3ExMSAxMCAxMSAyNXQtMTEgMjVsLTU3IDU3cS0xMSAxMS0yNSAxMXQtMjUtMTFsLTI2MS0yNjEtMTE4IDExOHEtMTAgMTEtMjUgMTF0LTI1LTExbC01Ny01N3EtMTAtMTAtMTAtMjV0MTAtMjVsMjAwLTIwMHExMS0xMCAyNS0xMHQyNSAxMHogbTQ3NSA0OTN2LTUzNnEwLTY2LTQ3LTExM3QtMTE0LTQ4aC01MzVxLTY3IDAtMTE0IDQ4dC00NyAxMTN2NTM2cTAgNjYgNDcgMTEzdDExNCA0OGg1MzVxNjcgMCAxMTQtNDh0NDctMTEzeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgo8L2ZvbnQ+CjwvZGVmcz4KPC9zdmc+#fontello) format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('../font/fontello.svg?35911474#fontello') format('svg'); - } -} -*/ - - [class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: never; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Font smoothing. That was taken from TWBS */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} - -.icon-cancel:before { content: '\e800'; } /* '' */ -.icon-clock:before { content: '\e804'; } /* '' */ -.icon-download-cloud:before { content: '\f0ed'; } /* '' */ -.icon-ok-squared:before { content: '\f14a'; } /* '' */ -/* SVG from Simple Icons https://github.com/simple-icons/simple-icons */ - -[class^="simpleicon-"], -[class*=" simpleicon-"] { - position: relative; - padding-left: 1.6em; -} - -[class^="simpleicon-"]:before, -[class*=" simpleicon-"]:before { - position: absolute; - display: inline-block; - left: 0; - top: 0; - width: 1.2em; - height: 1.2em; - margin-right: .2em; - text-align: center; - line-height: 0; - margin-left: .2em; - padding-top: 0.1em; -} - -.simpleicon-youtube:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+WW91VHViZSBpY29uPC90aXRsZT48cGF0aCBmaWxsPSIjRkYwMDAwIiBkPSJNMjMuNDk4IDYuMTg2YTMuMDE2IDMuMDE2IDAgMCAwLTIuMTIyLTIuMTM2QzE5LjUwNSAzLjU0NSAxMiAzLjU0NSAxMiAzLjU0NXMtNy41MDUgMC05LjM3Ny41MDVBMy4wMTcgMy4wMTcgMCAwIDAgLjUwMiA2LjE4NkMwIDguMDcgMCAxMiAwIDEyczAgMy45My41MDIgNS44MTRhMy4wMTYgMy4wMTYgMCAwIDAgMi4xMjIgMi4xMzZjMS44NzEuNTA1IDkuMzc2LjUwNSA5LjM3Ni41MDVzNy41MDUgMCA5LjM3Ny0uNTA1YTMuMDE1IDMuMDE1IDAgMCAwIDIuMTIyLTIuMTM2QzI0IDE1LjkzIDI0IDEyIDI0IDEyczAtMy45My0uNTAyLTUuODE0ek05LjU0NSAxNS41NjhWOC40MzJMMTUuODE4IDEybC02LjI3MyAzLjU2OHoiLz48L3N2Zz4=); -} - -.simpleicon-steam:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+U3RlYW0gaWNvbjwvdGl0bGU+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTExLjk3OSAwQzUuNjc4IDAgLjUxMSA0Ljg2LjAyMiAxMS4wMzdsNi40MzIgMi42NThjLjU0NS0uMzcxIDEuMjAzLS41OSAxLjkxMi0uNTkuMDYzIDAgLjEyNS4wMDQuMTg4LjAwNmwyLjg2MS00LjE0MlY4LjkxYzAtMi40OTUgMi4wMjgtNC41MjQgNC41MjQtNC41MjQgMi40OTQgMCA0LjUyNCAyLjAzMSA0LjUyNCA0LjUyN3MtMi4wMyA0LjUyNS00LjUyNCA0LjUyNWgtLjEwNWwtNC4wNzYgMi45MTFjMCAuMDUyLjAwNC4xMDUuMDA0LjE1OSAwIDEuODc1LTEuNTE1IDMuMzk2LTMuMzkgMy4zOTYtMS42MzUgMC0zLjAxNi0xLjE3My0zLjMzMS0yLjcyN0wuNDM2IDE1LjI3QzEuODYyIDIwLjMwNyA2LjQ4NiAyNCAxMS45NzkgMjRjNi42MjcgMCAxMS45OTktNS4zNzMgMTEuOTk5LTEyUzE4LjYwNSAwIDExLjk3OSAwek03LjU0IDE4LjIxbC0xLjQ3My0uNjFjLjI2Mi41NDMuNzE0Ljk5OSAxLjMxNCAxLjI1IDEuMjk3LjUzOSAyLjc5My0uMDc2IDMuMzMyLTEuMzc1LjI2My0uNjMuMjY0LTEuMzE5LjAwNS0xLjk0OXMtLjc1LTEuMTIxLTEuMzc3LTEuMzgzYy0uNjI0LS4yNi0xLjI5LS4yNDktMS44NzgtLjAzbDEuNTIzLjYzYy45NTYuNCAxLjQwOSAxLjUgMS4wMDkgMi40NTUtLjM5Ny45NTctMS40OTcgMS40MS0yLjQ1NCAxLjAxMkg3LjU0em0xMS40MTUtOS4zMDNjMC0xLjY2Mi0xLjM1My0zLjAxNS0zLjAxNS0zLjAxNS0xLjY2NSAwLTMuMDE1IDEuMzUzLTMuMDE1IDMuMDE1IDAgMS42NjUgMS4zNSAzLjAxNSAzLjAxNSAzLjAxNSAxLjY2MyAwIDMuMDE1LTEuMzUgMy4wMTUtMy4wMTV6bS01LjI3My0uMDA1YzAtMS4yNTIgMS4wMTMtMi4yNjYgMi4yNjUtMi4yNjYgMS4yNDkgMCAyLjI2NiAxLjAxNCAyLjI2NiAyLjI2NiAwIDEuMjUxLTEuMDE3IDIuMjY1LTIuMjY2IDIuMjY1LTEuMjUzIDAtMi4yNjUtMS4wMTQtMi4yNjUtMi4yNjV6Ii8+PC9zdmc+); -} - -.simpleicon-paypal:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UGF5UGFsIGljb248L3RpdGxlPjxwYXRoIGZpbGw9IiMwMDljZGUiIGQ9Ik02LjkwOCAyNEgzLjgwNGMtLjY2NCAwLTEuMDg2LS41MjktLjkzNi0xLjE4bC4xNDktLjY3NGgyLjA3MWMuNjY2IDAgMS4zMzYtLjUzMyAxLjQ4Mi0xLjE4MmwxLjA2NC00LjU5MmMuMTUtLjY0OC44MTYtMS4xOCAxLjQ4LTEuMThoLjg4M2MzLjc4OSAwIDYuNzM0LS43NzkgOC44NC0yLjM0czMuMTYtMy42IDMuMTYtNi4xMzVjMC0xLjEyNS0uMTk1LTIuMDU1LS41ODgtMi43ODkgMC0uMDE2LS4wMTYtLjAzMS0uMDE2LS4wNDZsLjEzNS4wNzVjLjc1LjQ2NSAxLjMyIDEuMDY0IDEuNzExIDEuODE0LjQwNC43NS41OTggMS42OC41OTggMi43OTEgMCAyLjUzNS0xLjA0OSA0LjU3NC0zLjE2NCA2LjEzNS0yLjEgMS41NDUtNS4wNTUgMi4zMjQtOC44MzQgMi4zMjRoLS45Yy0uNjYgMC0xLjMzNC41MjUtMS40ODQgMS4xODZMOC4zOSAyMi44MTJjLS4xNDkuNjQ1LS44MSAxLjE3LTEuNDcgMS4xN0w2LjkwOCAyNHptLTIuNjc3LTIuNjk1SDEuMTI2Yy0uNjYzIDAtMS4wODQtLjUyOS0uOTM2LTEuMThMNC41NjMgMS4xODJDNC43MTQuNTI5IDUuMzc4IDAgNi4wNDQgMGg2LjQ2NWMxLjM5NSAwIDIuNjA5LjA5OCAzLjY0OC4yODkgMS4wMzUuMTg5IDEuOTIuNTE5IDIuNjg0Ljk5LjczNi40NjUgMS4zMjIgMS4wNzIgMS42OTcgMS44MTguMzg5Ljc0OC41ODQgMS42OC41ODQgMi43OTcgMCAyLjUzNS0xLjA1MSA0LjU3NC0zLjE2NCA2LjExOS0yLjEgMS41NjEtNS4wNTYgMi4zMjYtOC44MzYgMi4zMjZoLS44ODNjLS42NiAwLTEuMzI4LjUyNC0xLjQ3OCAxLjE2OUw1LjcgMjAuMDk3Yy0uMTQ5LjY0Ni0uODE3IDEuMTcyLTEuNDg1IDEuMTcybC4wMTYuMDM2em03LjQ0Ni0xNy4zNjloLTEuMDE0Yy0uNjY2IDAtMS4zMzIuNTI5LTEuNDggMS4xNzhsLS45MyA0LjAyYy0uMTUuNjQ4LjI3IDEuMTc5LjkzIDEuMTc5aC43NjZjMS42NjQgMCAyLjk3LS4zNDMgMy45LTEuMDIxLjkyOS0uNjg2IDEuMzk1LTEuNjU0IDEuMzk1LTIuOTEyIDAtLjgzLS4zMDEtMS40NDUtLjktMS44NC0uNi0uNDA0LTEuNS0uNjA1LTIuNjg2LS42MDVsLjAxOS4wMDF6Ii8+PC9zdmc+); -} - -.simpleicon-github:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2l0SHViIGljb248L3RpdGxlPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMiAuMjk3Yy02LjYzIDAtMTIgNS4zNzMtMTIgMTIgMCA1LjMwMyAzLjQzOCA5LjggOC4yMDUgMTEuMzg1LjYuMTEzLjgyLS4yNTguODItLjU3NyAwLS4yODUtLjAxLTEuMDQtLjAxNS0yLjA0LTMuMzM4LjcyNC00LjA0Mi0xLjYxLTQuMDQyLTEuNjFDNC40MjIgMTguMDcgMy42MzMgMTcuNyAzLjYzMyAxNy43Yy0xLjA4Ny0uNzQ0LjA4NC0uNzI5LjA4NC0uNzI5IDEuMjA1LjA4NCAxLjgzOCAxLjIzNiAxLjgzOCAxLjIzNiAxLjA3IDEuODM1IDIuODA5IDEuMzA1IDMuNDk1Ljk5OC4xMDgtLjc3Ni40MTctMS4zMDUuNzYtMS42MDUtMi42NjUtLjMtNS40NjYtMS4zMzItNS40NjYtNS45MyAwLTEuMzEuNDY1LTIuMzggMS4yMzUtMy4yMi0uMTM1LS4zMDMtLjU0LTEuNTIzLjEwNS0zLjE3NiAwIDAgMS4wMDUtLjMyMiAzLjMgMS4yMy45Ni0uMjY3IDEuOTgtLjM5OSAzLS40MDUgMS4wMi4wMDYgMi4wNC4xMzggMyAuNDA1IDIuMjgtMS41NTIgMy4yODUtMS4yMyAzLjI4NS0xLjIzLjY0NSAxLjY1My4yNCAyLjg3My4xMiAzLjE3Ni43NjUuODQgMS4yMyAxLjkxIDEuMjMgMy4yMiAwIDQuNjEtMi44MDUgNS42MjUtNS40NzUgNS45Mi40Mi4zNi44MSAxLjA5Ni44MSAyLjIyIDAgMS42MDYtLjAxNSAyLjg5Ni0uMDE1IDMuMjg2IDAgLjMxNS4yMS42OS44MjUuNTdDMjAuNTY1IDIyLjA5MiAyNCAxNy41OTIgMjQgMTIuMjk3YzAtNi42MjctNS4zNzMtMTItMTItMTIiLz48L3N2Zz4=); -} - -.simpleicon-instagram:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+SW5zdGFncmFtIGljb248L3RpdGxlPjxwYXRoIGZpbGw9IiNFNDQwNUYiIGQ9Ik0xMiAwQzguNzQgMCA4LjMzMy4wMTUgNy4wNTMuMDcyIDUuNzc1LjEzMiA0LjkwNS4zMzMgNC4xNC42M2MtLjc4OS4zMDYtMS40NTkuNzE3LTIuMTI2IDEuMzg0Uy45MzUgMy4zNS42MyA0LjE0Qy4zMzMgNC45MDUuMTMxIDUuNzc1LjA3MiA3LjA1My4wMTIgOC4zMzMgMCA4Ljc0IDAgMTJzLjAxNSAzLjY2Ny4wNzIgNC45NDdjLjA2IDEuMjc3LjI2MSAyLjE0OC41NTggMi45MTMuMzA2Ljc4OC43MTcgMS40NTkgMS4zODQgMi4xMjYuNjY3LjY2NiAxLjMzNiAxLjA3OSAyLjEyNiAxLjM4NC43NjYuMjk2IDEuNjM2LjQ5OSAyLjkxMy41NThDOC4zMzMgMjMuOTg4IDguNzQgMjQgMTIgMjRzMy42NjctLjAxNSA0Ljk0Ny0uMDcyYzEuMjc3LS4wNiAyLjE0OC0uMjYyIDIuOTEzLS41NTguNzg4LS4zMDYgMS40NTktLjcxOCAyLjEyNi0xLjM4NC42NjYtLjY2NyAxLjA3OS0xLjMzNSAxLjM4NC0yLjEyNi4yOTYtLjc2NS40OTktMS42MzYuNTU4LTIuOTEzLjA2LTEuMjguMDcyLTEuNjg3LjA3Mi00Ljk0N3MtLjAxNS0zLjY2Ny0uMDcyLTQuOTQ3Yy0uMDYtMS4yNzctLjI2Mi0yLjE0OS0uNTU4LTIuOTEzLS4zMDYtLjc4OS0uNzE4LTEuNDU5LTEuMzg0LTIuMTI2QzIxLjMxOSAxLjM0NyAyMC42NTEuOTM1IDE5Ljg2LjYzYy0uNzY1LS4yOTctMS42MzYtLjQ5OS0yLjkxMy0uNTU4QzE1LjY2Ny4wMTIgMTUuMjYgMCAxMiAwem0wIDIuMTZjMy4yMDMgMCAzLjU4NS4wMTYgNC44NS4wNzEgMS4xNy4wNTUgMS44MDUuMjQ5IDIuMjI3LjQxNS41NjIuMjE3Ljk2LjQ3NyAxLjM4Mi44OTYuNDE5LjQyLjY3OS44MTkuODk2IDEuMzgxLjE2NC40MjIuMzYgMS4wNTcuNDEzIDIuMjI3LjA1NyAxLjI2Ni4wNyAxLjY0Ni4wNyA0Ljg1cy0uMDE1IDMuNTg1LS4wNzQgNC44NWMtLjA2MSAxLjE3LS4yNTYgMS44MDUtLjQyMSAyLjIyNy0uMjI0LjU2Mi0uNDc5Ljk2LS44OTkgMS4zODItLjQxOS40MTktLjgyNC42NzktMS4zOC44OTYtLjQyLjE2NC0xLjA2NS4zNi0yLjIzNS40MTMtMS4yNzQuMDU3LTEuNjQ5LjA3LTQuODU5LjA3LTMuMjExIDAtMy41ODYtLjAxNS00Ljg1OS0uMDc0LTEuMTcxLS4wNjEtMS44MTYtLjI1Ni0yLjIzNi0uNDIxLS41NjktLjIyNC0uOTYtLjQ3OS0xLjM3OS0uODk5LS40MjEtLjQxOS0uNjktLjgyNC0uOS0xLjM4LS4xNjUtLjQyLS4zNTktMS4wNjUtLjQyLTIuMjM1LS4wNDUtMS4yNi0uMDYxLTEuNjQ5LS4wNjEtNC44NDQgMC0zLjE5Ni4wMTYtMy41ODYuMDYxLTQuODYxLjA2MS0xLjE3LjI1NS0xLjgxNC40Mi0yLjIzNC4yMS0uNTcuNDc5LS45Ni45LTEuMzgxLjQxOS0uNDE5LjgxLS42ODkgMS4zNzktLjg5OC40Mi0uMTY2IDEuMDUxLS4zNjEgMi4yMjEtLjQyMSAxLjI3NS0uMDQ1IDEuNjUtLjA2IDQuODU5LS4wNmwuMDQ1LjAzem0wIDMuNjc4Yy0zLjQwNSAwLTYuMTYyIDIuNzYtNi4xNjIgNi4xNjIgMCAzLjQwNSAyLjc2IDYuMTYyIDYuMTYyIDYuMTYyIDMuNDA1IDAgNi4xNjItMi43NiA2LjE2Mi02LjE2MiAwLTMuNDA1LTIuNzYtNi4xNjItNi4xNjItNi4xNjJ6TTEyIDE2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHptNy44NDYtMTAuNDA1YzAgLjc5NS0uNjQ2IDEuNDQtMS40NCAxLjQ0LS43OTUgMC0xLjQ0LS42NDYtMS40NC0xLjQ0IDAtLjc5NC42NDYtMS40MzkgMS40NC0xLjQzOS43OTMtLjAwMSAxLjQ0LjY0NSAxLjQ0IDEuNDM5eiIvPjwvc3ZnPg==); -} - -.simpleicon-twitter:before { - content: url(data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+VHdpdHRlciBpY29uPC90aXRsZT48cGF0aCBmaWxsPSIjMURBMUYyIiBkPSJNMjMuOTUzIDQuNTdhMTAgMTAgMCAwMS0yLjgyNS43NzUgNC45NTggNC45NTggMCAwMDIuMTYzLTIuNzIzYy0uOTUxLjU1NS0yLjAwNS45NTktMy4xMjcgMS4xODRhNC45MiA0LjkyIDAgMDAtOC4zODQgNC40ODJDNy42OSA4LjA5NSA0LjA2NyA2LjEzIDEuNjQgMy4xNjJhNC44MjIgNC44MjIgMCAwMC0uNjY2IDIuNDc1YzAgMS43MS44NyAzLjIxMyAyLjE4OCA0LjA5NmE0LjkwNCA0LjkwNCAwIDAxLTIuMjI4LS42MTZ2LjA2YTQuOTIzIDQuOTIzIDAgMDAzLjk0NiA0LjgyNyA0Ljk5NiA0Ljk5NiAwIDAxLTIuMjEyLjA4NSA0LjkzNiA0LjkzNiAwIDAwNC42MDQgMy40MTcgOS44NjcgOS44NjcgMCAwMS02LjEwMiAyLjEwNWMtLjM5IDAtLjc3OS0uMDIzLTEuMTctLjA2N2ExMy45OTUgMTMuOTk1IDAgMDA3LjU1NyAyLjIwOWM5LjA1MyAwIDEzLjk5OC03LjQ5NiAxMy45OTgtMTMuOTg1IDAtLjIxIDAtLjQyLS4wMTUtLjYzQTkuOTM1IDkuOTM1IDAgMDAyNCA0LjU5eiIvPjwvc3ZnPg==); -} -/* Font license info - -## Font Awesome - - Copyright (C) 2016 by Dave Gandy - - Author: Dave Gandy - License: SIL () - Homepage: http://fortawesome.github.com/Font-Awesome/ - - -## Entypo - - Copyright (C) 2012 by Daniel Bruce - - Author: Daniel Bruce - License: SIL (http://scripts.sil.org/OFL) - Homepage: http://www.entypo.com -*/ - -:root { - --rt-main: #1e4d6c; -} - -html { - font-size: 17px; - font-weight: 300; -} - -body { - font-family: 'Heebo', sans-serif; - color: #fff; - background-color: #050d19; - margin: 0; - overflow: auto; -} - -::-webkit-scrollbar { - width: 8px; - height: 8px; -} - -::-webkit-scrollbar-thumb { - background-color: #1e4d6c; -} - -::-webkit-scrollbar-thumb:hover { - background-color: #2e5d7c; -} - -::-webkit-scrollbar-track, -::-webkit-scrollbar-track-piece { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAACAAQMAAAAMIrp9AAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAABVJREFUeNrlwYEAAAAAgKD9qQepwg0BAAABV4fZxwAAAABJRU5ErkJggg==) repeat-y !important; -} - -::-webkit-resizer { - background-color: #050d19; - color: #1e4d6c; -} - -#background { - position: fixed; - padding: 0; - margin: 0; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-image: url(img/e7ea69e5fd6e22b5f29b.jpg); - background-size: auto 100%; - background-position: center top; - background-repeat: no-repeat; - background-attachment: fixed; - z-index: 1; -} - -#content { - max-width: 550px; - margin: 0 auto; - padding: 0 .6rem; - position: relative; - z-index: 1000; -} - -b { - font-weight: 500; - color: #aac7d4; -} - -del { - text-decoration: none; - opacity: 0.5; -} - -strong { - font-weight: 700; -} - -h1 { - font-size: 1.7rem; - color: #aac7d4; - margin: 0.6rem 0; -} - -#h1-title { - text-align: center; -} - -h2 { - text-align: center; - margin: 0.6rem 0; - color: rgba(231, 251, 255, 0.6); -} - -#save-location-input { - display: block; - font-family: 'Consolas', monospace; - font-size: 0.75rem; - text-align: center; - width: 100%; - max-width: 32em; - color: #fff; - background-color: rgba(128, 128, 128, 0.5); - margin: 0.4rem auto 0.6rem auto; - padding: 0.16rem 0.5rem 0.25rem 0.5rem; - border: 1px solid rgba(231, 251, 255, 0.6); - border-radius: 3px; -} - -#save-location-input:focus { - outline: 0; - border: 1px solid rgba(231, 251, 255, 0.8); -} - -input { - font-family: 'Heebo', sans-serif; - font-size: 1rem; - text-align: left; -} - -textarea { - font-family: 'Consolas', monospace; - font-size: 0.8rem; - text-align: left; - background-color: rgba(0, 0, 0, 0); - color: #fff; - caret-color: #fff; - border: 1px solid #e3ebf7; - padding: 2px; - margin: 0.5rem 2px 0.5rem 2px; - overflow-x: hidden; - overflow-y: scroll; - - /* These are technically the same, but use both */ - overflow-wrap: break-word; - word-wrap: break-word; - - -ms-word-break: break-all; - /* This is the dangerous one in WebKit, as it breaks things wherever */ - word-break: break-all; - /* Instead use this non-standard one: */ - word-break: break-word; - - /* Adds a hyphen where the word breaks, if supported (No Blink) */ - -ms-hyphens: none; - -moz-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -textarea:focus { - border-color: rgba(0, 0, 0, 0); - box-shadow: 0 0 4px 2px #fff; - outline: 0; - /* outline: #fff 2px solid; - outline-offset: 1px; */ -} - -textarea::placeholder { - color: rgba(255, 255, 255, 0.5); - font-size: 1rem; - text-align: center; - caret-color: #fff; -} - -input[type="file"] { - max-width: 500px; - margin: 0.5rem 0.5rem 0.5rem 0.25rem; -} - -#save-area { - display: block; - width: 100%; - max-width: 542px; - height: 5.65rem; -} - -.buttons { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; -} - -.input-buttons { - display: flex; - flex-direction: column; -} - -.checkboxes { - margin-top: 0rem; -} - -.button { - display: flex; - flex-direction: row; - align-items: center; - width: max-content; - font-size: 1rem; - font-weight: 500; - font-family: 'Heebo', sans-serif; - text-align: center; - background-color: #1e4d6c; - color: #aac7d4; - border: 2px solid #183c55; - border-radius: 2px; - padding: 0.3rem 1rem; - margin: 0.25rem 0.5rem 0.25rem 0.25rem; -} - -.button:first-child { - margin-left: 0.25rem; -} - -.button:hover { - color: #d9f3ff; - background-color: #2e5d7c; - border-color: #2e5d7c; - cursor: pointer; -} - -.button:focus { - /* outline: 2px solid #5e8dac; */ - outline: 0; - border-color: #5e8dac; - /* outline-offset: -2px; */ -} - -.centered { - flex-direction: row; - align-items: center; -} - -@media screen and (max-width: 570px) { - .centered { - flex-direction: column; - align-items: flex-start; - } -} - -@media screen and (max-width: 400px) { - .buttons { - flex-direction: column; - align-items: center; - } - - .input-buttons { - align-items: center; - justify-content: center; - } - - .centered { - flex-direction: column; - align-items: flex-start; - } - - .checkboxes { - margin-top: 0.8rem; - } -} - -p { - margin-top: 0.6rem; - margin-bottom: 0.6rem; -} - -.horizontal-line { - margin: 1rem 0; - height: 1.5rem; - width: 100%; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApoAAAAoCAMAAABpT6qaAAAC8VBMVEUAAAD9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f0KbR4qAAAA+nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF5f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); - background-size: auto 100%; - background-position: center top; - background-repeat: no-repeat; -} - -@media screen and (max-width: 460px) { - .horizontal-line { - height: 1.15rem; - } -} - -@media screen and (max-width: 360px) { - .horizontal-line { - height: 0.9rem; - } -} - -.smalltext { - font-size: 0.8rem; - text-align: center; -} - -a, -a:active, -a:visited { - display: inline-block; - color: #aac7d4; - font-weight: 700; - text-decoration: none; -} - -a:hover { - color: #d9f3ff; - text-decoration: none; -} - -a.button:active, -a.button:visited { - font-weight: 500; -} - -.link-social { - margin: 0.25rem; -} - -.icon-cancel { - color: #f03a17; -} - -.icon-ok-squared { - color: #16c60c; -} - -.icon-info-circled { - color: #479ae7; -} - -.icon-download-cloud { - color: #d9f3ff; -} - -.flex-container { - display: flex; - flex-wrap: wrap; - flex-direction: row; - align-items: normal; - justify-content: left; -} - -.flex-row { - flex-direction: row; -} - -.align-center { - align-items: center; -} - -.soul-orb:first-child { - margin-left: 0.3rem; -} - -.health-mask, -.soul-orb, -.geo-symbol, -.notch { - width: auto; - height: 1.48rem; - margin: 0 0 0 0.3rem; -} - -.notch { - padding-left: 0.3rem; - margin-left: -0.6rem; -} - -.soul-orb { - height: 1.3rem; - padding-left: 0.3rem; - margin-left: -0.15rem; -} - -.geo-symbol { - margin-right: 0.15rem; -} - -.padding-left { - padding-left: 1.4rem; - height: 1.47rem; -} - -.p-left-small { - display: inline; - padding-left: 0.3rem; - height: 1.47rem; -} - -.hidden { - display: none; -} - -.spoiler-text { - display: inline; - /* These are technically the same, but use both */ - overflow-wrap: break-word; - word-wrap: break-word; - - -ms-word-break: break-all; - /* This is the dangerous one in WebKit, as it breaks things wherever */ - word-break: break-all; - /* Instead use this non-standard one: */ - word-break: break-word; - - /* Adds a hyphen where the word breaks, if supported (No Blink) */ - -ms-hyphens: auto; - -moz-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -.radio, -.checkbox { - position: relative; - display: block; - left: -40px; - padding: 4px; - margin-left: 10px; -} - -input[type="checkbox"], -input[type="radio"] { - margin-right: 10px; -} - -.radio-label, -.checkbox-label { - display: inline-block; - position: relative; - padding: 0 0 0 1.8rem; - margin: 0.25rem 1rem 0.25rem 0.5rem; - cursor: pointer; - font-size: 1rem; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - width: max-content; -} - -.checkbox-label:last-child { - margin-right: 0; -} - -.radiomark, -.checkmark { - position: absolute; - top: 0; - left: 0; - height: 22px; - width: 22px; - background-color: #aac7d4; - border: 1px solid #1e4d6c; - border: 1px solid var(--rt-main); -} - -.radiomark { - border-radius: 50%; -} - -/* Hide the browser's default checkbox */ -.radio-label input, -.checkbox-label input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; -} - -/* On mouse-over change background color */ -.radio-label:hover input~.radiomark, -.checkbox-label:hover input~.checkmark { - background-color: #d9f3ff; -} - -/* When the checkbox is checked change background color */ -.radio-label input:checked~.radiomark, -.checkbox-label input:checked~.checkmark { - background-color: #1e4d6c; - background-color: var(--rt-main); -} - -/* When the checkbox is checked change background color on hover */ -.radio-label:hover input:checked~.radiomark, -.checkbox-label:hover input:checked~.checkmark { - background-color: #2e5d7c; - border-color: #2e5d7c; -} - -/* Create the checkmark/indicator (hidden when not checked) */ -.radiomark:after, -.checkmark:after { - content: ""; - position: absolute; - display: none; -} - -/* Show the checkmark when checked */ -.radio-label input:checked~.radiomark:after, -.checkbox-label input:checked~.checkmark:after { - display: block; -} - -/* Style the checkmark/indicator */ -.checkbox-label .checkmark:after { - left: 7px; - top: 2px; - width: 6px; - height: 12px; - border: solid #aac7d4; - border-width: 0 2px 2px 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} - -/* Style the checkmark/indicator */ -.radio-label .radiomark:after { - top: 7px; - left: 7px; - width: 10px; - height: 10px; - border-radius: 50%; - background: #000; -} - -.tooltip { - position: relative; - display: block; - margin: 0 auto; - width: 100%; - max-width: 550px; -} - -.tooltip .tooltip-text { - visibility: hidden; - width: max-content; - background-color: #1e4d6c; - color: #d9f3ff; - font-size: 0.85rem; - text-align: center; - border-radius: 3px; - padding: 0.16rem 0.7rem; - position: absolute; - z-index: 1; - bottom: 130%; - left: 50%; - margin-left: -109px; - opacity: 0; - transition: opacity 0.3s; -} - -.tooltip .tooltip-text::after { - content: ""; - position: absolute; - top: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: #1e4d6c transparent transparent transparent; -} - -.tooltip:hover .tooltip-text { - visibility: visible; - opacity: 1; -} - -@media screen and (max-width: 570px) { - .tooltip { - display: none; - } -} - -.percent-box { - display: inline-block; - text-align: center; - font-size: 1.1rem; - vertical-align: middle; - color: #d9f3ff; - margin: 0 0.5rem 0rem 0.5rem; - padding: 0.2rem 1.2rem 0.2rem 1.2rem; - background: #1e4d6c; - border: 2px solid #3e6d8c; - border-radius: 4px; -} - -.box-red { - color: #ffe2dd; - background: #c22e14; - border: 2px solid #e24e34; -} - -.box-green { - color: #ddffd9; - background: #1e6c1e; - border: 2px solid #2d8a2d; -} +.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}@font-face{font-family:fontello;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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#iefix) format("embedded-opentype"),url(data:font/woff2;base64,d09GMgABAAAAAAuEAA8AAAAAGJQAAAsrAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCDMggOCZwMEQgKhTSEbwsMAAE2AiQDFAQgBYVNB1YMgRwbORdRVI1aZF8d8IboU88Q24aqTWzHJwwn98QMx3Gw01fzvhkhyaz/VJv1flV102ki7mNGkiYq2AhxIiJklCRjfl9xWLUZP62IHdev8DztfB+kMISCMA2k6Vh3kwkN/v/V9X6wqIAUOMoNz5JD5JCGAh8Slj5KGWeK+hW1u2rLYUttuX6mAFla7T14iipAo6vC5HtQnzRlUgmj3aI1nd2DhxBzmSU6lTpTIeN/rZX2v+6Z2g2yTE3CwqNk53Z7dybbPXMwu4dAKkBCobo6GUBwuai4RDggGyEjXIyMj5Q0jF0AJgbxdKCi7YELnvohQQBUFNqPaeW1rfAf6pgaQTQBAAAI6DekoX5HB5R2LgREFUq0DLgl36TzkAC2wN4EcHr98ekHFIUBDBLH5JqNx9iNd//AX3izd4DNxOMqvRQALYWbkEsiniaAcujEpvY8DjVVwKDTtytgYH/gD/Hnf/F6YR9j4KhTKxkM0P3Nk9Gb6ovpBmUC+ANdL2j6H8ILNv3PveDT/7IHiNofd/9uEHhKyyy9/InW3Uv0w1+J4RbVt7LV+PoKW/1lSkUWG/vkvAdvgLaY4IQlBghk4zbAMG8+IKDhixgc2hXnBKhSYuPBPLZSnjDf7QinwpzXAXm7M3EuxxLJrU54mPPJPdx9fkIwLU4B15+XaOA2fc5T2OWYkawhAiGmRj5hzqHP6zSIwy0y+WuquiaXmyU6TR5h+c3f6WF1N354Hm63cqvDTLdl07esVs2uA1VsHvnuWFd1iehQRVuN+zqRLctOZcHK3rIxjZNKzs9uABtObsB9Ahdt6dchh1m6Zvqi/vTKBnmbn0rmOQ81QyFn6SlPImFazAEFLYW0OgiDrxKGRkyNzvsMxYA2tY9QKGnGPAoiVHWc6GKZBKLMRs38xfNTY/b/f3do3aIhk9epvHL1TU6WfRbbh0SUs4kpxqUCBrA4m5BzMZkvZGk0AY0Vnm+hBRQxZgELkvQ8bm5+SpkL8JRtzPBIWdSuZmOyWsJlvOwDDTm6ByLHSeH2FAwQaUXLsZBpMHQYW86oJLvF1lh1EGZ1cfdjcV3rUvwB9Nogt1DmjXxxNSSfvkremc+XfcCDxrmU32wR8AKKEh6+ALdJeDRmvEe4hzc74MMYMMhr108pi7GQ4WPR+OnxabSAHy/fpSaXi3wW18p2AgG8fJ1evr3gOi95YNUgGnrz9yF/vTGURXwhA8IWm6cB77WhkQlhr1IjYUGilHEvltnembcv1t5xKGJ/DgyqZjxc44VHKLCj+uK+mzZIiC0gguOJnOu/shB2Nbn0XcKvUUvcGnEpiFHlR3R9t3R3HdgVY9SegvcMZS1YCfzNts7kQBgNw1kg0hlRlDHFmKA4k5RgipJMU4oZlGYmZZiV0YDZ/oLo+PJdMnXQV0w5NNCEeMLa74YtT1n7m7AsdlGDjnlQ9q0rqt10Qw4eeXgU4FGERwkeZXhU4FGFRw0edfjcNtQHVupUL0Sj5ra05+7MoUg7vBZ1QSekUzML9CCt5ckcq3ctUe87UjnNqR/s5DR3KQ1tF6M3a8oNl+lq1tAZmKbv6NwhdEvq9BF2VUdJ+R0ZCnJYoBti9BUCQHtkd9vQDfWckDHUay17EiD/jAITdEf6wBQvG+Lm6Q1maCyjc+q0BhpTJvH5uF/r2qrSJ+czpHGaOjc8eDkwBxgR0Yg0pOFcuznlHAdnn8e2Sv04BZtYRNS1K4TWSPjS4vM2ie1d+iL9fu++yGT/Zo7RhE2NBeJx2qqgGVXLiqCQI51DsgyGYh24f+FWR1RJ5Xokv69qEjKxVb3rDJsr2FqAw16LGsqq0k5l6dkoq7lHjBRkIgAzKaqZinbhU5ADSzusJwmVJFl/99izimCjQisoGAoPRq/BAUWCVr4qeEydevMOvpAplBuS0bYa9rzcEnRgryHd9JTS4B69GQvLW4PjFrJx27PcW7KFqbPgd14RYXrl3uSkPnet6wazwA6x6xv3avSj2/pMfNLHYB6YVT0BizBmtQhf+zhO8aqh2dF9TacRjMKmk1i9rOLUqLYInPVNvTq7S/sLfoZmFyyCUXD+JdYhWOgj0rCje7vrfFiJ91lGOs/A/swi8mLl0/Hemnuwu+rj0hlG+fCE2B06cOYdz7bkqugaDW7hMiHZN2DW6PZKGC1NnVZjIbNU+A6B2eV2qnaPCVLO8MBsStQ0lYBmRtQyB6hAKyNqm0qAiVF1c+4LAMooLJzIOo0AGyc6OBcgHOJEh6cRcISTsvODkbXDyDpgZJ0wqi40Klm3qFPPVAJ6GdkOmaDxPmi8HxofgMYHofEhaHwYGh+BVjma68Fe59ljR67bILRxlKgJgwdqKM2bzPUQ2uue0olP60QzidhHEbPaPsxp+5z5HUppAQQDFk0oLelEy4nYTwsr2n6savvh1PZjzazSUZ3omE7yOPQcwAntAE5qB3BKOwCXWaV1nWhDp9zN3Of1pdond8sxzwvGjZaUpJgkq7U0x630uHlq41xG3TkPBPJ6UR/QfyugAlAAnBXgzkPPd+wrAAQOBhbn4yNHxYQF0lqO2fTk2sebWW3mpzY/dGa2tj3h/GAj29T6+MZHi5u/Hv3l9G/Hfp/f/PzYZ6c/OfqpHW3LxCfXrqoqLZZsXAbuyRnWdmUzwnytw/lJq//GZ+a1z83RpFi/+WnbO/C6cOLTT7sc19bCm69uhHabgNOIH+cQLZckGgoQWbbUG++HJreuVxaVX791a1jFVRlU6Xp/2vvrfurbdUyOj72V/baf39LsfPqft1798OPsDz/M/hjcw8evDP575UrQE08EVz2oUW4oy7d5km5IN3hvL5cEarduadWfj7F72rq4aIX9unQBjlm3WBKnm3nssRnzuY7Eholte1pa9uR0VAQeni5dXjKZnoh/wvVk7JNCTE/fjL/puhF/4969J2J//b94+HApIvphe8kwuujh/VvCnmXPG2Iig1QuGKiWCAwn8sTYTGhkaISQo3MM5eFhoSGCCarVkeCMC+aUCOACvF8mRsSs7f/LqAPEqCk4WPUhBLfgCH8/nyA1SBJQSFHk8BzDgWwiuShF4iBWC1kiSSYnIxAncCckECRygAvBreBc2CG4aEjJ3B4empKsk+NyDPk+xIhqQWAg5oQASKAf45xZwRi3gzPesG1rRGi4JMfkgAAQMPUfCrAH7P1PCeB/AMA3uwIfNkPesMpFUcizsVQBQyoBj0UlQxTckFcMu9eVRMNlz75xrreW8Qwsl7AVz2II9AtnFtiKb2aw7+jQNnNvEBRsMxh02GdwKNAg9FpDgh6thgwFdkNFDsft9QhxUThI+AAY8EjFIAQmwGDwpwTJz/Q8KaC+z5AQnjopQ73LUGHK5FF6pOfBPwtPKctK/BW+u58cN18kVoa3ZYsXCsQTqFbV/OJ0q2utzWdNM4ryC0+7vQmu5uSMo3hqqve5z6hypPXdOOYzTt14PTfKjBozb0I/hz5TEmUqkyVRscJcXCRRJ0pPNEpw834jOgxJ1GHalD5g8aREBih7uRw5Ke4xZAiPP1+XUcMt2TwmO0zzI3aYQPR8LE1Y0Lf7QeNPVCRfIQEq7BEiuwMQ0y138qQZJotR6pReCe0JiY6UqLydmmgMLAd2suvMzreInDInt1uBAt3iGCZboeL9JGLESZBEMuT/421Lz1dE+z96HZX3v5Pz1NHBvEe9b90NoObD/WaLh+is1U1F67a3B7pSD5C93lg9+jUA+vYNXwMHtCeVXE0Wt8FlOaZulpn2qoJmDWg7xpPRvsLrihMkDK6u1oticm4P/LNfJe8JtzjjYfuar9QtQxsJAwc=) format("woff2"),url(data:font/woff;base64,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) format("woff"),url(data:font/ttf;base64,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) format("truetype"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMjEgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9udGVsbG8iIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvbnRlbGxvIiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJjYW5jZWwiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMCA5MHEwIDM2IDI2IDYybDE5NSAxOTUtMTk1IDE5NnEtMjYgMjUtMjYgNjF0MjYgNjEgNjEgMjUgNjEtMjVsMTk2LTE5NiAxOTUgMTk2cTI1IDI1IDYxIDI1dDYxLTI1IDI1LTYxLTI1LTYxbC0xOTUtMTk2IDE5NS0xOTVxMjUtMjYgMjUtNjJ0LTI1LTYxcS0yNS0yNS02MS0yNXQtNjEgMjVsLTE5NSAxOTUtMTk2LTE5NXEtMjUtMjUtNjEtMjV0LTYxIDI1cS0yNiAyNi0yNiA2MXoiIGhvcml6LWFkdi14PSI2ODYuNSIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjbG9jayIgdW5pY29kZT0iJiN4ZTgwNDsiIGQ9Ik00NjAgODEwcTE5MCAwIDMyNS0xMzV0MTM1LTMyNS0xMzUtMzI1LTMyNS0xMzUtMzI1IDEzNS0xMzUgMzI1IDEzNSAzMjUgMzI1IDEzNXogbTAtODIwcTE1MCAwIDI1NSAxMDZ0MTA1IDI1NHEwIDE1MC0xMDUgMjU1dC0yNTUgMTA1cS0xNDggMC0yNTQtMTA1dC0xMDYtMjU1cTAtMTQ4IDEwNi0yNTR0MjU0LTEwNnogbTM2IDYyMGwwLTI0NCAxNTAtMTUwLTUwLTUwLTE3MCAxNzAgMCAyNzQgNzAgMHoiIGhvcml6LWFkdi14PSI5MjAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iZG93bmxvYWQtY2xvdWQiIHVuaWNvZGU9IiYjeGYwZWQ7IiBkPSJNNzE0IDMzMnEwIDgtNSAxM3QtMTMgNWgtMTI1djE5NnEwIDgtNSAxM3QtMTIgNWgtMTA4cS03IDAtMTItNXQtNS0xM3YtMTk2aC0xMjVxLTggMC0xMy01dC01LTEzcTAtOCA1LTEzbDE5Ni0xOTZxNS01IDEzLTV0MTMgNWwxOTYgMTk2cTUgNiA1IDEzeiBtMzU3LTEyNXEwLTg5LTYyLTE1MXQtMTUyLTYzaC02MDdxLTEwMyAwLTE3NyA3M3QtNzMgMTc3cTAgNzIgMzkgMTM0dDEwNSA5MnEtMSAxNy0xIDI0IDAgMTE4IDg0IDIwMnQyMDIgODRxODcgMCAxNTktNDl0MTA1LTEyOXE0MCAzNSA5MyAzNSA1OSAwIDEwMS00MnQ0Mi0xMDFxMC00My0yMy03NyA3Mi0xNyAxMTktNzZ0NDYtMTMzeiIgaG9yaXotYWR2LXg9IjEwNzEuNCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJvay1zcXVhcmVkIiB1bmljb2RlPSImI3hmMTRhOyIgZD0iTTM4MiAxMjVsMzQzIDM0M3ExMSAxMCAxMSAyNXQtMTEgMjVsLTU3IDU3cS0xMSAxMS0yNSAxMXQtMjUtMTFsLTI2MS0yNjEtMTE4IDExOHEtMTAgMTEtMjUgMTF0LTI1LTExbC01Ny01N3EtMTAtMTAtMTAtMjV0MTAtMjVsMjAwLTIwMHExMS0xMCAyNS0xMHQyNSAxMHogbTQ3NSA0OTN2LTUzNnEwLTY2LTQ3LTExM3QtMTE0LTQ4aC01MzVxLTY3IDAtMTE0IDQ4dC00NyAxMTN2NTM2cTAgNjYgNDcgMTEzdDExNCA0OGg1MzVxNjcgMCAxMTQtNDh0NDctMTEzeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgo8L2ZvbnQ+CjwvZGVmcz4KPC9zdmc+#fontello) format("svg");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cancel:before{content:"\e800"}.icon-clock:before{content:"\e804"}.icon-download-cloud:before{content:"\f0ed"}.icon-ok-squared:before{content:"\f14a"}[class*=" simpleicon-"],[class^=simpleicon-]{position:relative;padding-left:1.6em}[class*=" simpleicon-"]:before,[class^=simpleicon-]:before{position:absolute;display:inline-block;left:0;top:0;width:1.2em;height:1.2em;margin-right:.2em;text-align:center;line-height:0;margin-left:.2em;padding-top:.1em}.simpleicon-youtube:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0icmVkIiBkPSJNMjMuNDk4IDYuMTg2YTMuMDE2IDMuMDE2IDAgMDAtMi4xMjItMi4xMzZDMTkuNTA1IDMuNTQ1IDEyIDMuNTQ1IDEyIDMuNTQ1cy03LjUwNSAwLTkuMzc3LjUwNUEzLjAxNyAzLjAxNyAwIDAwLjUwMiA2LjE4NkMwIDguMDcgMCAxMiAwIDEyczAgMy45My41MDIgNS44MTRhMy4wMTYgMy4wMTYgMCAwMDIuMTIyIDIuMTM2YzEuODcxLjUwNSA5LjM3Ni41MDUgOS4zNzYuNTA1czcuNTA1IDAgOS4zNzctLjUwNWEzLjAxNSAzLjAxNSAwIDAwMi4xMjItMi4xMzZDMjQgMTUuOTMgMjQgMTIgMjQgMTJzMC0zLjkzLS41MDItNS44MTR6TTkuNTQ1IDE1LjU2OFY4LjQzMkwxNS44MTggMTJsLTYuMjczIDMuNTY4eiIvPjwvc3ZnPg==)}.simpleicon-steam:before{content:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTExLjk3OSAwQzUuNjc4IDAgLjUxMSA0Ljg2LjAyMiAxMS4wMzdsNi40MzIgMi42NThhMy4zODcgMy4zODcgMCAwMTEuOTEyLS41OWMuMDYzIDAgLjEyNS4wMDQuMTg4LjAwNmwyLjg2MS00LjE0MlY4LjkxYTQuNTI4IDQuNTI4IDAgMDE0LjUyNC00LjUyNGMyLjQ5NCAwIDQuNTI0IDIuMDMxIDQuNTI0IDQuNTI3cy0yLjAzIDQuNTI1LTQuNTI0IDQuNTI1aC0uMTA1bC00LjA3NiAyLjkxMWMwIC4wNTIuMDA0LjEwNS4wMDQuMTU5YTMuMzkyIDMuMzkyIDAgMDEtMy4zOSAzLjM5NiAzLjQxMiAzLjQxMiAwIDAxLTMuMzMxLTIuNzI3TC40MzYgMTUuMjdDMS44NjIgMjAuMzA3IDYuNDg2IDI0IDExLjk3OSAyNGM2LjYyNyAwIDExLjk5OS01LjM3MyAxMS45OTktMTJTMTguNjA1IDAgMTEuOTc5IDB6TTcuNTQgMTguMjFsLTEuNDczLS42MWMuMjYyLjU0My43MTQuOTk5IDEuMzE0IDEuMjVhMi41NTEgMi41NTEgMCAwMDMuMzM3LTMuMzI0IDIuNTQ3IDIuNTQ3IDAgMDAtMy4yNTUtMS40MTNsMS41MjMuNjNhMS44NzggMS44NzggMCAwMS0xLjQ0NSAzLjQ2N0g3LjU0em0xMS40MTUtOS4zMDNhMy4wMTkgMy4wMTkgMCAwMC0zLjAxNS0zLjAxNSAzLjAxNSAzLjAxNSAwIDEwMy4wMTUgMy4wMTV6bS01LjI3My0uMDA1YTIuMjY0IDIuMjY0IDAgMTE0LjUzMSAwIDIuMjY3IDIuMjY3IDAgMDEtMi4yNjYgMi4yNjUgMi4yNjQgMi4yNjQgMCAwMS0yLjI2NS0yLjI2NXoiLz48L3N2Zz4=)}.simpleicon-paypal:before{content:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzAwOWNkZSIgZD0iTTYuOTA4IDI0SDMuODA0Yy0uNjY0IDAtMS4wODYtLjUyOS0uOTM2LTEuMThsLjE0OS0uNjc0aDIuMDcxYy42NjYgMCAxLjMzNi0uNTMzIDEuNDgyLTEuMTgybDEuMDY0LTQuNTkyYy4xNS0uNjQ4LjgxNi0xLjE4IDEuNDgtMS4xOGguODgzYzMuNzg5IDAgNi43MzQtLjc3OSA4Ljg0LTIuMzRzMy4xNi0zLjYgMy4xNi02LjEzNWMwLTEuMTI1LS4xOTUtMi4wNTUtLjU4OC0yLjc4OSAwLS4wMTYtLjAxNi0uMDMxLS4wMTYtLjA0NmwuMTM1LjA3NWMuNzUuNDY1IDEuMzIgMS4wNjQgMS43MTEgMS44MTQuNDA0Ljc1LjU5OCAxLjY4LjU5OCAyLjc5MSAwIDIuNTM1LTEuMDQ5IDQuNTc0LTMuMTY0IDYuMTM1LTIuMSAxLjU0NS01LjA1NSAyLjMyNC04LjgzNCAyLjMyNGgtLjljLS42NiAwLTEuMzM0LjUyNS0xLjQ4NCAxLjE4Nkw4LjM5IDIyLjgxMmMtLjE0OS42NDUtLjgxIDEuMTctMS40NyAxLjE3TDYuOTA4IDI0em0tMi42NzctMi42OTVIMS4xMjZjLS42NjMgMC0xLjA4NC0uNTI5LS45MzYtMS4xOEw0LjU2MyAxLjE4MkM0LjcxNC41MjkgNS4zNzggMCA2LjA0NCAwaDYuNDY1YzEuMzk1IDAgMi42MDkuMDk4IDMuNjQ4LjI4OSAxLjAzNS4xODkgMS45Mi41MTkgMi42ODQuOTkuNzM2LjQ2NSAxLjMyMiAxLjA3MiAxLjY5NyAxLjgxOC4zODkuNzQ4LjU4NCAxLjY4LjU4NCAyLjc5NyAwIDIuNTM1LTEuMDUxIDQuNTc0LTMuMTY0IDYuMTE5LTIuMSAxLjU2MS01LjA1NiAyLjMyNi04LjgzNiAyLjMyNmgtLjg4M2MtLjY2IDAtMS4zMjguNTI0LTEuNDc4IDEuMTY5TDUuNyAyMC4wOTdjLS4xNDkuNjQ2LS44MTcgMS4xNzItMS40ODUgMS4xNzJsLjAxNi4wMzZ6bTcuNDQ2LTE3LjM2OWgtMS4wMTRjLS42NjYgMC0xLjMzMi41MjktMS40OCAxLjE3OGwtLjkzIDQuMDJjLS4xNS42NDguMjcgMS4xNzkuOTMgMS4xNzloLjc2NmMxLjY2NCAwIDIuOTctLjM0MyAzLjktMS4wMjEuOTI5LS42ODYgMS4zOTUtMS42NTQgMS4zOTUtMi45MTIgMC0uODMtLjMwMS0xLjQ0NS0uOS0xLjg0LS42LS40MDQtMS41LS42MDUtMi42ODYtLjYwNWwuMDE5LjAwMXoiLz48L3N2Zz4=)}.simpleicon-github:before{content:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTEyIC4yOTdjLTYuNjMgMC0xMiA1LjM3My0xMiAxMiAwIDUuMzAzIDMuNDM4IDkuOCA4LjIwNSAxMS4zODUuNi4xMTMuODItLjI1OC44Mi0uNTc3IDAtLjI4NS0uMDEtMS4wNC0uMDE1LTIuMDQtMy4zMzguNzI0LTQuMDQyLTEuNjEtNC4wNDItMS42MUM0LjQyMiAxOC4wNyAzLjYzMyAxNy43IDMuNjMzIDE3LjdjLTEuMDg3LS43NDQuMDg0LS43MjkuMDg0LS43MjkgMS4yMDUuMDg0IDEuODM4IDEuMjM2IDEuODM4IDEuMjM2IDEuMDcgMS44MzUgMi44MDkgMS4zMDUgMy40OTUuOTk4LjEwOC0uNzc2LjQxNy0xLjMwNS43Ni0xLjYwNS0yLjY2NS0uMy01LjQ2Ni0xLjMzMi01LjQ2Ni01LjkzIDAtMS4zMS40NjUtMi4zOCAxLjIzNS0zLjIyLS4xMzUtLjMwMy0uNTQtMS41MjMuMTA1LTMuMTc2IDAgMCAxLjAwNS0uMzIyIDMuMyAxLjIzLjk2LS4yNjcgMS45OC0uMzk5IDMtLjQwNSAxLjAyLjAwNiAyLjA0LjEzOCAzIC40MDUgMi4yOC0xLjU1MiAzLjI4NS0xLjIzIDMuMjg1LTEuMjMuNjQ1IDEuNjUzLjI0IDIuODczLjEyIDMuMTc2Ljc2NS44NCAxLjIzIDEuOTEgMS4yMyAzLjIyIDAgNC42MS0yLjgwNSA1LjYyNS01LjQ3NSA1LjkyLjQyLjM2LjgxIDEuMDk2LjgxIDIuMjIgMCAxLjYwNi0uMDE1IDIuODk2LS4wMTUgMy4yODYgMCAuMzE1LjIxLjY5LjgyNS41N0MyMC41NjUgMjIuMDkyIDI0IDE3LjU5MiAyNCAxMi4yOTdjMC02LjYyNy01LjM3My0xMi0xMi0xMiIvPjwvc3ZnPg==)}.simpleicon-instagram:before{content:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0U0NDA1RiIgZD0iTTEyIDBDOC43NCAwIDguMzMzLjAxNSA3LjA1My4wNzIgNS43NzUuMTMyIDQuOTA1LjMzMyA0LjE0LjYzYy0uNzg5LjMwNi0xLjQ1OS43MTctMi4xMjYgMS4zODRTLjkzNSAzLjM1LjYzIDQuMTRDLjMzMyA0LjkwNS4xMzEgNS43NzUuMDcyIDcuMDUzLjAxMiA4LjMzMyAwIDguNzQgMCAxMnMuMDE1IDMuNjY3LjA3MiA0Ljk0N2MuMDYgMS4yNzcuMjYxIDIuMTQ4LjU1OCAyLjkxM2E1Ljg4NSA1Ljg4NSAwIDAwMS4zODQgMi4xMjZBNS44NjggNS44NjggMCAwMDQuMTQgMjMuMzdjLjc2Ni4yOTYgMS42MzYuNDk5IDIuOTEzLjU1OEM4LjMzMyAyMy45ODggOC43NCAyNCAxMiAyNHMzLjY2Ny0uMDE1IDQuOTQ3LS4wNzJjMS4yNzctLjA2IDIuMTQ4LS4yNjIgMi45MTMtLjU1OGE1Ljg5OCA1Ljg5OCAwIDAwMi4xMjYtMS4zODQgNS44NiA1Ljg2IDAgMDAxLjM4NC0yLjEyNmMuMjk2LS43NjUuNDk5LTEuNjM2LjU1OC0yLjkxMy4wNi0xLjI4LjA3Mi0xLjY4Ny4wNzItNC45NDdzLS4wMTUtMy42NjctLjA3Mi00Ljk0N2MtLjA2LTEuMjc3LS4yNjItMi4xNDktLjU1OC0yLjkxM2E1Ljg5IDUuODkgMCAwMC0xLjM4NC0yLjEyNkE1Ljg0NyA1Ljg0NyAwIDAwMTkuODYuNjNjLS43NjUtLjI5Ny0xLjYzNi0uNDk5LTIuOTEzLS41NThDMTUuNjY3LjAxMiAxNS4yNiAwIDEyIDB6bTAgMi4xNmMzLjIwMyAwIDMuNTg1LjAxNiA0Ljg1LjA3MSAxLjE3LjA1NSAxLjgwNS4yNDkgMi4yMjcuNDE1LjU2Mi4yMTcuOTYuNDc3IDEuMzgyLjg5Ni40MTkuNDIuNjc5LjgxOS44OTYgMS4zODEuMTY0LjQyMi4zNiAxLjA1Ny40MTMgMi4yMjcuMDU3IDEuMjY2LjA3IDEuNjQ2LjA3IDQuODVzLS4wMTUgMy41ODUtLjA3NCA0Ljg1Yy0uMDYxIDEuMTctLjI1NiAxLjgwNS0uNDIxIDIuMjI3YTMuODEgMy44MSAwIDAxLS44OTkgMS4zODIgMy43NDQgMy43NDQgMCAwMS0xLjM4Ljg5NmMtLjQyLjE2NC0xLjA2NS4zNi0yLjIzNS40MTMtMS4yNzQuMDU3LTEuNjQ5LjA3LTQuODU5LjA3LTMuMjExIDAtMy41ODYtLjAxNS00Ljg1OS0uMDc0LTEuMTcxLS4wNjEtMS44MTYtLjI1Ni0yLjIzNi0uNDIxYTMuNzE2IDMuNzE2IDAgMDEtMS4zNzktLjg5OSAzLjY0NCAzLjY0NCAwIDAxLS45LTEuMzhjLS4xNjUtLjQyLS4zNTktMS4wNjUtLjQyLTIuMjM1LS4wNDUtMS4yNi0uMDYxLTEuNjQ5LS4wNjEtNC44NDQgMC0zLjE5Ni4wMTYtMy41ODYuMDYxLTQuODYxLjA2MS0xLjE3LjI1NS0xLjgxNC40Mi0yLjIzNC4yMS0uNTcuNDc5LS45Ni45LTEuMzgxLjQxOS0uNDE5LjgxLS42ODkgMS4zNzktLjg5OC40Mi0uMTY2IDEuMDUxLS4zNjEgMi4yMjEtLjQyMSAxLjI3NS0uMDQ1IDEuNjUtLjA2IDQuODU5LS4wNmwuMDQ1LjAzem0wIDMuNjc4YTYuMTYyIDYuMTYyIDAgMTAwIDEyLjMyNCA2LjE2MiA2LjE2MiAwIDEwMC0xMi4zMjR6TTEyIDE2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHptNy44NDYtMTAuNDA1YTEuNDQxIDEuNDQxIDAgMDEtMi44OCAwIDEuNDQgMS40NCAwIDAxMi44OCAweiIvPjwvc3ZnPg==)}.simpleicon-twitter:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iIzFEQTFGMiIgZD0iTTIzLjk1MyA0LjU3YTEwIDEwIDAgMDEtMi44MjUuNzc1IDQuOTU4IDQuOTU4IDAgMDAyLjE2My0yLjcyM2MtLjk1MS41NTUtMi4wMDUuOTU5LTMuMTI3IDEuMTg0YTQuOTIgNC45MiAwIDAwLTguMzg0IDQuNDgyQzcuNjkgOC4wOTUgNC4wNjcgNi4xMyAxLjY0IDMuMTYyYTQuODIyIDQuODIyIDAgMDAtLjY2NiAyLjQ3NWMwIDEuNzEuODcgMy4yMTMgMi4xODggNC4wOTZhNC45MDQgNC45MDQgMCAwMS0yLjIyOC0uNjE2di4wNmE0LjkyMyA0LjkyMyAwIDAwMy45NDYgNC44MjcgNC45OTYgNC45OTYgMCAwMS0yLjIxMi4wODUgNC45MzYgNC45MzYgMCAwMDQuNjA0IDMuNDE3IDkuODY3IDkuODY3IDAgMDEtNi4xMDIgMi4xMDVjLS4zOSAwLS43NzktLjAyMy0xLjE3LS4wNjdhMTMuOTk1IDEzLjk5NSAwIDAwNy41NTcgMi4yMDljOS4wNTMgMCAxMy45OTgtNy40OTYgMTMuOTk4LTEzLjk4NSAwLS4yMSAwLS40Mi0uMDE1LS42M0E5LjkzNSA5LjkzNSAwIDAwMjQgNC41OXoiLz48L3N2Zz4=)}:root{--rt-main:#1e4d6c}html{font-size:17px;font-weight:300}body{font-family:Heebo,sans-serif;color:#fff;background-color:#050d19;margin:0;overflow:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background-color:#1e4d6c}::-webkit-scrollbar-thumb:hover{background-color:#2e5d7c}::-webkit-scrollbar-track,::-webkit-scrollbar-track-piece{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAACAAQMAAAAMIrp9AAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAABVJREFUeNrlwYEAAAAAgKD9qQepwg0BAAABV4fZxwAAAABJRU5ErkJggg==) repeat-y!important}::-webkit-resizer{background-color:#050d19;color:#1e4d6c}#background{position:fixed;padding:0;margin:0;top:0;left:0;width:100%;height:100%;background-image:url(img/e7ea69e5fd6e22b5f29b.jpg);background-size:auto 100%;background-position:top;background-repeat:no-repeat;background-attachment:fixed;z-index:1}#content{max-width:550px;margin:0 auto;padding:0 .6rem;position:relative;z-index:1000}b{font-weight:500;color:#aac7d4}del{text-decoration:none;opacity:.5}strong{font-weight:700}h1{font-size:1.7rem;color:#aac7d4;margin:.6rem 0}#h1-title,h2{text-align:center}h2{margin:.6rem 0;color:rgba(231,251,255,.6)}#save-location-input{display:block;font-family:Consolas,monospace;font-size:.75rem;text-align:center;width:100%;max-width:32em;color:#fff;background-color:hsla(0,0%,50.2%,.5);margin:.4rem auto .6rem;padding:.16rem .5rem .25rem;border:1px solid rgba(231,251,255,.6);border-radius:3px}#save-location-input:focus{outline:0;border:1px solid rgba(231,251,255,.8)}input{font-family:Heebo,sans-serif;font-size:1rem}input,textarea{text-align:left}textarea{font-family:Consolas,monospace;font-size:.8rem;background-color:transparent;color:#fff;caret-color:#fff;border:1px solid #e3ebf7;padding:2px;margin:.5rem 2px;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;hyphens:none}textarea:focus{border-color:transparent;box-shadow:0 0 4px 2px #fff;outline:0}textarea::placeholder{color:hsla(0,0%,100%,.5);font-size:1rem;text-align:center;caret-color:#fff}input[type=file]{max-width:500px;margin:.5rem .5rem .5rem .25rem}#save-area{display:block;width:100%;max-width:542px;height:5.65rem}.buttons{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.input-buttons{display:flex;flex-direction:column}.checkboxes{margin-top:0}.button{display:flex;flex-direction:row;align-items:center;width:max-content;font-size:1rem;font-weight:500;font-family:Heebo,sans-serif;text-align:center;background-color:#1e4d6c;color:#aac7d4;border:2px solid #183c55;border-radius:2px;padding:.3rem 1rem;margin:.25rem .5rem .25rem .25rem}.button:first-child{margin-left:.25rem}.button:hover{color:#d9f3ff;background-color:#2e5d7c;border-color:#2e5d7c;cursor:pointer}.button:focus{outline:0;border-color:#5e8dac}.centered{flex-direction:row;align-items:center}@media screen and (max-width:570px){.centered{flex-direction:column;align-items:flex-start}}@media screen and (max-width:400px){.buttons{flex-direction:column;align-items:center}.input-buttons{align-items:center;justify-content:center}.centered{flex-direction:column;align-items:flex-start}.checkboxes{margin-top:.8rem}}p{margin-top:.6rem;margin-bottom:.6rem}.horizontal-line{margin:1rem 0;height:1.5rem;width:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApoAAAAoCAMAAABpT6qaAAAC8VBMVEUAAAD9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f0KbR4qAAAA+nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF5f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);background-size:auto 100%;background-position:top;background-repeat:no-repeat}@media screen and (max-width:460px){.horizontal-line{height:1.15rem}}@media screen and (max-width:360px){.horizontal-line{height:.9rem}}.smalltext{font-size:.8rem;text-align:center}a,a:active,a:visited{display:inline-block;color:#aac7d4;font-weight:700;text-decoration:none}a:hover{color:#d9f3ff;text-decoration:none}a.button:active,a.button:visited{font-weight:500}.link-social{margin:.25rem}.icon-cancel{color:#f03a17}.icon-ok-squared{color:#16c60c}.icon-info-circled{color:#479ae7}.icon-download-cloud{color:#d9f3ff}.flex-container{display:flex;flex-wrap:wrap;align-items:normal;justify-content:left}.flex-container,.flex-row{flex-direction:row}.align-center{align-items:center}.soul-orb:first-child{margin-left:.3rem}.geo-symbol,.health-mask,.notch,.soul-orb{width:auto;height:1.48rem;margin:0 0 0 .3rem}.notch{margin-left:-.6rem}.notch,.soul-orb{padding-left:.3rem}.soul-orb{height:1.3rem;margin-left:-.15rem}.geo-symbol{margin-right:.15rem}.padding-left{padding-left:1.4rem;height:1.47rem}.p-left-small{display:inline;padding-left:.3rem;height:1.47rem}.hidden{display:none}.spoiler-text{display:inline;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.checkbox,.radio{position:relative;display:block;left:-40px;padding:4px;margin-left:10px}input[type=checkbox],input[type=radio]{margin-right:10px}.checkbox-label,.radio-label{display:inline-block;position:relative;padding:0 0 0 1.8rem;margin:.25rem 1rem .25rem .5rem;cursor:pointer;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:max-content}.checkbox-label:last-child{margin-right:0}.checkmark,.radiomark{position:absolute;top:0;left:0;height:22px;width:22px;background-color:#aac7d4;border:1px solid #1e4d6c;border:1px solid var(--rt-main)}.radiomark{border-radius:50%}.checkbox-label input,.radio-label input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkbox-label:hover input~.checkmark,.radio-label:hover input~.radiomark{background-color:#d9f3ff}.checkbox-label input:checked~.checkmark,.radio-label input:checked~.radiomark{background-color:#1e4d6c;background-color:var(--rt-main)}.checkbox-label:hover input:checked~.checkmark,.radio-label:hover input:checked~.radiomark{background-color:#2e5d7c;border-color:#2e5d7c}.checkmark:after,.radiomark:after{content:"";position:absolute;display:none}.checkbox-label input:checked~.checkmark:after,.radio-label input:checked~.radiomark:after{display:block}.checkbox-label .checkmark:after{left:7px;top:2px;width:6px;height:12px;border:solid #aac7d4;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.radio-label .radiomark:after{top:7px;left:7px;width:10px;height:10px;border-radius:50%;background:#000}.tooltip{position:relative;display:block;margin:0 auto;width:100%;max-width:550px}.tooltip .tooltip-text{visibility:hidden;width:max-content;background-color:#1e4d6c;color:#d9f3ff;font-size:.85rem;text-align:center;border-radius:3px;padding:.16rem .7rem;position:absolute;z-index:1;bottom:130%;left:50%;margin-left:-109px;opacity:0;transition:opacity .3s}.tooltip .tooltip-text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#1e4d6c}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}@media screen and (max-width:570px){.tooltip{display:none}}.percent-box{display:inline-block;text-align:center;font-size:1.1rem;vertical-align:middle;color:#d9f3ff;margin:0 .5rem;padding:.2rem 1.2rem;background:#1e4d6c;border:2px solid #3e6d8c;border-radius:4px}.box-red{color:#ffe2dd;background:#c22e14;border:2px solid #e24e34}.box-green{color:#ddffd9;background:#1e6c1e;border:2px solid #2d8a2d} \ No newline at end of file diff --git a/src/partials/analytics.html b/src/partials/analytics.html index 4fd04f9..0807164 100644 --- a/src/partials/analytics.html +++ b/src/partials/analytics.html @@ -2,7 +2,7 @@