From dff800558354b67f5b7efcdec9bef38d98504baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Badeaux?= Date: Tue, 1 Feb 2022 14:44:31 -0500 Subject: [PATCH 1/3] Change README logo to Plain Logo if we don't like it we can change it? but I like it. --- README.md | 175 ------------------------------------------------------ 1 file changed, 175 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 6d2bb92b..00000000 --- a/README.md +++ /dev/null @@ -1,175 +0,0 @@ -

Hacks are being shut down. Thanks for everything.

-

- - Installation - -

- - - - -

- - Website - • - Discord - • - Installation - • - Youtube - -

-

- - Chrome Web Store Rating - - - -Extension Downloads - - - -Extension Downloads - - - - - - - - - - -

- - - -## How to install - -1.) Install the [extension](https://chrome.google.com/webstore/detail/prodigyhacking/gjabpajagbgoifbkflgojeojmnlmioea) (also known as PHEx) from the Chrome Web Store. -
-2.) Visit https://prodigygame.com -
-3.) Make a second account and log in. DO NOT USE HACKS ON YOUR PRIMARY ACCOUNT. Hacks can damage your account if used improperly or excessively, and most hacks can't be undone. -
-4.) A dropdown arrow will appear after 15-20 seconds. - -## Motivation - -
-We aren't evil. Everything is open source, forever free, and without ads. -
-We're not trying to break the game because we're evil. We wanted to help Prodigy become more secure, but they've ignored our emails and our requests to talk. They've even gone as far as to ban a user from their official Zendesk. - -Because of that, we're publicly showing hacks! That, and it's also just fun :) - -All of our hacks are open source, and free. No paywalls, no ads, and no Patreon. If you really want to support us, you can Nitro boost our Discord server [here](https://discord.gg/XQDfbfq)! -
- -
-Can you hack for me? - -No. See [#170](https://github.com/Prodigy-Hacking/ProdigyMathGameHacking/discussions/170). - -
- -
-How do I know you won't steal my account? -Of course, with trusting any hacks, comes the risk that we're actually bad actors that will steal all your info. -It's impossible to prove with absolute certainty to anyone reading this that we aren't bad faith, but we can open source our things, and try to be transparent. - -- We do not want your account. - -Not only do we not want your account, but we will actively ban you from our organization if you share your credentials online. It's bad security, and we really can't be bothered. - -- But what if you steal my personal info? - -We do not want your personal info. Please do not share it. Even if we wanted to, there's not much we could do with it. "Wow, John Doe is in 5th grade and has mastered fractions!" - -- How do I know what code is running in the hacks? - -Again, our code is open source, and you're always free to read any of it. If you have trouble understanding what a certain thing does, feel free to ask any of the administrators on our official Discord. -
- -
-Legal -If you have any legal problems, please email support@prodigyhacking.com -
- - - -## Disclaimer - -
-Always use an alt, just to be safe. -
-While our hacks are completely safe, you should never use hacks on your main account. - -There's an extremely small chance your account will be hacker-tagged, reset, or banned. Luckily, it almost never happens. The only incidents PMGH knows of users being banned for hacking were contributors or staff of PMGH itself. - -We will never ask you for your password. If somebody asks you for personal/sensitive information, report it to the staff on our [Discord server](https://discord.gg/XQDfbfq). - -All of our hacks are *open-source*, and only located under our [Github Organization](https://github.com/Prodigy-Hacking). -*If it's not an official repository or a fork, it may not be safe!* -
- - - -
-We're not liable for damage to your account. -
-- All hacks, exploits, or other files hosted here may damage your account if used improperly or excessively. We can't stress enough, do not use any of these hacks on your primary account, as you risk your account becoming damaged beyond repair, preventing you from accessing Prodigy Math Game in that account. You have been warned. -
-- We are not liable for any damages of any kind, as our license states: - -> Limitation of Liability -> Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. -
- - - - - -## Current Collaborators -- [PatheticMustan](https://github.com/PatheticMustan) -- [Arcerion](https://github.com/ArcerionDev) -- [Yama](https://github.com/vibinyama) -- [BoredFish](https://github.com/BoredFishRE) -- [Hostedposted](https://github.com/hostedposted) -- [Spacebar](https://github.com/00100000) -- Noot (Anonymous User) - - - - - -## Retired Collaborators - -- [MelnCat](https://github.com/MelnCat) -- [Exoticc](https://github.com/Exoticc) -- [Rus](https://github.com/UntrustableRus) -- [Rubberduck55](https://github.com/Rubberduck55) -- [Whimpers](https://github.com/KryptoCrash) - - - - -## Important Folders - -- [ProdigyMathGameHacking](https://github.com/Prodigy-Hacking/ProdigyMathGameHacking) - - Our main repo, used as an issue tracker, things we're working on, documentation, and central hub. You're currently on it. -- [PHEx](https://github.com/Prodigy-Hacking/ProdigyMathGameHacking/tree/master/PHEx) - - The Prodigy Hacking Extension, used to inject our modified gamefiles into Prodigy. - -
- -

-Jokes Card -

- - ----- -***All hacks and software are licensed under the Mozilla Public License (MPL) V2.0, unless stated otherwise with a separate license. Any violation of the policy of this licence may result in a DMCA takedown.*** \ No newline at end of file From e1544cf4f7459ba8525afe96e5b16d1897e68122 Mon Sep 17 00:00:00 2001 From: UntrustableRus <79180322+LeoBadeaux@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:07:24 -0500 Subject: [PATCH 2/3] Fix #1309: Show/hide cheat dropdown --- willsCheatMenu/dist/bundle.js | 1 - willsCheatMenu/src/index.ts | 207 ---------------------------------- 2 files changed, 208 deletions(-) delete mode 100644 willsCheatMenu/dist/bundle.js delete mode 100644 willsCheatMenu/src/index.ts diff --git a/willsCheatMenu/dist/bundle.js b/willsCheatMenu/dist/bundle.js deleted file mode 100644 index d0abd781..00000000 --- a/willsCheatMenu/dist/bundle.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{var __webpack_modules__={8844:(e,t,n)=>{var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}o=[n,t,n(4759),n(9820),n(2852)],void 0===(a=function(e,t,n,o,a){"use strict";new o.Toggler(o.category.battle,"Disable math").setEnabled(s((function*(){a._.constants.constants["GameConstants.Debug.EDUCATION_ENABLED"]=!1}))).setDisabled(s((function*(){a._.constants.constants["GameConstants.Debug.EDUCATION_ENABLED"]=!0}))),new o.Hack(o.category.battle,"Escape Battle","Escape any battle!").setClick(s((function*(){var e=a.game.state.current;"PVP"===e?Object.fromEntries(a._.instance.game.state.states).PVP.endPVP():"CoOp"===e?a.prodigy.world.$(a._.player.data.zone):["Battle","SecureBattle"].includes(e)?(Object.fromEntries(a._.instance.game.state.states)[e].runAwayCallback(),n.Toast.fire("Escaped!","You have successfully escaped from the battle.","success")):n.Toast.fire("Invalid State.","You are currently not in a battle.","error")}))),new o.Hack(o.category.battle,"Win Battle","Instantly win a monster battle.").setClick(s((function*(){var e=a.game.state.current;if("PVP"===e||"CoOp"===e)return n.Toast.fire("Invalid State.","PVP is not supported for this hack.","error");"Battle"===e?(Object.fromEntries(a._.instance.game.state.states).Battle.startVictory(),n.Toast.fire("Victory!","You have successfully won the battle.","success")):"SecureBattle"===e?(Object.fromEntries(a._.instance.game.state.states).SecureBattle.battleVictory(),n.Toast.fire("Victory!","You have successfully won the battle.","success")):n.Toast.fire("Invalid State.","You are currently not in a battle.","error")}))),new o.Hack(o.category.battle,"Set Battle Hearts","Sets your hearts in battle. Automatically raises max hearts.").setClick(s((function*(){var e=yield n.NumberInput.fire("Health Amount","How much HP do you want?","question");void 0!==e.value&&(a._.player.getMaxHearts=()=>+e.value,a._.player.pvpHP=+e.value,a._.player.data.hp=+e.value,n.Toast.fire("Success!","Your hearts have been set.","success"))}))),new o.Hack(o.category.battle,"Fill Battle Energy","Fills up your battle energy.").setClick(s((function*(){var e=a.game.state.getCurrentState();if(!("teams"in e))return n.Toast.fire("Error","You are currently not in a battle.","error");e.teams[0].setEnergy(99),n.Toast.fire("Success!","Your battle energy has been filled.","success")}))),new o.Hack(o.category.battle,"Heal Team").setClick(s((function*(){var e=a.game.state.current;["Battle","SecureBattle"].includes(e)?(a._.player.heal(),n.Toast.fire("Success!","Your team has been healed successfully!","success")):n.Toast.fire("Invalid State.","Your are currently not in a battle.","error")})))}.apply(t,o))||(e.exports=a)},8130:(e,t,n)=>{var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}o=[n,t,n(9820),n(4759),n(2852)],void 0===(a=function(e,t,n,o,a){"use strict";var r=["Boots","Buddies","Fossils","Hats","Items","Key Items","Tower Town Frames","Tower Town Interiors","Mounts","Outfits","Relics","Weapons","Currencies"],i=["boots","follow","fossil","hat","item","key","mathTownFrame","mathTownInterior","mount","outfit","spellRelic","weapon","currency"],c=(e,t)=>e.map((e=>({ID:e.ID,N:t}))).filter((e=>void 0!==e));new n.Hack(n.category.inventory,"Item stacker").setClick(s((function*(){var e=yield o.NumberInput.fire("Amount","How many of every item would you like?","question");if(e.value&&(yield o.Confirm.fire("Are you sure you want to get all items in the game?")).value){i.forEach((t=>{a._.player.backpack.data[t]=c(a._.gameData[t].filter((e=>"follow"===t?![125,126,127,128,129,134,135,136,137].includes(e.ID):e)),e.value)})),a._.gameData.dorm.forEach((t=>a._.player.house.data.items[t.ID]={A:[],N:e.value}));for(var t=()=>a._.player.backpack.data.item.findIndex((e=>84===e.ID||85===e.ID||86===e.ID));t()>-1;)a._.player.backpack.data.item.splice(t(),1);o.Toast.fire("Success!","All items added!","success")}}))),new n.Hack(n.category.inventory,"Clear inventory").setClick(s((function*(){(yield o.Confirm.fire("Are you sure you want to clear your inventory?")).value&&(Object.keys(a._.player.backpack.data).forEach((e=>a._.player.backpack.data[e]=[])),o.Toast.fire("Success!","Inventory cleared.","success"))}))),new n.Hack(n.category.inventory,"Selector (Basic)").setClick(s((function*(){yield o.Swal.fire({title:"What would you like to obtain?",input:"select",inputOptions:r,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to obtain.",showCancelButton:!0}).then(function(){var e=s((function*(e){var t=parseInt(e.value),n=r[t],s=i[t];if(n){var l=yield o.NumberInput.fire("Amount","How many each object would you like?","question");l.value&&(yield o.Confirm.fire("Are you sure you want to get all ".concat(n.toLowerCase(),"?"))).value&&(a._.player.backpack.data[s]=c(a._.gameData[s].filter((e=>"follow"===s?![125,126,127,128,129,134,135,136,137].includes(e.ID):e)),l.value),o.Toast.fire("".concat(n," Added!"),"All ".concat(n.toLowerCase()," have been added to your inventory!"),"success"),a.saveCharacter())}}));return function(t){return e.apply(this,arguments)}}())}))),new n.Hack(n.category.inventory,"Selector (Advanced)","Choose a specific object and quantity to obtain.").setClick(s((function*(){yield o.Swal.fire({title:"What would you like to obtain?",input:"select",inputOptions:r,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to obtain.",showCancelButton:!0}).then(function(){var e=s((function*(e){if(a._.gameData[i[e.value]]){var t=[];a._.gameData[i[e.value]].forEach((e=>{t.push(e.data.name)})),yield o.Swal.fire({title:"What specific object categorized as ".concat(r[e.value].toLowerCase()," would you like to get?"),input:"select",inputOptions:t,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to get.",showCancelButton:!0}).then(function(){var t=s((function*(t){var n=parseInt(t.value);if(a._.gameData[i[e.value]][n]){var s=yield o.NumberInput.fire("Amount","How many of the object would you like?","question");s.value&&(-1===a._.player.backpack.data[i[e.value]].findIndex((t=>t.ID===a._.gameData[i[e.value]][n].ID))?a._.player.backpack.data[i[e.value]].push({ID:a._.gameData[i[e.value]][n].ID,N:s.value}):a._.player.backpack.data[i[e.value]].findIndex((t=>t.ID===a._.gameData[i[e.value]][n].ID)),o.Toast.fire("".concat(r[e.value]," Added!"),"Your selected ".concat(r[e.value].toLowerCase()," have been added."),"success"),a.saveCharacter())}}));return function(e){return t.apply(this,arguments)}}())}}));return function(t){return e.apply(this,arguments)}}())}))),new n.Hack(n.category.inventory,"Get all runes").setClick(s((function*(){if((yield o.Confirm.fire({title:"Hang on!",html:"This feature is in beta. Using this could break your account in a specific way. This should be used for experimentation only.

Proceed?",icon:"warning"})).value){var e,t=parseInt((yield o.NumberInput.fire({title:"Amount",text:"How many of each would you like?",icon:"question",inputValidator:e=>e?"":"Please select which you'd like to get."})).value);if(!isNaN(t))Array.from(a._.instance.prodigy.gameContainer._inversifyContainer._bindingDictionary._map).forEach((t=>{try{a._.instance.prodigy.gameContainer.get(t[0]).battleData&&(e=t[0])}catch(e){console.log("Error for ".concat(t[0]))}})),a._.instance.prodigy.gameContainer.get(e).battleData._secureCharacterState._data.inventory.orb=((e,t)=>e.map((e=>({ID:e.ID,quantity:t}))).filter((e=>void 0!==e)))(a._.gameData.orb,t),o.Toast.fire("Runes Added!","Your runes have been added!","success")}}))),new n.Hack(n.category.inventory,"Obtain All Furniture").setClick(s((function*(){var e=yield o.NumberInput.fire("Amount","How many of each piece of furniture would you like?","question");e.value&&(yield o.Confirm.fire("Are you sure you want to get all furniture?")).value&&(a._.gameData.dorm.forEach((t=>a._.player.house.data.items[t.ID]={A:[],N:e.value})),o.Toast.fire("Furniture Added!","All furniture has been added to your inventory!","success"))}))),new n.Hack(n.category.inventory,"Obtain All Mounts","This gives you the Fluffy Cloud and the Rainbow Cloud.").setClick(s((function*(){a._.player.backpack.data.mount=c(a._.gameData.mount,1),o.Toast.fire("Mounts Added!","All mounts have been added to your inventory!")}))),new n.Hack(n.category.inventory,"Remove item").setClick(s((function*(){var e=yield o.Swal.fire({title:"What category would you like to remove an item from?",input:"select",inputOptions:r,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to obtain.",showCancelButton:!0});if(a._.gameData[i[e.value]]){var t=a._.gameData[i[e.value]].map((e=>e.data.name)),n=yield o.Swal.fire({title:"What specific object categorized as ".concat(r[e.value].toLowerCase()," would you like to remove?"),input:"select",inputOptions:t,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to get.",showCancelButton:!0});if(n=parseInt(n.value),a._.gameData[i[e.value]][n]){var s=yield o.NumberInput.fire("Amount","How many of the object would you like to remove?","question");if(s.value)if(-1!==a._.player.backpack.data[i[e.value]].findIndex((t=>t.ID===a._.gameData[i[e.value]][n].ID))){var c=a._.player.backpack.data[i[e.value]].findIndex((t=>t.ID===a._.gameData[i[e.value]][n].ID));a._.player.backpack.data[i[e.value]][c].N-=parseInt(s.value),a._.player.backpack.data[i[e.value]][c].N<=0&&a._.player.backpack.data[i[e.value]].splice(c,1),o.Toast.fire("Removed!","Successfully removed ".concat(s.value," ").concat(a._.gameData[i[e.value]][n].name,"!"),"success"),a.saveCharacter()}else yield o.Swal.fire("Item Does Not Exist","You do not have any ".concat(a._.gameData[i[e.value]][n].name,"."),"error")}}})))}.apply(t,o))||(e.exports=a)},8346:(e,t,n)=>{var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}o=[n,t,n(9820),n(4759),n(2852)],void 0===(a=function(e,t,n,o,a){"use strict";new n.Hack(n.category.location,"Teleport To Map (interactive)").setClick(s((function*(){var e=o.Swal.mixin({focusConfirm:!1,showCancelButton:!0,preConfirm:()=>{var e;return null===(e=document.querySelector(".radioDiv[checked]"))||void 0===e?void 0:e.getAttribute("zone")}}),t=document.createElement("div");t.classList.add("radioContainer");var n=function(e){var n=document.createElement("DIV");n.classList.add("radioDiv"),n.setAttribute("zone",e);var o=a.locations[e];o?n.style.backgroundImage="url(".concat(o,")"):n.innerText=e,n.onclick=()=>{document.querySelectorAll(".radioDiv[checked]").forEach((e=>e.removeAttribute("checked"))),n.setAttribute("checked","")},t.append(n)};for(var r of Object.keys(a.prodigy.world.zones))n(r);var s=yield e.fire({title:"Teleport Zone",html:t,customClass:{popup:"radioSwal"}});if(s.value){var i=Object.keys(a.prodigy.world.zones[s.value].maps),c=yield o.Swal.fire({input:"select",inputOptions:new Map(i.map((e=>[e,e]))),title:"Map",text:"Which map in the zone do you want to teleport to?"});if(c.value){var l=(yield o.NumberInput.fire("Please enter the x to teleport to. (Try 500?)")).value||500,u=(yield o.NumberInput.fire("Please enter the y to teleport to. (Try 500?)")).value||500;a.prodigy.world.zones[s.value].teleport(c.value,l,u,{},{}),o.Toast.fire("Teleported","You have been teleported!","success")}}}))),new n.Hack(n.category.location,"Teleport to house by userID").setClick(s((function*(){var e=(yield o.NumberInput.fire("Please enter the userID.")).value;e&&(function(e){if(a._.player.userID!==e){var t=a._.instance.prodigy.friendsListNetworkHandler.friendsList.length,n=a._.instance.prodigy.friendsListNetworkHandler.classList.length;a._.instance.prodigy.gameContainer.get("2e1-e659").create("house-visit","click","hub",t,n,null,null,e).broadcast()}var r=a._.instance.prodigy.world.getZone(a._.instance.prodigy.world.getCurrentZone());if(!r)return o.Swal.fire({title:"Error",text:"You are not in a zone!",icon:"error"});r.handleLeaving(2,(()=>function(e){a._.instance.prodigy.loading(!0);var t=t=>{var n=null!=t?t[e]:null;if(null!==n&&void 0!==n.house&&null!==n.house){a._.instance.prodigy.loading(!1);var r=a._.cloneDeep(a._.player.house);if(r.setItems(n.house),void 0===n.data.allowsHouseVisitors||null===n.data.allowsHouseVisitors||!n.data.allowsHouseVisitors)return o.Swal.fire("Teleporting to ".concat(e," is not allowed."),"Try another user.","error");a._.instance.prodigy.world._("house",null,null,{house:r,getAllowsHouseVisitors:()=>void 0!==n.data.allowsHouseVisitors&&null!==n.data.allowsHouseVisitors&&n.data.allowsHouseVisitors,setAllowsHouseVisitors:e=>{n.data.allowsHouseVisitors=e}})}};a._.network.getCharData(e.toString(),["house","data"],t,t)}(e)))}(e),o.Toast.fire("Teleported!","You have been teleported!","success"))}))),new n.Hack(n.category.location,"Get Map Location").setClick(s((function*(){o.Swal.fire({title:"Map Location",html:"You are at
".concat(a._.player.data.zone," .
You can save this to get to the same zone."),icon:"info"})})))}.apply(t,o))||(e.exports=a)},3344:(e,t,n)=>{var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}o=[n,t,n(9820),n(2852)],void 0===(a=function(e,t,n,o){"use strict";new n.Toggler(n.category.minigames,"20x Walk Speed","Walk really fast!").setEnabled(s((function*(){o._.instance.game.state.states.get("DinoDig").walkSpeed=20}))).setDisabled(s((function*(){o._.instance.game.state.states.get("DinoDig").walkSpeed=1.5})))}.apply(t,o))||(e.exports=a)},465:(e,t,n)=>{var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}o=[n,t,n(4759),n(9820),n(2852)],void 0===(a=function(e,t,n,o,a){"use strict";new o.Hack(o.category.misc,"Skip Tutorial").setClick(s((function*(){var e=(e,t,n,o)=>{a._.instance.prodigy.world.getZone(e).testQuest(t,n,o);try{Object.fromEntries(a._.instance.game.state.states).TileScreen.process()}catch(e){}};e("house",2),e("academy",2),a._.player.state.set("tutorial-0",4),a._.player.backpack.addKeyItem(13,0),a._.player.tutorial.data.menus[14]=[1],a._.instance.prodigy.open.map(!0,[]),a._.player.onTutorialComplete(),a._.player.data.level=Math.max(a._.player.data.level,5)}))),new o.Toggler(o.category.misc,"Disable Monster Encounters").setEnabled(s((function*(){a._.constants.constants["GameConstants.Debug.SCALE_ENCOUNTER_DISTANCE"]=0}))).setDisabled((()=>{a._.constants.constants["GameConstants.Debug.SCALE_ENCOUNTER_DISTANCE"]=1})),new o.Toggler(o.category.misc,"Skip enemy turn").setEnabled(s((function*(){a._.constants.constants["GameConstants.Battle.SKIP_ENEMY_TURN"]=!0}))).setDisabled((()=>{a._.constants.constants["GameConstants.Battle.SKIP_ENEMY_TURN"]=!1})),new o.Hack(o.category.misc,"Bobbify","Converts your account into Bobby Fancywoman.").setClick(s((function*(){(yield n.Confirm.fire("Are you sure you want your account to be turned into Bobby Fancywoman?","This action is not reversable.")).value&&(a._.player.name.data.nickname=null,a._.player.name.data.firstName=44,a._.player.name.data.middleName=754,a._.player.name.data.lastName=882,a._.player.data.stars=-1e22,a._.player.data.level=69,a._.player.appearance.setGender("male"),a._.player.appearance.setEyeColor(1),a._.player.appearance.setFace(4),a._.player.appearance.setHair(19,1),a._.player.appearance.setSkinColor(1),a._.player.equipment.setFollow(19),a._.player.equipment.setHat(19),a._.player.equipment.setBoots(19),a._.player.equipment.setOutfit(19),a._.player.equipment.setWeapon(19),n.Toast.fire("Bobbified!","You are now Bobby Fancywoman.","success"))}))),new o.Hack(o.category.misc,"Reset Account","Completely resets your account.").setClick(s((function*(){(yield n.Confirm.fire("Are you sure you want to reset your account?","This action is not reversable.")).value&&a._.player.resetAccount()})))}.apply(t,o))||(e.exports=a)},7736:(module,exports,__webpack_require__)=>{var __webpack_unused_export__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;function asyncGeneratorStep(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var r=e.apply(t,n);function s(e){asyncGeneratorStep(r,o,a,s,i,"next",e)}function i(e){asyncGeneratorStep(r,o,a,s,i,"throw",e)}s(void 0)}))}}__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__,exports,__webpack_require__(4759),__webpack_require__(9820),__webpack_require__(2852)],__WEBPACK_AMD_DEFINE_RESULT__=function(require,exports,swal_1,index_1,util_1){"use strict";__webpack_unused_export__={value:!0},new index_1.Hack(index_1.category.pets,"Get All Pets").setClick(_asyncToGenerator((function*(){util_1._.gameData.pet.forEach((e=>{util_1._.player.kennel.addPet(e.ID.toString(),util_1.VERY_LARGE_NUMBER,26376,100)})),util_1._.player.kennel._encounterInfo._data.pets=[],util_1._.gameData.pet.map((e=>{util_1._.player.kennel._encounterInfo._data.pets.push({firstSeenDate:Date.now(),ID:e.ID,timesBattled:1,timesRescued:1})})),util_1._.player.kennel.petTeam.forEach((e=>{e&&e.assignRandomSpells&&e.assignRandomSpells()})),swal_1.Toast.fire("Success!","All pets have been added!","success")}))),new index_1.Hack(index_1.category.pets,"Get All Legacy Epics").setClick(_asyncToGenerator((function*(){util_1._.gameData.pet.filter((e=>[125,126,127,128,129,130,131,132,133].includes(e.ID))).forEach((e=>{util_1._.player.kennel.addPet(e.ID.toString(),util_1.VERY_LARGE_NUMBER,26376,100)})),util_1._.player.kennel.petTeam.forEach((e=>{e&&e.assignRandomSpells&&e.assignRandomSpells()})),swal_1.Toast.fire("Success!","All legacy epics have been added!","success")}))),new index_1.Hack(index_1.category.pets,"Get All Mythical Epics").setClick(_asyncToGenerator((function*(){util_1._.gameData.pet.filter((e=>[158,166,168].includes(e.ID))).forEach((e=>{util_1._.player.kennel.addPet(e.ID.toString(),util_1.VERY_LARGE_NUMBER,26376,100)})),util_1._.player.kennel.petTeam.forEach((e=>{e&&e.assignRandomSpells&&e.assignRandomSpells()})),swal_1.Toast.fire("Success!","All mythical epics have been added!","success")}))),new index_1.Hack(index_1.category.pets,"Fix Battle Crash").setClick(_asyncToGenerator((function*(){util_1._.player.kennel.petTeam.forEach((e=>{e&&e.assignRandomSpells&&e.assignRandomSpells()})),swal_1.Toast.fire("Success!","Fixed kennel attack bug!","success")}))),new index_1.Hack(index_1.category.pets,"Clear Pets").setClick(_asyncToGenerator((function*(){util_1._.player.kennel.data.length=0,swal_1.Toast.fire("Success!","Your pets have been cleared!","success")}))),new index_1.Hack(index_1.category.pets,"Add Pet","Adds a pet from a list.").setClick(_asyncToGenerator((function*(){var e=yield swal_1.Swal.fire({input:"select",inputOptions:new Map(util_1._.gameData.pet.map((e=>[e.ID.toString(),"".concat(e.ID,": ").concat(e.data.name)]))),title:"Choose Pet",text:"Which pet do you want to obtain?"});void 0!==e.value&&(util_1._.player.kennel.addPet(e.value),util_1._.player.kennel._encounterInfo._data.pets.push({firstSeenDate:Date.now(),ID:e.value,timesBattled:1,timesRescued:1}),swal_1.Toast.fire("Success!","Your chosen pet has been added to your pets!","success"))}))),new index_1.Hack(index_1.category.pets,"Uncap pet level (client side only, doesn't save on reload)","Change your pet's level to anything, even over 100.").setClick(_asyncToGenerator((function*(){var petTeam=util_1._.player.kennel.petTeam.slice(0);petTeam.shift();var names=petTeam.map((e=>e.getName())),pet=yield swal_1.Swal.fire({title:"Which pet would you like to edit?",input:"select",inputOptions:names,inputPlaceholder:"Select...",inputValidator:e=>e?"":"Please select which you'd like to obtain.",showCancelButton:!0}),amt=yield swal_1.NumberInput.fire("Level","What would you like to set your pet's level to? (Can be set over 100)","question");if(amt.value){var num=amt.value;eval("_.player.kennel.petTeam[parseInt(".concat(pet.value,")+1].getLevel = () => {return ").concat(num,"}")),swal_1.Toast.fire("Updated!","The level of your pet was successfully updated.","success")}})));var getPet=function(){var e=_asyncToGenerator((function*(e){return(yield swal_1.Swal.fire({input:"select",inputOptions:new Map(util_1._.player.kennel.data.map(((e,t)=>{var n,o,a;return[t.toString(),"Level ".concat(e.level," - ").concat(null!==(n=null!==(o=e.nickname)&&void 0!==o?o:null===(a=util_1._.gameData.pet.find((t=>+t.ID==+e.ID)))||void 0===a?void 0:a.data.name)&&void 0!==n?n:"Unknown")]}))),title:"Choose Pet",text:e})).value}));return function(t){return e.apply(this,arguments)}}();new index_1.Hack(index_1.category.pets,"Edit Pet (BETA)","Edit a pet.").setClick(_asyncToGenerator((function*(){if((yield swal_1.Confirm.fire({title:"Hang on!",html:"This feature is in beta. Using this could break your account in a specific way. This should be used for experimentation only.

Proceed?",icon:"warning"})).value){var e=yield getPet("Choose the pet to edit.");if(void 0!==e){var t=util_1._.player.kennel.data[e],n=yield swal_1.Swal.fire({input:"select",inputOptions:{level:"Level",attacks:"Attacks",name:"Name"},title:"Edit Property",text:"What do you want to edit?"});if(void 0!==n.value)if("level"===n.value){var o=yield swal_1.NumberInput.fire("Level Number","What level do you want to set your pet to?","question");if(void 0===o.value)return;t.level=+o.value,swal_1.Toast.fire("Success!","The pet's level has been set.","success")}else if("attacks"===n.value){var a=util_1._.gameData.spell,r=document.createElement("div"),s=document.createElement("select");for(var i of(s.classList.add("selectSpell"),a)){var c=document.createElement("option");c.value=i.ID.toString(),c.innerText="".concat(i.ID,": ").concat(i.name," (").concat(i.data.element,") - Damage: ").concat(i.data.damage),s.options.add(c)}r.append(s),r.append(s.cloneNode(!0));var l=yield swal_1.Swal.fire({title:"Attack List",focusConfirm:!1,showCancelButton:!0,html:r,preConfirm:()=>Array.prototype.slice.call(document.querySelectorAll(".selectSpell")).map((e=>e.options[e.selectedIndex].value))});if(void 0===l.value)return;t.foreignSpells.splice(0,2,...l.value.map((e=>+e))),swal_1.Toast.fire("Attacks updated!","The attack list of the pet you selected has been edited.","success")}else if("name"===n.value){var u=yield swal_1.Input.fire("Input Name","What do you want to name the pet?","question");if(void 0===u.value)return;t.nickname=u.value,yield swal_1.Swal.fire("Successfully renamed!","The name of the pet has been changed.","success")}}}}))),new index_1.Hack(index_1.category.pets,"Delete Pet","Delete a pet.").setClick(_asyncToGenerator((function*(){var e=yield getPet("Which pet do you wish to delete?");void 0!==e&&(util_1._.player.kennel.data.splice(e,1),yield swal_1.Swal.fire("Successfully deleted!","The selected pet was deleted successfully.","success"))})))}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},7939:(module,exports,__webpack_require__)=>{var __webpack_unused_export__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;function asyncGeneratorStep(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var r=e.apply(t,n);function s(e){asyncGeneratorStep(r,o,a,s,i,"next",e)}function i(e){asyncGeneratorStep(r,o,a,s,i,"throw",e)}s(void 0)}))}}__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__,exports,__webpack_require__(4759),__webpack_require__(9820),__webpack_require__(2852)],__WEBPACK_AMD_DEFINE_RESULT__=function(require,exports,swal_1,index_1,util_1){"use strict";__webpack_unused_export__={value:!0},new index_1.Hack(index_1.category.player,"Set Gold").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("Gold Amount","What number do you want to set your gold to?","question");if(void 0!==e.value){if(e.value>1e7)return swal_1.Toast.fire("Error","Cannot have more than 10,000,000 gold.","error");util_1._.player.data.gold=+e.value,swal_1.Toast.fire("Success!","You now have ".concat(e.value," gold."),"success")}}))),new index_1.Hack(index_1.category.player,"Set Level").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("Level","What number do you want to set your level to?","question");if(void 0!==e.value){if(1===e.value)return 0;var t=e.value-2;util_1._.player.data.stars=Math.round((1-Math.pow(1.042,t))/(1-1.042)*20+10),util_1._.player.data.level=+e.value,util_1._.player.getLevel=()=>util_1._.player.data.level,swal_1.Toast.fire("Success!","You are now level ".concat(e.value,"."),"success")}}))),new index_1.Hack(index_1.category.player,"Get member stars").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("Stars","How many member stars do you want?","question");void 0!==e.value&&(util_1._.player.data.storedMemberStars=e.value,swal_1.Toast.fire("Success!","You have set your member stars to ".concat(e.value,"."),"success"))}))),new index_1.Hack(index_1.category.player,"Set Bounty Points").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("Bounty Points","What number do you want to set your bounty points to? (Max is 100)","question");void 0!==e.value&&(util_1._.player.data.bountyScore=Math.min(+e.value,100),swal_1.Toast.fire("Success!","You now have ".concat(util_1._.player.data.bountyScore," bounty point").concat(1!=util_1._.player.data.bountyScore?"s":"","."),"success"))}))),new index_1.Hack(index_1.category.player,"Obtain Conjure Cubes").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("Conjure Cubes","How many conjure cubes do you want to get? (Max 99)","question");if(void 0!==e.value){for(var t=0;t{util_1._.player.modifiers.damage=1})),new index_1.Hack(index_1.category.player,"PVP Health").setClick(_asyncToGenerator((function*(){util_1._.player.pvpHP=util_1.VERY_LARGE_NUMBER,util_1._.player.getMaxHearts=()=>util_1.VERY_LARGE_NUMBER,swal_1.Toast.fire("Success!","You now have lots of health!","success")}))),new index_1.Toggler(index_1.category.player,"Toggle membership").setEnabled(_asyncToGenerator((function*(){util_1._.instance.prodigy.gameContainer.get(util_1._.player.hasMembership.toString().split('"')[1]).data.membership.active=!0,util_1._.player.appearanceChanged=!0}))).setDisabled((()=>{util_1._.instance.prodigy.gameContainer.get(util_1._.player.hasMembership.toString().split('"')[1]).data.membership.active=!1,util_1._.player.appearanceChanged=!0})),new index_1.Hack(index_1.category.player,"Set name (Client side only)").setClick(_asyncToGenerator((function*(){var e=yield swal_1.Input.fire("What would you like to set your name to?");e.value&&(util_1._.player.getName=()=>e.value,swal_1.Toast.fire("Changed!","Your name was changed."))}))),new index_1.Hack(index_1.category.player,"Change Name","Change the name of your wizard.").setClick(_asyncToGenerator((function*(){var e=util_1._.gameData.name,t=document.createElement("div"),n=(e,t)=>{var n=document.createElement("select");for(var o of(n.classList.add("selectName"),e.entries())){var a=document.createElement("option");[a.value,a.innerText]=o,t(a.value)&&(a.selected=!0),n.options.add(a)}return n},o=(t,o)=>n(new Map(e.filter((e=>e.data.type===t)).map((e=>[e.ID.toString(),e.name]))),(e=>o(+e)));t.append(o(0,(e=>e===util_1._.player.name.data.firstName))),t.append(o(1,(e=>e===util_1._.player.name.data.middleName))),t.append(o(2,(e=>e===util_1._.player.name.data.lastName))),t.append(n(new Map([["null","[none]"]].concat(util_1._.gameData.nickname.map((e=>[e.ID.toString(),e.name])))),(e=>+e===util_1._.player.name.data.nickname||String(util_1._.player.name.data.nickname)===e)));var a=yield swal_1.Swal.fire({title:"Set Player Name",focusConfirm:!1,showCancelButton:!0,html:t,preConfirm:()=>Array.prototype.slice.call(document.querySelectorAll(".selectName")).map((e=>e.options[e.selectedIndex].value))});void 0!==a.value&&("null"===a.value[3]&&(a.value[3]=null),[util_1._.player.name.data.firstName,util_1._.player.name.data.middleName,util_1._.player.name.data.lastName,util_1._.player.name.data.nickname]=a.value.map((e=>e&&+e)),swal_1.Toast.fire("Name Changed!","Your name was successfully changed.","success"))}))),new index_1.Hack(index_1.category.player,"Uncap player level (client side only)").setClick(_asyncToGenerator((function*(){var level=yield swal_1.NumberInput.fire("Level","What would you like to set your level to? (Can be 100+)","question");level.value&&(localStorage.setItem("level",level.value),eval("_.player.getLevel = () => {return ".concat(level.value,"}")),swal_1.Toast.fire("Updated!","Your level has been successfully updated","success"))}))),new index_1.Hack(index_1.category.player,"Get all achievements").setClick(_asyncToGenerator((function*(){for(var e=0;e<100;e++)util_1._.player.achievements.data.progress[e]=10;swal_1.Toast.fire("Success!","Obtained all achievements!","success")}))),new index_1.Hack(index_1.category.player,"Morph Player (DEV)","Morph into a pet, furnishing, or follow.").setClick(_asyncToGenerator((function*(){var e=yield swal_1.Swal.fire({title:"Which morph type?",input:"select",inputOptions:{pet:"Pet",dorm:"Furniture",follow:"Follow"},inputPlaceholder:"Morph Type",inputValidator:e=>e?"":"Please select a morph type.",showCancelButton:!0});if(null!=e&&e.value){var t={};util_1._.gameData[e.value].forEach((e=>t[e.ID]="".concat(e.name," (").concat(e.ID,")")));var n=yield swal_1.Swal.fire({title:"Which morph?",input:"select",inputOptions:t,inputPlaceholder:"Morph ID",inputValidator:e=>e?"":"Please select a morph ID.",showCancelButton:!0});null!=n&&n.value&&(util_1._.player.getPlayerData().playerTransformation={transformType:e.value,transformID:n.value,maxTime:36e5,timeRemaining:36e5},util_1._.player.appearanceChanged=!0,swal_1.Toast.fire("Morphed!","You've been morphed.","success"))}}))),new index_1.Hack(index_1.category.player,"Fix Morph Crash").setClick(_asyncToGenerator((function*(){util_1._.player.getPlayerData().playerTransformation=void 0,util_1._.player.appearanceChanged=!0,swal_1.Toast.fire("Success!","Fixed morph crash bug.","success")}))),new index_1.Hack(index_1.category.player,"Permanent Morph","Makes Your Current Morph Last Forever.").setClick(_asyncToGenerator((function*(){util_1._.player.data.playerTransformation?(util_1._.player.data.playerTransformation.maxTime=1/0,util_1._.player.data.playerTransformation.timeRemaining=1/0,swal_1.Toast.fire("Success!","You're morph will last forever!","success")):yield swal_1.Swal.fire("No Morph Active","Please use a Morph Marble and try again.","error")}))),new index_1.Hack(index_1.category.player,"Complete Current Task In Quest","Completes current task in quest. (Use this button a lot to complete a quest.)").setClick(_asyncToGenerator((function*(){var e={};Object.keys(util_1._.instance.prodigy.world.zones).forEach((t=>{e[t]=util_1._.instance.prodigy.world.zones[t].name}));var t=(yield swal_1.Input.fire({title:"What Quest Do You Want To Complete?",input:"select",inputOptions:e})).value;if(t){var n=util_1._.instance.prodigy.world.zones[t].getCurrentQuestID();util_1._.instance.prodigy.world.zones[t].completeQuest(n)?(util_1._.instance.prodigy.world.goToZoneHub(t),swal_1.Toast.fire("Success!","Completed current task in the ".concat(util_1._.instance.prodigy.world.zones[t].name," quest successfully!"),"success")):swal_1.Toast.fire("Could Not Complete Current Task In Quest.","There was an error completing the quest. Did you already complete it?","error")}}))),new index_1.Hack(index_1.category.player,"Set Dark Tower Floor").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire({title:"What floor do you want to be on, in the dark tower.",icon:"question",inputValidator:e=>(e>100||e<1)&&"You can only be on floors from 1-100 not ".concat(e)});e.value&&(util_1._.player.data.tower=parseInt(e.value),swal_1.Toast.fire("Success!","Successfully set dark tower floor to ".concat(e,"!"),"success"))}))),new index_1.Hack(index_1.category.player,"Get UserID").setClick(_asyncToGenerator((function*(){swal_1.Swal.fire({title:"User ID",html:"Here is your User ID:
".concat(util_1._.player.userID,"
You can use this for copying your account."),icon:"info"})}))),new index_1.Hack(index_1.category.player,"Copy Account","Copy Account From userID").setClick(_asyncToGenerator((function*(){var e=(yield swal_1.NumberInput.fire("What is the userID of the account you want to copy?",void 0,"question")).value;if(e&&(yield swal_1.Confirm.fire("Are you sure you want to copy the account?","This will replace all data on your account with the account your copying."))){var t=yield(yield fetch("https://api.prodigygame.com/game-api/v2/characters/".concat(e,"?fields=inventory%2Cdata%2CisMember%2Ctutorial%2Cpets%2Cencounters%2Cquests%2Cappearance%2Cequipment%2Chouse%2Cachievements%2Cstate&userID=").concat(util_1._.player.userID),{headers:{Authorization:localStorage.JWT_TOKEN}})).json();yield fetch("https://api.prodigygame.com/game-api/v3/characters/".concat(util_1._.player.userID),{headers:{"Content-Type":"application/json",Authorization:localStorage.JWT_TOKEN},body:JSON.stringify({data:JSON.stringify(t[e]),userID:util_1._.player.userID}),method:"POST"}),swal_1.Toast.fire("Success!","Copied Account Successfully! Please reload.","success")}}))),new index_1.Hack(index_1.category.player,"Set Grade").setClick(_asyncToGenerator((function*(){var e=yield swal_1.NumberInput.fire("What number do you want to set your grade to?");e.value&&(util_1._.player.grade=parseInt(e.value),swal_1.Toast.fire("Success","Successfully changed grade to ".concat(e,"!"),"success"))})))}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},4474:(module,exports,__webpack_require__)=>{var __webpack_unused_export__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;function asyncGeneratorStep(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var r=e.apply(t,n);function s(e){asyncGeneratorStep(r,o,a,s,i,"next",e)}function i(e){asyncGeneratorStep(r,o,a,s,i,"throw",e)}s(void 0)}))}}__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__,exports,__webpack_require__(4759),__webpack_require__(9820),__webpack_require__(2852)],__WEBPACK_AMD_DEFINE_RESULT__=function(require,exports,swal_1,index_1,util_1){"use strict";__webpack_unused_export__={value:!0},new index_1.Hack(index_1.category.utility,"Save Character Locally","Saves your character locally.").setClick(_asyncToGenerator((function*(){localStorage.setItem("playerData",JSON.stringify(util_1._.player.getUpdatedData(!0))),swal_1.Toast.fire("Success!","Note: Load Character will only work on this device.","success")}))),new index_1.Hack(index_1.category.utility,"Stuck in Unfinished Tower Fix","Takes you out of an unfinished tower if you're stuck in one.").setClick(_asyncToGenerator((function*(){util_1._.instance.prodigy.world.zones.house.teleport("exit"),swal_1.Toast.fire("Success!","You've been teleported outside of your house.","success")}))),new index_1.Hack(index_1.category.utility,"Load local character","Loads your character locally.").setClick(_asyncToGenerator((function*(){if(localStorage.getItem("playerData")){var e=localStorage.getItem("playerData"),t=yield fetch("https://api.prodigygame.com/game-api/v3/characters/".concat(util_1._.player.userID),{headers:{accept:"*/*","accept-language":"en-US,en;q=0.9",authorization:localStorage.JWT_TOKEN,"content-type":"application/json","sec-ch-ua":'" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',"sec-ch-ua-mobile":"?0","sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-site"},referrer:"https://play.prodigygame.com/",referrerPolicy:"strict-origin-when-cross-origin",body:JSON.stringify({data:e,userID:util_1._.player.userID}),method:"POST",mode:"cors"});if(!t.ok)return swal_1.Toast.fire("Request failed.","An error occurred while loading the character. Error code: ".concat(t.status),"error");swal_1.Toast.fire("Success!","Character has been successfully loaded. Reload for the changes to take effect.","success")}else swal_1.Toast.fire("Error","No saved character.","error")}))),new index_1.Hack(index_1.category.utility,"Save Character","Helps fix bugs where not all hacks save.").setClick(_asyncToGenerator((function*(){util_1.saveCharacter(),swal_1.Toast.fire("Success!","Your character has been saved!","success")}))),new index_1.Hack(index_1.category.utility,"Close all popups","Closes all popups in Prodigy.").setClick(_asyncToGenerator((function*(){util_1._.instance.prodigy.open.menuCloseAll(),swal_1.Toast.fire("Closed!","All open popups were closed.","success")}))),new index_1.Hack(index_1.category.utility,"Update menu","Updates menu to the latest version without needing to reload.").setClick(_asyncToGenerator((function*(){var _document$getElementB,_document$getElementB2;null===(_document$getElementB=document.getElementById("cheat-menu"))||void 0===_document$getElementB||_document$getElementB.remove(),null===(_document$getElementB2=document.getElementById("menu-toggler"))||void 0===_document$getElementB2||_document$getElementB2.remove(),_asyncToGenerator((function*(){eval(yield(yield fetch("https://raw.githubusercontent.com/Prodigy-Hacking/ProdigyMathGameHacking/HEAD/willsCheatMenu/dist/bundle.js?updated=".concat(Date.now()))).text())}))(),swal_1.Toast.fire("Updated!","Cheat menu was updated.","success")}))),new index_1.Hack(index_1.category.utility,"Disable inactivity kick","Keeps you from being logged out for inactivity.").setClick(_asyncToGenerator((function*(){util_1._.constants.constants["GameConstants.Inactivity.LOG_OUT_TIMER_SECONDS"]=0,swal_1.Toast.fire("Success!","You now will never be logged out!","success")}))),new index_1.Toggler(index_1.category.utility,"Enable menu resize drag (bottom right corner)","Allows you to resize the menu via dragging.").setEnabled(_asyncToGenerator((function*(){document.getElementById("cheat-menu").style.resize="both"}))).setDisabled((()=>{document.getElementById("cheat-menu").style.resize="none",document.getElementById("cheat-menu").style.height=index_1.dimensions.height,document.getElementById("cheat-menu").style.width=index_1.dimensions.width})),new index_1.Hack(index_1.category.utility,"Edit walkspeed").setClick(_asyncToGenerator((function*(){var e=yield swal_1.Input.fire("What do you want to set your walk speed to?");if(e.value){if(util_1._.player._playerContainer)util_1._.player._playerContainer.walkSpeed=parseFloat(e.value)||1.5;else var t=setInterval((()=>{util_1._.player._playerContainer&&(clearInterval(t),util_1._.player._playerContainer.walkSpeed=parseFloat(e.value))}),100);swal_1.Toast.fire("Success!","Successfully made walk speed ".concat(parseFloat(e.value)||1.5,"!"),"success")}})));var teleportingInterval=-1;new index_1.Toggler(index_1.category.utility,"Toggle Click Teleporting").setEnabled(_asyncToGenerator((function*(){teleportingInterval=setInterval((()=>{try{util_1._.player._playerContainer.walkSpeed=500}catch(e){}})),swal_1.Toast.fire("Success!","Successfully enabled teleport click.","success")}))).setDisabled(_asyncToGenerator((function*(){clearInterval(teleportingInterval),util_1._.player._playerContainer.walkSpeed=1.5,swal_1.Toast.fire("Success!","Successfully disabled teleport click.","success")}))),new index_1.Toggler(index_1.category.utility,"Pause Game").setEnabled(_asyncToGenerator((function*(){util_1._.network.game._paused=!0,swal_1.Toast.fire("Success!","Successfully paused Prodigy.","success")}))).setDisabled(_asyncToGenerator((function*(){util_1._.network.game._paused=!1,swal_1.Toast.fire("Success!","Successfully resumed Prodigy.","success")})))}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},9820:function(e,t,n){var o,a;function r(e,t,n,o,a,r,s){try{var i=e[r](s),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,c,"next",e)}function c(e){r(s,o,a,i,c,"throw",e)}i(void 0)}))}}var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};o=[n,t,n(4428),n(2852),n(6455),n(158)],a=function(e,t,n,o,a){"use strict";var r,c,l,u;Object.defineProperty(t,"__esModule",{value:!0}),t.category=t.Toggler=t.Hack=t.addArea=t.toggler=t.wrapper=t.menu=void 0,a=i(a),t.menu=document.createElement("div"),t.wrapper=document.getElementById("game-wrapper"),null===(r=document.getElementById("cheat-menu"))||void 0===r||r.remove(),null===(c=document.getElementById("menu-toggler"))||void 0===c||c.remove(),t.menu.id="cheat-menu",null===(l=t.wrapper)||void 0===l||l.prepend(t.menu),t.toggler=document.createElement("button"),t.toggler.id="menu-toggler",t.toggler.style.fontSize="35px",t.toggler.style.height="35px",t.toggler.style.width="70px";var d=!1;null===(u=t.wrapper)||void 0===u||u.prepend(t.toggler),t.toggler.onclick=()=>{(d=!d)?(t.toggler.innerText="▼",t.menu.style.top="-100vh"):(t.toggler.innerText="▲",t.menu.style.top="")},t.toggler.onclick({});var p=document.createElement("DIV");p.classList.add("menu-left"),t.menu.append(p),t.addArea=e=>{var t=document.createElement("div");t.classList.add("menu-area"),p.append(t);var n=document.createElement("h1");return n.innerText=e,t.append(n),t};var h=document.createElement("h1");h.classList.add("menu-title"),h.innerText="Will's Prodigy Cheat Menu",p.append(h);var f=document.createElement("h2");f.style.fontSize="30px",f.innerHTML="Join our Discord for giveaways, access to new hacks, and notices of hack outages! https://discord.gg/XQDfbfq
Press SHIFT to show/hide the menu.",p.append(f);var m=document.createElement("h3");m.style.fontSize="20px",m.innerHTML='On behalf of ProdigyMathGameHacking. Learn about our mission.\n
\nThis is free and open-source software. If you paid for this or accessed this behind a paywall/AdFly link, demand a refund. If you sell this software, or otherwise make a commercial advantage from it, you are violating Github conduct by not cooperating with our license.',p.append(m);class w{constructor(e,t,n){this.parent=e,this.name="",this.description="",this.element=document.createElement("button"),this.element.classList.add("menu-hack"),this.parent.append(this.element),t&&this.setName(t),n&&this.setDesc(n)}setName(e){return this.element.innerText=e,this.name=e,this}setClick(e){var t=this;return this.element.onclick=s((function*(){yield e(),o.saveCharacter(),console.log("Triggered ".concat(t.name,"."))})),this}setDesc(e){return this.element.title=e,this.description=e,this}}t.Hack=w,t.Toggler=class extends w{constructor(e,t,n){var o;super(e,t,n),o=this,this.parent=e,this.element.setAttribute("status","false"),this.setClick(s((function*(){var e,t;o.status=!o.status,o.status?(localStorage.setItem(o.name,"true"),yield null===(e=o.enabled)||void 0===e?void 0:e.call(o)):(localStorage.setItem(o.name,"false"),yield null===(t=o.disabled)||void 0===t?void 0:t.call(o))})))}get status(){return JSON.parse(this.element.getAttribute("status"))}set status(e){this.element.setAttribute("status",e.toString())}setEnabled(e){return this.enabled=e,"true"===localStorage.getItem(this.name)&&this.element.click(),this}setDisabled(e){return this.disabled=e,this}},t.category={player:t.addArea("Player Hacks"),inventory:t.addArea("Inventory Hacks"),location:t.addArea("Location Hacks"),pets:t.addArea("Pet Hacks"),battle:t.addArea("Battle Hacks"),minigames:t.addArea("Minigames"),misc:t.addArea("Miscellaneous Hacks"),utility:t.addArea("Utility Hacks")},localStorage.hasTip||(s((function*(){a.default.fire({title:"Hey!",html:"To get started with the hacks, click this dropdown!",icon:"info",backdrop:'\n\t\t url("https://i.imgur.com/CdV9piu.png")\n\t\t left top\n\t\t no-repeat\n\t\t'})}))(),localStorage.hasTip=!0),localStorage.getItem("level")&&(o._.player.getLevel=()=>localStorage.getItem("level")),document.addEventListener("keydown",(function(e){"Shift"==e.key&&("block"==document.getElementById("cheat-menu").style.display&&"block"==document.getElementById("menu-toggler").style.display?(document.getElementById("cheat-menu").style.display="none",document.getElementById("menu-toggler").style.display="none"):(document.getElementById("cheat-menu").style.display="block",document.getElementById("menu-toggler").style.display="block"))}))}.apply(t,o),void 0===a||(e.exports=a)},2868:()=>{"use strict";window.addEventListener("keydown",(e=>{}))},4759:function(e,t,n){var o,a,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};o=[n,t,n(6455)],a=function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Confirm=t.Toast=t.NumberInput=t.Input=t.Swal=void 0,n=r(n),t.Swal=n.default,t.Input=t.Swal.mixin({input:"text",showCancelButton:!0,showConfirmButton:!0}),t.NumberInput=t.Input.mixin({input:"number"}),t.Toast=t.Swal.mixin({toast:!0,position:"bottom"}),t.Confirm=t.Swal.mixin({icon:"warning",showCancelButton:!0,confirmButtonText:"Confirm",cancelButtonText:"Cancel"})}.apply(t,o),void 0===a||(e.exports=a)},2852:(e,t,n)=>{var o;o=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pickRandom=t.locations=t.joinAsset=t.assetURL=t.saveCharacter=t.states=t.VERY_LARGE_NUMBER=t.getItem=t.gameData=t.prodigy=t.game=t._=void 0,t._=window._;var n=t._.instance;t.game=n.game,t.prodigy=n.prodigy,t.gameData=t._.instance.game.state.states.get("Boot").gameData,t.getItem=(e,n)=>{var o;return null!==(o=t._.gameData[e].find((e=>e.ID===n)))&&void 0!==o?o:null},t.VERY_LARGE_NUMBER=9e9,t.states=Object.fromEntries(t._.instance.game.state.states),t.saveCharacter=()=>{t._.network.processPlayer=!0,t._.player.forceSaveCharacter()},t.assetURL="https://raw.githubusercontent.com/Prodigy-Hacking/ProdigyMathGameHacking/HEAD/willsCheatMenu/src/assets/",t.joinAsset=e=>"".concat(t.assetURL).concat(e),t.locations={academy:t.joinAsset("academy.png"),bonfire_spire:t.joinAsset("bonfire_spire.png"),forest:t.joinAsset("forest.png"),shipwreck_shore:t.joinAsset("shipwreck_shore.png"),shiverchill:t.joinAsset("shiverchill.png"),skywatch:t.joinAsset("skywatch.png"),dyno:t.joinAsset("dyno.png"),elemental_guardian:t.joinAsset("elemental_guardian.png"),darktower:t.joinAsset("darktower.png"),earthtower:t.joinAsset("earthtower.png"),crystal_caverns:t.joinAsset("crystal_caverns.png"),archives:t.joinAsset("archives.png"),house:t.joinAsset("house.png"),toyzone:t.joinAsset("toyzone.png"),tower_town:t.joinAsset("tower_town.png"),lamplight:t.joinAsset("lamplight.png")},t.pickRandom=e=>e[Math.floor(Math.random()*e.length)]}.apply(t,[n,t]),void 0===o||(e.exports=o)},3010:e=>{function t(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=t,t.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},t.prototype.reset=function(){this.attempts=0},t.prototype.setMin=function(e){this.ms=e},t.prototype.setMax=function(e){this.max=e},t.prototype.setJitter=function(e){this.jitter=e}},3704:(e,t)=>{!function(e){"use strict";t.encode=function(t){var n,o=new Uint8Array(t),a=o.length,r="";for(n=0;n>2],r+=e[(3&o[n])<<4|o[n+1]>>4],r+=e[(15&o[n+1])<<2|o[n+2]>>6],r+=e[63&o[n+2]];return a%3==2?r=r.substring(0,r.length-1)+"=":a%3==1&&(r=r.substring(0,r.length-2)+"=="),r},t.decode=function(t){var n,o,a,r,s,i=.75*t.length,c=t.length,l=0;"="===t[t.length-1]&&(i--,"="===t[t.length-2]&&i--);var u=new ArrayBuffer(i),d=new Uint8Array(u);for(n=0;n>4,d[l++]=(15&a)<<4|r>>2,d[l++]=(3&r)<<6|63&s;return u}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")},8767:e=>{function t(e){if(e)return function(e){for(var n in t.prototype)e[n]=t.prototype[n];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,o=this._callbacks["$"+e];if(!o)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var a=0;a{"use strict";n.d(t,{Z:()=>r});var o=n(3645),a=n.n(o)()((function(e){return e[1]}));a.push([e.id,"@import url(https://fonts.googleapis.com/css?family=Arvo:400,700|Sen:400,700,800&display=swap&subset=latin-ext);"]),a.push([e.id,'#game-wrapper{font-family:"Sen",sans-serif}#game-wrapper #cheat-menu{height:465px;background-color:#eeeb;padding:2px;position:absolute;top:0px;left:0px;transition:top .35s;padding:10px;border:#fffa 2px solid;overflow-y:scroll;resize:vertical;overflow:auto}#game-wrapper .menu-left{width:70%;height:100%;float:left}#game-wrapper #menu-toggler{z-index:1;position:absolute;background-color:#fffb;transition:background-color .15s}#game-wrapper #menu-toggler:hover{background-color:#dddb}#game-wrapper #menu-toggler:active{background-color:#bbbb}#game-wrapper .menu-area h1{font-family:"Sen",sans-serif;font-size:30px;font-weight:700;color:#111;margin:10px}#game-wrapper .menu-area button{background-color:#000;color:#fff;border-radius:5px;border:1px solid #eee;padding:1%;transition:all .15s;margin:5px 5px;transition-property:border-color,background-color}#game-wrapper .menu-area button:hover{border-color:#777d;background-color:#ddd}#game-wrapper .menu-area button:active{border-color:#555;background-color:#bbb}#game-wrapper .menu-area button[status=true]{border-color:#5a5d;background-color:#9bee9b}#game-wrapper .menu-area button[status=true]:hover{border-color:#b3bbb0dd;background-color:#bffebf}#game-wrapper .menu-area button[status=true]:active{border-color:#4e5c50;background-color:#24be6a}#game-wrapper .menu-area button[status=false]{border-color:#766d;background-color:#9b9b9b}#game-wrapper .menu-area button[status=false]:hover{border-color:#858585dd;background-color:#bfbfbf}#game-wrapper .menu-area button[status=false]:active{border-color:#4c3e40;background-color:#be246a}#game-wrapper .menu-title{font-family:"Arvo",sans-serif;font-size:35px;font-weight:900}.radioDiv{width:125px;height:125px;display:inline-block;margin:7px;background-color:#5a7e3f;color:#000;background-size:cover;outline:#000 5px solid;vertical-align:top;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;cursor:pointer}.radioDiv:hover{background-blend-mode:overlay;color:#d3d3d3}.radioDiv:active{background-blend-mode:multiply;color:#fff}.radioDiv[checked]{background-blend-mode:color-dodge;color:#ffebcd}.radioDiv[checked]:active{background-blend-mode:color-burn;color:aqua}.radioSwal{width:-webkit-fit-content !important;width:-moz-fit-content !important;width:fit-content !important;min-width:32em !important;max-width:46em !important}',""]);const r=a},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,o){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(o)for(var r=0;r{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let o=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(o++,"%c"===e&&(a=o))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(2447)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},2447:(e,t,n)=>{e.exports=function(e){function t(e){let n,a,r,s=null;function i(...e){if(!i.enabled)return;const o=i,a=Number(new Date),r=a-(n||a);o.diff=r,o.prev=n,o.curr=a,n=a,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,a)=>{if("%%"===n)return"%";s++;const r=t.formatters[a];if("function"==typeof r){const t=e[s];n=r.call(o,t),e.splice(s,1),s--}return n})),t.formatArgs.call(o,e),(o.log||t.log).apply(o,e)}return i.namespace=e,i.useColors=t.useColors(),i.color=t.selectColor(e),i.extend=o,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(a!==t.namespaces&&(a=t.namespaces,r=t.enabled(e)),r),set:e=>{s=e}}),"function"==typeof t.init&&t.init(i),i}function o(e,n){const o=t(this.namespace+(void 0===n?":":n)+e);return o.log=this.log,o}function a(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const o=("string"==typeof e?e:"").split(/[\s,]+/),a=o.length;for(n=0;n{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{e.exports="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()},5983:(e,t,n)=>{const o=n(2192);e.exports=(e,t)=>new o(e,t),e.exports.Socket=o,e.exports.protocol=o.protocol,e.exports.Transport=n(6496),e.exports.transports=n(3352),e.exports.parser=n(9743)},2192:(e,t,n)=>{const o=n(3352),a=n(8767),r=n(1227)("engine.io-client:socket"),s=n(9743),i=n(4187),c=n(1830);class l extends a{constructor(e,t={}){super(),e&&"object"==typeof e&&(t=e,e=null),e?(e=i(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=i(t.host).host),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?443:80),this.transports=t.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,jsonp:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},t),this.opts.path=this.opts.path.replace(/\/$/,"")+"/","string"==typeof this.opts.query&&(this.opts.query=c.decode(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&addEventListener("beforeunload",(()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())}),!1),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close")},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){r('creating transport "%s"',e);const t=function(e){const t={};for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}(this.opts.query);t.EIO=s.protocol,t.transport=e,this.id&&(t.sid=this.id);const n=Object.assign({},this.opts.transportOptions[e],this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return r("options: %j",n),new o[e](n)}open(){let e;if(this.opts.rememberUpgrade&&l.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void setTimeout((()=>{this.emit("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return r("error while creating transport: %s",e),this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){r("setting transport %s",e.name),this.transport&&(r("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(()=>{this.onClose("transport close")}))}probe(e){r('probing transport "%s"',e);let t=this.createTransport(e,{probe:1}),n=!1;l.priorWebsocketSuccess=!1;const o=()=>{n||(r('probe transport "%s" opened',e),t.send([{type:"ping",data:"probe"}]),t.once("packet",(o=>{if(!n)if("pong"===o.type&&"probe"===o.data){if(r('probe transport "%s" pong',e),this.upgrading=!0,this.emit("upgrading",t),!t)return;l.priorWebsocketSuccess="websocket"===t.name,r('pausing current transport "%s"',this.transport.name),this.transport.pause((()=>{n||"closed"!==this.readyState&&(r("changing transport and sending upgrade packet"),d(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emit("upgrade",t),t=null,this.upgrading=!1,this.flush())}))}else{r('probe transport "%s" failed',e);const n=new Error("probe error");n.transport=t.name,this.emit("upgradeError",n)}})))};function a(){n||(n=!0,d(),t.close(),t=null)}const s=n=>{const o=new Error("probe error: "+n);o.transport=t.name,a(),r('probe transport "%s" failed because of error: %s',e,n),this.emit("upgradeError",o)};function i(){s("transport closed")}function c(){s("socket closed")}function u(e){t&&e.name!==t.name&&(r('"%s" works - aborting "%s"',e.name,t.name),a())}const d=()=>{t.removeListener("open",o),t.removeListener("error",s),t.removeListener("close",i),this.removeListener("close",c),this.removeListener("upgrading",u)};t.once("open",o),t.once("error",s),t.once("close",i),this.once("close",c),this.once("upgrading",u),t.open()}onOpen(){if(r("socket open"),this.readyState="open",l.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause){r("starting upgrade probes");let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()}flush(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(r("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))}write(e,t,n){return this.sendPacket("message",e,t,n),this}send(e,t,n){return this.sendPacket("message",e,t,n),this}sendPacket(e,t,n,o){if("function"==typeof t&&(o=t,t=void 0),"function"==typeof n&&(o=n,n=null),"closing"===this.readyState||"closed"===this.readyState)return;(n=n||{}).compress=!1!==n.compress;const a={type:e,data:t,options:n};this.emit("packetCreate",a),this.writeBuffer.push(a),o&&this.once("flush",o),this.flush()}close(){const e=()=>{this.onClose("forced close"),r("socket closing - telling transport to close"),this.transport.close()},t=()=>{this.removeListener("upgrade",t),this.removeListener("upgradeError",t),e()},n=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?n():e()})):this.upgrading?n():e()),this}onError(e){r("socket error %j",e),l.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(r('socket close with reason: "%s"',e),clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&removeEventListener("offline",this.offlineEventListener,!1),this.readyState="closed",this.id=null,this.emit("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let n=0;const o=e.length;for(;n{const o=n(9743),a=n(8767),r=n(1227)("engine.io-client:transport");e.exports=class extends a{constructor(e){super(),this.opts=e,this.query=e.query,this.readyState="",this.socket=e.socket}onError(e,t){const n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this}open(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState?this.write(e):r("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,this.emit("open")}onData(e){const t=o.decodePacket(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){this.emit("packet",e)}onClose(){this.readyState="closed",this.emit("close")}}},3352:(e,t,n)=>{const o=n(2777),a=n(3416),r=n(9785),s=n(4442);t.polling=function(e){let t,n=!1,s=!1;const i=!1!==e.jsonp;if("undefined"!=typeof location){const t="https:"===location.protocol;let o=location.port;o||(o=t?443:80),n=e.hostname!==location.hostname||o!==e.port,s=e.secure!==t}if(e.xdomain=n,e.xscheme=s,t=new o(e),"open"in t&&!e.forceJSONP)return new a(e);if(!i)throw new Error("JSONP disabled");return new r(e)},t.websocket=s},9785:(e,t,n)=>{const o=n(9015),a=n(3549),r=/\n/g,s=/\\n/g;let i;e.exports=class extends o{constructor(e){super(e),this.query=this.query||{},i||(i=a.___eio=a.___eio||[]),this.index=i.length,i.push(this.onData.bind(this)),this.query.j=this.index}get supportsBinary(){return!1}doClose(){this.script&&(this.script.onerror=()=>{},this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),super.doClose()}doPoll(){const e=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),e.async=!0,e.src=this.uri(),e.onerror=e=>{this.onError("jsonp poll error",e)};const t=document.getElementsByTagName("script")[0];t?t.parentNode.insertBefore(e,t):(document.head||document.body).appendChild(e),this.script=e,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){const e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)}doWrite(e,t){let n;if(!this.form){const e=document.createElement("form"),t=document.createElement("textarea"),n=this.iframeId="eio_iframe_"+this.index;e.className="socketio",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.target=n,e.method="POST",e.setAttribute("accept-charset","utf-8"),t.name="d",e.appendChild(t),document.body.appendChild(e),this.form=e,this.area=t}function o(){a(),t()}this.form.action=this.uri();const a=()=>{if(this.iframe)try{this.form.removeChild(this.iframe)}catch(e){this.onError("jsonp polling iframe removal error",e)}try{const e='