Robotics?

good ms better player?

// ==UserScript==
// @name        Robotics?
// @match       *://*.moomoo.io/*
// @grant       none
// @version      v2.2
// @author      Yurio,220ms
// @description good ms better player?
// @namespace https://greasyforks.org/users/1333420
// ==/UserScript==
setInterval(() => {
  console.clear();
}, 120000);
/*Visuals && Combat Mechanism:
Yurio
Oe
Brt3726
rim

tester / Bug Report:
Laplace/gowog
Wat
savior
zen*/
let serverID;
(function (p) {
  let v = {};
  function f(p2) {
    if (v[p2]) {
      return v[p2].exports;
    }
    let v2 = {
      exports: {}
    };
    p[p2](v2, v2.exports, f);
    v[p2] = v2;
    return v2.exports;
  }
  f.s = "_main_script_";
  return f(f.s);
})({
  "config.js": function (p3, p4) {
    p3.exports.maxScreenWidth = 1920;
    p3.exports.maxScreenHeight = 1080;
    p3.exports.serverUpdateRate = 9;
    p3.exports.maxPlayers = 40;
    p3.exports.maxPlayersHard = p3.exports.maxPlayers + 10;
    p3.exports.collisionDepth = 6;
    p3.exports.minimapRate = 3000;
    p3.exports.colGrid = 10;
    p3.exports.clientSendRate = 5;
    p3.exports.healthBarWidth = 50;
    p3.exports.healthBarPad = 4.5;
    p3.exports.iconPadding = 15;
    p3.exports.iconPad = 0.9;
    p3.exports.deathFadeout = 3000;
    p3.exports.crownIconScale = 60;
    p3.exports.crownPad = 35;
    p3.exports.chatCountdown = 3000;
    p3.exports.chatCooldown = 500;
    p3.exports.isSandbox = window.location.hostname == "sandbox.moomoo.io" ? true : false;
    p3.exports.maxAge = 100;
    p3.exports.gatherAngle = Math.PI / 2.6;
    p3.exports.gatherWiggle = 10;
    p3.exports.hitReturnRatio = 0.25;
    p3.exports.hitAngle = Math.PI / 2;
    p3.exports.playerScale = 35;
    p3.exports.playerSpeed = 0.0016;
    p3.exports.playerDecel = 0.993;
    p3.exports.nameY = 34;
    p3.exports.skinColors = ["#bf8f54", "#cbb091", "#896c4b", "#fadadc", "#ececec", "#c37373", "#4c4c4c", "#ecaff7", "#738cc3", "#8bc373"];
    p3.exports.animalCount = 7;
    p3.exports.aiTurnRandom = 0.06;
    p3.exports.cowNames = ["Sid", "Steph", "Bmoe", "Romn", "Jononthecool", "Fiona", "Vince", "Nathan", "Nick", "Flappy", "Ronald", "Otis", "Pepe", "Mc Donald", "Theo", "Fabz", "Oliver", "Jeff", "Jimmy", "Helena", "Reaper", "Ben", "Alan", "Naomi", "XYZ", "Clever", "Jeremy", "Mike", "Destined", "Stallion", "Allison", "Meaty", "Sophia", "Vaja", "Joey", "Pendy", "Murdoch", "Theo", "Jared", "July", "Sonia", "Mel", "Dexter", "Quinn", "Milky"];
    p3.exports.shieldAngle = Math.PI / 3;
    p3.exports.weaponVariants = [{
      id: 0,
      src: "",
      xp: 0,
      val: 1
    }, {
      id: 1,
      src: "_g",
      xp: 3000,
      val: 1.1
    }, {
      id: 2,
      src: "_d",
      xp: 7000,
      val: 1.18
    }, {
      id: 3,
      src: "_r",
      poison: true,
      xp: 12000,
      val: 1.18
    }];
    p3.exports.fetchVariant = function (p5) {
      var v3 = p5.weaponXP[p5.weaponIndex] || 0;
      for (var v4 = p3.exports.weaponVariants.length - 1; v4 >= 0; --v4) {
        if (v3 >= p3.exports.weaponVariants[v4].xp) {
          return p3.exports.weaponVariants[v4];
        }
      }
    };
    p3.exports.resourceTypes = ["wood", "food", "stone", "points"];
    p3.exports.areaCount = 7;
    p3.exports.treesPerArea = 9;
    p3.exports.bushesPerArea = 3;
    p3.exports.totalRocks = 32;
    p3.exports.goldOres = 7;
    p3.exports.riverWidth = 724;
    p3.exports.riverPadding = 114;
    p3.exports.waterCurrent = 0.0011;
    p3.exports.waveSpeed = 0.0001;
    p3.exports.waveMax = 1.3;
    p3.exports.treeScales = [150, 160, 165, 175];
    p3.exports.bushScales = [80, 85, 95];
    p3.exports.rockScales = [80, 85, 90];
    p3.exports.snowBiomeTop = 2400;
    p3.exports.snowSpeed = 0.75;
    p3.exports.maxNameLength = 15;
    p3.exports.mapScale = 14400;
    p3.exports.mapPingScale = 40;
    p3.exports.mapPingTime = 2200;
    p3.exports.volcanoScale = 320;
    p3.exports.innerVolcanoScale = 100;
    p3.exports.volcanoAnimalStrength = 2;
    p3.exports.volcanoAnimationDuration = 3200;
    p3.exports.volcanoAggressionRadius = 1440;
    p3.exports.volcanoAggressionPercentage = 0.2;
    p3.exports.volcanoDamagePerSecond = -1;
    p3.exports.volcanoLocationX = 13960;
    p3.exports.volcanoLocationY = 13960;
  },
  _UIS_client_: function (p6, p7) {
    let vF = p8 => document.getElementById(p8);
    p6.exports = {
      ads: {
        adCard: vF("adCard"),
        adContainer: vF("ad-container"),
        promoImg: vF("promoImg"),
        promoImageHolder: vF("promoImgHolder"),
        wideAdCard: vF("wideAdCard")
      },
      buttons: {
        store: vF("storeButton"),
        alliance: vF("allianceButton"),
        chat: vF("chatButton"),
        enterGame: vF("enterGame"),
        altchaCheckBox: vF("altcha_checkbox"),
        partyButton: vF("partyButton"),
        joinB: vF("joinPartyButton"),
        settingsButton: vF("settingsButton"),
        settingsButtonTitle: vF("settingsButton").getElementsByTagName("span")[0]
      },
      resources: {
        food: vF("foodDisplay"),
        wood: vF("woodDisplay"),
        stone: vF("stoneDisplay"),
        score: vF("scoreDisplay"),
        kill: vF("killCounter")
      },
      global: {
        menuText: vF("desktopInstructions"),
        setupCard: vF("setupCard"),
        guideCard: vF("guideCard"),
        gameUI: vF("gameUI"),
        gameName: vF("gameName"),
        mainMenu: vF("mainMenu"),
        storeMenu: vF("storeMenu"),
        nameInput: vF("nameInput"),
        gameCanvas: vF("gameCanvas"),
        gameContext: vF("gameCanvas").getContext("2d"),
        mapDisplay: vF("mapDisplay"),
        mapContext: vF("mapDisplay").getContext("2d"),
        shutdownDisplay: vF("shutdownDisplay"),
        pingDisplay: vF("pingDisplay"),
        loadingText: vF("loadingText"),
        diedText: vF("diedText"),
        ageText: vF("ageText"),
        ageBarBody: vF("ageBarBody"),
        allianceMenu: vF("allianceMenu"),
        allianceManager: vF("allianceManager"),
        notificationDisplay: vF("notificationDisplay"),
        leaderboardData: vF("leaderboardData"),
        actionBar: vF("actionBar"),
        playMusic: vF("playMusic"),
        upgradeCounter: vF("upgradeCounter"),
        chatBox: vF("chatBox"),
        altcha: vF("altcha")
      },
      holder: {
        menuCardHolder: vF("menuCardHolder"),
        itemInfoHolder: vF("itemInfoHolder"),
        upgradeHolder: vF("upgradeHolder"),
        allianceHolder: vF("allianceHolder"),
        skinColorHolder: vF("skinColorHolder"),
        storeHolder: vF("storeHolder"),
        chatHolder: vF("chatHolder")
      },
      server: {
        serverBrowser: vF("serverBrowser"),
        nativeResolutionOption: vF("nativeResolution"),
        showPingOption: vF("showPing")
      }
    };
  },
  _main_script_: function (p9, p10, p11) {
    var vP11 = p11("config.js");
    window.config = vP11;
    var vP112 = p11("_UIS_client_");
    var v5 = vP112.global.menuText;
    var v6 = vP112.global.setupCard;
    var v7 = vP112.global.guideCard;
    var v8 = vP112.global.gameName;
    var v9 = vP112.global.gameUI;
    var v10 = vP112.global.mainMenu;
    var v11 = vP112.global.storeMenu;
    var v12 = vP112.global.nameInput;
    var v13 = vP112.global.gameCanvas;
    var v14 = vP112.global.gameContext;
    var v15 = vP112.global.mapDisplay;
    var v16 = vP112.global.mapContext;
    var v17 = vP112.global.shutdownDisplay;
    var v18 = vP112.global.pingDisplay;
    var v19 = vP112.global.loadingText;
    var v20 = vP112.global.diedText;
    var v21 = vP112.global.ageText;
    var v22 = vP112.global.ageBarBody;
    var v23 = vP112.global.allianceMenu;
    var v24 = vP112.global.allianceManager;
    var v25 = vP112.global.notificationDisplay;
    var v26 = vP112.global.leaderboardData;
    var v27 = vP112.global.actionBar;
    var v28 = vP112.global.playMusic;
    var v29 = vP112.global.upgradeCounter;
    var v30 = vP112.global.chatBox;
    var v31 = vP112.global.altcha;
    var v32 = vP112.buttons.store;
    var v33 = vP112.buttons.alliance;
    var v34 = vP112.buttons.chat;
    var v35 = vP112.buttons.enterGame;
    var v36 = vP112.buttons.altchaCheckBox;
    var v37 = vP112.buttons.partyButton;
    var v38 = vP112.buttons.joinB;
    var v39 = vP112.buttons.settingsButton;
    var v40 = vP112.buttons.settingsButtonTitle;
    v34.remove();
    var v41 = vP112.resources.food;
    var v42 = vP112.resources.wood;
    var v43 = vP112.resources.stone;
    var v44 = vP112.resources.score;
    var v45 = vP112.resources.kill;
    var v46 = vP112.ads.adCard;
    var v47 = vP112.ads.adContainer;
    var v48 = vP112.ads.promoImg;
    var v49 = vP112.ads.promoImageHolder;
    var v50 = vP112.ads.wideAdCard;
    var v51 = Object.values(vP112.ads);
    v48.remove();
    v46.remove();
    v50.remove();
    var v52 = vP112.holder.menuCardHolder;
    var v53 = vP112.holder.itemInfoHolder;
    var v54 = vP112.holder.upgradeHolder;
    var v55 = vP112.holder.allianceHolder;
    var v56 = vP112.holder.skinColorHolder;
    var v57 = vP112.holder.storeHolder;
    var v58 = vP112.holder.chatHolder;
    var v59 = vP112.server.serverBrowser;
    var v60 = vP112.server.nativeResolutionOption;
    var v61 = vP112.server.showPingOption;
    var v62 = v13.getContext("2d");
    function f2(p12) {
      p12.style.opacity = "0";
      p12.style.transition = "opacity 0.5s ease, transform 0.3s ease";
      p12.style.transform = "scale(1)";
      p12.onmouseover = function () {
        p12.style.opacity = "1";
        p12.style.transform = "scale(1.05)";
      };
      p12.onmouseout = function () {
        p12.style.transform = "scale(1)";
      };
    }
    v15.style = "\n        left: 430px;\n        top: 10px;\n        width: 150px;\n        height: 150px;\n        ";
    let v63 = document.createElement("link");
    v63.href = "https://fonts.googleapis.com/css2?family=Lilita+One&display=swap";
    v63.rel = "stylesheet";
    document.head.appendChild(v63);
    v8.innerHTML = "MooMoo";
    v8.style.cssText = "\n        display: \"none\";\n        opacity: 0.85;\n        text-shadow: 0 1px 0 #c4c4c4, 0 2px 0 #c4c4c4, 0 3px 0 #c4c4c4, 0 4px 0 #c4c4c4, 0 5px 0 #c4c4c4, 0 6px 0 #c4c4c4, 0 7px 0 #c4c4c4, 0 8px 0 #c4c4c4, 0 9px 0 #c4c4c4;\n        font-size: 100px;\n        font-family: 'Lilita One', sans-serif;\n        opacity: 0;\n        transition: opacity 0.5s ease;\n        ";
    v31.style.display = "none";
    let vSetInterval = setInterval(() => {
      v36.click();
      let v64 = v31.querySelector(".altcha-label span");
      if (v64) {
        let v65 = v64.textContent.trim() === "Verified" && v35.classList.contains("disabled");
        if (v65) {
          location.reload();
        }
        if (v317) {
          clearInterval(vSetInterval);
        }
      }
    }, 890);
    window.addEventListener("load", () => {
      setTimeout(() => {
        const v66 = window.location.href;
        const v67 = v66.match(/[?&]server=([^&]+)/);
        if (v67 && v67[1]) {
          const vDecodeURIComponent = decodeURIComponent(v67[1]);
          serverID = vDecodeURIComponent;
        } else {
          location.reload();
        }
      }, 2000);
    });
    document.getElementById("promoImgHolder").append(document.getElementById("skinColorHolder"));
    document.getElementById("skinColorHolder").style.cssText = "\n        display: flex;\n        justify-content: center;\n        gap: 10px;\n        align-items: center;\n        flex-wrap: nowrap;\n        padding: 10px;\n        background-color: rgba(0, 0, 0, 0.25);\n        border-radius: 8px;\n        ";
    let v68 = document.createElement("div");
    v68.id = "serverMenu";
    v68.style.cssText = "\n    position: fixed;\n    top: 240px;\n    left: 1250px;\n    width: 280px;\n    opacity: 0;\n    height: auto;\n    max-height: 275px;\n    overflow-y: auto;\n    background-color: rgba(0, 0, 0, 0.45);\n    padding: 10px;\n    border-radius: 8px;\n    color: #fff;\n    font-family: Arial, sans-serif;\n    z-index: 1000;\n    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);\n    transition: opacity 0.3s ease-in-out;\n";
    document.body.appendChild(v68);
    let v69 = document.createElement("div");
    v69.style.cssText = "\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    margin-bottom: 15px;\n    padding: 10px;\n";
    v68.appendChild(v69);
    let v70 = document.createElement("button");
    v70.textContent = "Join Test Server";
    v70.style.cssText = "\n    background-color: #28a745;\n    border: none;\n    color: white;\n    padding: 8px 10px;\n    border-radius: 4px;\n    cursor: pointer;\n    transition: background-color 0.3s;\n";
    v70.addEventListener("click", async () => {
      let v71 = await f3();
      let v72 = v71.filter(p13 => p13.playerCount === 0).sort((p14, p15) => p14.ping - p15.ping)[0];
      if (v72) {
        let v73 = location.protocol + "//" + location.hostname + "/?server=" + v72.region + ":" + v72.name;
        window.location.href = v73;
      } else {
        alert("Wla Pang test server");
      }
    });
    v69.appendChild(v70);
    let v74 = document.createElement("button");
    v74.textContent = "Join Active Server";
    v74.style.cssText = "\n    background-color: #007bff;\n    border: none;\n    color: white;\n    padding: 8px 10px;\n    border-radius: 4px;\n    cursor: pointer;\n    transition: background-color 0.3s;\n";
    v74.addEventListener("click", async () => {
      let v75 = await f3();
      let v76 = v75.sort((p16, p17) => {
        if (p16.playerCount === p17.playerCount) {
          return p16.ping - p17.ping;
        }
        return p17.playerCount - p16.playerCount;
      })[0];
      if (v76) {
        let v77 = location.protocol + "//" + location.hostname + "/?server=" + v76.region + ":" + v76.name;
        window.location.href = v77;
      } else {
        alert("wala nga ehh");
      }
    });
    v69.appendChild(v74);
    let v78 = document.createElement("div");
    v78.id = "game_servers";
    v68.appendChild(v78);
    let v79 = document.createElement("style");
    v79.innerHTML = "\n    #game_servers::-webkit-scrollbar {\n        width: 8px;\n    }\n    #game_servers::-webkit-scrollbar-track {\n        background: rgba(255, 255, 255, 0.1);\n    }\n    #game_servers::-webkit-scrollbar-thumb {\n        background: rgba(255, 255, 255, 0.4);\n        border-radius: 4px;\n    }\n    #game_servers::-webkit-scrollbar-thumb:hover {\n        background: rgba(255, 255, 255, 0.6);\n    }\n";
    document.head.appendChild(v79);
    window.regionsName = {
      "eu-west": "Frankfurt",
      gb: "London",
      "us-east": "Miami",
      "us-west": "Silicon Valley",
      au: "Sydney",
      sg: "Singapore",
      saopaulo: "São Paulo"
    };
    async function f3() {
      let v80 = location.host.replace(/\.moomoo\.io/, "");
      let vF2 = () => {
        if (/(sandbox|dev)/.test(v80)) {
          return "https://api-" + v80 + ".moomoo.io/servers?v=1.25";
        }
        return "https://api.moomoo.io/servers";
      };
      let v81 = await fetch(vF2());
      let v82 = await v81.json();
      await Promise.all(v82.map(async p18 => {
        let v83 = "https://" + p18.key + "." + p18.region + ".moomoo.io/ping/";
        let v84 = Date.now();
        try {
          await fetch(v83);
          p18.ping = Date.now() - v84;
        } catch (_0x3d3802) {
          p18.ping = Infinity;
        }
      }));
      return v82;
    }
    async function f4() {
      let v85 = await f3();
      let v86 = {};
      v85.forEach(p19 => {
        v86[p19.region] = v86[p19.region] || [];
        v86[p19.region].push(p19);
      });
      let v87 = [];
      for (let v88 in v86) {
        v87 = v87.concat(v86[v88]);
      }
      v87.sort((p20, p21) => {
        if (p20.ping === p21.ping) {
          return p21.playerCount - p20.playerCount;
        }
        return p20.ping - p21.ping;
      });
      let v89 = {};
      v78.childNodes.forEach(p22 => {
        v89[p22.dataset.serverKey] = p22;
      });
      v87.forEach(p23 => {
        let v90 = p23.region + ":" + p23.name;
        let v91 = v89[v90];
        if (!v91) {
          v91 = document.createElement("div");
          v91.dataset.serverKey = v90;
          v91.style.cssText = "\n                display: flex;\n                justify-content: space-between;\n                align-items: center;\n                background-color: rgba(255, 255, 255, 0.1);\n                border: 1px solid rgba(255, 255, 255, 0.2);\n                border-radius: 8px;\n                margin: 3px 0;\n                margin-bottom: 16px;\n                margin-left: 10px;\n                padding: 8px;\n            ";
          v78.appendChild(v91);
        }
        let v92 = p23.playerCount >= 25 ? "red" : p23.playerCount >= 15 ? "orange" : "green";
        let v93 = p23.ping < 150 ? "green" : p23.ping < 400 ? "orange" : p23.ping < 5000 ? "red" : "black";
        v91.innerHTML = "\n            " + (window.regionsName[p23.region] || p23.region) + " " + p23.name + "\n            (<span style=\"color: " + v92 + ";\">" + p23.playerCount + "</span>/" + p23.playerCapacity + ")\n            <span style=\"color: " + v93 + ";\">" + p23.ping + " ms</span>\n        ";
        let v94 = v91.querySelector("button");
        if (!v94) {
          v94 = document.createElement("button");
          v94.textContent = "Join";
          v94.style.cssText = "\n                background-color: #007bff;\n                border: none;\n                color: white;\n                padding: 5px 10px;\n                border-radius: 4px;\n                cursor: pointer;\n                transition: background-color 0.3s;\n            ";
          v91.appendChild(v94);
        }
        v94.onclick = () => {
          let v95 = location.protocol + "//" + location.hostname + "/?server=" + p23.region + ":" + p23.name;
          window.location.href = v95;
        };
      });
    }
    setInterval(f4, 5000);
    f4();
    f2(v49);
    f2(v6);
    v7.remove();
    v10.style.cssText = "\n        background: rgba(0, 0, 10, 0.45);\n        backdrop-filter: blur(7px);\n        border-radius: 6px;\n        ";
    v12.style.cssText = "\n        width: 350px;\n        height: 50px;\n        ";
    v12.placeholder = "Enter Username";
    v35.style.cssText = "\n        width: 95px;\n        height: 50px;\n        margin-left: 20px;\n        ";
    v35.innerHTML = "Play!";
    v49.style.cssText += "\n        width: auto;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        background: rgba(0, 0, 0, 0);\n        padding: 20px;\n        border-radius: 10px;\n        box-shadow: 0px 4px 15px rgba(0, 0, 0, 0);\n        ";
    v6.style.cssText += "\n        background: rgba(0, 0, 0, 0.45);\n        box-shadow: none;\n        display: flex;\n        width: 450px;\n        height: 50px;\n        border-radius: 10px;\n        margin-bottom: -20px;\n        margin-left: 70px;\n        ";
    v8.style.cssText = "\n        opacity: 0.85;\n        text-shadow: 0 1px 0 #c4c4c4, 0 2px 0 #c4c4c4, 0 3px 0 #c4c4c4, 0 4px 0 #c4c4c4, 0 5px 0 #c4c4c4, 0 6px 0 #c4c4c4, 0 7px 0 #c4c4c4, 0 8px 0 #c4c4c4, 0 9px 0 #c4c4c4;\n        font-size: 170px;\n        margin-bottom: -25px;\n        font-family: 'Lilita One', sans-serif;\n        opacity: 0;\n        ";
    setTimeout(() => {
      v8.style.opacity = "1";
      v6.style.opacity = "1";
      v7.style.opacity = "1";
      v49.style.opacity = "1";
      v68.style.opacity = "1";
    }, 2000);
    document.getElementById("loadingText").innerHTML = "\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <style>\n\n        .progress-container {\n            top: 80%;\n            left: 50%;\n            transform: translate(-50%, -50%) scale(0.5);\n            width: 75%;\n            background-color: gray;\n            border-radius: 25px;\n            overflow: hidden;\n            height: 90px;\n            position: relative;\n        }\n        .progress-bar {\n            width: 0%;\n            margin-top: 5px;\n            margin-left: 5px;\n            height: 80%;\n            background-color: #fff;\n            border-radius: 25px;\n            animation: loading 1.1s linear forwards;\n            position: relative;\n        }\n        @keyframes loading {\n            from { width: 0%; }\n            to { width: 98%; }\n        }\n        .progress-text {\n            position: absolute;\n            top: 50%;\n            font-size: 50px;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            color: black;\n            font-weight: bold;\n        }\n    </style>\n</head>\n<body>\n    <div class=\"progress-container\">\n        <div class=\"progress-bar\">\n            <div class=\"progress-text\" id=\"progressText\">Loading...</div>\n        </div>\n    </div>\n</body>\n</html>\n    ";
    let v96 = true;
    let v97 = console.log;
    let v98 = window.location.hostname == "127.0.0.1";
    let v99 = true;
    function f5(p24) {
      return document.getElementById(p24);
    }
    var vF3 = function (p25) {
      var v100 = {};
      function f6(p26) {
        if (v100[p26]) {
          return v100[p26].exports;
        }
        var v101 = v100[p26] = {
          i: p26,
          l: false,
          exports: {}
        };
        p25[p26].call(v101.exports, v101, v101.exports, f6);
        v101.l = true;
        return v101.exports;
      }
      f6.m = p25;
      f6.c = v100;
      f6.d = function (p27, p28, p29) {
        const v102 = {
          enumerable: true,
          get: p29
        };
        if (!f6.o(p27, p28)) {
          Object.defineProperty(p27, p28, v102);
        }
      };
      f6.r = function (p30) {
        const v103 = {
          value: true
        };
        if (typeof Symbol != "undefined" && Symbol.toStringTag) {
          Object.defineProperty(p30, Symbol.toStringTag, {
            value: "Module"
          });
        }
        Object.defineProperty(p30, "__esModule", v103);
      };
      f6.t = function (p31, p32) {
        if (p32 & 1) {
          p31 = f6(p31);
        }
        if (p32 & 8) {
          return p31;
        }
        if (p32 & 4 && typeof p31 == "object" && p31 && p31.__esModule) {
          return p31;
        }
        var v104 = Object.create(null);
        const v105 = {
          enumerable: true,
          value: p31
        };
        f6.r(v104);
        Object.defineProperty(v104, "default", v105);
        if (p32 & 2 && typeof p31 != "string") {
          for (var v106 in p31) {
            f6.d(v104, v106, function (p33) {
              return p31[p33];
            }.bind(null, v106));
          }
        }
        return v104;
      };
      f6.n = function (p34) {
        var v107 = p34 && p34.__esModule ? function () {
          return p34.default;
        } : function () {
          return p34;
        };
        f6.d(v107, "a", v107);
        return v107;
      };
      f6.o = function (p35, p36) {
        return Object.prototype.hasOwnProperty.call(p35, p36);
      };
      f6.p = "/bin/";
      return f6(f6.s = 0);
    }([function (p37, p38, p39) {
      var v108 = {};
      var vP39 = p39(1);
      var vP392 = p39(2);
      var vP393 = p39(3);
      p37.exports = v108;
      var v109 = 1;
      v108.js = function () {
        var v110;
        var v111;
        var v112;
        var v113 = 1.4;
        var v114 = false;
        var v115 = {};
        var v116 = {};
        var v117 = {};
        var v118 = {};
        var v119 = true;
        var v120 = {};
        var v121 = [];
        var v122 = Number.MAX_VALUE;
        var v123 = false;
        this.setAcceptableTiles = function (p40) {
          if (p40 instanceof Array) {
            v112 = p40;
          } else if (!isNaN(parseFloat(p40)) && isFinite(p40)) {
            v112 = [p40];
          }
        };
        this.enableSync = function () {
          v114 = true;
        };
        this.disableSync = function () {
          v114 = false;
        };
        this.enableDiagonals = function () {
          v123 = true;
        };
        this.disableDiagonals = function () {
          v123 = false;
        };
        this.setGrid = function (p41) {
          v110 = p41;
          for (var v124 = 0; v124 < v110.length; v124++) {
            for (var v125 = 0; v125 < v110[0].length; v125++) {
              v116[v110[v124][v125]] ||= 1;
            }
          }
        };
        this.setTileCost = function (p42, p43) {
          v116[p42] = p43;
        };
        this.setAdditionalPointCost = function (p44, p45, p46) {
          if (v117[p45] === undefined) {
            v117[p45] = {};
          }
          v117[p45][p44] = p46;
        };
        this.removeAdditionalPointCost = function (p47, p48) {
          if (v117[p48] !== undefined) {
            delete v117[p48][p47];
          }
        };
        this.removeAllAdditionalPointCosts = function () {
          v117 = {};
        };
        this.setDirectionalCondition = function (p49, p50, p51) {
          if (v118[p50] === undefined) {
            v118[p50] = {};
          }
          v118[p50][p49] = p51;
        };
        this.removeAllDirectionalConditions = function () {
          v118 = {};
        };
        this.setIterationsPerCalculation = function (p52) {
          v122 = p52;
        };
        this.avoidAdditionalPoint = function (p53, p54) {
          if (v115[p54] === undefined) {
            v115[p54] = {};
          }
          v115[p54][p53] = 1;
        };
        this.stopAvoidingAdditionalPoint = function (p55, p56) {
          if (v115[p56] !== undefined) {
            delete v115[p56][p55];
          }
        };
        this.enableCornerCutting = function () {
          v119 = true;
        };
        this.disableCornerCutting = function () {
          v119 = false;
        };
        this.stopAvoidingAllAdditionalPoints = function () {
          v115 = {};
        };
        this.findPath = function (p57, p58, p59, p60, p61) {
          function f7(p62) {
            if (v114) {
              p61(p62);
            } else {
              setTimeout(function () {
                p61(p62);
              });
            }
          }
          if (v112 === undefined) {
            throw new Error("You can't set a path without first calling setAcceptableTiles() on EasyStar.");
          }
          if (v110 === undefined) {
            throw new Error("You can't set a path without first calling setGrid() on EasyStar.");
          }
          if (p57 < 0 || p58 < 0 || p59 < 0 || p60 < 0 || p57 > v110[0].length - 1 || p58 > v110.length - 1 || p59 > v110[0].length - 1 || p60 > v110.length - 1) {
            throw new Error("Your start or end point is outside the scope of your grid.");
          }
          if (p57 !== p59 || p58 !== p60) {
            var v126 = v110[p60][p59];
            var v127 = false;
            for (var v128 = 0; v128 < v112.length; v128++) {
              if (v126 === v112[v128]) {
                v127 = true;
                break;
              }
            }
            if (v127 !== false) {
              var v129 = new vP39();
              v129.openList = new vP393(function (p63, p64) {
                return p63.bestGuessDistance() - p64.bestGuessDistance();
              });
              v129.isDoneCalculating = false;
              v129.nodeHash = {};
              v129.startX = p57;
              v129.startY = p58;
              v129.endX = p59;
              v129.endY = p60;
              v129.callback = f7;
              v129.openList.push(f12(v129, v129.startX, v129.startY, null, 1));
              p60 = v109++;
              v120[p60] = v129;
              v121.push(p60);
              return p60;
            }
            f7(null);
          } else {
            f7([]);
          }
        };
        this.cancelPath = function (p65) {
          return p65 in v120 && (delete v120[p65], true);
        };
        this.calculate = function () {
          if (v121.length !== 0 && v110 !== undefined && v112 !== undefined) {
            for (v111 = 0; v111 < v122; v111++) {
              if (v121.length === 0) {
                return;
              }
              if (v114) {
                v111 = 0;
              }
              var v130 = v121[0];
              var v131 = v120[v130];
              if (v131 !== undefined) {
                if (v131.openList.size() !== 0) {
                  var v132 = v131.openList.pop();
                  if (v131.endX !== v132.x || v131.endY !== v132.y) {
                    if ((v132.list = 0) < v132.y) {
                      f8(v131, v132, 0, -1, +f11(v132.x, v132.y - 1));
                    }
                    if (v132.x < v110[0].length - 1) {
                      f8(v131, v132, 1, 0, +f11(v132.x + 1, v132.y));
                    }
                    if (v132.y < v110.length - 1) {
                      f8(v131, v132, 0, 1, +f11(v132.x, v132.y + 1));
                    }
                    if (v132.x > 0) {
                      f8(v131, v132, -1, 0, +f11(v132.x - 1, v132.y));
                    }
                    if (v123) {
                      if (v132.x > 0 && v132.y > 0 && (v119 || f9(v110, v112, v132.x, v132.y - 1, v132) && f9(v110, v112, v132.x - 1, v132.y, v132))) {
                        f8(v131, v132, -1, -1, v113 * f11(v132.x - 1, v132.y - 1));
                      }
                      if (v132.x < v110[0].length - 1 && v132.y < v110.length - 1 && (v119 || f9(v110, v112, v132.x, v132.y + 1, v132) && f9(v110, v112, v132.x + 1, v132.y, v132))) {
                        f8(v131, v132, 1, 1, v113 * f11(v132.x + 1, v132.y + 1));
                      }
                      if (v132.x < v110[0].length - 1 && v132.y > 0 && (v119 || f9(v110, v112, v132.x, v132.y - 1, v132) && f9(v110, v112, v132.x + 1, v132.y, v132))) {
                        f8(v131, v132, 1, -1, v113 * f11(v132.x + 1, v132.y - 1));
                      }
                      if (v132.x > 0 && v132.y < v110.length - 1 && (v119 || f9(v110, v112, v132.x, v132.y + 1, v132) && f9(v110, v112, v132.x - 1, v132.y, v132))) {
                        f8(v131, v132, -1, 1, v113 * f11(v132.x - 1, v132.y + 1));
                      }
                    }
                  } else {
                    var v133 = [];
                    const v134 = {
                      x: v132.x,
                      y: v132.y
                    };
                    v133.push(v134);
                    for (var v135 = v132.parent; v135 != null;) {
                      v133.push({
                        x: v135.x,
                        y: v135.y
                      });
                      v135 = v135.parent;
                    }
                    v133.reverse();
                    v131.callback(v133);
                    delete v120[v130];
                    v121.shift();
                  }
                } else {
                  v131.callback(null);
                  delete v120[v130];
                  v121.shift();
                }
              } else {
                v121.shift();
              }
            }
          }
        };
        function f8(p66, p67, p68, p69, p70) {
          p68 = p67.x + p68;
          p69 = p67.y + p69;
          if ((v115[p69] === undefined || v115[p69][p68] === undefined) && !!f9(v110, v112, p68, p69, p67)) {
            if ((p69 = f12(p66, p68, p69, p67, p70)).list === undefined) {
              p69.list = 1;
              p66.openList.push(p69);
            } else if (p67.costSoFar + p70 < p69.costSoFar) {
              p69.costSoFar = p67.costSoFar + p70;
              p69.parent = p67;
              p66.openList.updateItem(p69);
            }
          }
        }
        function f9(p71, p72, p73, p74, p75) {
          var v136 = v118[p74] && v118[p74][p73];
          if (v136) {
            var v_0x1ac44e = f10(p75.x - p73, p75.y - p74);
            if (!function () {
              for (var v137 = 0; v137 < v136.length; v137++) {
                if (v136[v137] === v_0x1ac44e) {
                  return true;
                }
              }
              return false;
            }()) {
              return false;
            }
          }
          for (var v138 = 0; v138 < p72.length; v138++) {
            if (p71[p74][p73] === p72[v138]) {
              return true;
            }
          }
          return false;
        }
        function f10(p76, p77) {
          if (p76 === 0 && p77 === -1) {
            return v108.TOP;
          }
          if (p76 === 1 && p77 === -1) {
            return v108.TOP_RIGHT;
          }
          if (p76 === 1 && p77 === 0) {
            return v108.RIGHT;
          }
          if (p76 === 1 && p77 === 1) {
            return v108.BOTTOM_RIGHT;
          }
          if (p76 === 0 && p77 === 1) {
            return v108.BOTTOM;
          }
          if (p76 === -1 && p77 === 1) {
            return v108.BOTTOM_LEFT;
          }
          if (p76 === -1 && p77 === 0) {
            return v108.LEFT;
          }
          if (p76 === -1 && p77 === -1) {
            return v108.TOP_LEFT;
          }
          throw new Error("These differences are not valid: " + p76 + ", " + p77);
        }
        function f11(p78, p79) {
          return v117[p79] && v117[p79][p78] || v116[v110[p79][p78]];
        }
        function f12(p80, p81, p82, p83, p84) {
          if (p80.nodeHash[p82] !== undefined) {
            if (p80.nodeHash[p82][p81] !== undefined) {
              return p80.nodeHash[p82][p81];
            }
          } else {
            p80.nodeHash[p82] = {};
          }
          var v139 = f13(p81, p82, p80.endX, p80.endY);
          var p84 = p83 !== null ? p83.costSoFar + p84 : 0;
          var v139 = new vP392(p83, p81, p82, p84, v139);
          return p80.nodeHash[p82][p81] = v139;
        }
        function f13(p85, p86, p87, p88) {
          var v140;
          var v141;
          if (v123) {
            if ((v140 = Math.abs(p85 - p87)) < (v141 = Math.abs(p86 - p88))) {
              return v113 * v140 + v141;
            } else {
              return v113 * v141 + v140;
            }
          } else {
            return (v140 = Math.abs(p85 - p87)) + (v141 = Math.abs(p86 - p88));
          }
        }
      };
      v108.TOP = "TOP";
      v108.TOP_RIGHT = "TOP_RIGHT";
      v108.RIGHT = "RIGHT";
      v108.BOTTOM_RIGHT = "BOTTOM_RIGHT";
      v108.BOTTOM = "BOTTOM";
      v108.BOTTOM_LEFT = "BOTTOM_LEFT";
      v108.LEFT = "LEFT";
      v108.TOP_LEFT = "TOP_LEFT";
    }, function (p89, p90) {
      p89.exports = function () {
        this.pointsToAvoid = {};
        this.startX;
        this.callback;
        this.startY;
        this.endX;
        this.endY;
        this.nodeHash = {};
        this.openList;
      };
    }, function (p91, p92) {
      p91.exports = function (p93, p94, p95, p96, p97) {
        this.parent = p93;
        this.x = p94;
        this.y = p95;
        this.costSoFar = p96;
        this.simpleDistanceToTarget = p97;
        this.bestGuessDistance = function () {
          return this.costSoFar + this.simpleDistanceToTarget;
        };
      };
    }, function (p98, p99, p100) {
      p98.exports = p100(4);
    }, function (p101, p102, p103) {
      var v142;
      var v143;
      (function () {
        var v144;
        var v145;
        var v146;
        var v147;
        var v148;
        var v149;
        var v150;
        var v151;
        var v152;
        var v153;
        var v154;
        var v155;
        var v156;
        var v157;
        var v158;
        function f14(p104) {
          this.cmp = p104 ?? v145;
          this.nodes = [];
        }
        v146 = Math.floor;
        v153 = Math.min;
        v145 = function (p105, p106) {
          if (p105 < p106) {
            return -1;
          } else if (p106 < p105) {
            return 1;
          } else {
            return 0;
          }
        };
        v152 = function (p107, p108, p109, p110, p111) {
          var v159;
          if (p109 == null) {
            p109 = 0;
          }
          if (p111 == null) {
            p111 = v145;
          }
          if (p109 < 0) {
            throw new Error("lo must be non-negative");
          }
          for (p110 == null && (p110 = p107.length); p109 < p110;) {
            if (p111(p108, p107[v159 = v146((p109 + p110) / 2)]) < 0) {
              p110 = v159;
            } else {
              p109 = v159 + 1;
            }
          }
          [].splice.apply(p107, [p109, p109 - p109].concat(p108));
          return p108;
        };
        v149 = function (p112, p113, p114) {
          if (p114 == null) {
            p114 = v145;
          }
          p112.push(p113);
          return v157(p112, 0, p112.length - 1, p114);
        };
        v148 = function (p115, p116) {
          var v160;
          var v161;
          if (p116 == null) {
            p116 = v145;
          }
          v160 = p115.pop();
          if (p115.length) {
            v161 = p115[0];
            p115[0] = v160;
            v158(p115, 0, p116);
          } else {
            v161 = v160;
          }
          return v161;
        };
        v151 = function (p117, p118, p119) {
          var v162;
          if (p119 == null) {
            p119 = v145;
          }
          v162 = p117[0];
          p117[0] = p118;
          v158(p117, 0, p119);
          return v162;
        };
        v150 = function (p120, p121, p122) {
          var v163;
          if (p122 == null) {
            p122 = v145;
          }
          if (p120.length && p122(p120[0], p121) < 0) {
            p121 = (v163 = [p120[0], p121])[0];
            p120[0] = v163[1];
            v158(p120, 0, p122);
          }
          return p121;
        };
        v147 = function (p123, p124) {
          var v164;
          var v165;
          var v166;
          var v167;
          var v168;
          var v169;
          if (p124 == null) {
            p124 = v145;
          }
          v168 = [];
          v165 = 0;
          v166 = (v167 = function () {
            v169 = [];
            for (var v170 = 0, vV146 = v146(p123.length / 2); vV146 >= 0 ? v170 < vV146 : vV146 < v170; vV146 >= 0 ? v170++ : v170--) {
              v169.push(v170);
            }
            return v169;
          }.apply(this).reverse()).length;
          for (; v165 < v166; v165++) {
            v164 = v167[v165];
            v168.push(v158(p123, v164, p124));
          }
          return v168;
        };
        v156 = function (p125, p126, p127) {
          if (p127 == null) {
            p127 = v145;
          }
          if ((p126 = p125.indexOf(p126)) !== -1) {
            v157(p125, 0, p126, p127);
            return v158(p125, p126, p127);
          }
        };
        v154 = function (p128, p129, p130) {
          var v171;
          var v172;
          var v173;
          var v174;
          var v175;
          if (p130 == null) {
            p130 = v145;
          }
          if (!(v172 = p128.slice(0, p129)).length) {
            return v172;
          }
          v147(v172, p130);
          v173 = 0;
          v174 = (v175 = p128.slice(p129)).length;
          for (; v173 < v174; v173++) {
            v171 = v175[v173];
            v150(v172, v171, p130);
          }
          return v172.sort(p130).reverse();
        };
        v155 = function (p131, p132, p133) {
          var v176;
          var v177;
          var v178;
          var v179;
          var v180;
          var v181;
          var v182;
          var v183;
          var v184;
          if (p133 == null) {
            p133 = v145;
          }
          if (p132 * 10 <= p131.length) {
            if (!(v178 = p131.slice(0, p132).sort(p133)).length) {
              return v178;
            }
            v177 = v178[v178.length - 1];
            v179 = 0;
            v181 = (v182 = p131.slice(p132)).length;
            for (; v179 < v181; v179++) {
              if (p133(v176 = v182[v179], v177) < 0) {
                v152(v178, v176, 0, null, p133);
                v178.pop();
                v177 = v178[v178.length - 1];
              }
            }
            return v178;
          }
          v147(p131, p133);
          v184 = [];
          v180 = 0;
          v183 = v153(p132, p131.length);
          for (; v183 >= 0 ? v180 < v183 : v183 < v180; v183 >= 0 ? ++v180 : --v180) {
            v184.push(v148(p131, p133));
          }
          return v184;
        };
        v157 = function (p134, p135, p136, p137) {
          var v185;
          var v186;
          var v187;
          if (p137 == null) {
            p137 = v145;
          }
          v185 = p134[p136];
          while (p135 < p136 && p137(v185, v186 = p134[v187 = p136 - 1 >> 1]) < 0) {
            p134[p136] = v186;
            p136 = v187;
          }
          return p134[p136] = v185;
        };
        v158 = function (p138, p139, p140) {
          var v188;
          var v189;
          var v190;
          var v191;
          var v192;
          if (p140 == null) {
            p140 = v145;
          }
          v189 = p138.length;
          v190 = p138[v192 = p139];
          v188 = p139 * 2 + 1;
          while (v188 < v189) {
            if ((v191 = v188 + 1) < v189 && !(p140(p138[v188], p138[v191]) < 0)) {
              v188 = v191;
            }
            p138[p139] = p138[v188];
            v188 = (p139 = v188) * 2 + 1;
          }
          p138[p139] = v190;
          return v157(p138, v192, p139, p140);
        };
        f14.push = v149;
        f14.pop = v148;
        f14.replace = v151;
        f14.pushpop = v150;
        f14.heapify = v147;
        f14.updateItem = v156;
        f14.nlargest = v154;
        f14.nsmallest = v155;
        f14.prototype.push = function (p141) {
          return v149(this.nodes, p141, this.cmp);
        };
        f14.prototype.pop = function () {
          return v148(this.nodes, this.cmp);
        };
        f14.prototype.peek = function () {
          return this.nodes[0];
        };
        f14.prototype.contains = function (p142) {
          return this.nodes.indexOf(p142) !== -1;
        };
        f14.prototype.replace = function (p143) {
          return v151(this.nodes, p143, this.cmp);
        };
        f14.prototype.pushpop = function (p144) {
          return v150(this.nodes, p144, this.cmp);
        };
        f14.prototype.heapify = function () {
          return v147(this.nodes, this.cmp);
        };
        f14.prototype.updateItem = function (p145) {
          return v156(this.nodes, p145, this.cmp);
        };
        f14.prototype.clear = function () {
          return this.nodes = [];
        };
        f14.prototype.empty = function () {
          return this.nodes.length === 0;
        };
        f14.prototype.size = function () {
          return this.nodes.length;
        };
        f14.prototype.clone = function () {
          var v193 = new f14();
          v193.nodes = this.nodes.slice(0);
          return v193;
        };
        f14.prototype.toArray = function () {
          return this.nodes.slice(0);
        };
        f14.prototype.insert = f14.prototype.push;
        f14.prototype.top = f14.prototype.peek;
        f14.prototype.front = f14.prototype.peek;
        f14.prototype.has = f14.prototype.contains;
        f14.prototype.copy = f14.prototype.clone;
        v144 = f14;
        v142 = [];
        if ((v143 = typeof (v143 = function () {
          return v144;
        }) == "function" ? v143.apply(p102, v142) : v143) !== undefined) {
          p101.exports = v143;
        }
      }).call(this);
    }]);
    let v194 = new vF3.js();
    "use strict";
    let v195 = document.createElement("link");
    v195.rel = "stylesheet";
    v195.href = "https://fonts.googleapis.com/css?family=Ubuntu:700";
    v195.type = "text/css";
    document.body.append(v195);
    window.oncontextmenu = function () {
      return false;
    };
    vP11.anotherVisual = false;
    vP11.useWebGl = false;
    vP11.resetRender = false;
    function f15(p146) {
      return new Promise(p147 => {
        setTimeout(() => {
          p147();
        }, p146);
      });
    }
    let v196 = false;
    let v197;
    if (typeof Storage !== "undefined") {
      v197 = true;
    }
    function f16(p148, p149) {
      if (v197) {
        localStorage.setItem(p148, p149);
      }
    }
    function f17(p150) {
      if (v197) {
        localStorage.removeItem(p150);
      }
    }
    function f18(p151) {
      if (v197) {
        return localStorage.getItem(p151);
      }
      return null;
    }
    let vF4 = function (p152, p153) {
      try {
        let v198 = JSON.parse(f18(p152));
        if (typeof v198 === "object") {
          return p153;
        } else {
          return v198;
        }
      } catch (_0x256d7d) {
        return p153;
      }
    };
    function f19() {
      return {
        help: {
          desc: "Show Commands",
          action: function (p154) {
            for (let v199 in vF19) {
              f21("/" + v199, vF19[v199].desc, "lime", 1);
            }
          }
        },
        clear: {
          desc: "Clear Chats",
          action: function (p155) {
            f22();
          }
        },
        debug: {
          desc: "Debug Mod For Development",
          action: function (p156) {
            f96(v286);
            f21("Debug", "Done", "#99ee99", 1);
          }
        },
        play: {
          desc: "Play Music ( /play [link] )",
          action: function (p157) {
            let v200 = p157.split(" ");
            if (v200[1]) {
              let v201 = new Audio(v200[1]);
              v201.play();
            } else {
              f21("Warn", "Enter Link ( /play [link] )", "#99ee99", 1);
            }
          }
        },
        bye: {
          desc: "Leave Game",
          action: function (p158) {
            window.leave();
          }
        }
      };
    }
    function f20() {
      return {
        killChat: true,
        autoBuy: false,
        autoBuyEquip: true,
        alwaysFlipper: false,
        autoQonSync: true,
        anti1tick: true,
        autoPush: true,
        revTick: false,
        revInsta: false,
        doSpikeOnReverse: true,
        hammerBreakerOptimisation: true,
        autoPlay: false,
        autoBreakSpike: true,
        safeWalk: false,
        spikeTick: true,
        predictTick: true,
        autoPlace: true,
        autoReplace: true,
        autoPrePlace: true,
        antiTrap: true,
        slowOT: false,
        attackDir: false,
        noDir: false,
        showDir: true,
        autoRespawn: true
      };
    }
    let vF19 = f19();
    let vF20 = f20();
    window.removeConfigs = function () {
      for (let v202 in vF20) {
        f17(v202, vF20[v202]);
      }
    };
    for (let v203 in vF20) {
      vF20[v203] = vF4(v203, vF20[v203]);
    }
    class C {
      constructor(p159) {
        this.element = p159;
      }
      add(p160) {
        if (!this.element) {
          return undefined;
        }
        this.element.innerHTML += p160;
      }
      newLine(p161) {
        let v204 = "<br>";
        if (p161 > 0) {
          v204 = "";
          for (let v205 = 0; v205 < p161; v205++) {
            v204 += "<br>";
          }
        }
        this.add(v204);
      }
      checkBox(p162) {
        let v206 = "<input type = \"checkbox\"";
        if (p162.id) {
          v206 += " id = " + p162.id;
        }
        if (p162.style) {
          v206 += " style = " + p162.style.replaceAll(" ", "");
        }
        if (p162.class) {
          v206 += " class = " + p162.class;
        }
        if (p162.checked) {
          v206 += " checked";
        }
        if (p162.onclick) {
          v206 += " onclick = " + p162.onclick;
        }
        v206 += ">";
        this.add(v206);
      }
      text(p163) {
        let v207 = "<input type = \"text\"";
        if (p163.id) {
          v207 += " id = " + p163.id;
        }
        if (p163.style) {
          v207 += " style = " + p163.style.replaceAll(" ", "");
        }
        if (p163.class) {
          v207 += " class = " + p163.class;
        }
        if (p163.size) {
          v207 += " size = " + p163.size;
        }
        if (p163.maxLength) {
          v207 += " maxLength = " + p163.maxLength;
        }
        if (p163.value) {
          v207 += " value = " + p163.value;
        }
        if (p163.placeHolder) {
          v207 += " placeHolder = " + p163.placeHolder.replaceAll(" ", "&nbsp;");
        }
        v207 += ">";
        this.add(v207);
      }
      select(p164) {
        let v208 = "<select";
        if (p164.id) {
          v208 += " id = " + p164.id;
        }
        if (p164.style) {
          v208 += " style = " + p164.style.replaceAll(" ", "");
        }
        if (p164.class) {
          v208 += " class = " + p164.class;
        }
        v208 += ">";
        for (let v209 in p164.option) {
          v208 += "<option value = " + p164.option[v209].id;
          if (p164.option[v209].selected) {
            v208 += " selected";
          }
          v208 += ">" + v209 + "</option>";
        }
        v208 += "</select>";
        this.add(v208);
      }
      button(p165) {
        let v210 = "<button";
        if (p165.id) {
          v210 += " id = " + p165.id;
        }
        if (p165.style) {
          v210 += " style = " + p165.style.replaceAll(" ", "");
        }
        if (p165.class) {
          v210 += " class = " + p165.class;
        }
        if (p165.onclick) {
          v210 += " onclick = " + p165.onclick;
        }
        v210 += ">";
        if (p165.innerHTML) {
          v210 += p165.innerHTML;
        }
        v210 += "</button>";
        this.add(v210);
      }
      selectMenu(p166) {
        let v211 = "<select";
        if (!p166.id) {
          alert("please put id skid");
          return;
        }
        window[p166.id + "Func"] = function () {};
        if (p166.id) {
          v211 += " id = " + p166.id;
        }
        if (p166.style) {
          v211 += " style = " + p166.style.replaceAll(" ", "");
        }
        if (p166.class) {
          v211 += " class = " + p166.class;
        }
        v211 += " onchange = window." + (p166.id + "Func") + "()";
        v211 += ">";
        let v212;
        let v213 = 0;
        for (let v214 in p166.menu) {
          v211 += "<option value = " + ("option_" + v214) + " id = " + ("O_" + v214);
          if (p166.menu[v214]) {
            v211 += " checked";
          }
          v211 += " style = \"color: " + (p166.menu[v214] ? "#000" : "#fff") + "; background: " + (p166.menu[v214] ? "#8ecc51" : "#cc5151") + ";\">" + v214 + "</option>";
          v213++;
        }
        v211 += "</select>";
        this.add(v211);
        v213 = 0;
        for (let v215 in p166.menu) {
          window[v215 + "Func"] = function () {
            p166.menu[v215] = f5("check_" + v215).checked ? true : false;
            f16(v215, p166.menu[v215]);
            f5("O_" + v215).style.color = p166.menu[v215] ? "#000" : "#fff";
            f5("O_" + v215).style.background = p166.menu[v215] ? "#8ecc51" : "#cc5151";
          };
          this.checkBox({
            id: "check_" + v215,
            style: "display: " + (v213 == 0 ? "inline-block" : "none") + ";",
            class: "checkB",
            onclick: "window." + (v215 + "Func") + "()",
            checked: p166.menu[v215]
          });
          v213++;
        }
        v212 = "check_" + f5(p166.id).value.split("_")[1];
        window[p166.id + "Func"] = function () {
          f5(v212).style.display = "none";
          v212 = "check_" + f5(p166.id).value.split("_")[1];
          f5(v212).style.display = "inline-block";
        };
      }
    }
    ;
    class C2 {
      constructor() {
        this.element = null;
        this.action = null;
        this.divElement = null;
        this.startDiv = function (p167, p168) {
          let v216 = document.createElement("div");
          if (p167.id) {
            v216.id = p167.id;
          }
          if (p167.style) {
            v216.style = p167.style;
          }
          if (p167.class) {
            v216.className = p167.class;
          }
          this.element.appendChild(v216);
          this.divElement = v216;
          let v217 = new C(v216);
          if (typeof p168 == "function") {
            p168(v217);
          }
        };
        this.addDiv = function (p169, p170) {
          let v218 = document.createElement("div");
          if (p169.id) {
            v218.id = p169.id;
          }
          if (p169.style) {
            v218.style = p169.style;
          }
          if (p169.class) {
            v218.className = p169.class;
          }
          if (p169.appendID) {
            f5(p169.appendID).appendChild(v218);
          }
          this.divElement = v218;
          let v219 = new C(v218);
          if (typeof p170 == "function") {
            p170(v219);
          }
        };
      }
      set(p171) {
        this.element = f5(p171);
        this.action = new C(this.element);
      }
      resetHTML(p172) {
        if (p172) {
          this.element.innerHTML = "";
        } else {
          this.element.innerHTML = "";
        }
      }
      setStyle(p173) {
        this.element.style = p173;
      }
      setCSS(p174) {
        this.action.add("<style>" + p174 + "</style>");
      }
    }
    ;
    let v220 = new C2();
    let v221 = document.createElement("div");
    v221.id = "nightMode";
    document.body.appendChild(v221);
    v220.set("nightMode");
    v220.setStyle("\n            display: none;\n            position: absolute;\n            pointer-events: none;\n            background-color: rgb(0, 0, 100);\n            opacity: 0;\n            top: 0%;\n            width: 100%;\n            height: 100%;\n            animation-duration: 5s;\n            animation-name: night2;\n            ");
    v220.resetHTML();
    v220.setCSS("\n            @keyframes night1 {\n                from {opacity: 0;}\n                to {opacity: 0.35;}\n            }\n            @keyframes night2 {\n                from {opacity: 0.35;}\n                to {opacity: 0;}\n            }\n            ");
    let v222 = document.createElement("div");
    v222.id = "menuDiv";
    document.body.appendChild(v222);
    v220.set("menuDiv");
    v220.setStyle("\n            position: absolute;\n            left: 20px;\n            top: 20px;\n            display: none;\n            ");
    v220.resetHTML();
    v220.setCSS("\n        .leaderboardItem {\n    float: left;\n    display: inline-block;\n    font-size: 13px;\n    text-align: center;\n    max-width: max-content;\n    position: relative;\n    left: 50%;\n    transform: translateX(-50%);\n    text-shadow: -1.1px -1.1px 0 #000, 1.1px -1.1px 0 #000, -1.1px 1.1px 0 #000, 1.1px 1.1px 0 #000;\n    font-family: Ubuntu, sans-serif;\n    margin-top: 1.2px;\n}\n\n            .menuClass{\n                color: #fff;\n                font-size: 31px;\n                text-align: left;\n                padding: 10px;\n                padding-top: 7px;\n                padding-bottom: 5px;\n                width: 300px;\n                background-color: rgba(0, 0, 0, 0.25);\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n            }\n            .menuC {\n                display: none;\n                font-family: \"Hammersmith One\";\n                font-size: 12px;\n                max-height: 180px;\n                overflow-y: scroll;\n                -webkit-touch-callout: none;\n                -webkit-user-select: none;\n                -khtml-user-select: none;\n                -moz-user-select: none;\n                -ms-user-select: none;\n                user-select: none;\n            }\n            .menuB {\n                text-align: center;\n                background-color: rgb(25, 25, 25);\n                color: #fff;\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n                border: 2px solid #000;\n                cursor: pointer;\n            }\n            .menuB:hover {\n                border: 2px solid #fff;\n            }\n            .menuB:active {\n                color: rgb(25, 25, 25);\n                background-color: rgb(200, 200, 200);\n            }\n            .customText {\n                color: #000;\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n                border: 2px solid #000;\n            }\n            .customText:focus {\n                background-color: yellow;\n            }\n            .checkB {\n                position: relative;\n                top: 2px;\n                accent-color: #888;\n                cursor: pointer;\n            }\n            .Cselect {\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n                background-color: rgb(75, 75, 75);\n                color: #fff;\n                border: 1px solid #000;\n            }\n            #menuChanger {\n                position: absolute;\n                right: 10px;\n                top: 10px;\n                background-color: rgba(0, 0, 0, 0);\n                color: #fff;\n                border: none;\n                cursor: pointer;\n            }\n            #menuChanger:hover {\n                color: #000;\n            }\n            ::-webkit-scrollbar {\n                width: 10px;\n            }\n            ::-webkit-scrollbar-track {\n                opacity: 0;\n            }\n            ::-webkit-scrollbar-thumb {\n                background-color: rgb(25, 25, 25);\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n            }\n            ::-webkit-scrollbar-thumb:active {\n                background-color: rgb(230, 230, 230);\n            }\n            ");
    v220.startDiv({
      id: "menuHeadLine",
      class: "menuClass"
    }, p175 => {
      p175.add("Mod:");
      p175.button({
        id: "menuChanger",
        class: "material-icons",
        innerHTML: "sync",
        onclick: "window.changeMenu()"
      });
      v220.addDiv({
        id: "menuButtons",
        style: "display: block; overflow-y: visible;",
        class: "menuC",
        appendID: "menuHeadLine"
      }, p176 => {
        p176.button({
          class: "menuB",
          innerHTML: "Debug",
          onclick: "window.debug()"
        });
        p176.button({
          class: "menuB",
          innerHTML: "Night Mode",
          onclick: "window.toggleNight()"
        });
      });
      v220.addDiv({
        id: "menuMain",
        style: "display: block",
        class: "menuC",
        appendID: "menuHeadLine"
      }, p177 => {
        p177.button({
          class: "menuB",
          innerHTML: "Toggle Wasd Mode",
          onclick: "window.wasdMode()"
        });
        p177.newLine();
        p177.add("Weapon Grinder: ");
        p177.checkBox({
          id: "weaponGrind",
          class: "checkB",
          onclick: "window.startGrind()"
        });
        p177.newLine(2);
        v220.addDiv({
          style: "font-size: 20px; color: #99ee99;",
          appendID: "menuMain"
        }, p178 => {
          p178.add("Developing Settings:");
        });
        p177.newLine();
        p177.add("New Healing Beta:");
        p177.checkBox({
          id: "healingBeta",
          class: "checkB",
          checked: true
        });
        p177.newLine();
        p177.add("CAmera");
        p177.checkBox({
          id: "camSexy",
          class: "checkB",
          checked: false
        });
      });
      v220.addDiv({
        id: "menuConfig",
        class: "menuC",
        appendID: "menuHeadLine"
      }, p179 => {
        p179.add("AutoPlacer Placement Tick: ");
        p179.text({
          id: "autoPlaceTick",
          class: "customText",
          value: "2",
          size: "2em",
          maxLength: "1"
        });
        p179.newLine();
        p179.add("Configs: ");
        const v223 = {
          id: "configsChanger",
          class: "Cselect",
          menu: vF20
        };
        p179.selectMenu(v223);
        p179.newLine();
        p179.add("InstaKill Type: ");
        const v224 = {
          id: "instaType",
          class: "Cselect",
          option: {}
        };
        v224.option.OneShot = {
          id: "oneShot",
          selected: true
        };
        v224.option.Spammer = {};
        v224.option.Spammer.id = "spammer";
        p179.select(v224);
        p179.newLine();
        p179.add("AntiBull Type: ");
        const v225 = {
          id: "antiBullType",
          class: "Cselect",
          option: {}
        };
        v225.option["Disable AntiBull"] = {};
        v225.option["When Reloaded"] = {};
        v225.option["Primary Reloaded"] = {};
        v225.option["Disable AntiBull"].id = "noab";
        v225.option["Disable AntiBull"].selected = true;
        v225.option["When Reloaded"].id = "abreload";
        v225.option["Primary Reloaded"].id = "abalway";
        p179.select(v225);
        p179.newLine();
        p179.add("Preplacer Type: ");
        const v226 = {
          id: "preplaceMore",
          class: "Cselect",
          option: {}
        };
        v226.option["For SpikeTick"] = {};
        v226.option["For retrap"] = {};
        v226.option["For SpikeTick"].id = "spike";
        v226.option["For retrap"].id = "trap";
        v226.option["For retrap"].selected = true;
        p179.select(v226);
        p179.newLine();
        p179.add("Hat Changer Type: ");
        p179.select({
          id: "hatType",
          class: "Cselect",
          option: {
            "Assassin Gear": {
              id: "ag"
            },
            "Bush Gear": {
              id: "bg"
            },
            Normal: {
              id: "norm",
              selected: true
            },
            "Hat Loop": {
              id: "loop"
            }
          }
        });
        p179.newLine();
        p179.add("Backup Nobull Insta: ");
        p179.checkBox({
          id: "backupNobull",
          class: "checkB",
          checked: true
        });
        p179.newLine();
        p179.add("Turret Gear Combat Assistance: ");
        p179.checkBox({
          id: "turretCombat",
          class: "checkB"
        });
        p179.newLine();
        p179.add("Safe AntiSpikeTick: ");
        p179.checkBox({
          id: "safeAntiSpikeTick",
          class: "checkB",
          checked: true
        });
        p179.newLine();
        const v227 = {
          id: "songChat",
          class: "Cselect",
          option: {}
        };
        v227.option["Park Chinois"] = {
          id: "song1"
        };
        v227.option["Gas Gas Gas"] = {};
        v227.option.Verbatim = {};
        v227.option["Dead of night"] = {};
        v227.option["I see a dreamer"] = {};
        v227.option["Sailor Song"] = {};
        v227.option["My ordinary life"] = {};
        v227.option["Dont Stand So Close"] = {};
        v227.option["Everything is awesome"] = {};
        v227.option["Candles on fire"] = {};
        v227.option["Gas Gas Gas"].id = "song2";
        v227.option.Verbatim.id = "song3";
        v227.option["Dead of night"].id = "song4";
        v227.option["I see a dreamer"].id = "song5";
        v227.option["Sailor Song"].id = "song6";
        v227.option["My ordinary life"].id = "song7";
        v227.option["Dont Stand So Close"].id = "song8";
        v227.option["Everything is awesome"].id = "song9";
        v227.option["Everything is awesome"].selected = true;
        v227.option["Candles on fire"].id = "song10";
        p179.select(v227);
        p179.newLine();
        p179.add("Target Player: ");
        p179.text({
          id: "targetSid",
          class: "customText",
          value: "0",
          size: "3em",
          maxLength: "2"
        });
        p179.newLine();
        p179.add("Player Follower: ");
        p179.checkBox({
          id: "followPlayer",
          class: "checkB",
          checked: false
        });
      });
      v220.addDiv({
        id: "menuOther",
        class: "menuC",
        appendID: "menuHeadLine"
      }, p180 => {
        p180.newLine();
        p180.button({
          class: "menuB",
          innerHTML: "Reset Break Objects",
          onclick: "window.resBuild()"
        });
        p180.newLine();
        p180.add("sync chat: ");
        p180.text({
          id: "syncChat",
          class: "customText",
          value: "wasdwasd",
          size: "30em",
          maxLength: "30"
        });
        p180.newLine();
        p180.add("primary weapon sync");
        p180.checkBox({
          id: "serverSync",
          class: "checkB",
          checked: false
        });
        p180.newLine();
        p180.add("Break Objects Range: ");
        p180.text({
          id: "breakRange",
          class: "customText",
          value: "700",
          size: "3em",
          maxLength: "4"
        });
        p180.newLine();
        p180.add("Predict Movement Type: ");
        const v228 = {
          id: "predictType",
          class: "Cselect",
          option: {}
        };
        v228.option["Disable Render"] = {};
        v228.option["X/Y and 2"] = {
          id: "pre2"
        };
        v228.option["X/Y and 3"] = {};
        v228.option["Disable Render"].id = "disableRender";
        v228.option["Disable Render"].selected = true;
        v228.option["X/Y and 3"].id = "pre3";
        p180.select(v228);
        p180.newLine();
        p180.add("Render Placers: ");
        p180.checkBox({
          id: "placeVis",
          class: "checkB",
          checked: true
        });
        p180.newLine();
        p180.add("Visuals: ");
        const v229 = {
          id: "visualType",
          class: "Cselect",
          option: {}
        };
        v229.option["Old Shit"] = {};
        v229.option["New shit"] = {};
        v229.option["Old Shit"].id = "ueh1";
        v229.option["New shit"].id = "ueh2";
        v229.option["New shit"].selected = true;
        p180.select(v229);
        p180.newLine(2);
        p180.button({
          class: "menuB",
          innerHTML: "Toggle Fbots Circle",
          onclick: "window.toggleBotsCircle()"
        });
        p180.newLine();
        p180.add("Circle Rad: ");
        p180.text({
          id: "circleRad",
          class: "customText",
          value: "200",
          size: "3em",
          maxLength: "4"
        });
        p180.newLine();
        p180.add("Rad Speed: ");
        p180.text({
          id: "radSpeed",
          class: "customText",
          value: "0.1",
          size: "2em",
          maxLength: "3"
        });
        p180.newLine(2);
        p180.add("Cross World: ");
        p180.checkBox({
          id: "funni",
          class: "checkB"
        });
        p180.newLine();
        p180.button({
          class: "menuB",
          innerHTML: "Toggle Another Visual",
          onclick: "window.toggleVisual()"
        });
        p180.newLine();
      });
    });
    let v230 = document.createElement("div");
    v230.id = "menuChatDiv";
    document.body.appendChild(v230);
    v220.set("menuChatDiv");
    v220.setStyle("\n            position: absolute;\n            display: block;\n            left: 10px;\n            top: 10px;\n            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.65);\n            ");
    v220.resetHTML();
    v220.setCSS("\n            .chDiv{\n                color: #fff;\n                padding: 5px;\n                width: 400px;\n                height: 240px;\n                background-color: rgba(0, 0, 0, 0.35);\n            }\n            .chMainDiv{\n                font-family: \"Ubuntu\";\n                font-size: 12px;\n                max-height: 195px;\n                overflow-y: scroll;\n                -webkit-touch-callout: none;\n                -webkit-user-select: none;\n                -khtml-user-select: none;\n                -moz-user-select: none;\n                -ms-user-select: none;\n                user-select: none;\n            }\n            .chMainBox{\n                position: absolute;\n                left: 5px;\n                bottom: 10px;\n                width: 395px;\n                height: 30px;\n                background-color: rgb(128, 128, 128, 0.35);\n                -webkit-border-radius: 4px;\n                -moz-border-radius: 4px;\n                border-radius: 4px;\n                color: #fff;\n                font-family: \"Ubuntu\";\n                font-size: 12px;\n                border: none;\n                outline: none;\n            }\n            ");
    v220.startDiv({
      id: "mChDiv",
      class: "chDiv"
    }, p181 => {
      v220.addDiv({
        id: "mChMain",
        class: "chMainDiv",
        appendID: "mChDiv"
      }, p182 => {});
      p181.text({
        id: "mChBox",
        class: "chMainBox",
        placeHolder: "To chat click here or press \"Enter\" key"
      });
    });
    let vF5 = f5("mChMain");
    let vF52 = f5("mChBox");
    let v231 = false;
    let v232 = 0;
    vF52.value = "";
    vF52.addEventListener("focus", () => {
      v231 = true;
    });
    vF52.addEventListener("blur", () => {
      v231 = false;
    });
    function f21(p183, p184, p185, p186) {
      v220.set("menuChatDiv");
      p185 = p185 || "white";
      let v233 = new Date();
      let v234 = v233.getMinutes();
      let v235 = v233.getHours();
      let v236 = v235 >= 12 ? "PM" : "AM";
      let v237 = "";
      if (!p186) {
        v237 += "<span style=\"color: white;\">[" + (v235 % 12 + ":" + v234 + " " + v236) + "] </span>";
      }
      if (p183) {
        v237 += "" + p183;
      }
      if (p184) {
        v237 += (p183 ? ": " : !p186 ? " " : "") + p184 + "\n";
      }
      v220.addDiv({
        id: "menuChDisp" + v232,
        style: "color: " + p185,
        appendID: "mChMain"
      }, p187 => {
        p187.add(v237);
      });
      vF5.scrollTop = vF5.scrollHeight;
      v232++;
    }
    function f22() {
      vF5.innerHTML = "";
      v232 = 0;
      f21("Script", "Thank You for Using this mod, Have fun!", "#0f0", 1);
    }
    f22();
    let v238 = 0;
    let v239 = ["menuMain", "menuConfig", "menuOther"];
    window.changeMenu = function () {
      f5(v239[v238 % v239.length]).style.display = "none";
      v238++;
      f5(v239[v238 % v239.length]).style.display = "block";
    };
    let v240 = false;
    let vUndefined = undefined;
    let vUndefined2 = undefined;
    let v241 = false;
    let v242 = 0;
    let v243 = 110;
    let v244 = 1000;
    let v245 = {
      sec: false
    };
    let v246 = {
      tick: 0,
      tickQueue: [],
      tickBase: function (p188, p189) {
        if (this.tickQueue[this.tick + p189]) {
          this.tickQueue[this.tick + p189].push(p188);
        } else {
          this.tickQueue[this.tick + p189] = [p188];
        }
      },
      tickRate: 1000 / vP11.serverUpdateRate,
      tickSpeed: 0,
      lastTick: performance.now()
    };
    let v247 = [];
    let v248 = false;
    let v249 = {
      last: 0,
      time: 0,
      ltime: 0
    };
    let v250 = ["cc", 1, "__proto__"];
    WebSocket.prototype.nsend = WebSocket.prototype.send;
    WebSocket.prototype.send = function (p190) {
      if (!vUndefined) {
        vUndefined = this;
        vUndefined.addEventListener("message", function (p191) {
          f25(p191);
        });
        vUndefined.addEventListener("close", p192 => {
          if (p192.code == 4001) {
            window.location.reload();
          }
        });
      }
      if (vUndefined == this) {
        v248 = false;
        let v251 = new Uint8Array(p190);
        let v252 = window.msgpack.decode(v251);
        let v253 = v252[0];
        v251 = v252[1];
        if (v253 == "6") {
          if (v251[0]) {
            let v254 = [];
            let v255;
            v254.forEach(p193 => {
              if (v251[0].indexOf(p193) > -1) {
                v255 = "";
                for (let v256 = 0; v256 < p193.length; ++v256) {
                  if (v256 == 1) {
                    v255 += String.fromCharCode(0);
                  }
                  v255 += p193[v256];
                }
                let v257 = new RegExp(p193, "g");
                v251[0] = v251[0].replace(v257, v255);
              }
            });
            v251[0] = v251[0].slice(0, 30);
          }
        } else if (v253 == "L") {
          v251[0] = v251[0] + String.fromCharCode(0).repeat(7);
          v251[0] = v251[0].slice(0, 7);
        } else if (v253 == "M") {
          v251[0].name = v251[0].name == "" ? "unknown" : v251[0].name;
          v251[0].moofoll = true;
          v251[0].skin = v251[0].skin == 10 ? "__proto__" : v251[0].skin;
          v250 = [v251[0].name, v251[0].moofoll, v251[0].skin];
        } else if (v253 == "D") {
          if (v293.lastDir == v251[0] || [null, undefined].includes(v251[0])) {
            v248 = true;
          } else {
            v293.lastDir = v251[0];
          }
        } else if (v253 == "F") {
          if (!v251[2]) {
            v248 = true;
          } else if (![null, undefined].includes(v251[1])) {
            v293.lastDir = v251[1];
          }
        } else if (v253 == "K") {
          if (!v251[1]) {
            v248 = true;
          }
        } else if (v253 == "S") {
          v689.wait = !v689.wait;
          v248 = true;
        } else if (v253 == "f") {
          if (v251[1]) {
            if (v286.moveDir == v251[0]) {
              v248 = true;
            }
            v286.moveDir = v251[0];
          } else {
            v286.moveTime = Date.now();
            v248 = true;
          }
        }
        if (!v248) {
          let v258 = window.msgpack.encode([v253, v251]);
          this.nsend(v258);
          if (!v245.sec) {
            v245.sec = true;
            setTimeout(() => {
              v245.sec = false;
              v242 = 0;
            }, v244);
          }
          v242++;
        }
      } else {
        this.nsend(p190);
      }
    };
    function f23(p194) {
      let v259 = Array.prototype.slice.call(arguments, 1);
      let v260 = window.msgpack.encode([p194, v259]);
      vUndefined.send(v260);
    }
    function f24(p195) {
      let v261 = Array.prototype.slice.call(arguments, 1);
      let v262 = window.msgpack.encode([p195, v261]);
      vUndefined.nsend(v262);
    }
    const v263 = {
      send: f23
    };
    let vV263 = v263;
    function f25(p196) {
      let v264 = new Uint8Array(p196.data);
      let v265 = window.msgpack.decode(v264);
      let v266 = v265[0];
      v264 = v265[1];
      const v267 = {
        A: f97,
        C: f98,
        D: f99,
        E: f100,
        a: f112,
        G: f113,
        H: f114,
        I: f115,
        J: f116,
        K: f117,
        L: f118,
        M: f119,
        N: f120,
        O: f101,
        P: f104,
        Q: f108,
        R: f109,
        S: f105,
        T: f106,
        U: f107,
        V: f121,
        X: f122,
        Y: f123,
        Z: f124,
        "2": f125,
        "3": f126,
        "4": f127,
        "5": f128,
        "6": f130,
        "7": f131,
        "8": f132,
        "9": f176,
        "0": f102
      };
      let vV267 = v267;
      if (v266 == "io-init") {
        vUndefined2 = v264[0];
      } else if (vV267[v266]) {
        vV267[v266].apply(undefined, v264);
      }
    }
    Math.lerpAngle = function (p197, p198, p199) {
      let v268 = Math.abs(p198 - p197);
      if (v268 > Math.PI) {
        if (p197 > p198) {
          p198 += Math.PI * 2;
        } else {
          p197 += Math.PI * 2;
        }
      }
      let v269 = p198 + (p197 - p198) * p199;
      if (v269 >= 0 && v269 <= Math.PI * 2) {
        return v269;
      }
      return v269 % (Math.PI * 2);
    };
    CanvasRenderingContext2D.prototype.roundRect = function (p200, p201, p202, p203, p204) {
      if (p202 < p204 * 2) {
        p204 = p202 / 2;
      }
      if (p203 < p204 * 2) {
        p204 = p203 / 2;
      }
      if (p204 < 0) {
        p204 = 0;
      }
      this.beginPath();
      this.moveTo(p200 + p204, p201);
      this.arcTo(p200 + p202, p201, p200 + p202, p201 + p203, p204);
      this.arcTo(p200 + p202, p201 + p203, p200, p201 + p203, p204);
      this.arcTo(p200, p201 + p203, p200, p201, p204);
      this.arcTo(p200, p201, p200 + p202, p201, p204);
      this.closePath();
      return this;
    };
    let v270 = false;
    let vUndefined3 = undefined;
    let vUndefined4 = undefined;
    const v271 = {
      animationTime: 0,
      land: null,
      lava: null,
      x: vP11.volcanoLocationX,
      y: vP11.volcanoLocationY
    };
    var vV271 = v271;
    let v272 = false;
    let v273 = {
      mex: 0,
      mey: 0
    };
    let v274 = {
      active: false,
      x: 0,
      y: 0,
      aim: 0,
      info: {},
      dist: 0
    };
    let v275 = [];
    let v276 = [];
    let v277 = [];
    let v278 = [];
    let v279 = [];
    let v280 = [];
    let v281 = [];
    let v282 = [];
    let v283 = [];
    let v284 = [];
    let v285 = [];
    let v286;
    let v287;
    let v288;
    let v289 = [];
    let v290 = [];
    let v291 = [];
    let v292 = 0;
    let v293 = {
      reloaded: false,
      waitHit: 0,
      autoAim: false,
      revAim: false,
      ageInsta: true,
      reSync: false,
      bullTick: 0,
      anti0Tick: 0,
      predictSpikes: 0,
      antiSync: false,
      safePrimary: function (p205) {
        return [0, 8].includes(p205.primaryIndex);
      },
      safeSecondary: function (p206) {
        return [10, 11, 14].includes(p206.secondaryIndex);
      },
      lastDir: 0,
      autoPush: false,
      pushData: {},
      millPlacePos: {
        x: 0,
        y: 0
      },
      antiInsta: false
    };
    function f26(p207, p208) {
      return p207.find(p209 => p209.id == p208);
    }
    function f27(p210, p211) {
      return p210.find(p212 => p212.sid == p211);
    }
    function f28(p213) {
      return f26(v278, p213);
    }
    function f29(p214) {
      return f27(v278, p214);
    }
    function f30(p215) {
      return f27(v277, p215);
    }
    function f31(p216) {
      return f27(v282, p216);
    }
    function f32(p217) {
      return f27(v282, p217);
    }
    let v294;
    let v295;
    let v296 = vP11.maxScreenWidth;
    let v297 = vP11.maxScreenHeight;
    let v298 = 1;
    let v299;
    let v300;
    let v301 = performance.now();
    let v302;
    let v303;
    let v304;
    let v305 = 0;
    let v306 = 0;
    let v307 = 1;
    let v308 = 0;
    let v309 = "#525252";
    let v310 = "#3d3f42";
    let v311 = 5.5;
    let v312 = true;
    let v313 = true;
    let v314 = {};
    const v315 = {
      "87": [0, -1],
      "38": [0, -1],
      "83": [0, 1],
      "40": [0, 1],
      "65": [-1, 0],
      "37": [-1, 0],
      "68": [1, 0],
      "39": [1, 0]
    };
    let vV315 = v315;
    let v316 = 0;
    let v317 = false;
    let v318 = {};
    let v319 = {
      place: 0,
      placeSpawnPads: 0
    };
    let v320;
    let v321 = [];
    let v322 = true;
    window.onblur = function () {
      v322 = false;
    };
    window.onfocus = function () {
      v322 = true;
      if (v286 && v286.alive) {}
    };
    let v323 = [];
    let v324 = [];
    let v325 = [];
    let v326 = ["cunt", "whore", "fuck", "shit", "faggot", "nigger", "nigga", "dick", "vagina", "minge", "cock", "rape", "cum", "sex", "tits", "penis", "clit", "pussy", "meatcurtain", "jizz", "prune", "douche", "wanker", "damn", "bitch", "dick", "fag", "bastard"];
    class C3 {
      constructor() {
        let v327 = Math.abs;
        let v328 = Math.cos;
        let v329 = Math.sin;
        let v330 = Math.pow;
        let v331 = Math.sqrt;
        let v332 = Math.atan2;
        let v333 = Math.PI;
        let vThis = this;
        this.round = function (p218, p219) {
          return Math.round(p218 * p219) / p219;
        };
        this.toRad = function (p220) {
          return p220 * (v333 / 180);
        };
        this.toAng = function (p221) {
          return p221 / (v333 / 180);
        };
        this.randInt = function (p222, p223) {
          return Math.floor(Math.random() * (p223 - p222 + 1)) + p222;
        };
        this.collisionDetection = function (p224, p225, p226) {
          return v331((p224.x - p225.x) ** 2 + (p224.y - p225.y) ** 2) < p226;
        };
        this.randFloat = function (p227, p228) {
          return Math.random() * (p228 - p227 + 1) + p227;
        };
        this.lerp = function (p229, p230, p231) {
          return p229 + (p230 - p229) * p231;
        };
        this.decel = function (p232, p233) {
          if (p232 > 0) {
            p232 = Math.max(0, p232 - p233);
          } else if (p232 < 0) {
            p232 = Math.min(0, p232 + p233);
          }
          return p232;
        };
        this.getDistance = function (p234, p235, p236, p237) {
          return v331((p236 -= p234) * p236 + (p237 -= p235) * p237);
        };
        this.getDist = function (p238, p239, p240, p241) {
          let v334 = {
            x: p240 == 0 ? p238.x : p240 == 1 ? p238.x1 : p240 == 2 ? p238.x2 : p240 == 3 && p238.x3,
            y: p240 == 0 ? p238.y : p240 == 1 ? p238.y1 : p240 == 2 ? p238.y2 : p240 == 3 && p238.y3
          };
          let v335 = {
            x: p241 == 0 ? p239.x : p241 == 1 ? p239.x1 : p241 == 2 ? p239.x2 : p241 == 3 && p239.x3,
            y: p241 == 0 ? p239.y : p241 == 1 ? p239.y1 : p241 == 2 ? p239.y2 : p241 == 3 && p239.y3
          };
          return v331((v335.x -= v334.x) * v335.x + (v335.y -= v334.y) * v335.y);
        };
        this.findMiddlePoint = function (p242, p243) {
          const v336 = {
            x: (p242.x + p243.x) / 2,
            y: (p242.y + p243.y) / 2
          };
          return v336;
        };
        this.fgdo = function (p244, p245) {
          return Math.sqrt(Math.pow(p245.y - p244.y, 2) + Math.pow(p245.x - p244.x, 2));
        };
        this.getDirection = function (p246, p247, p248, p249) {
          return v332(p247 - p249, p246 - p248);
        };
        this.getDirect = function (p250, p251, p252, p253) {
          let v337 = {
            x: p252 == 0 ? p250.x : p252 == 1 ? p250.x1 : p252 == 2 ? p250.x2 : p252 == 3 && p250.x3,
            y: p252 == 0 ? p250.y : p252 == 1 ? p250.y1 : p252 == 2 ? p250.y2 : p252 == 3 && p250.y3
          };
          let v338 = {
            x: p253 == 0 ? p251.x : p253 == 1 ? p251.x1 : p253 == 2 ? p251.x2 : p253 == 3 && p251.x3,
            y: p253 == 0 ? p251.y : p253 == 1 ? p251.y1 : p253 == 2 ? p251.y2 : p253 == 3 && p251.y3
          };
          return v332(v337.y - v338.y, v337.x - v338.x);
        };
        this.getAngleDist = function (p254, p255) {
          let v339 = v327(p255 - p254) % (v333 * 2);
          if (v339 > v333) {
            return v333 * 2 - v339;
          } else {
            return v339;
          }
        };
        this.isNumber = function (p256) {
          return typeof p256 == "number" && !isNaN(p256) && isFinite(p256);
        };
        this.isString = function (p257) {
          return p257 && typeof p257 == "string";
        };
        this.kFormat = function (p258) {
          if (p258 > 999) {
            return (p258 / 1000).toFixed(1) + "k";
          } else {
            return p258;
          }
        };
        this.sFormat = function (p259) {
          let v340 = [{
            num: 1000,
            string: "k"
          }, {
            num: 1000000,
            string: "m"
          }, {
            num: 1000000000,
            string: "b"
          }, {
            num: 1000000000000,
            string: "q"
          }].reverse();
          let v341 = v340.find(p260 => p259 >= p260.num);
          if (!v341) {
            return p259;
          }
          return (p259 / v341.num).toFixed(1) + v341.string;
        };
        this.capitalizeFirst = function (p261) {
          return p261.charAt(0).toUpperCase() + p261.slice(1);
        };
        this.fixTo = function (p262, p263) {
          return parseFloat(p262.toFixed(p263));
        };
        this.sortByPoints = function (p264, p265) {
          return parseFloat(p265.points) - parseFloat(p264.points);
        };
        this.lineInRect = function (p266, p267, p268, p269, p270, p271, p272, p273) {
          let vP270 = p270;
          let vP272 = p272;
          if (p270 > p272) {
            vP270 = p272;
            vP272 = p270;
          }
          if (vP272 > p268) {
            vP272 = p268;
          }
          if (vP270 < p266) {
            vP270 = p266;
          }
          if (vP270 > vP272) {
            return false;
          }
          let vP271 = p271;
          let vP273 = p273;
          let v342 = p272 - p270;
          if (Math.abs(v342) > 1e-7) {
            let v343 = (p273 - p271) / v342;
            let v344 = p271 - v343 * p270;
            vP271 = v343 * vP270 + v344;
            vP273 = v343 * vP272 + v344;
          }
          if (vP271 > vP273) {
            let vVP273 = vP273;
            vP273 = vP271;
            vP271 = vVP273;
          }
          if (vP273 > p269) {
            vP273 = p269;
          }
          if (vP271 < p267) {
            vP271 = p267;
          }
          if (vP271 > vP273) {
            return false;
          }
          return true;
        };
        this.containsPoint = function (p274, p275, p276) {
          let v345 = p274.getBoundingClientRect();
          let v346 = v345.left + window.scrollX;
          let v347 = v345.top + window.scrollY;
          let v348 = v345.width;
          let v349 = v345.height;
          let v350 = p275 > v346 && p275 < v346 + v348;
          let v351 = p276 > v347 && p276 < v347 + v349;
          return v350 && v351;
        };
        this.mousifyTouchEvent = function (p277) {
          let v352 = p277.changedTouches[0];
          p277.screenX = v352.screenX;
          p277.screenY = v352.screenY;
          p277.clientX = v352.clientX;
          p277.clientY = v352.clientY;
          p277.pageX = v352.pageX;
          p277.pageY = v352.pageY;
        };
        this.hookTouchEvents = function (p278, p279) {
          let v353 = !p279;
          let v354 = false;
          let v355 = false;
          p278.addEventListener("touchstart", this.checkTrusted(f33), v355);
          p278.addEventListener("touchmove", this.checkTrusted(f34), v355);
          p278.addEventListener("touchend", this.checkTrusted(f35), v355);
          p278.addEventListener("touchcancel", this.checkTrusted(f35), v355);
          p278.addEventListener("touchleave", this.checkTrusted(f35), v355);
          function f33(p280) {
            vThis.mousifyTouchEvent(p280);
            window.setUsingTouch(true);
            if (v353) {
              p280.preventDefault();
              p280.stopPropagation();
            }
            if (p278.onmouseover) {
              p278.onmouseover(p280);
            }
            v354 = true;
          }
          function f34(p281) {
            vThis.mousifyTouchEvent(p281);
            window.setUsingTouch(true);
            if (v353) {
              p281.preventDefault();
              p281.stopPropagation();
            }
            if (vThis.containsPoint(p278, p281.pageX, p281.pageY)) {
              if (!v354) {
                if (p278.onmouseover) {
                  p278.onmouseover(p281);
                }
                v354 = true;
              }
            } else if (v354) {
              if (p278.onmouseout) {
                p278.onmouseout(p281);
              }
              v354 = false;
            }
          }
          function f35(p282) {
            vThis.mousifyTouchEvent(p282);
            window.setUsingTouch(true);
            if (v353) {
              p282.preventDefault();
              p282.stopPropagation();
            }
            if (v354) {
              if (p278.onclick) {
                p278.onclick(p282);
              }
              if (p278.onmouseout) {
                p278.onmouseout(p282);
              }
              v354 = false;
            }
          }
        };
        this.removeAllChildren = function (p283) {
          while (p283.hasChildNodes()) {
            p283.removeChild(p283.lastChild);
          }
        };
        this.generateElement = function (p284) {
          let v356 = document.createElement(p284.tag || "div");
          function f36(p285, p286) {
            if (p284[p285]) {
              v356[p286] = p284[p285];
            }
          }
          f36("text", "textContent");
          f36("html", "innerHTML");
          f36("class", "className");
          for (let v357 in p284) {
            switch (v357) {
              case "tag":
              case "text":
              case "html":
              case "class":
              case "style":
              case "hookTouch":
              case "parent":
              case "children":
                continue;
              default:
                break;
            }
            v356[v357] = p284[v357];
          }
          if (v356.onclick) {
            v356.onclick = this.checkTrusted(v356.onclick);
          }
          if (v356.onmouseover) {
            v356.onmouseover = this.checkTrusted(v356.onmouseover);
          }
          if (v356.onmouseout) {
            v356.onmouseout = this.checkTrusted(v356.onmouseout);
          }
          if (p284.style) {
            v356.style.cssText = p284.style;
          }
          if (p284.hookTouch) {
            this.hookTouchEvents(v356);
          }
          if (p284.parent) {
            p284.parent.appendChild(v356);
          }
          if (p284.children) {
            for (let v358 = 0; v358 < p284.children.length; v358++) {
              v356.appendChild(p284.children[v358]);
            }
          }
          return v356;
        };
        this.checkTrusted = function (p287) {
          return function (p288) {
            if (p288 && p288 instanceof Event && (p288 && typeof p288.isTrusted == "boolean" ? p288.isTrusted : true)) {
              p287(p288);
            } else {}
          };
        };
        this.randomString = function (p289) {
          let v359 = "";
          let v360 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
          for (let v361 = 0; v361 < p289; v361++) {
            v359 += v360.charAt(Math.floor(Math.random() * v360.length));
          }
          return v359;
        };
        this.countInArray = function (p290, p291) {
          let v362 = 0;
          for (let v363 = 0; v363 < p290.length; v363++) {
            if (p290[v363] === p291) {
              v362++;
            }
          }
          return v362;
        };
        this.hexToRgb = function (p292) {
          return p292.slice(1).match(/.{1,2}/g).map(p293 => parseInt(p293, 16));
        };
        this.getRgb = function (p294, p295, p296) {
          return [p294 / 255, p295 / 255, p296 / 255].join(", ");
        };
      }
    }
    ;
    class C4 {
      constructor() {
        this.init = function (p297, p298, p299, p300, p301, p302, p303) {
          this.x = p297;
          this.y = p298;
          this.color = p303;
          this.scale = p299 * 3.5;
          this.weight = 50;
          this.startScale = this.scale * 1.2;
          this.maxScale = p299 * 1.5;
          this.minScale = p299 * 0.5;
          this.scaleSpeed = 0.7;
          this.speed = p300;
          this.speedMax = p300;
          this.life = p301;
          this.maxLife = p301;
          this.text = p302;
          this.movSpeed = p300;
        };
        this.update = function (p304) {
          if (this.life) {
            this.life -= p304;
            if (this.scaleSpeed != -0.35) {
              this.y -= this.speed * p304;
            } else {
              this.y -= this.speed * p304;
            }
            this.scale -= 0.8;
            if (this.scale >= this.maxScale) {
              this.scale = this.maxScale;
              this.scaleSpeed *= -0.5;
              this.speed = this.speed * 0.75;
            }
            ;
            if (this.life <= 0) {
              this.life = 0;
            }
          }
          ;
        };
        this.render = function (p305, p306, p307) {
          p305.lineWidth = 10;
          p305.strokeStyle = v310;
          p305.fillStyle = this.color;
          p305.globalAlpha = 1;
          p305.font = this.scale + "px HammerSmith One";
          p305.strokeText(this.text, this.x - p306, this.y - p307);
          p305.fillText(this.text, this.x - p306, this.y - p307);
          p305.globalAlpha = 1;
        };
      }
    }
    ;
    class C5 {
      constructor() {
        this.texts = [];
        this.stack = [];
        this.update = function (p308, p309, p310, p311) {
          p309.textBaseline = "middle";
          p309.textAlign = "center";
          for (let v364 = 0; v364 < this.texts.length; ++v364) {
            if (this.texts[v364].life) {
              this.texts[v364].update(p308);
              this.texts[v364].render(p309, p310, p311);
            }
          }
        };
        this.showText = function (p312, p313, p314, p315, p316, p317, p318) {
          let v365;
          for (let v366 = 0; v366 < this.texts.length; ++v366) {
            if (!this.texts[v366].life) {
              v365 = this.texts[v366];
              break;
            }
          }
          if (!v365) {
            v365 = new C4();
            this.texts.push(v365);
          }
          v365.init(p312, p313, p314, p315, p316, p317, p318);
        };
      }
    }
    class C6 {
      constructor(p319) {
        this.sid = p319;
        this.init = function (p320, p321, p322, p323, p324, p325, p326) {
          p325 = p325 || {};
          this.sentTo = {};
          this.gridLocations = [];
          this.active = true;
          this.alive = true;
          this.doUpdate = p325.doUpdate;
          this.x = p320;
          this.y = p321;
          if (vP11.anotherVisual) {
            this.dir = p322 + Math.PI;
          } else {
            this.dir = p322;
          }
          this.lastDir = p322;
          this.xWiggle = 0;
          this.yWiggle = 0;
          this.visScale = p323;
          this.scale = p323;
          this.type = p324;
          this.id = p325.id;
          this.owner = p326;
          this.name = p325.name;
          this.isItem = this.id != undefined;
          this.group = p325.group;
          this.maxHealth = p325.health;
          this.health = this.maxHealth;
          this.layer = 2;
          if (this.group != undefined) {
            this.layer = this.group.layer;
          } else if (this.type == 0) {
            this.layer = 3;
          } else if (this.type == 2) {
            this.layer = 0;
          } else if (this.type == 4) {
            this.layer = -1;
          }
          this.colDiv = p325.colDiv || 1;
          this.blocker = p325.blocker;
          this.ignoreCollision = p325.ignoreCollision;
          this.dontGather = p325.dontGather;
          this.hideFromEnemy = p325.hideFromEnemy;
          this.friction = p325.friction;
          this.projDmg = p325.projDmg;
          this.dmg = p325.dmg;
          this.pDmg = p325.pDmg;
          this.pps = p325.pps;
          this.zIndex = p325.zIndex || 0;
          this.turnSpeed = p325.turnSpeed;
          this.req = p325.req;
          this.trap = p325.trap;
          this.healCol = p325.healCol;
          this.teleport = p325.teleport;
          this.boostSpeed = p325.boostSpeed;
          this.projectile = p325.projectile;
          this.shootRange = p325.shootRange;
          this.shootRate = p325.shootRate;
          this.shootCount = this.shootRate;
          this.spawnPoint = p325.spawnPoint;
          this.onNear = 0;
          this.breakObj = false;
          this.alpha = p325.alpha || 1;
          this.maxAlpha = p325.alpha || 1;
          this.damaged = 0;
          this.breakTime = 0;
        };
        this.startFadeOut = function () {
          this.fadingOut = true;
        };
        this.changeHealth = function (p327, p328) {
          this.health += p327;
          return this.health <= 0;
        };
        this.getScale = function (p329, p330) {
          p329 = p329 || 1;
          return this.scale * (this.isItem || this.type == 2 || this.type == 3 || this.type == 4 ? 1 : p329 * 0.6) * (p330 ? 1 : this.colDiv);
        };
        this.visibleToPlayer = function (p331) {
          return !this.hideFromEnemy || this.owner && (this.owner == p331 || this.owner.team && p331.team == this.owner.team);
        };
        this.update = function (p332) {
          if (this.active) {
            if (this.xWiggle) {
              this.xWiggle *= Math.pow(0.99, p332);
            }
            if (this.yWiggle) {
              this.yWiggle *= Math.pow(0.99, p332);
            }
            if (this.turnSpeed && this.dmg) {
              this.dir += this.turnSpeed * p332;
            }
            if (this.hideFromEnemy && this.isTeamObject(v286)) {
              for (let v367 of v289) {
                const v368 = {
                  x: this.x,
                  y: this.y
                };
                let v369 = v679.getDist(v368, v367, 0, 2);
                if (v369 < this.scale + v367.scale - 35) {
                  this.hideFromEnemy = false;
                }
              }
            }
          } else if (this.fadingOut) {
            if (this.alpha > 0) {
              this.alpha -= p332;
              if (this.alpha <= 0) {
                this.alpha = 0;
                this.alive = false;
                this.fadingOut = false;
              }
            }
          } else if (this.alive) {
            this.alpha -= p332 / (200 / this.maxAlpha);
            this.visScale += p332 / (this.scale / 2.5);
            if (this.alpha <= 0) {
              this.alpha = 0;
              this.alive = false;
            }
          }
        };
        this.isTeamObject = function (p333) {
          if (this.owner == null) {
            return true;
          } else {
            return this.owner && p333.sid == this.owner.sid || p333.findAllianceBySid(this.owner.sid);
          }
        };
      }
    }
    class C7 {
      constructor() {
        const v370 = {
          id: 5,
          name: "trap",
          place: true,
          limit: 6,
          layer: -1
        };
        const v371 = {
          id: 6,
          name: "booster",
          place: true,
          limit: 12,
          layer: -1
        };
        const v372 = {
          id: 9,
          name: "buff",
          place: true,
          limit: 4,
          layer: -1
        };
        const v373 = {
          id: 10,
          name: "spawn",
          place: true,
          limit: 1,
          layer: -1
        };
        const v374 = {
          id: 12,
          name: "blocker",
          place: true,
          limit: 3,
          layer: -1
        };
        const v375 = {
          id: 13,
          name: "teleporter",
          place: true,
          limit: 2,
          layer: -1
        };
        this.groups = [{
          id: 0,
          name: "food",
          layer: 0
        }, {
          id: 1,
          name: "walls",
          place: true,
          limit: 30,
          layer: 0
        }, {
          id: 2,
          name: "spikes",
          place: true,
          limit: 15,
          layer: 0
        }, {
          id: 3,
          name: "mill",
          place: true,
          limit: 7,
          layer: 1
        }, {
          id: 4,
          name: "mine",
          place: true,
          limit: 1,
          layer: 0
        }, v370, v371, {
          id: 7,
          name: "turret",
          place: true,
          limit: 2,
          layer: 1
        }, {
          id: 8,
          name: "watchtower",
          place: true,
          limit: 12,
          layer: 1
        }, v372, v373, {
          id: 11,
          name: "sapling",
          place: true,
          limit: 2,
          layer: 0
        }, v374, v375];
        this.projectiles = [{
          indx: 0,
          layer: 0,
          src: "arrow_1",
          dmg: 25,
          speed: 1.6,
          scale: 103,
          range: 1000
        }, {
          indx: 1,
          layer: 1,
          dmg: 25,
          scale: 20
        }, {
          indx: 0,
          layer: 0,
          src: "arrow_1",
          dmg: 35,
          speed: 2.5,
          scale: 103,
          range: 1200
        }, {
          indx: 0,
          layer: 0,
          src: "arrow_1",
          dmg: 30,
          speed: 2,
          scale: 103,
          range: 1200
        }, {
          indx: 1,
          layer: 1,
          dmg: 16,
          scale: 20
        }, {
          indx: 0,
          layer: 0,
          src: "bullet_1",
          dmg: 50,
          speed: 3.6,
          scale: 160,
          range: 1400
        }];
        const v376 = {
          id: 0,
          type: 0,
          name: "tool hammer",
          desc: "tool for gathering all resources",
          src: "hammer_1",
          length: 140,
          width: 140,
          xOff: -3,
          yOff: 18,
          dmg: 25,
          range: 65,
          gather: 1,
          speed: 300
        };
        const v377 = {
          id: 2,
          type: 0,
          age: 8,
          pre: 1,
          name: "great axe",
          desc: "deal more damage and gather more resources",
          src: "great_axe_1",
          length: 140,
          width: 140,
          xOff: -8,
          yOff: 25,
          dmg: 35,
          spdMult: 1,
          range: 75,
          gather: 4,
          speed: 400
        };
        const v378 = {
          id: 3,
          type: 0,
          age: 2,
          name: "short sword",
          desc: "increased attack power but slower move speed",
          src: "sword_1",
          iPad: 1.3,
          length: 130,
          width: 210,
          xOff: -8,
          yOff: 46,
          dmg: 35,
          spdMult: 0.85,
          range: 110,
          gather: 1,
          speed: 300
        };
        const v379 = {
          id: 4,
          type: 0,
          age: 8,
          pre: 3,
          name: "katana",
          desc: "greater range and damage",
          src: "samurai_1",
          iPad: 1.3,
          length: 130,
          width: 210,
          xOff: -8,
          yOff: 59,
          dmg: 40,
          spdMult: 0.8,
          range: 118,
          gather: 1,
          speed: 300
        };
        const v380 = {
          id: 5,
          type: 0,
          age: 2,
          name: "polearm",
          desc: "long range melee weapon",
          src: "spear_1",
          iPad: 1.3,
          length: 130,
          width: 210,
          xOff: -8,
          yOff: 53,
          dmg: 45,
          knock: 0.2,
          spdMult: 0.82,
          range: 142,
          gather: 1,
          speed: 700
        };
        const v381 = {
          id: 6,
          type: 0,
          age: 2,
          name: "bat",
          desc: "fast long range melee weapon",
          src: "bat_1",
          iPad: 1.3,
          length: 110,
          width: 180,
          xOff: -8,
          yOff: 53,
          dmg: 20,
          knock: 0.7,
          range: 110,
          gather: 1,
          speed: 300
        };
        const v382 = {
          id: 9,
          type: 1,
          age: 6,
          name: "hunting bow",
          desc: "bow used for ranged combat and hunting",
          src: "bow_1",
          req: ["wood", 4],
          length: 120,
          width: 120,
          xOff: -6,
          yOff: 0,
          Pdmg: 25,
          projectile: 0,
          spdMult: 0.75,
          speed: 600
        };
        const v383 = {
          id: 10,
          type: 1,
          age: 6,
          name: "great hammer",
          desc: "hammer used for destroying structures",
          src: "great_hammer_1",
          length: 140,
          width: 140,
          xOff: -9,
          yOff: 25,
          dmg: 10,
          Pdmg: 10,
          spdMult: 0.88,
          range: 75,
          sDmg: 7.5,
          gather: 1,
          speed: 400
        };
        const v384 = {
          id: 12,
          type: 1,
          age: 8,
          pre: 9,
          name: "crossbow",
          desc: "deals more damage and has greater range",
          src: "crossbow_1",
          req: ["wood", 5],
          aboveHand: true,
          armS: 0.75,
          length: 120,
          width: 120,
          xOff: -4,
          yOff: 0,
          Pdmg: 35,
          projectile: 2,
          spdMult: 0.7,
          speed: 700
        };
        const v385 = {
          id: 13,
          type: 1,
          age: 9,
          pre: 12,
          name: "repeater crossbow",
          desc: "high firerate crossbow with reduced damage",
          src: "crossbow_2",
          req: ["wood", 10],
          aboveHand: true,
          armS: 0.75,
          length: 120,
          width: 120,
          xOff: -4,
          yOff: 0,
          Pdmg: 30,
          projectile: 3,
          spdMult: 0.7,
          speed: 230
        };
        const v386 = {
          id: 14,
          type: 1,
          age: 6,
          name: "mc grabby",
          desc: "steals resources from enemies",
          src: "grab_1",
          length: 130,
          width: 210,
          xOff: -8,
          yOff: 53,
          dmg: 0,
          Pdmg: 0,
          steal: 250,
          knock: 0.2,
          spdMult: 1.05,
          range: 125,
          gather: 0,
          speed: 700
        };
        this.weapons = [v376, {
          id: 1,
          type: 0,
          age: 2,
          name: "hand axe",
          desc: "gathers resources at a higher rate",
          src: "axe_1",
          length: 140,
          width: 140,
          xOff: 3,
          yOff: 24,
          dmg: 30,
          spdMult: 1,
          range: 70,
          gather: 2,
          speed: 400
        }, v377, v378, v379, v380, v381, {
          id: 7,
          type: 0,
          age: 2,
          name: "daggers",
          desc: "really fast short range weapon",
          src: "dagger_1",
          iPad: 0.8,
          length: 110,
          width: 110,
          xOff: 18,
          yOff: 0,
          dmg: 20,
          knock: 0.1,
          range: 65,
          gather: 1,
          hitSlow: 0.1,
          spdMult: 1.13,
          speed: 100
        }, {
          id: 8,
          type: 0,
          age: 2,
          name: "stick",
          desc: "great for gathering but very weak",
          src: "stick_1",
          length: 140,
          width: 140,
          xOff: 3,
          yOff: 24,
          dmg: 1,
          spdMult: 1,
          range: 70,
          gather: 7,
          speed: 400
        }, v382, v383, {
          id: 11,
          type: 1,
          age: 6,
          name: "wooden shield",
          desc: "blocks projectiles and reduces melee damage",
          src: "shield_1",
          length: 120,
          width: 120,
          shield: 0.2,
          xOff: 6,
          yOff: 0,
          Pdmg: 0,
          spdMult: 0.7
        }, v384, v385, v386, {
          id: 15,
          type: 1,
          age: 9,
          pre: 12,
          name: "musket",
          desc: "slow firerate but high damage and range",
          src: "musket_1",
          req: ["stone", 10],
          aboveHand: true,
          rec: 0.35,
          armS: 0.6,
          hndS: 0.3,
          hndD: 1.6,
          length: 205,
          width: 205,
          xOff: 25,
          yOff: 0,
          Pdmg: 50,
          projectile: 5,
          hideProjectile: true,
          spdMult: 0.6,
          speed: 1500
        }];
        this.list = [{
          group: this.groups[0],
          name: "apple",
          desc: "restores 20 health when consumed",
          req: ["food", 10],
          consume: function (p334) {
            return p334.changeHealth(20, p334);
          },
          scale: 22,
          holdOffset: 15,
          healing: 20,
          itemID: 0,
          itemAID: 16
        }, {
          age: 3,
          group: this.groups[0],
          name: "cookie",
          desc: "restores 40 health when consumed",
          req: ["food", 15],
          consume: function (p335) {
            return p335.changeHealth(40, p335);
          },
          scale: 27,
          holdOffset: 15,
          healing: 40,
          itemID: 1,
          itemAID: 17
        }, {
          age: 7,
          group: this.groups[0],
          name: "cheese",
          desc: "restores 30 health and another 50 over 5 seconds",
          req: ["food", 25],
          consume: function (p336) {
            if (p336.changeHealth(30, p336) || p336.health < 100) {
              p336.dmgOverTime.dmg = -10;
              p336.dmgOverTime.doer = p336;
              p336.dmgOverTime.time = 5;
              return true;
            }
            return false;
          },
          scale: 27,
          holdOffset: 15,
          healing: 30,
          itemID: 2,
          itemAID: 18
        }, {
          group: this.groups[1],
          name: "wood wall",
          desc: "provides protection for your village",
          req: ["wood", 10],
          projDmg: true,
          health: 380,
          scale: 50,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 3,
          itemAID: 19
        }, {
          age: 3,
          group: this.groups[1],
          name: "stone wall",
          desc: "provides improved protection for your village",
          req: ["stone", 25],
          health: 900,
          scale: 50,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 4,
          itemAID: 20
        }, {
          age: 7,
          group: this.groups[1],
          name: "castle wall",
          desc: "provides powerful protection for your village",
          req: ["stone", 35],
          health: 1500,
          scale: 52,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 5,
          itemAID: 21
        }, {
          group: this.groups[2],
          name: "spikes",
          desc: "damages enemies when they touch them",
          req: ["wood", 20, "stone", 5],
          health: 400,
          dmg: 20,
          scale: 49,
          spritePadding: -23,
          holdOffset: 8,
          placeOffset: -5,
          itemID: 6,
          itemAID: 22
        }, {
          age: 5,
          group: this.groups[2],
          name: "greater spikes",
          desc: "damages enemies when they touch them",
          req: ["wood", 30, "stone", 10],
          health: 500,
          dmg: 35,
          scale: 52,
          spritePadding: -23,
          holdOffset: 8,
          placeOffset: -5,
          itemID: 7,
          itemAID: 23
        }, {
          age: 9,
          group: this.groups[2],
          name: "poison spikes",
          desc: "poisons enemies when they touch them",
          req: ["wood", 35, "stone", 15],
          health: 600,
          dmg: 30,
          pDmg: 5,
          scale: 52,
          spritePadding: -23,
          holdOffset: 8,
          placeOffset: -5,
          itemID: 8,
          itemAID: 24
        }, {
          age: 9,
          group: this.groups[2],
          name: "spinning spikes",
          desc: "damages enemies when they touch them",
          req: ["wood", 30, "stone", 20],
          health: 500,
          dmg: 45,
          turnSpeed: 0.003,
          scale: 52,
          spritePadding: -23,
          holdOffset: 8,
          placeOffset: -5,
          itemID: 9,
          itemAID: 25
        }, {
          group: this.groups[3],
          name: "windmill",
          desc: "generates gold over time",
          req: ["wood", 50, "stone", 10],
          health: 400,
          pps: 1,
          turnSpeed: 0.0016,
          spritePadding: 25,
          iconLineMult: 12,
          scale: 45,
          holdOffset: 20,
          placeOffset: 5,
          itemID: 10,
          itemAID: 26
        }, {
          age: 5,
          group: this.groups[3],
          name: "faster windmill",
          desc: "generates more gold over time",
          req: ["wood", 60, "stone", 20],
          health: 500,
          pps: 1.5,
          turnSpeed: 0.0025,
          spritePadding: 25,
          iconLineMult: 12,
          scale: 47,
          holdOffset: 20,
          placeOffset: 5,
          itemID: 11,
          itemAID: 27
        }, {
          age: 8,
          group: this.groups[3],
          name: "power mill",
          desc: "generates more gold over time",
          req: ["wood", 100, "stone", 50],
          health: 800,
          pps: 2,
          turnSpeed: 0.005,
          spritePadding: 25,
          iconLineMult: 12,
          scale: 47,
          holdOffset: 20,
          placeOffset: 5,
          itemID: 12,
          itemAID: 28
        }, {
          age: 5,
          group: this.groups[4],
          type: 2,
          name: "mine",
          desc: "allows you to mine stone",
          req: ["wood", 20, "stone", 100],
          iconLineMult: 12,
          scale: 65,
          holdOffset: 20,
          placeOffset: 0,
          itemID: 13,
          itemAID: 29
        }, {
          age: 5,
          group: this.groups[11],
          type: 0,
          name: "sapling",
          desc: "allows you to farm wood",
          req: ["wood", 150],
          iconLineMult: 12,
          colDiv: 0.5,
          scale: 110,
          holdOffset: 50,
          placeOffset: -15,
          itemID: 14,
          itemAID: 30
        }, {
          age: 4,
          group: this.groups[5],
          name: "pit trap",
          desc: "pit that traps enemies if they walk over it",
          req: ["wood", 30, "stone", 30],
          trap: true,
          ignoreCollision: true,
          hideFromEnemy: true,
          health: 500,
          colDiv: 0.2,
          scale: 50,
          holdOffset: 20,
          placeOffset: -5,
          alpha: 0.6,
          itemID: 15,
          itemAID: 31
        }, {
          age: 4,
          group: this.groups[6],
          name: "boost pad",
          desc: "provides boost when stepped on",
          req: ["stone", 20, "wood", 5],
          ignoreCollision: true,
          boostSpeed: 1.5,
          health: 150,
          colDiv: 0.7,
          scale: 45,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 16,
          itemAID: 32
        }, {
          age: 7,
          group: this.groups[7],
          doUpdate: true,
          name: "turret",
          desc: "defensive structure that shoots at enemies",
          req: ["wood", 200, "stone", 150],
          health: 800,
          projectile: 1,
          shootRange: 700,
          shootRate: 2200,
          scale: 43,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 17,
          itemAID: 33
        }, {
          age: 7,
          group: this.groups[8],
          name: "platform",
          desc: "platform to shoot over walls and cross over water",
          req: ["wood", 20],
          ignoreCollision: true,
          zIndex: 1,
          health: 300,
          scale: 43,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 18,
          itemAID: 34
        }, {
          age: 7,
          group: this.groups[9],
          name: "healing pad",
          desc: "standing on it will slowly heal you",
          req: ["wood", 30, "food", 10],
          ignoreCollision: true,
          healCol: 15,
          health: 400,
          colDiv: 0.7,
          scale: 45,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 19,
          itemAID: 35
        }, {
          age: 9,
          group: this.groups[10],
          name: "spawn pad",
          desc: "you will spawn here when you die but it will dissapear",
          req: ["wood", 100, "stone", 100],
          health: 400,
          ignoreCollision: true,
          spawnPoint: true,
          scale: 45,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 20,
          itemAID: 36
        }, {
          age: 7,
          group: this.groups[12],
          name: "blocker",
          desc: "blocks building in radius",
          req: ["wood", 30, "stone", 25],
          ignoreCollision: true,
          blocker: 300,
          health: 400,
          colDiv: 0.7,
          scale: 45,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 21,
          itemAID: 37
        }, {
          age: 7,
          group: this.groups[13],
          name: "teleporter",
          desc: "teleports you to a random point on the map",
          req: ["wood", 60, "stone", 60],
          ignoreCollision: true,
          teleport: true,
          health: 200,
          colDiv: 0.7,
          scale: 45,
          holdOffset: 20,
          placeOffset: -5,
          itemID: 22,
          itemAID: 38
        }];
        this.checkItem = {
          index: function (p337, p338) {
            if ([0, 1, 2].includes(p337)) {
              return 0;
            } else if ([3, 4, 5].includes(p337)) {
              return 1;
            } else if ([6, 7, 8, 9].includes(p337)) {
              return 2;
            } else if ([10, 11, 12].includes(p337)) {
              return 3;
            } else if ([13, 14].includes(p337)) {
              return 5;
            } else if ([15, 16].includes(p337)) {
              return 4;
            } else if ([17, 18, 19, 21, 22].includes(p337)) {
              if ([13, 14].includes(p338)) {
                return 6;
              } else {
                return 5;
              }
            } else if (p337 == 20) {
              if ([13, 14].includes(p338)) {
                return 7;
              } else {
                return 6;
              }
            } else {
              return undefined;
            }
          }
        };
        for (let v387 = 0; v387 < this.list.length; ++v387) {
          this.list[v387].id = v387;
          if (this.list[v387].pre) {
            this.list[v387].pre = v387 - this.list[v387].pre;
          }
        }
        if (typeof window !== "undefined") {
          function f37(p339) {
            for (let v388 = p339.length - 1; v388 > 0; v388--) {
              const v389 = Math.floor(Math.random() * (v388 + 1));
              [p339[v388], p339[v389]] = [p339[v389], p339[v388]];
            }
            return p339;
          }
        }
      }
    }
    class C8 {
      constructor(p340, p341, p342, p343, p344, p345) {
        let v390 = Math.floor;
        let v391 = Math.abs;
        let v392 = Math.cos;
        let v393 = Math.sin;
        let v394 = Math.pow;
        let v395 = Math.sqrt;
        this.ignoreAdd = false;
        this.hitObj = [];
        this.disableObj = function (p346) {
          p346.active = false;
          p346.breakTime = Date.now();
          p346.startFadeOut();
          setTimeout(() => {
            p341.filter(p347 => p347 != p346);
          }, 5000);
        };
        let v396;
        this.add = function (p348, p349, p350, p351, p352, p353, p354, p355, p356) {
          v396 = f31(p348);
          if (!v396) {
            v396 = p341.find(p357 => !p357.active);
            if (!v396) {
              v396 = new p340(p348);
              p341.push(v396);
            }
          }
          if (p355) {
            v396.sid = p348;
          }
          v396.init(p349, p350, p351, p352, p353, p354, p356);
        };
        this.disableBySid = function (p358) {
          let vF31 = f31(p358);
          if (vF31) {
            this.disableObj(vF31);
          }
        };
        this.removeAllItems = function (p359, p360) {
          p341.filter(p361 => p361.active && p361.owner && p361.owner.sid == p359).forEach(p362 => this.disableObj(p362));
        };
        this.checkItemLocation = function (p363, p364, p365, p366, p367, p368) {
          let v397 = p341.filter(p369 => p369.active && p342.getDist(v286, p369, 2, 0) < 300);
          let v398 = v397.find(p370 => p370.active && p342.getDistance(p363, p364, p370.x, p370.y) < p365 + (p370.blocker ? p370.blocker : p370.getScale(p366, p370.isItem)));
          if (v398) {
            return false;
          }
          if (!p368 && p367 != 18 && p364 >= p343.mapScale / 2 - p343.riverWidth / 2 && p364 <= p343.mapScale / 2 + p343.riverWidth / 2) {
            return false;
          }
          return true;
        };
        this.preplaceCheck = function (p371, p372, p373, p374) {
          let v399 = v286.x2 + p374 * Math.cos(p372);
          let v400 = v286.y2 + p374 * Math.sin(p372);
          let v401 = p341.filter(p375 => p375.active && p342.getDist(v286, p375, 2, 0) < 300);
          const v402 = {
            x: v399,
            y: v400
          };
          let v403 = v401.find(p376 => p376.active && p376.sid !== p373.sid && p342.getDist(v402, p376, 0, 0) < p371.scale + (p376.blocker ? p376.blocker : p376.getScale(0.6, p376.isItem)));
          if (v403) {
            return false;
          }
          if (p371.id != 18 && v400 >= p343.mapScale / 2 - p343.riverWidth / 2 && v400 <= p343.mapScale / 2 + p343.riverWidth / 2) {
            return false;
          }
          return true;
        };
        this.canBeBroken = function (p377) {
          if (!v317 || !p377 || !v289.length) {
            return;
          }
          let v404 = v286.weapons[v688.notFast(p377) ? 1 : 0];
          let v405 = v286[(v404 < 9 ? "prima" : "seconda") + "ryVariant"];
          let v406 = v405 != undefined ? p343.weaponVariants[v405].val : 1;
          let v407 = v291.secondaryIndex != undefined && v291.primaryIndex != undefined ? v291.secondaryIndex == 10 && (p377.health > v680.weapons[v291.weapons[0]].dmg || v291.primaryIndex == 5) ? v291.secondaryIndex : v291.primaryIndex : 10;
          let v408 = v291.secondaryIndex != undefined && v291.primaryIndex != undefined ? v291[(v407 < 9 ? "prima" : "seconda") + "ryVariant"] : 3;
          let v409 = p343.weaponVariants[v408].val;
          let v410 = v680.weapons[v404].dmg;
          let v411 = v680.weapons[v407].dmg;
          let v412 = 3.3;
          let v413 = 0;
          if (v291.reloads[v407] == 0 && this.canHit(v291, p377, v407, 50)) {
            v413 += v411 * v412 * v409 * (v680.weapons[v404].sDmg || 1);
          }
          if (v688.inTrap && (p377 == v688.info[1] || p377 == v688.info[0]) || v274.active && p377 == v274.info || v711.right && v286.reloads[v404] == 0) {
            v413 += v410 * v412 * v406 * (v680.weapons[v404].sDmg || 1);
          }
          if (p377.health <= v413) {
            return true;
          }
          return false;
        };
        this.hitsToBreak = function (p378, p379) {
          if (!v317 || !p378 || !v289.length || !p379) {
            return;
          }
          let v414 = v688.notFast(p378, p379) ? p379.weapons[1] : p379.weapons[0];
          let v415 = p379[(v414 < 9 ? "prima" : "seconda") + "ryVariant"];
          let v416 = v415 != undefined ? p343.weaponVariants[v415].val : 1.18;
          let v417 = v680.weapons[v414].dmg;
          let v418 = 3.3;
          let v419 = v417 * v418 * v416 * (v680.weapons[v414].sDmg || 1);
          return Math.ceil(p378.health / v419);
        };
        this.canHit = function (p380, p381, p382, p383 = 0) {
          return p342.getDist(p380, p381, 2, 0) <= v680.weapons[p382].range + p380.scale + p381.scale / 3.25 + p383;
        };
      }
    }
    class C9 {
      constructor(p384, p385, p386, p387, p388, p389, p390) {
        this.init = function (p391, p392, p393, p394, p395, p396, p397, p398, p399) {
          this.active = true;
          this.tickActive = true;
          this.indx = p391;
          this.x = p392;
          this.y = p393;
          this.x2 = p392;
          this.y2 = p393;
          this.dir = p394;
          this.skipMov = true;
          this.speed = p395;
          this.dmg = p396;
          this.scale = p398;
          this.range = p397;
          this.r2 = p397;
          this.owner = p399;
        };
        this.update = function (p400) {
          if (this.active) {
            let v420 = this.speed * p400;
            if (!this.skipMov) {
              this.x += v420 * Math.cos(this.dir);
              this.y += v420 * Math.sin(this.dir);
              this.range -= v420;
              if (this.range <= 0) {
                this.x += this.range * Math.cos(this.dir);
                this.y += this.range * Math.sin(this.dir);
                v420 = 1;
                this.range = 0;
                this.active = false;
              }
            } else {
              this.skipMov = false;
            }
          }
        };
        this.tickUpdate = function (p401) {
          if (this.tickActive) {
            let v421 = this.speed * p401;
            if (!this.skipMov) {
              this.x2 += v421 * Math.cos(this.dir);
              this.y2 += v421 * Math.sin(this.dir);
              this.r2 -= v421;
              if (this.r2 <= 0) {
                this.x2 += this.r2 * Math.cos(this.dir);
                this.y2 += this.r2 * Math.sin(this.dir);
                v421 = 1;
                this.r2 = 0;
                this.tickActive = false;
              }
            } else {
              this.skipMov = false;
            }
          }
        };
      }
    }
    ;
    class C10 {
      constructor() {
        const v422 = {
          id: 7,
          name: "Bull Helmet",
          price: 6000,
          scale: 120,
          desc: "increases damage done but drains health",
          healthRegen: -5,
          dmgMultO: 1.5,
          spdMult: 0.96
        };
        this.hats = [{
          id: 45,
          name: "Shame!",
          dontSell: true,
          price: 0,
          scale: 120,
          desc: "hacks are for winners"
        }, {
          id: 51,
          name: "Moo Cap",
          price: 0,
          scale: 120,
          desc: "coolest mooer around"
        }, {
          id: 50,
          name: "Apple Cap",
          price: 0,
          scale: 120,
          desc: "apple farms remembers"
        }, {
          id: 28,
          name: "Moo Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 29,
          name: "Pig Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 30,
          name: "Fluff Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 36,
          name: "Pandou Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 37,
          name: "Bear Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 38,
          name: "Monkey Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 44,
          name: "Polar Head",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 35,
          name: "Fez Hat",
          price: 0,
          scale: 120,
          desc: "no effect"
        }, {
          id: 42,
          name: "Enigma Hat",
          price: 0,
          scale: 120,
          desc: "join the enigma army"
        }, {
          id: 43,
          name: "Blitz Hat",
          price: 0,
          scale: 120,
          desc: "hey everybody i'm blitz"
        }, {
          id: 49,
          name: "Bob XIII Hat",
          price: 0,
          scale: 120,
          desc: "like and subscribe"
        }, {
          id: 57,
          name: "Pumpkin",
          price: 50,
          scale: 120,
          desc: "Spooooky"
        }, {
          id: 8,
          name: "Bummle Hat",
          price: 100,
          scale: 120,
          desc: "no effect"
        }, {
          id: 2,
          name: "Straw Hat",
          price: 500,
          scale: 120,
          desc: "no effect"
        }, {
          id: 15,
          name: "Winter Cap",
          price: 600,
          scale: 120,
          desc: "allows you to move at normal speed in snow",
          coldM: 1
        }, {
          id: 5,
          name: "Cowboy Hat",
          price: 1000,
          scale: 120,
          desc: "no effect"
        }, {
          id: 4,
          name: "Ranger Hat",
          price: 2000,
          scale: 120,
          desc: "no effect"
        }, {
          id: 18,
          name: "Explorer Hat",
          price: 2000,
          scale: 120,
          desc: "no effect"
        }, {
          id: 31,
          name: "Flipper Hat",
          price: 2500,
          scale: 120,
          desc: "have more control while in water",
          watrImm: true
        }, {
          id: 1,
          name: "Marksman Cap",
          price: 3000,
          scale: 120,
          desc: "increases arrow speed and range",
          aMlt: 1.3
        }, {
          id: 10,
          name: "Bush Gear",
          price: 3000,
          scale: 160,
          desc: "allows you to disguise yourself as a bush"
        }, {
          id: 48,
          name: "Halo",
          price: 3000,
          scale: 120,
          desc: "no effect"
        }, {
          id: 6,
          name: "Soldier Helmet",
          price: 4000,
          scale: 120,
          desc: "reduces damage taken but slows movement",
          spdMult: 0.94,
          dmgMult: 0.75
        }, {
          id: 23,
          name: "Anti Venom Gear",
          price: 4000,
          scale: 120,
          desc: "makes you immune to poison",
          poisonRes: 1
        }, {
          id: 13,
          name: "Medic Gear",
          price: 5000,
          scale: 110,
          desc: "slowly regenerates health over time",
          healthRegen: 3
        }, {
          id: 9,
          name: "Miners Helmet",
          price: 5000,
          scale: 120,
          desc: "earn 1 extra gold per resource",
          extraGold: 1
        }, {
          id: 32,
          name: "Musketeer Hat",
          price: 5000,
          scale: 120,
          desc: "reduces cost of projectiles",
          projCost: 0.5
        }, v422, {
          id: 22,
          name: "Emp Helmet",
          price: 6000,
          scale: 120,
          desc: "turrets won't attack but you move slower",
          antiTurret: 1,
          spdMult: 0.7
        }, {
          id: 12,
          name: "Booster Hat",
          price: 6000,
          scale: 120,
          desc: "increases your movement speed",
          spdMult: 1.16
        }, {
          id: 26,
          name: "Barbarian Armor",
          price: 8000,
          scale: 120,
          desc: "knocks back enemies that attack you",
          dmgK: 0.6
        }, {
          id: 21,
          name: "Plague Mask",
          price: 10000,
          scale: 120,
          desc: "melee attacks deal poison damage",
          poisonDmg: 5,
          poisonTime: 6
        }, {
          id: 46,
          name: "Bull Mask",
          price: 10000,
          scale: 120,
          desc: "bulls won't target you unless you attack them",
          bullRepel: 1
        }, {
          id: 14,
          name: "Windmill Hat",
          topSprite: true,
          price: 10000,
          scale: 120,
          desc: "generates points while worn",
          pps: 1.5
        }, {
          id: 11,
          name: "Spike Gear",
          topSprite: true,
          price: 10000,
          scale: 120,
          desc: "deal damage to players that damage you",
          dmg: 0.45
        }, {
          id: 53,
          name: "Turret Gear",
          topSprite: true,
          price: 10000,
          scale: 120,
          desc: "you become a walking turret",
          turret: {
            proj: 1,
            range: 700,
            rate: 2500
          },
          spdMult: 0.7
        }, {
          id: 20,
          name: "Samurai Armor",
          price: 12000,
          scale: 120,
          desc: "increased attack speed and fire rate",
          atkSpd: 0.78
        }, {
          id: 58,
          name: "Dark Knight",
          price: 12000,
          scale: 120,
          desc: "restores health when you deal damage",
          healD: 0.4
        }, {
          id: 27,
          name: "Scavenger Gear",
          price: 15000,
          scale: 120,
          desc: "earn double points for each kill",
          kScrM: 2
        }, {
          id: 40,
          name: "Tank Gear",
          price: 15000,
          scale: 120,
          desc: "increased damage to buildings but slower movement",
          spdMult: 0.3,
          bDmg: 3.3
        }, {
          id: 52,
          name: "Thief Gear",
          price: 15000,
          scale: 120,
          desc: "steal half of a players gold when you kill them",
          goldSteal: 0.5
        }, {
          id: 55,
          name: "Bloodthirster",
          price: 20000,
          scale: 120,
          desc: "Restore Health when dealing damage. And increased damage",
          healD: 0.25,
          dmgMultO: 1.2
        }, {
          id: 56,
          name: "Assassin Gear",
          price: 20000,
          scale: 120,
          desc: "Go invisible when not moving. Can't eat. Increased speed",
          noEat: true,
          spdMult: 1.1,
          invisTimer: 1000
        }];
        this.accessories = [{
          id: 12,
          name: "Snowball",
          price: 1000,
          scale: 105,
          xOff: 18,
          desc: "no effect"
        }, {
          id: 9,
          name: "Tree Cape",
          price: 1000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 10,
          name: "Stone Cape",
          price: 1000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 3,
          name: "Cookie Cape",
          price: 1500,
          scale: 90,
          desc: "no effect"
        }, {
          id: 8,
          name: "Cow Cape",
          price: 2000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 11,
          name: "Monkey Tail",
          price: 2000,
          scale: 97,
          xOff: 25,
          desc: "Super speed but reduced damage",
          spdMult: 1.35,
          dmgMultO: 0.2
        }, {
          id: 17,
          name: "Apple Basket",
          price: 3000,
          scale: 80,
          xOff: 12,
          desc: "slowly regenerates health over time",
          healthRegen: 1
        }, {
          id: 6,
          name: "Winter Cape",
          price: 3000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 4,
          name: "Skull Cape",
          price: 4000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 5,
          name: "Dash Cape",
          price: 5000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 2,
          name: "Dragon Cape",
          price: 6000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 1,
          name: "Super Cape",
          price: 8000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 7,
          name: "Troll Cape",
          price: 8000,
          scale: 90,
          desc: "no effect"
        }, {
          id: 14,
          name: "Thorns",
          price: 10000,
          scale: 115,
          xOff: 20,
          desc: "no effect"
        }, {
          id: 15,
          name: "Blockades",
          price: 10000,
          scale: 95,
          xOff: 15,
          desc: "no effect"
        }, {
          id: 20,
          name: "Devils Tail",
          price: 10000,
          scale: 95,
          xOff: 20,
          desc: "no effect"
        }, {
          id: 16,
          name: "Sawblade",
          price: 12000,
          scale: 90,
          spin: true,
          xOff: 0,
          desc: "deal damage to players that damage you",
          dmg: 0.15
        }, {
          id: 13,
          name: "Angel Wings",
          price: 15000,
          scale: 138,
          xOff: 22,
          desc: "slowly regenerates health over time",
          healthRegen: 3
        }, {
          id: 19,
          name: "Shadow Wings",
          price: 15000,
          scale: 138,
          xOff: 22,
          desc: "increased movement speed",
          spdMult: 1.1
        }, {
          id: 18,
          name: "Blood Wings",
          price: 20000,
          scale: 178,
          xOff: 26,
          desc: "restores health when you deal damage",
          healD: 0.2
        }, {
          id: 21,
          name: "Corrupt X Wings",
          price: 20000,
          scale: 178,
          xOff: 26,
          desc: "deal damage to players that damage you",
          dmg: 0.25
        }];
      }
    }
    ;
    class C11 {
      constructor(p402, p403, p404, p405, p406, p407, p408, p409, p410) {
        this.addProjectile = function (p411, p412, p413, p414, p415, p416, p417, p418, p419, p420) {
          let v423 = p407.projectiles[p416];
          let v424;
          for (let v425 = 0; v425 < p403.length; ++v425) {
            if (!p403[v425].active) {
              v424 = p403[v425];
              break;
            }
          }
          if (!v424) {
            v424 = new p402(p404, p405, p406, p407, p408, p409, p410);
            v424.sid = p403.length;
            p403.push(v424);
          }
          v424.init(p416, p411, p412, p413, p415, v423.dmg, p414, v423.scale, p417);
          v424.ignoreObj = p418;
          v424.layer = p419 || v423.layer;
          v424.inWindow = p420;
          v424.src = v423.src;
          return v424;
        };
      }
    }
    ;
    class C12 {
      constructor(p421, p422, p423, p424, p425, p426, p427, p428, p429) {
        this.aiTypes = [{
          id: 0,
          src: "cow_1",
          killScore: 150,
          health: 500,
          weightM: 0.8,
          speed: 0.00095,
          turnSpeed: 0.001,
          scale: 72,
          drop: ["food", 50]
        }, {
          id: 1,
          src: "pig_1",
          killScore: 200,
          health: 800,
          weightM: 0.6,
          speed: 0.00085,
          turnSpeed: 0.001,
          scale: 72,
          drop: ["food", 80]
        }, {
          id: 2,
          name: "Bull",
          src: "bull_2",
          hostile: true,
          dmg: 20,
          killScore: 1000,
          health: 1800,
          weightM: 0.5,
          speed: 0.00094,
          turnSpeed: 0.00074,
          scale: 78,
          viewRange: 800,
          chargePlayer: true,
          drop: ["food", 100]
        }, {
          id: 3,
          name: "Bully",
          src: "bull_1",
          hostile: true,
          dmg: 20,
          killScore: 2000,
          health: 2800,
          weightM: 0.45,
          speed: 0.001,
          turnSpeed: 0.0008,
          scale: 90,
          viewRange: 900,
          chargePlayer: true,
          drop: ["food", 400]
        }, {
          id: 4,
          name: "Wolf",
          src: "wolf_1",
          hostile: true,
          dmg: 8,
          killScore: 500,
          health: 300,
          weightM: 0.45,
          speed: 0.001,
          turnSpeed: 0.002,
          scale: 84,
          viewRange: 800,
          chargePlayer: true,
          drop: ["food", 200]
        }, {
          id: 5,
          name: "Quack",
          src: "chicken_1",
          dmg: 8,
          killScore: 2000,
          noTrap: true,
          health: 300,
          weightM: 0.2,
          speed: 0.0018,
          turnSpeed: 0.006,
          scale: 70,
          drop: ["food", 100]
        }, {
          id: 6,
          name: "MOOSTAFA",
          nameScale: 50,
          src: "enemy",
          hostile: true,
          dontRun: true,
          fixedSpawn: true,
          spawnDelay: 60000,
          noTrap: true,
          colDmg: 100,
          dmg: 40,
          killScore: 8000,
          health: 18000,
          weightM: 0.4,
          speed: 0.0007,
          turnSpeed: 0.01,
          scale: 80,
          spriteMlt: 1.8,
          leapForce: 0.9,
          viewRange: 1000,
          hitRange: 210,
          hitDelay: 1000,
          chargePlayer: true,
          drop: ["food", 100]
        }, {
          id: 7,
          name: "Treasure",
          hostile: true,
          nameScale: 35,
          src: "crate_1",
          fixedSpawn: true,
          spawnDelay: 120000,
          colDmg: 200,
          killScore: 5000,
          health: 20000,
          weightM: 0.1,
          speed: 0,
          turnSpeed: 0,
          scale: 70,
          spriteMlt: 1
        }, {
          id: 8,
          name: "MOOFIE",
          src: "wolf_2",
          hostile: true,
          fixedSpawn: true,
          dontRun: true,
          hitScare: 4,
          spawnDelay: 30000,
          noTrap: true,
          nameScale: 35,
          dmg: 10,
          colDmg: 100,
          killScore: 3000,
          health: 7000,
          weightM: 0.45,
          speed: 0.0015,
          turnSpeed: 0.002,
          scale: 90,
          viewRange: 800,
          chargePlayer: true,
          drop: ["food", 1000]
        }, {
          id: 9,
          name: "💀MOOFIE",
          src: "wolf_2",
          hostile: true,
          fixedSpawn: true,
          dontRun: true,
          hitScare: 50,
          spawnDelay: 60000,
          noTrap: true,
          nameScale: 35,
          dmg: 12,
          colDmg: 100,
          killScore: 3000,
          health: 9000,
          weightM: 0.45,
          speed: 0.0015,
          turnSpeed: 0.0025,
          scale: 94,
          viewRange: 1440,
          chargePlayer: true,
          drop: ["food", 3000]
        }, {
          id: 10,
          name: "💀Wolf",
          src: "wolf_1",
          hostile: true,
          fixedSpawn: true,
          dontRun: true,
          hitScare: 50,
          spawnDelay: 30000,
          nameScale: 35,
          dmg: 10,
          killScore: 700,
          health: 500,
          weightM: 0.45,
          speed: 0.00115,
          turnSpeed: 0.0025,
          scale: 88,
          viewRange: 1440,
          chargePlayer: true,
          drop: ["food", 400]
        }, {
          id: 11,
          name: "💀Bully",
          src: "bull_1",
          hostile: true,
          fixedSpawn: true,
          dontRun: true,
          hitScare: 50,
          spawnDelay: 100000,
          nameScale: 35,
          dmg: 20,
          killScore: 5000,
          health: 5000,
          weightM: 0.45,
          speed: 0.0015,
          turnSpeed: 0.0025,
          scale: 94,
          viewRange: 1440,
          chargePlayer: true,
          drop: ["food", 800]
        }];
        this.spawn = function (p430, p431, p432, p433) {
          let v426 = p421.find(p434 => !p434.active);
          if (!v426) {
            v426 = new p422(p421.length, p425, p423, p424, p427, p426, p428, p429);
            p421.push(v426);
          }
          v426.init(p430, p431, p432, p433, this.aiTypes[p433]);
          return v426;
        };
      }
    }
    ;
    class C13 {
      constructor(p435, p436, p437, p438, p439, p440, p441, p442) {
        this.sid = p435;
        this.isAI = true;
        this.nameIndex = p439.randInt(0, p440.cowNames.length - 1);
        this.init = function (p443, p444, p445, p446, p447) {
          this.x = p443;
          this.y = p444;
          this.startX = p447.fixedSpawn ? p443 : null;
          this.startY = p447.fixedSpawn ? p444 : null;
          this.xVel = 0;
          this.yVel = 0;
          this.zIndex = 0;
          this.dir = p445;
          this.dirPlus = 0;
          this.index = p446;
          this.src = p447.src;
          if (p447.name) {
            this.name = p447.name;
          }
          this.weightM = p447.weightM;
          this.speed = p447.speed;
          this.killScore = p447.killScore;
          this.turnSpeed = p447.turnSpeed;
          this.scale = p447.scale;
          this.maxHealth = p447.health;
          this.leapForce = p447.leapForce;
          this.health = this.maxHealth;
          this.chargePlayer = p447.chargePlayer;
          this.viewRange = p447.viewRange;
          this.drop = p447.drop;
          this.dmg = p447.dmg;
          this.hostile = p447.hostile;
          this.dontRun = p447.dontRun;
          this.hitRange = p447.hitRange;
          this.hitDelay = p447.hitDelay;
          this.hitScare = p447.hitScare;
          this.spriteMlt = p447.spriteMlt;
          this.nameScale = p447.nameScale;
          this.colDmg = p447.colDmg;
          this.noTrap = p447.noTrap;
          this.spawnDelay = p447.spawnDelay;
          this.hitWait = 0;
          this.waitCount = 1000;
          this.moveCount = 0;
          this.targetDir = 0;
          this.active = true;
          this.alive = true;
          this.runFrom = null;
          this.chargeTarget = null;
          this.dmgOverTime = {};
        };
        let v427 = 0;
        let v428 = 0;
        this.animate = function (p448) {
          if (this.animTime > 0) {
            this.animTime -= p448;
            if (this.animTime <= 0) {
              this.animTime = 0;
              this.dirPlus = 0;
              v427 = 0;
              v428 = 0;
            } else if (v428 == 0) {
              v427 += p448 / (this.animSpeed * p440.hitReturnRatio);
              this.dirPlus = p439.lerp(0, this.targetAngle, Math.min(1, v427));
              if (v427 >= 1) {
                v427 = 1;
                v428 = 1;
              }
            } else {
              v427 -= p448 / (this.animSpeed * (1 - p440.hitReturnRatio));
              this.dirPlus = p439.lerp(0, this.targetAngle, Math.max(0, v427));
            }
          }
        };
        this.startAnim = function () {
          this.animTime = this.animSpeed = 600;
          this.targetAngle = Math.PI * 0.8;
          v427 = 0;
          v428 = 0;
        };
      }
    }
    ;
    class C14 {
      constructor(p449, p450) {
        this.x = p449;
        this.y = p450;
        this.damage = 10;
        this.health = 10;
        this.maxHealth = this.health;
        this.active = false;
        this.alive = false;
        this.timer = 1500;
        this.time = 0;
        this.damaged = 0;
        this.alpha = 1;
        this.scale = 9;
        this.visScale = this.scale;
      }
    }
    ;
    class C15 {
      constructor(p451, p452, p453, p454) {
        this.x = p451;
        this.y = p452;
        this.alpha = 0;
        this.active = true;
        this.alive = false;
        this.chat = p453;
        this.owner = p454;
      }
    }
    ;
    class C16 {
      constructor(p455, p456, p457, p458, p459, p460, p461, p462, p463) {
        this.x = p455;
        this.y = p456;
        this.lastDir = p457;
        this.dir = p457 + Math.PI;
        this.buildIndex = p458;
        this.weaponIndex = p459;
        this.weaponVariant = p460;
        this.skinColor = p461;
        this.scale = p462;
        this.visScale = 0;
        this.name = p463;
        this.alpha = 1;
        this.active = true;
        this.animate = function (p464) {
          let v429 = v679.getAngleDist(this.lastDir, this.dir);
          if (v429 > 0.01) {
            this.dir += v429 / 20;
          } else {
            this.dir = this.lastDir;
          }
          if (this.visScale < this.scale) {
            this.visScale += p464 / (this.scale / 2);
            if (this.visScale >= this.scale) {
              this.visScale = this.scale;
            }
          }
          this.alpha -= p464 / 30000;
          if (this.alpha <= 0) {
            this.alpha = 0;
            this.active = false;
          }
        };
      }
    }
    ;
    class C17 {
      constructor(p465, p466, p467, p468, p469, p470, p471, p472, p473, p474, p475, p476, p477, p478) {
        this.id = p465;
        this.sid = p466;
        this.tmpScore = 0;
        this.team = null;
        this.latestSkin = 0;
        this.oldSkinIndex = 0;
        this.prevHW;
        this.prevDW;
        this.skinIndex = 0;
        this.latestTail = 0;
        this.oldTailIndex = 0;
        this.tailIndex = 0;
        this.hitTime = 0;
        this.lastHit = 0;
        this.hitTick = 0;
        this.inWater = false;
        this.tails = {};
        this.antiTurretSpam = false;
        for (let v430 = 0; v430 < p475.length; ++v430) {
          if (p475[v430].price <= 0) {
            this.tails[p475[v430].id] = 1;
          }
        }
        this.skins = {};
        for (let v431 = 0; v431 < p474.length; ++v431) {
          if (p474[v431].price <= 0) {
            this.skins[p474[v431].id] = 1;
          }
        }
        this.points = 0;
        this.dt = 0;
        this.hidden = false;
        this.itemCounts = {};
        this.isPlayer = true;
        this.pps = 0;
        this.moveDir = undefined;
        this.moveTime = 0;
        this.skinRot = 0;
        this.lastPing = 0;
        this.iconIndex = 0;
        this.skinColor = 0;
        this.dist2 = 0;
        this.aim2 = 0;
        this.maxSpeed = 1;
        this.chat = {
          message: null,
          count: 0
        };
        this.backupNobull = true;
        this.circle = false;
        this.circleRad = 200;
        this.circleRadSpd = 0.1;
        this.cAngle = 0;
        this.healSpeed = 0;
        this.spawn = function (p479) {
          this.attacked = false;
          this.death = false;
          this.spinDir = 0;
          this.sync = false;
          this.antiBull = 0;
          this.bullTimer = 0;
          this.poisonTimer = 0;
          this.active = true;
          this.alive = true;
          this.lockMove = false;
          this.lockDir = false;
          this.minimapCounter = 0;
          this.chatCountdown = 0;
          this.shameCount = 0;
          this.shameTimer = 0;
          this.sentTo = {};
          this.gathering = 0;
          this.gatherIndex = 0;
          this.lastGather = 0;
          this.shooting = {};
          this.shootIndex = 9;
          this.autoGather = 0;
          this.animTime = 0;
          this.animSpeed = 0;
          this.mouseState = 0;
          this.buildIndex = -1;
          this.weaponIndex = 0;
          this.weaponCode = 0;
          this.weaponVariant = 0;
          this.primaryIndex = undefined;
          this.secondaryIndex = undefined;
          this.dmgOverTime = {};
          this.noMovTimer = 0;
          this.maxXP = 300;
          this.XP = 0;
          this.age = 1;
          this.kills = 0;
          this.upgrAge = 2;
          this.upgradePoints = 0;
          this.x = 0;
          this.y = 0;
          this.oldXY = {
            x: 0,
            y: 0
          };
          this.zIndex = 0;
          this.xVel = 0;
          this.yVel = 0;
          this.slowMult = 1;
          this.dir = 0;
          this.dirPlus = 0;
          this.targetDir = 0;
          this.targetAngle = 0;
          this.maxHealth = 100;
          this.health = this.maxHealth;
          this.oldHealth = this.maxHealth;
          this.damaged = 0;
          this.scale = p467.playerScale;
          this.speed = p467.playerSpeed;
          this.resetMoveDir();
          this.resetResources(p479);
          this.items = [0, 3, 6, 10];
          this.weapons = [0];
          this.shootCount = 0;
          this.weaponXP = [];
          this.reloads = {
            "0": 0,
            "1": 0,
            "2": 0,
            "3": 0,
            "4": 0,
            "5": 0,
            "6": 0,
            "7": 0,
            "8": 0,
            "9": 0,
            "10": 0,
            "11": 0,
            "12": 0,
            "13": 0,
            "14": 0,
            "15": 0,
            "53": 0
          };
          this.bowThreat = {
            "9": 0,
            "12": 0,
            "13": 0,
            "15": 0
          };
          this.damageThreat = 0;
          this.mostDamageThreat = 0;
          this.inTrap = false;
          this.canEmpAnti = false;
          this.empAnti = false;
          this.soldierAnti = false;
          this.poisonTick = 0;
          this.bullTick = 0;
          this.setPoisonTick = false;
          this.setBullTick = false;
          this.antiTimer = 2;
        };
        this.resetMoveDir = function () {
          this.moveDir = undefined;
        };
        this.resetResources = function (p480) {
          for (let v432 = 0; v432 < p467.resourceTypes.length; ++v432) {
            this[p467.resourceTypes[v432]] = p480 ? 100 : 0;
          }
        };
        this.getItemType = function (p481) {
          let v433 = this.items.findIndex(p482 => p482 == p481);
          if (v433 != -1) {
            return v433;
          } else {
            return p473.checkItem.index(p481, this.items);
          }
        };
        this.setData = function (p483) {
          this.id = p483[0];
          this.sid = p483[1];
          this.name = p483[2];
          this.x = p483[3];
          this.y = p483[4];
          this.dir = p483[5];
          this.health = p483[6];
          this.maxHealth = p483[7];
          this.scale = p483[8];
          this.skinColor = p483[9];
        };
        this.updateTimer = function () {
          this.bullTimer -= 1;
          if (this.bullTimer <= 0) {
            this.setBullTick = false;
            this.bullTick = v246.tick - 1;
            this.bullTimer = p467.serverUpdateRate;
          }
          this.poisonTimer -= 1;
          if (this.poisonTimer <= 0) {
            this.setPoisonTick = false;
            this.poisonTick = v246.tick - 1;
            this.poisonTimer = p467.serverUpdateRate;
          }
        };
        this.update = function (p484) {
          if (this.sid == v287) {
            this.circleRad = parseInt(f5("circleRad").value) || 0;
            this.circleRadSpd = parseFloat(f5("radSpeed").value) || 0;
            this.cAngle += this.circleRadSpd;
          }
          if (this.active) {
            let v434 = {
              skin: f26(p474, this.skinIndex),
              tail: f26(p475, this.tailIndex)
            };
            let v435 = (this.buildIndex >= 0 ? 0.5 : 1) * (p473.weapons[this.weaponIndex].spdMult || 1) * (v434.skin ? v434.skin.spdMult || 1 : 1) * (v434.tail ? v434.tail.spdMult || 1 : 1) * (this.y <= p467.snowBiomeTop ? v434.skin && v434.skin.coldM ? 1 : p467.snowSpeed : 1) * this.slowMult;
            this.maxSpeed = v435;
          }
        };
        let v436 = 0;
        let v437 = 0;
        this.animate = function (p485) {
          if (this.animTime > 0) {
            this.animTime -= p485;
            if (this.animTime <= 0) {
              this.animTime = 0;
              this.dirPlus = 0;
              v436 = 0;
              v437 = 0;
            } else if (v437 == 0) {
              v436 += p485 / (this.animSpeed * p467.hitReturnRatio);
              this.dirPlus = p468.lerp(0, this.targetAngle, Math.min(1, v436));
              if (v436 >= 1) {
                v436 = 1;
                v437 = 1;
              }
            } else {
              v436 -= p485 / (this.animSpeed * (1 - p467.hitReturnRatio));
              this.dirPlus = p468.lerp(0, this.targetAngle, Math.max(0, v436));
            }
          }
        };
        this.startAnim = function (p486, p487) {
          this.animTime = this.animSpeed = p473.weapons[p487].speed;
          this.targetAngle = p486 ? -p467.hitAngle : -Math.PI;
          v436 = 0;
          v437 = 0;
        };
        this.canSee = function (p488) {
          if (!p488) {
            return false;
          }
          let v438 = Math.abs(p488.x - this.x) - p488.scale;
          let v439 = Math.abs(p488.y - this.y) - p488.scale;
          return v438 <= p467.maxScreenWidth / 2 * 1.3 && v439 <= p467.maxScreenHeight / 2 * 1.3;
        };
        this.judgeShame = function () {
          if (this.oldHealth < this.health) {
            if (this.hitTime) {
              let v440 = Date.now() - this.hitTime;
              this.hitTime = 0;
              if (v440 < 120) {
                this.shameCount++;
              } else {
                this.shameCount = Math.max(0, this.shameCount - 2);
              }
            }
          } else if (this.oldHealth > this.health) {
            this.hitTime = Date.now();
            this.lastHit = Date.now();
            this.hitTick = v246.tick;
          }
        };
        this.addShameTimer = function () {
          this.shameCount = 0;
          this.shameTimer = 30;
          let vSetInterval2 = setInterval(() => {
            this.shameTimer--;
            if (this.shameTimer <= 0) {
              clearInterval(vSetInterval2);
            }
          }, 1000);
        };
        this.isTeam = function (p489) {
          return this == p489 || this.team && this.team == p489.team;
        };
        this.findAllianceBySid = function (p490) {
          if (this.team) {
            return v280.find(p491 => p491 === p490);
          } else {
            return null;
          }
        };
        this.checkCanInsta = function (p492) {
          let v441 = 0;
          if (this.alive && v317) {
            let v442 = {
              weapon: this.weapons[0],
              variant: this.primaryVariant,
              dmg: this.weapons[0] == undefined ? 0 : p473.weapons[this.weapons[0]].dmg
            };
            const v443 = {
              weapon: this.weapons[1],
              variant: this.secondaryVariant,
              dmg: this.weapons[1] == undefined ? 0 : p473.weapons[this.weapons[1]].Pdmg
            };
            let vV443 = v443;
            let v444 = this.skins[7] && !p492 ? 1.5 : 1;
            let v445 = v442.variant != undefined ? p467.weaponVariants[v442.variant].val : 1;
            if (v442.weapon != undefined && this.reloads[v442.weapon] == 0) {
              v441 += v442.dmg * v445 * v444;
            }
            if (vV443.weapon != undefined && this.reloads[vV443.weapon] == 0) {
              v441 += vV443.dmg;
            }
            if (this.skins[53] && this.reloads[53] <= (v286.weapons[1] == 10 ? 0 : v246.tickRate) && v291.skinIndex != 22) {
              v441 += 25;
            }
            v441 *= v291.skinIndex == 6 ? 0.75 : 1;
            return v441;
          }
          return 0;
        };
        this.manageReload = function () {
          if (this.shooting[53]) {
            this.shooting[53] = 0;
            this.reloads[53] = 2500 - v246.tickRate;
          } else if (this.reloads[53] > 0) {
            this.reloads[53] = Math.max(0, this.reloads[53] - v246.tickRate);
          }
          if (this.gathering || this.shooting[1]) {
            if (this.gathering) {
              this.gathering = 0;
              this.reloads[this.gatherIndex] = p473.weapons[this.gatherIndex].speed * (this.skinIndex == 20 ? 0.78 : 1);
              this.attacked = true;
            }
            if (this.shooting[1]) {
              this.shooting[1] = 0;
              this.reloads[this.shootIndex] = p473.weapons[this.shootIndex].speed * (this.skinIndex == 20 ? 0.78 : 1);
              this.attacked = true;
            }
          } else {
            this.attacked = false;
            if (this.buildIndex < 0) {
              if (this.reloads[this.weaponIndex] > 0) {
                this.reloads[this.weaponIndex] = Math.max(0, this.reloads[this.weaponIndex] - v246.tickRate);
                if (this == v286) {
                  if (f5("weaponGrind").checked) {
                    for (let v446 = 0; v446 < Math.PI * 2; v446 += Math.PI / 2) {
                      f48(v286.getItemType(22), v446);
                    }
                  }
                }
                if (this.reloads[this.primaryIndex] == 0 && this.reloads[this.weaponIndex] == 0) {
                  this.antiBull++;
                  v246.tickBase(() => {
                    this.antiBull = 0;
                  }, 1);
                }
              }
            }
          }
        };
        this.addDamageThreat = function (p493) {
          const v447 = {
            weapon: this.primaryIndex,
            variant: this.primaryVariant
          };
          let vV447 = v447;
          const v448 = {
            weapon: this.secondaryIndex,
            variant: this.secondaryVariant
          };
          let vV448 = v448;
          vV447.dmg = vV447.weapon == undefined ? 45 : p473.weapons[vV447.weapon].dmg;
          vV448.dmg = vV448.weapon == undefined ? 50 : vV448.weapon == 10 ? p473.weapons[vV448.weapon].dmg : p473.weapons[vV448.weapon].Pdmg;
          let v449 = 1.5;
          let v450 = vV447.variant != undefined ? p467.weaponVariants[vV447.variant].val : 1.18;
          let v451 = vV448.variant != undefined ? [9, 12, 13, 15].includes(vV448.weapon) ? 1 : p467.weaponVariants[vV448.variant].val : 1.18;
          if (vV447.weapon == undefined || this.reloads[vV447.weapon] <= v292 * 2 + 120) {
            this.mostDamageThreat += vV447.dmg * v450 * v449;
            if (vV447.weapon == undefined || this.reloads[vV447.weapon] <= v292) {
              this.damageThreat += vV447.dmg * v450 * v449;
            }
          }
          if (vV448.weapon == undefined || this.reloads[vV448.weapon] <= v292 * 2 + 120) {
            this.mostDamageThreat += vV448.dmg * v451;
            if (vV448.weapon == undefined || this.reloads[vV448.weapon] <= v292) {
              this.damageThreat += vV448.dmg * v451;
            }
          }
          if (this.reloads[53] <= v246.tickRate) {
            this.damageThreat += 25;
            this.mostDamageThreat += 25;
          }
          if (v293.predictSpikes > 0) {
            let v452 = (vV448.weapon == 10 ? 45 : 35) * v293.predictSpikes;
            this.damageThreat += v452;
            this.mostDamageThreat += v452;
            v293.predictSpikes = 0;
          }
          if (vV447.variant == 3 || vV448.weapon == 10 && vV448.variant == 3) {
            this.damageThreat += 5;
            this.mostDamageThreat += 5;
          }
          if (v706.count) {
            this.damageThreat += v706.dmg;
            this.mostDamageThreat += v706.dmg;
            v286.chat.message = "projectile dmg: " + v706.dmg;
            v286.chat.count = 500;
          }
          this.damageThreat *= p493.skinIndex == 6 && !v689.isTrue ? 0.75 : 1;
          if (!this.isTeam(p493)) {
            if (this.dist2 <= 300) {
              p493.damageThreat += this.damageThreat;
              p493.mostDamageThreat += this.mostDamageThreat;
            }
          }
        };
      }
    }
    ;
    function f38(p494) {
      v286.reloads[p494] = 0;
      f23("H", p494);
    }
    function f39(p495, p496) {
      f23("c", 0, p495, p496);
    }
    function f40(p497, p498) {
      f23("c", 1, p497, p498);
    }
    let v453 = 0;
    let v454 = 0;
    function f41(p499, p500) {
      let v455 = v286.skins[6] ? 6 : 0;
      if (v286.alive && v317) {
        if (p500 == 0) {
          if (p499 == 6) {
            if (Date.now() - v453 > v246.tickRate) {
              v454 = p499;
              v453 = Date.now();
            }
          } else {
            v454 = p499;
            v453 = Date.now();
          }
          if (v286.skins[p499]) {
            if (v286.latestSkin != p499) {
              f23("c", 0, p499, 0);
            }
          } else if (vF20.autoBuyEquip) {
            let vF26 = f26(v683, p499);
            if (vF26) {
              if (v286.points >= vF26.price) {
                f23("c", 1, p499, 0);
                f23("c", 0, p499, 0);
              } else if (v286.latestSkin != v455) {
                f23("c", 0, v455, 0);
              }
            } else if (v286.latestSkin != v455) {
              f23("c", 0, v455, 0);
            }
          } else if (v286.latestSkin != v455) {
            f23("c", 0, v455, 0);
          }
        } else if (p500 == 1) {
          if (v241 && p499 != 11 && p499 != 0) {
            if (v286.latestTail != 0) {
              f23("c", 0, 0, 1);
            }
            return;
          }
          if (v286.tails[p499]) {
            if (v286.latestTail != p499) {
              f23("c", 0, p499, 1);
            }
          } else if (vF20.autoBuyEquip) {
            let vF262 = f26(v684, p499);
            if (vF262) {
              if (v286.points >= vF262.price) {
                f23("c", 1, p499, 1);
                f23("c", 0, p499, 1);
              } else if (v286.latestTail != 0) {
                f23("c", 0, 0, 1);
              }
            } else if (v286.latestTail != 0) {
              f23("c", 0, 0, 1);
            }
          } else if (v286.latestTail != 0) {
            f23("c", 0, 0, 1);
          }
        }
      }
    }
    function f42(p501, p502) {
      f23("z", p501, p502);
    }
    function f43(p503, p504) {
      if (!p504) {
        v286.weaponCode = p503;
      }
      f23("z", p503, 1);
    }
    let v456 = false;
    let v457 = false;
    function f44(p505) {
      if (v456) {
        return;
      }
      v456 = true;
      if (p505) {
        f23("K", 1, 1);
      } else {
        v457 = !v457;
        f23("K", 1, 1);
      }
      setTimeout(() => {
        v456 = false;
      }, 69);
    }
    function f45(p506, p507) {
      f23("F", p506, p507, 1);
    }
    function f46(p508, p509, p510, p511) {
      try {
        if (p508 == undefined) {
          return;
        }
        let v458 = v680.list[v286.items[p508]];
        let v459 = v286.scale + v458.scale + (v458.placeOffset || 0);
        let v460 = v286.x2 + v459 * Math.cos(p509);
        let v461 = v286.y2 + v459 * Math.sin(p509);
        if (p508 === 0 || v98 || (v286.alive && v317 && v286.itemCounts[v458.group.id] == undefined ? true : v286.itemCounts[v458.group.id] < (vP11.isSandbox ? p508 === 3 || p508 === 5 ? 299 : 99 : v458.group.limit ? v458.group.limit : 99))) {
          f42(v286.items[p508]);
          f45(1, p509);
          f43(v286.weaponCode, 1);
          const v462 = {
            x: v460,
            y: v461
          };
          if (p511 && vF20.spikeTick && p508 == 2 && v679.getDist(v291, v462, 2, 0) <= 85) {
            v689.canSpikeTick = true;
          }
          if (f5("placeVis").checked) {
            if (!p510) {
              const v463 = {
                x: v460,
                y: v461,
                name: v458.name,
                scale: v458.scale,
                dir: p509
              };
              v323.push(v463);
              v246.tickBase(() => {
                v323.shift();
              }, 1);
            } else {
              if (p508 == 4) {
                const v464 = {
                  x: v460,
                  y: v461,
                  name: v458.name,
                  scale: v458.scale,
                  dir: p509
                };
                v324.push(v464);
                v246.tickBase(() => {
                  v324.shift();
                }, 1);
              }
              if (p508 == 2) {
                const v465 = {
                  x: v460,
                  y: v461,
                  name: v458.name,
                  scale: v458.scale,
                  dir: p509
                };
                v325.push(v465);
                v246.tickBase(() => {
                  v325.shift();
                }, 1);
              }
            }
          }
        }
      } catch (_0x1ab61c) {}
    }
    function f47(p512, p513) {
      f46(p512, p513, 0, 1);
    }
    function f48(p514, p515) {
      try {
        if (p514 == undefined) {
          return;
        }
        let v466 = v680.list[v286.items[p514]];
        let v467 = v286.scale + v466.scale + (v466.placeOffset || 0);
        let v468 = v286.x2 + v467 * Math.cos(p515);
        let v469 = v286.y2 + v467 * Math.sin(p515);
        if (v681.checkItemLocation(v468, v469, v466.scale, 0.6, v466.id, false)) {
          f46(p514, p515);
        }
      } catch (_0xed67c9) {}
    }
    function f49() {
      if (v286.latestSkin == 6) {
        return 0.75;
      } else {
        return 1;
      }
    }
    function f50() {
      if (v286.health == 100) {
        return 0;
      }
      if (v286.skinIndex != 45 && v286.skinIndex != 56) {
        return Math.ceil((100 - v286.health) / v680.list[v286.items[0]].healing);
      }
      return 0;
    }
    function f51(p516) {
      let v470 = v289.filter(p517 => {
        const v471 = {
          three: p517.attacked
        };
        let vV471 = v471;
        return vV471.three;
      });
      return v470;
    }
    function f52() {
      for (let v472 = 0; v472 < f50(); v472++) {
        f46(0, f74());
      }
    }
    function f53(p518) {
      for (let v473 = 0; v473 < p518; v473++) {
        f46(0, f74());
      }
    }
    function f54(p519) {
      v293.antiSync = true;
      let vSetInterval3 = setInterval(() => {
        if (v286.shameCount < 5) {
          f46(0, f74());
        }
      }, 75);
      setTimeout(() => {
        clearInterval(vSetInterval3);
        setTimeout(() => {
          v293.antiSync = false;
        }, v246.tickRate);
      }, v246.tickRate);
    }
    let v474 = [28, 29, 30, 36, 37, 38, 44];
    let v475 = 0;
    function f55(p520, p521) {
      if (v286.inWater) {
        if (p521) {
          return 31;
        }
        f41(31, 0);
      } else if (f5("hatType").value == "bg") {
        if (p521) {
          return 10;
        }
        f41(10, 0);
      } else if (f5("hatType").value == "loop") {
        v475 = v475 >= v474.length - 1 ? 0 : v475 + 1;
        if (v286.y2 <= vP11.snowBiomeTop) {
          if (p521) {
            if (p520 && (v286.moveDir == undefined || v286.antiTurretSpam)) {
              return 22;
            } else {
              return v474[v475];
            }
          }
          f41(p520 && (v286.moveDir == undefined || v286.antiTurretSpam) ? 22 : v474[v475], 0);
        } else {
          if (p521) {
            if (p520 && (v286.moveDir == undefined || v286.antiTurretSpam)) {
              return 22;
            } else {
              return v474[v475];
            }
          }
          f41(p520 && (v286.moveDir == undefined || v286.antiTurretSpam) ? 22 : v474[v475], 0);
        }
      } else if (v286.y2 <= vP11.snowBiomeTop) {
        if (p521) {
          if (p520 && (v286.moveDir == undefined || v286.antiTurretSpam)) {
            return 22;
          } else {
            return 15;
          }
        }
        f41(p520 && (v286.moveDir == undefined || v286.antiTurretSpam) ? 22 : 15, 0);
      } else {
        if (p521) {
          if (p520 && (v286.moveDir == undefined || v286.antiTurretSpam)) {
            return 22;
          } else {
            return 12;
          }
        }
        f41(p520 && (v286.moveDir == undefined || v286.antiTurretSpam) ? 22 : 12, 0);
      }
      if (p521) {
        return 0;
      }
    }
    function f56(p522) {
      f41(p522 && v286.moveDir == undefined ? 0 : 11, 1);
    }
    const vF6 = (p523, p524, p525) => {
      if (!p524) {
        return null;
      }
      const v476 = Math.PI / 2;
      const v477 = Math.PI / 69;
      const v478 = v680.list[v286.items[p523]];
      let v479 = v286.scale + v478.scale + (v478.placeOffset || 0);
      let v480 = [];
      let v481 = v679.getDirect(p524, v286, 0, 2);
      if (p525 && p524.sid != p525.sid) {
        let v482 = v679.getDirect(p525, v286, 0, 2);
        for (let v483 = 0; v483 <= v476; v483 += v477) {
          let v484 = [(v482 + v483) % (Math.PI * 2), (v482 - v483 + Math.PI * 2) % (Math.PI * 2)];
          for (let v485 of v484) {
            if (v681.preplaceCheck(v478, v485, p524, v479)) {
              v480.push(v485);
            }
          }
        }
        if (v480.length) {
          v480.sort((p526, p527) => {
            return v679.getAngleDist(p526, v482) - v679.getAngleDist(p527, v482);
          });
          return v480[0];
        }
      } else {
        for (let v486 = 0; v486 <= v476; v486 += v477) {
          let v487 = [(v481 + v486) % (Math.PI * 2), (v481 - v486 + Math.PI * 2) % (Math.PI * 2)];
          for (let v488 of v487) {
            if (v681.preplaceCheck(v478, v488, p524, v479)) {
              return v488;
            }
          }
        }
      }
      return null;
    };
    const vF7 = () => {
      if (v291.dist2 > 269) {
        return;
      }
      const v489 = [];
      for (let v490 of v282) {
        if (!v490.isItem || !v490.active || v679.getDist(v490, v286, 0, 2) > 150 || v490.isTeamObject(v286) && v490.hideFromEnemy) {
          continue;
        }
        if (v681.canBeBroken(v490)) {
          v489.push(v490);
        }
      }
      let v491 = v489.sort((p528, p529) => v679.getDist(p528, v291, 0, 2) - v679.getDist(p529, v291, 0, 2)).slice(0, Math.min(2, v489.length));
      const vF8 = () => {
        let v492 = v291.inTrap;
        v491.forEach(p530 => {
          let v493 = v492 && !v293.autoPush && (f5("preplaceMore").value == "spike" ? true : p530.sid != v492.sid) ? 2 : 4;
          let vVF6 = vF6(v493, p530, v492);
          if (vVF6 !== null) {
            f46(v493, vVF6, 1);
          }
        });
      };
      vF8();
    };
    let v494 = [];
    class C18 {
      constructor() {}
    }
    class C19 {
      constructor(p531, p532) {
        this.dist = 0;
        this.aim = 0;
        this.inTrap = false;
        this.hasSpike = false;
        this.replaced = true;
        this.antiTrapped = false;
        this.info = {};
        this.replaceSids = [];
        this.radObjs = [];
        this.preplaces = [[], []];
        this.nest = {
          rad: 0,
          x: 0,
          y: 0
        };
        this.notFast = function (p533, p534 = v286) {
          if (p534.secondaryIndex == 10) {
            if (p533.health > p532.weapons[p534.primaryIndex].dmg || [5, 8].includes(p534.primaryIndex)) {
              return true;
            }
            if (p533.health <= p532.weapons[p534.primaryIndex].dmg) {
              if (!v681.canHit(p534, p533, p534.primaryIndex)) {
                return true;
              }
            }
          }
          return false;
        };
        this.testCanPlace = function (p535, p536 = -(Math.PI / 2), p537 = Math.PI / 2, p538 = Math.PI / 18, p539, p540, p541) {
          try {
            let v495 = p532.list[v286.items[p535]];
            let v496 = v286.scale + v495.scale + (v495.placeOffset || 0);
            let v497 = {
              attempts: 0,
              placed: 0
            };
            let v498 = [];
            v282.forEach(p542 => {
              v498.push({
                x: p542.x,
                y: p542.y,
                active: p542.active,
                blocker: p542.blocker,
                scale: p542.scale,
                isItem: p542.isItem,
                type: p542.type,
                colDiv: p542.colDiv,
                getScale: function (p543, p544) {
                  p543 = p543 || 1;
                  return this.scale * (this.isItem || this.type == 2 || this.type == 3 || this.type == 4 ? 1 : p543 * 0.6) * (p544 ? 1 : this.colDiv);
                }
              });
            });
            for (let vP536 = p536; vP536 <= p537; vP536 += p538) {
              v497.attempts++;
              let v499 = p539 + vP536;
              let v500 = v286.x2 + v496 * Math.cos(v499);
              let v501 = v286.y2 + v496 * Math.sin(v499);
              let v502 = v498.find(p545 => p545.active && p531.getDistance(v500, v501, p545.x, p545.y) < v495.scale + (p545.blocker ? p545.blocker : p545.getScale(0.6, p545.isItem)));
              if (v502) {
                continue;
              }
              if (v495.id != 18 && v501 >= vP11.mapScale / 2 - vP11.riverWidth / 2 && v501 <= vP11.mapScale / 2 + vP11.riverWidth / 2) {
                continue;
              }
              f46(p535, v499);
              const v503 = {
                x: v500,
                y: v501,
                active: true,
                blocker: v495.blocker,
                scale: v495.scale,
                isItem: true,
                type: null,
                colDiv: v495.colDiv,
                getScale: function () {
                  return this.scale;
                }
              };
              v498.push(v503);
              if (p531.getAngleDist(v291.aim2, v499) <= 1) {
                v497.placed++;
              }
              if (v497.placed > 0) {
                if (p540 && v495.dmg && Date.now() - this.info[0].breakTime >= 240) {
                  const v504 = {
                    x: v500,
                    y: v501
                  };
                  if (p531.getDist(v291, v504, 2, 0) <= 85 && vF20.spikeTick) {
                    v689.canSpikeTick = true;
                  }
                }
                if (p541 && v495.dmg && v497.placed >= 8) {
                  f23("N");
                }
              }
            }
          } catch (_0x1a0c89) {}
        };
        this.createObj = function (p546, p547) {
          const v505 = {
            id: p546.id,
            dir: p547,
            scale: p546.scale
          };
          let vV505 = v505;
          vV505.x = v286.x2 + (v286.scale + vV505.scale + (p546.placeOffset || 0)) * Math.cos(vV505.dir);
          vV505.y = v286.y2 + (v286.scale + vV505.scale + (p546.placeOffset || 0)) * Math.sin(vV505.dir);
          return vV505;
        };
        this.radCalc = function (p548, p549, p550, p551) {
          let v506 = this.createObj(p550, p549);
          let v507 = p548.getScale(0.6, p548.isItem);
          let v508 = p531.getDist(p548, v506, 0, 0);
          let v509 = v507 + v506.scale;
          let v510 = [];
          if (v508 < v509) {
            let v511 = Math.acos(v508 / v509);
            let v512 = [v511, -v511];
            for (let v513 = 0; v513 < v512.length; v513++) {
              let v514 = p549 + v512[v513];
              v506 = this.createObj(p550, v514);
              let v515 = this.preplaces[1].length ? this.preplaces[1].some(p552 => p531.getDist(p552, v506, 0, 0) < p552.scale + v506.scale) : false;
              if (v515) {
                continue;
              }
              let v516 = this.preplaces[0].length ? this.preplaces[0].some(p553 => p531.getDist(p553, v506, 0, 0) < p553.scale + v506.scale) : false;
              if (v516) {
                continue;
              }
              let v517 = v681.checkItemLocation(v506.x, v506.y, v506.scale, 0.6, v506.id, false);
              if (v517) {
                v510.push(v514);
                this.preplaces[1].push(v506);
              }
            }
          } else {
            if (p551) {
              return [];
            }
            v506 = this.createObj(p550, p549);
            let v518 = this.preplaces[1].length ? this.preplaces[1].some(p554 => p531.getDist(p554, v506, 0, 0) < p554.scale + v506.scale) : false;
            if (v518) {
              return [];
            }
            let v519 = this.preplaces[0].length ? this.preplaces[0].some(p555 => p531.getDist(p555, v506, 0, 0) < p555.scale + v506.scale) : false;
            if (v519) {
              return [];
            }
            let v520 = v681.checkItemLocation(v506.x, v506.y, v506.scale, 0.6, v506.id, false);
            if (v520) {
              v510.push(p549);
              this.preplaces[1].push(v506);
            }
          }
          return v510;
        };
        this.checkSpikeTick = function () {
          let v521 = 0;
          let v522 = false;
          if (!f5("safeAntiSpikeTick").checked || !v289.length) {
            return false;
          }
          if (v291.dist2 <= p532.weapons[v291.primaryIndex || 5].range + v286.scale * 2 + 24) {
            if (this.inTrap && this.info[0].health <= p532.weapons[v286.weaponIndex].dmg * vP11.weaponVariants[v286[(v286.weaponIndex < 9 ? "prima" : "seconda") + "ryVariant"]].val * (p532.weapons[v286.weaponIndex].sDmg || 1) * 3.3) {
              v521++;
              v522 = true;
            }
            if (!this.inTrap) {
              if (v291.reloads[v291.primaryIndex] <= v246.tickRate) {
                let v523 = new Set();
                for (let v524 of v282) {
                  if (v524.dmg && v524.active && !v524.isTeamObject(v286) || v524.type == 1 && v524.y >= 12000) {
                    let v525 = Math.atan2(v286.y2 - v291.y2, v286.x2 - v291.x2);
                    let v526 = (p532.weapons[v291.weapons[0]].knock || 0) * p532.weapons[v291.weapons[0]].range + v286.scale * 2;
                    let v527 = ![undefined, 9, 12, 13, 15].includes(v291.weapons[1]) ? (p532.weapons[v291.weapons[1]].knock || 0) * p532.weapons[v291.weapons[1]].range + v286.scale * 2 : 69;
                    let v528 = 69;
                    let v529 = v526 + v527 + v528;
                    let v530 = 13;
                    let v531 = v529 / v530;
                    let v532 = 40;
                    for (let v533 = 1; v533 <= v530; v533++) {
                      let v534 = v531 * v533;
                      if (v534 < v532) {
                        continue;
                      }
                      let v535 = v286.x2 + v531 * v533 * Math.cos(v525);
                      let v536 = v286.y2 + v531 * v533 * Math.sin(v525);
                      v273.mex = v535;
                      v273.mey = v536;
                      const v537 = {
                        x: v535,
                        y: v536
                      };
                      let v538 = p531.getDist(v537, v524, 0, 0);
                      if (v538 <= v524.scale + v286.scale * 1.5) {
                        if (!v523.has(v524.sid)) {
                          v523.add(v524.sid);
                        }
                      }
                    }
                  }
                }
                v521 += v523.size;
                if (![3, 4, 5].includes(v291.primaryIndex)) {
                  v522 = true;
                }
              }
            }
          }
          return [v521, v522];
        };
        this.protect = function (p556) {
          if (!vF20.antiTrap) {
            return;
          }
          this.testCanPlace(4, -(Math.PI / 2), Math.PI / 2, Math.PI / 22, p556 + Math.PI);
          this.testCanPlace(4, -(Math.PI / 4), Math.PI / 4, Math.PI / 10, p556 + Math.PI);
          this.antiTrapped = true;
        };
        this.autoPlace = function (p557, p558, p559, p560) {
          if (!v289.length) {
            return;
          }
          if (!vF20.autoPlace) {
            return;
          }
          if (p557 == 0) {
            if (p558 == undefined) {
              return;
            }
            let v539 = v286.items[p558];
            if (v539 == undefined) {
              return;
            }
            let v540 = p532.list[v539];
            let v541 = p559 == undefined ? null : v286.items[p559];
            let v542 = v541 == undefined ? null : p532.list[v541];
            this.radObjs = v282.filter(p561 => p561.active && p531.getDist(p561, v286, 0, 2) < 300);
            if (this.radObjs.length) {
              for (let v543 = 0; v543 < this.radObjs.length; v543++) {
                let v544 = this.radObjs[v543];
                let v545 = p531.getDirect(v544, v286, 0, 2);
                let v546 = this.radCalc(v544, v545, v540);
                if (v546.length) {
                  for (let v547 = 0; v547 < v546.length; v547++) {
                    f46(p558, v546[v547]);
                  }
                } else if (v542) {
                  let v548 = this.radObjs[v543];
                  let v549 = p531.getDirect(v548, v286, 0, 2);
                  let v550 = this.radCalc(v548, v549, v542);
                  if (v550.length) {
                    for (let v551 = 0; v551 < v550.length; v551++) {
                      f46(p559, v550[v551]);
                    }
                  }
                }
              }
            } else {
              for (let v552 = 0; v552 < Math.PI * 2; v552 += Math.PI / 2) {
                f48(p558, v291.aim2 + v552);
              }
            }
          } else if (p557 == 1) {
            if (p558 == undefined) {
              return;
            }
            let v553 = v286.items[p558];
            if (v553 == undefined) {
              return;
            }
            let v554 = p532.list[v553];
            this.nest.rad = 0;
            this.nest.x = v291.x2;
            this.nest.y = v291.y2;
            this.radObjs = v282.filter(p562 => {
              if ((p558 == 4 ? p562.dmg : p562.trap) && p562.active) {
                let v555 = p531.getDist(p562, v291, 0, 2);
                if (v555 < 500) {
                  if (this.nest.rad < v555) {
                    this.nest.rad = v555;
                  }
                  return true;
                }
              }
            });
            if (this.radObjs.length) {
              for (let v556 = 0; v556 < this.radObjs.length; v556++) {
                let v557 = this.radObjs[v556];
                let v558 = p531.getDirect(v557, v286, 0, 2);
                let v559 = this.radCalc(v557, v558, v554, 1);
                if (v559.length) {
                  for (let v560 = 0; v560 < v559.length; v560++) {
                    f46(p558, v559[v560]);
                  }
                }
              }
            }
            if (p560 && this.preplaces[1].length < 1) {
              this.autoPlace(1, p559, p558, false);
            }
          }
        };
        this.autoReplace = function (p563) {
          if (!v289.length) {
            return;
          }
          if (v291.dist2 > 300) {
            return;
          }
          if (!vF20.autoReplace) {
            return;
          }
          if (f5("weaponGrind").checked) {
            return;
          }
          let v561 = p563.length;
          for (let v562 = 0; v562 < v561; v562++) {
            let v563 = false;
            let v564 = p563[v562];
            v288 = f31(v564);
            if (!v288) {
              continue;
            }
            let v565 = p531.getDist(v288, v286, 0, 2);
            if (v565 > 300) {
              continue;
            }
            let v566 = p531.getDirect(v288, v286, 0, 2);
            let v567 = p531.getAngleDist(v566, v291.aim2);
            if (this.info[0]) {
              if (!this.info[0].active && Date.now() - this.info[0].breakTime <= 111) {
                if (v286.items[4] == 15) {
                  this.testCanPlace(4, 0, Math.PI * 2, Math.PI / 24, v566);
                  continue;
                }
              }
            }
            let v568 = v565 > 200 ? 4 : v567 < Math.PI / 3 ? 4 : 2;
            let v569 = v286.items[v568];
            if (v569 == undefined) {
              continue;
            }
            let v570 = p532.list[v569];
            let v571 = this.createObj(v570, v566);
            let v572 = this.preplaces[0].length ? this.preplaces[0].some(p564 => p531.getDist(p564, v571, 0, 0) < p564.scale + v571.scale) : false;
            if (!v572) {
              let v573 = v681.checkItemLocation(v571.x, v571.y, v571.scale, 0.6, v571.id, false);
              if (v573) {
                f47(v568, v566);
                v563 = true;
                this.preplaces[0].push(v571);
              }
            }
            if (v563) {
              for (let v574 = -Math.PI * 1.5; v574 < Math.PI * 1.5; v574 += Math.PI / 32) {
                let v575 = v566 + v574 + Math.PI;
                let v576 = p531.getAngleDist(v575, v291.aim2);
                let v577 = v565 > 200 ? 4 : v576 < Math.PI / 4 ? 4 : v576 > Math.PI * 1.5 ? 4 : 2;
                let v578 = v286.items[v577];
                if (v578 == undefined) {
                  continue;
                }
                let v579 = p532.list[v578];
                let v580 = this.createObj(v579, v575);
                let v581 = this.preplaces[0].length ? this.preplaces[0].some(p565 => p531.getDist(p565, v580, 0, 0) < p565.scale + v580.scale) : false;
                if (!v581) {
                  let v582 = v681.checkItemLocation(v580.x, v580.y, v580.scale, 0.6, v580.id, false);
                  if (v582) {
                    f47(v577, v575);
                    this.preplaces[0].push(v580);
                  }
                }
              }
            } else {
              for (let v583 = -Math.PI * 1.5; v583 < Math.PI * 1.5; v583 += Math.PI / 32) {
                let v584 = v566 + v583;
                let v585 = p531.getAngleDist(v584, v291.aim2);
                let v586 = v565 > 200 ? 4 : v585 < Math.PI / 4 ? 4 : v585 > Math.PI * 1.5 ? 4 : 2;
                let v587 = v286.items[v586];
                if (v587 == undefined) {
                  continue;
                }
                let v588 = p532.list[v587];
                let v589 = this.createObj(v588, v584);
                let v590 = this.preplaces[0].length ? this.preplaces[0].some(p566 => p531.getDist(p566, v589, 0, 0) < p566.scale + v589.scale) : false;
                if (!v590) {
                  let v591 = v681.checkItemLocation(v589.x, v589.y, v589.scale, 0.6, v589.id, false);
                  if (v591) {
                    f47(v586, v584);
                    this.preplaces[0].push(v589);
                  }
                }
              }
            }
          }
        };
      }
    }
    ;
    let v592 = {
      active: false,
      gridSize: 100,
      scale: 1440,
      paths: [],
      attempts: 0,
      finded: false
    };
    class C20 {
      constructor() {
        this.grid = [];
        this.foundPath = false;
      }
      init(p567, p568, p569) {
        let v593 = {
          x: 0,
          y: 0
        };
        let v594 = [];
        let v595 = v282.filter(p570 => p570.active && !p570.ignoreCollision && Math.abs(v286.x2 - p570.x) <= v592.scale / 2 + p570.scale && Math.abs(v286.y2 - p570.y) <= v592.scale / 2 + p570.scale);
        let v596 = v286.x3 - v592.scale / 2;
        let v597 = v286.y3 - v592.scale / 2;
        let v598 = v592.scale / v592.gridSize;
        let v599 = [v598 - 10, v598 + 10];
        let v600 = [v286.scale, vP11.mapScale - v286.scale];
        let v601 = p568 ? v599[1] : v598;
        this.grid = [];
        for (let v602 = 0; v602 < v592.gridSize; v602++) {
          this.grid[v602] = [];
          for (let v603 = 0; v603 < v592.gridSize; v603++) {
            let v604 = {
              x: v596 + v598 * v603,
              y: v597 + v598 * v602
            };
            if (v679.getDist(v604, v286, 0, 2) <= v286.scale) {
              this.grid[v602][v603] = 0;
              continue;
            }
            if (p569 == "auto push") {
              const v605 = {
                x: p567.x,
                y: p567.y
              };
              let v606 = v679.getDist(v604, v605, 0, 0);
              if (v606 <= v599[1]) {
                const v607 = {
                  x: v603,
                  y: v602,
                  dist: v606
                };
                v594.push(v607);
                this.grid[v602][v603] = 0;
                continue;
              }
              let v608 = v679.getDist(v604, v291, 0, 2);
              if (v608 <= v291.scale) {
                this.grid[v602][v603] = 1;
                continue;
              }
              let v609 = v595.some(p571 => {
                return v679.getDist(v604, p571, 0, 0) <= p571.scale + v286.scale + 15;
              });
              if (v609) {
                this.grid[v602][v603] = 1;
              } else {
                this.grid[v602][v603] = 0;
              }
            } else if (p569 == "follow") {
              let v610 = v679.getDist(v604, {
                x: v291.x2 - p567.x,
                y: v291.y2 - p567.y
              }, 0, 0);
              if (v610 <= v599[1]) {
                const v611 = {
                  x: v603,
                  y: v602,
                  dist: v610
                };
                v594.push(v611);
                this.grid[v602][v603] = 0;
                continue;
              }
              let v612 = v595.some(p572 => {
                return v679.getDist(v604, p572, 0, 0) <= p572.scale + 10;
              });
              if (v612) {
                this.grid[v602][v603] = 1;
              } else {
                this.grid[v602][v603] = 0;
              }
            }
            if (v604.x < v600[0]) {
              this.grid[v602][v603] = 1;
              continue;
            }
            if (v604.x > v600[1]) {
              this.grid[v602][v603] = 1;
              continue;
            }
            if (v604.y < v600[0]) {
              this.grid[v602][v603] = 1;
              continue;
            }
            if (v604.y > v600[1]) {
              this.grid[v602][v603] = 1;
              continue;
            }
          }
        }
        this.foundPath = false;
        if (v594.length) {
          v594.sort((p573, p574) => {
            return p573.dist - p574.dist;
          });
          const v613 = {
            x: v594[0].x,
            y: v594[0].y
          };
          v593 = v613;
        }
        return {
          start: {
            x: v592.gridSize / 2,
            y: v592.gridSize / 2
          },
          goal: v593
        };
      }
      getPaths(p575) {
        return [{
          x: p575.x + 1,
          y: p575.y
        }, {
          x: p575.x + 1,
          y: p575.y + 1
        }, {
          x: p575.x,
          y: p575.y + 1
        }, {
          x: p575.x - 1,
          y: p575.y + 1
        }, {
          x: p575.x - 1,
          y: p575.y
        }, {
          x: p575.x - 1,
          y: p575.y - 1
        }, {
          x: p575.x,
          y: p575.y - 1
        }, {
          x: p575.x + 1,
          y: p575.y - 1
        }];
      }
      getScore(p576, p577) {
        return Math.abs(p576.x - p577.x) + Math.abs(p576.y - p577.y);
      }
      calc(p578, p579, p580) {
        let v614 = this.init(p578, p579, p580);
        let v615 = v614.goal;
        let v616 = v614.start;
        const v617 = {
          x: v615.x,
          y: v615.y
        };
        let vV617 = v617;
        let v618 = [{
          x: vV617.x,
          y: vV617.y,
          score: this.getScore(vV617, v616),
          seek: 0,
          hop: 0,
          start: true
        }];
        let v619 = this.getPaths(vV617);
        this.grid[v615.y][v615.x] = 0;
        this.grid[v616.y][v616.x] = 0;
        for (let v620 = 0; v620 < v619.length; v620++) {
          let v621 = v619[v620];
          if (v621.x < 0 || v621.y < 0 || v621.x > v592.gridSize - 1 || v621.y > v592.gridSize - 1) {
            continue;
          }
          if (this.grid[v621.y][v621.x] == 1) {
            continue;
          }
          v618.push({
            x: v621.x,
            y: v621.y,
            score: this.getScore(v621, v616),
            seek: 0,
            hop: 1
          });
        }
        let v622 = 100;
        let v623 = [];
        let v624 = 0;
        for (v624 = 0; v624 < v622; v624++) {
          if (this.foundPath || vV617.x == v616.x && vV617.y == v616.y) {
            if (!this.foundPath) {
              this.foundPath = true;
              v623.push({
                x: v286.x2 - v592.scale / 2 + v592.scale / v592.gridSize * vV617.x,
                y: v286.y2 - v592.scale / 2 + v592.scale / v592.gridSize * vV617.y
              });
            }
            let v625 = v618.filter(p581 => (p581.seek == 1 || p581.start) && Math.abs(p581.x - vV617.x) <= 1 && Math.abs(p581.y - vV617.y) <= 1).toSorted((p582, p583) => {
              return p582.hop - p583.hop;
            });
            if (v625.length > 0) {
              let v626 = v625[0];
              const v627 = {
                x: v626.x,
                y: v626.y
              };
              vV617 = v627;
              v626.seek = 2;
              v623.push({
                x: v286.x2 - v592.scale / 2 + v592.scale / v592.gridSize * vV617.x,
                y: v286.y2 - v592.scale / 2 + v592.scale / v592.gridSize * vV617.y
              });
              if (v626.start) {
                break;
              }
            } else {
              break;
            }
          } else {
            let v628 = v618.filter(p584 => p584.seek == 0).toSorted((p585, p586) => {
              return p585.score - p586.score;
            });
            if (v628.length > 0) {
              let v629 = v628[0];
              const v630 = {
                x: v629.x,
                y: v629.y
              };
              vV617 = v630;
              v629.seek = 1;
              v619 = this.getPaths(vV617);
              let v631 = v629.hop + 1;
              for (let v632 = 0; v632 < v619.length; v632++) {
                let v633 = v619[v632];
                if (v633.x < 0 || v633.y < 0 || v633.x > v592.gridSize - 1 || v633.y > v592.gridSize - 1) {
                  continue;
                }
                if (this.grid[v633.y][v633.x] == 1) {
                  continue;
                }
                if (v618.some(p587 => p587.x == v633.x && p587.y == v633.y)) {
                  continue;
                }
                v618.push({
                  x: v633.x,
                  y: v633.y,
                  score: this.getScore(v633, v616),
                  seek: 0,
                  hop: v631
                });
              }
            } else {
              break;
            }
          }
        }
        const v634 = {
          paths: v623,
          attempts: v624
        };
        return v634;
      }
    }
    ;
    function f57(p588, p589) {
      const v635 = 30;
      class C21 {
        constructor(p590, p591, p592) {
          this.x = p590;
          this.y = p591;
          this.g = p592;
          this.type = f58(p590, p591);
        }
      }
      const v636 = p588.x + (p589[0] - p588.x) / 2;
      const v637 = p588.y + (p589[1] - p588.y) / 2;
      const v638 = v282.filter(p593 => Math.hypot(p593.y - v637, p593.x - v636) < 500);
      function f58(p594, p595) {
        if (v638.some(p596 => {
          let v639 = p596.scale + p588.scale;
          const v640 = p596.dmg && !p596.isTeamObject(p588) ? v639 + 50 : v639;
          if (p596.ignoreCollision && (!p596.trap || p596.isTeamObject(p588))) {
            return false;
          }
          if (Math.hypot(p596.y - p595, p596.x - p594) < v640 + v635 && Math.hypot(p596.y - p589[1], p596.x - p589[0]) > v640 + v635 && Math.hypot(p596.y - p588.y2, p596.x - p588.x2) > v640 + v635) {
            return true;
          }
          return false;
        })) {
          return "wall";
        } else {
          return "space";
        }
      }
      const v641 = new C21(Math.round(p588.x2 / v635) * v635, Math.round(p588.y2 / v635) * v635, 0);
      const v642 = new C21(Math.round(p589[0] / v635) * v635, Math.round(p589[1] / v635) * v635, 0);
      const v643 = [];
      const v644 = [];
      let v645 = 0;
      const v646 = 100;
      let v647 = true;
      function f59(p597) {
        return Math.abs(p597);
      }
      while (!v644.find(p598 => Math.hypot(p598.y - v642.y, p598.x - v642.x) < v635)) {
        v645++;
        if (v645 >= v646) {
          v647 = false;
          break;
        }
        const v648 = v645 === 1 ? v641 : v644.filter(p599 => p599.type === "space").sort((p600, p601) => p600.good - p601.good)[0];
        if (!v648) {
          break;
        }
        for (let v649 = 0; v649 < 3; v649++) {
          for (let v650 = 0; v650 < 3; v650++) {
            if (v649 === 1 && v650 === 1) {
              continue;
            }
            const v651 = v648.x + v635 * (-1 + v649);
            const v652 = v648.y + v635 * (-1 + v650);
            const v653 = new C21(v651, v652, v645);
            if (v653.type === "wall") {
              continue;
            }
            v653.good = f59(v653.x - v642.x) + f59(v653.y - v642.y) / v635 - v645;
            if (!v644.some(p602 => p602.x === v653.x && p602.y === v653.y)) {
              v644.push(v653);
            }
          }
        }
        v643.push(v648);
      }
      if (v647) {
        return v643;
      } else {
        return false;
      }
    }
    class C22 {
      constructor() {
        if (v242 >= 69 || v293.anti0Tick > 0) {
          return;
        }
        this.wait = false;
        this.can = false;
        this.isTrue = false;
        this.nobull = false;
        this.ticking = false;
        this.canSpikeTick = false;
        this.startTick = false;
        this.readyTick = false;
        this.canCounter = false;
        this.revTick = false;
        this.syncHit = false;
        this.changeType = function (p603) {
          this.wait = false;
          this.isTrue = true;
          v293.autoAim = true;
          let v654 = [p603];
          let v655 = v291.backupNobull;
          v291.backupNobull = false;
          v246.tickBase(() => {
            v654.push(v286.skinIndex);
            v246.tickBase(() => {
              if (v291.skinIndex == 22 && f5("backupNobull").checked) {
                v291.backupNobull = true;
              }
              v654.push(v286.skinIndex);
            }, 1);
          }, 1);
          if (p603 == "rev") {
            f43(v286.weapons[1]);
            f41(53, 0);
            f41(21, 1);
            if (!v457) {
              f44();
            }
            v246.tickBase(() => {
              f43(v286.weapons[0]);
              if (v291.dist2 <= 120 && vF20.doSpikeOnReverse) {
                f46(2, v291.aim2);
              }
              f41(7, 0);
              f41(21, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
              }, 1);
            }, 1);
          } else if (p603 == "nobull") {
            f43(v286.weapons[0]);
            if (f5("backupNobull").checked && v655) {
              f41(7, 0);
            } else {
              f41(6, 0);
            }
            f41(21, 1);
            if (!v457) {
              f44();
            }
            v246.tickBase(() => {
              if (v291.skinIndex == 22) {
                if (f5("backupNobull").checked) {
                  v291.backupNobull = true;
                }
                f41(6, 0);
              } else {
                f41(53, 0);
              }
              f43(v286.weapons[1]);
              f41(21, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
              }, 1);
            }, 1);
          } else if (p603 == "normal") {
            f43(v286.weapons[0]);
            f41(7, 0);
            f41(21, 1);
            if (!v457) {
              f44();
            }
            v246.tickBase(() => {
              f43(v286.weapons[1]);
              f41(v286.reloads[53] == 0 ? 53 : 6, 0);
              f41(21, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
              }, 1);
            }, 1);
          } else {
            setTimeout(() => {
              this.isTrue = false;
              v293.autoAim = false;
            }, 50);
          }
        };
        this.spikeTickType = function (p604) {
          this.isTrue = true;
          v293.autoAim = true;
          f43(v286.weapons[0]);
          if (p604 == "rev" && v286.reloads[53] == 0) {
            f41(53, 0);
            v246.tickBase(() => {
              f41(7, 0);
              if (!v457) {
                f44();
              }
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
              }, 1);
            }, 1);
          } else {
            v246.tickBase(() => {
              f41(7, 0);
              if (!v457) {
                f44();
              }
              v246.tickBase(() => {
                if (v286.reloads[53] == 0 && f5("turretCombat").checked) {
                  f41(53, 0);
                  v246.tickBase(() => {
                    this.isTrue = false;
                    v293.autoAim = false;
                  }, 1);
                } else {
                  this.isTrue = false;
                  v293.autoAim = false;
                }
              }, 1);
            }, 1);
          }
        };
        this.counterType = function () {
          this.isTrue = true;
          v293.autoAim = true;
          f43(v286.weapons[0]);
          f41(7, 0);
          f41(21, 1);
          if (!v457) {
            f44();
          }
          v246.tickBase(() => {
            if (v286.reloads[53] == 0 && f5("turretCombat").checked) {
              f43(v286.weapons[0]);
              f41(53, 0);
              f41(21, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
              }, 1);
            } else {
              this.isTrue = false;
              v293.autoAim = false;
            }
          }, 1);
        };
        this.rangeType = function (p605) {
          this.isTrue = true;
          v293.autoAim = true;
          if (p605 == "ageInsta") {
            v293.ageInsta = false;
            if (v286.items[5] == 18) {
              v688.testCanPlace(5, 0, Math.PI * 2, Math.PI / 24, v291.aim2);
            }
            f23("f", undefined, 1);
            f41(53, 0);
            f41(21, 1);
            v246.tickBase(() => {
              f43(v286.weapons[1]);
              f41(53, 0);
              f41(21, 1);
              if (!v457) {
                f44();
              }
              v246.tickBase(() => {
                f38(12);
                f43(v286.weapons[1]);
                f41(53, 0);
                f41(21, 1);
                v246.tickBase(() => {
                  f38(15);
                  f43(v286.weapons[1]);
                  f41(53, 0);
                  f41(21, 1);
                  v246.tickBase(() => {
                    this.isTrue = false;
                    v293.autoAim = false;
                    this.readyTick = false;
                  }, 3);
                }, 1);
              }, 1);
            }, 2);
          } else {
            f43(v286.weapons[1]);
            if (v286.reloads[53] == 0 && v291.dist2 <= 700 && v291.skinIndex != 22) {
              f41(53, 0);
            } else {
              f41(20, 0);
            }
            f41(19, 1);
            if (!v457) {
              f44();
            }
            v246.tickBase(() => {
              this.isTrue = false;
              v293.autoAim = false;
            }, 1);
          }
        };
        this.musketSync = function () {
          if (v286.weapons[1] != 15) {
            return;
          }
          this.isTrue = true;
          if (v286.items[5] == 18) {
            v688.testCanPlace(5, 0, Math.PI * 2, Math.PI / 12, v291.aim2);
          }
          v293.autoAim = true;
          f41(53, 0);
          v246.tickBase(() => {
            f43(v286.weapons[1]);
            if (!v457) {
              f44();
            }
            v246.tickBase(() => {
              this.isTrue = false;
              v293.autoAim = false;
            }, 1);
          }, 1);
        };
        this.oneTickType = function () {
          this.isTrue = true;
          v293.autoAim = true;
          f23("f", v291.aim2, 1);
          v246.tickBase(() => {
            if (v286.weapons[1] == 15) {
              v293.revAim = true;
            }
            f43(v286.weapons[[9, 10, 12, 13, 15].includes(v286.weapons[1]) ? 1 : 0]);
            f41(53, 0);
            if ([9, 12, 13, 15].includes(v286.weapons[1])) {
              if (!v457) {
                f44();
              }
            }
            v246.tickBase(() => {
              v293.revAim = false;
              f43(v286.weapons[0]);
              f41(7, 0);
              if (!v457) {
                f44();
              }
              f23("f", v291.aim2, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
                f23("f", undefined, 1);
              }, 1);
            }, 1);
          }, 1);
        };
        this.threeOneTickType = function () {
          this.isTrue = true;
          v293.autoAim = true;
          f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
          f41(11, 1);
          f23("f", v291.aim2, 1);
          v246.tickBase(() => {
            f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
            f41(53, 0);
            f41(11, 1);
            f23("f", v291.aim2, 1);
            v246.tickBase(() => {
              f43(v286.weapons[0]);
              f41(7, 0);
              f41(19, 1);
              if (!v457) {
                f44();
              }
              f23("f", v291.aim2, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
                f23("f", undefined, 1);
              }, 1);
            }, 1);
          }, 1);
        };
        this.kmTickType = function () {
          this.isTrue = true;
          v293.autoAim = true;
          v293.revAim = true;
          f43(v286.weapons[1]);
          f41(53, 0);
          f41(11, 1);
          if (!v457) {
            f44();
          }
          f23("f", v291.aim2, 1);
          v246.tickBase(() => {
            v293.revAim = false;
            f43(v286.weapons[0]);
            f41(7, 0);
            f41(19, 1);
            f23("f", v291.aim2, 1);
            v246.tickBase(() => {
              this.isTrue = false;
              v293.autoAim = false;
              f23("f", undefined, 1);
            }, 1);
          }, 1);
        };
        this.boostTickType = function () {
          this.isTrue = true;
          v293.autoAim = true;
          f23("f", v291.aim2, 1);
          v246.tickBase(() => {
            if (v286.weapons[1] == 15) {
              v293.revAim = true;
            }
            f43(v286.weapons[[9, 12, 13, 15].includes(v286.weapons[1]) ? 1 : 0]);
            f41(53, 0);
            f41(11, 1);
            if ([9, 12, 13, 15].includes(v286.weapons[1])) {
              if (!v457) {
                f44();
              }
            }
            f23("f", v291.aim2, 1);
            f46(4, v291.aim2);
            v246.tickBase(() => {
              v293.revAim = false;
              f43(v286.weapons[0]);
              f41(7, 0);
              f41(19, 1);
              if (![9, 12, 13, 15].includes(v286.weapons[1])) {
                if (!v457) {
                  f44();
                }
              }
              f23("f", v291.aim2, 1);
              v246.tickBase(() => {
                this.isTrue = false;
                v293.autoAim = false;
                f23("f", undefined, 1);
              }, 1);
            }, 1);
          }, 1);
        };
        this.gotoGoal = function (p606, p607) {
          let vF9 = p608 => p608 * vP11.playerScale;
          let v656 = {
            a: p606 - p607,
            b: p606 + p607,
            c: p606 - vF9(1),
            d: p606 + vF9(1),
            e: p606 - vF9(2),
            f: p606 + vF9(2),
            g: p606 - vF9(4),
            h: p606 + vF9(4)
          };
          let vF10 = function (p609, p610) {
            if (v286.inWater && p610 == 0) {
              f41(31, 0);
            } else {
              f41(p609, p610);
            }
          };
          if (v289.length) {
            let v657 = v291.dist2;
            this.ticking = true;
            if (v657 >= v656.a && v657 <= v656.b) {
              vF10(22, 0);
              vF10(19, 1);
              if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
              }
              const v658 = {
                dir: undefined,
                action: 1
              };
              return v658;
            } else {
              if (v657 < v656.a) {
                if (v657 >= v656.g) {
                  if (v657 >= v656.e) {
                    if (v657 >= v656.c) {
                      vF10(40, 0);
                      vF10(0, 1);
                      if (vF20.slowOT) {
                        if (v286.buildIndex != v286.items[1]) {
                          f42(v286.items[1]);
                        }
                      } else if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                        f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                      }
                    } else {
                      vF10(22, 0);
                      vF10(0, 1);
                      if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                        f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                      }
                    }
                  } else {
                    vF10(6, 0);
                    vF10(0, 1);
                    if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                      f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                    }
                  }
                } else {
                  f55(1);
                  vF10(11, 1);
                  if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                    f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                  }
                }
                return {
                  dir: v291.aim2 + Math.PI,
                  action: 0
                };
              } else if (v657 > v656.b) {
                if (v657 <= v656.h) {
                  if (v657 <= v656.f) {
                    if (v657 <= v656.d) {
                      vF10(40, 0);
                      vF10(0, 1);
                      if (vF20.slowOT) {
                        if (v286.buildIndex != v286.items[1]) {
                          f42(v286.items[1]);
                        }
                      } else if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                        f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                      }
                    } else {
                      vF10(22, 0);
                      vF10(0, 1);
                      if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                        f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                      }
                    }
                  } else {
                    vF10(6, 0);
                    vF10(0, 1);
                    if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                      f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                    }
                  }
                } else {
                  f55(1);
                  vF10(11, 1);
                  if (v286.weaponIndex != v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0] || v286.buildIndex > -1) {
                    f43(v286.weapons[[10, 14].includes(v286.weapons[1]) ? 1 : 0]);
                  }
                }
                const v659 = {
                  dir: v291.aim2,
                  action: 0
                };
                return v659;
              }
              const v660 = {
                dir: undefined,
                action: 0
              };
              return v660;
            }
          } else {
            this.ticking = false;
            const v661 = {
              dir: undefined,
              action: 0
            };
            return v661;
          }
        };
        this.bowMovement = function () {
          let v662 = this.gotoGoal(682, 4);
          if (v662.action) {
            if (v286.reloads[53] == 0 && !this.isTrue) {
              this.rangeType("ageInsta");
            } else {
              f23("f", v662.dir, 1);
            }
          } else {
            f23("f", v662.dir, 1);
          }
        };
        this.tickMovement = function () {
          let v663 = this.gotoGoal([10, 14].includes(v286.weapons[1]) && v286.y2 > vP11.snowBiomeTop ? 243 : v286.weapons[1] == 15 ? 270 : v286.y2 <= vP11.snowBiomeTop ? [10, 14].includes(v286.weapons[1]) ? 233 : 231 : 240, 3);
          if (v663.action) {
            if (v291.skinIndex != 22 && v286.reloads[53] == 0 && !this.isTrue) {
              this.oneTickType();
            } else {
              f23("f", v663.dir, 1);
            }
          } else {
            f23("f", v663.dir, 1);
          }
        };
        this.kmTickMovement = function () {
          let v664 = this.gotoGoal(240, 3);
          if (v664.action) {
            if (v291.skinIndex != 22 && v286.reloads[53] == 0 && !this.isTrue && (v246.tick - v291.poisonTick) % vP11.serverUpdateRate == 8) {
              this.kmTickType();
            } else {
              f23("f", v664.dir, 1);
            }
          } else {
            f23("f", v664.dir, 1);
          }
        };
        this.boostTickMovement = function () {
          let v665 = v286.weapons[1] == 9 ? 365 : v286.weapons[1] == 12 ? 380 : v286.weapons[1] == 13 ? 390 : v286.weapons[1] == 15 ? 365 : 370;
          let v666 = v286.weapons[1] == 9 ? 2 : v286.weapons[1] == 12 ? 1.5 : v286.weapons[1] == 13 ? 1.5 : v286.weapons[1] == 15 ? 2 : 3;
          let v667 = this.gotoGoal(v665, v666);
          if (v667.action) {
            if (v286.reloads[53] == 0 && !this.isTrue) {
              this.boostTickType();
            } else {
              f23("f", v667.dir, 1);
            }
          } else {
            f23("f", v667.dir, 1);
          }
        };
        this.perfCheck = function (p611, p612) {
          if (p612.weaponIndex == 11 && v679.getAngleDist(p612.aim2 + Math.PI, p612.d2) <= vP11.shieldAngle) {
            return false;
          }
          if (![9, 12, 13, 15].includes(v286.weapons[1])) {
            return true;
          }
          let v668 = {
            x: p612.x2 + Math.cos(p612.aim2 + Math.PI) * 70,
            y: p612.y2 + Math.sin(p612.aim2 + Math.PI) * 70
          };
          if (v679.lineInRect(p611.x2 - p611.scale, p611.y2 - p611.scale, p611.x2 + p611.scale, p611.y2 + p611.scale, v668.x, v668.y, v668.x, v668.y)) {
            return true;
          }
          let v669 = v277.filter(p613 => p613.visible).find(p614 => {
            if (v679.lineInRect(p614.x2 - p614.scale, p614.y2 - p614.scale, p614.x2 + p614.scale, p614.y2 + p614.scale, v668.x, v668.y, v668.x, v668.y)) {
              return true;
            }
          });
          if (v669) {
            return false;
          }
          v669 = v282.filter(p615 => p615.active).find(p616 => {
            let v670 = p616.getScale();
            if (!p616.ignoreCollision && v679.lineInRect(p616.x - v670, p616.y - v670, p616.x + v670, p616.y + v670, v668.x, v668.y, v668.x, v668.y)) {
              return true;
            }
          });
          if (v669) {
            return false;
          }
          return true;
        };
      }
    }
    ;
    class C23 {
      constructor(p617) {
        this.items = p617;
      }
      buyNext() {
        for (const [v671, v672] of this.items) {
          const v673 = v672 === 0 ? f26(v683, v671) : f26(v684, v671);
          const v674 = v672 === 0 ? v286.skins[v671] : v286.tails[v671];
          if (!v673 || v674) {
            continue;
          }
          if (v286.points >= v673.price) {
            f23("c", 1, v671, v672);
            return;
          }
          return;
        }
      }
    }
    class C24 {
      constructor() {
        this.sb = function (p618) {
          p618(3);
          p618(17);
          p618(31);
          p618(23);
          p618(9);
          p618(38);
        };
        this.kh = function (p619) {
          p619(3);
          p619(17);
          p619(31);
          p619(23);
          p619(10);
          p619(38);
          p619(4);
          p619(25);
        };
        this.pb = function (p620) {
          p620(5);
          p620(17);
          p620(32);
          p620(23);
          p620(9);
          p620(38);
        };
        this.ph = function (p621) {
          p621(5);
          p621(17);
          p621(32);
          p621(23);
          p621(10);
          p621(38);
          p621(28);
          p621(25);
        };
        this.db = function (p622) {
          p622(7);
          p622(17);
          p622(31);
          p622(23);
          p622(9);
          p622(34);
        };
        this.km = function (p623) {
          p623(7);
          p623(17);
          p623(31);
          p623(23);
          p623(10);
          p623(38);
          p623(4);
          p623(15);
        };
      }
    }
    ;
    class C25 {
      constructor(p624) {
        this.calcDmg = function (p625, p626) {
          return p625 * p626;
        };
        this.getAllDamage = function (p627) {
          return [this.calcDmg(p627, 0.75), p627, this.calcDmg(p627, 1.125), this.calcDmg(p627, 1.5)];
        };
        this.weapons = [];
        for (let v675 = 0; v675 < p624.weapons.length; v675++) {
          let v676 = p624.weapons[v675];
          let v677 = v676.name.split(" ").length <= 1 ? v676.name : v676.name.split(" ")[0] + "_" + v676.name.split(" ")[1];
          this.weapons.push(this.getAllDamage(v675 > 8 ? v676.Pdmg : v676.dmg));
          this[v677] = this.weapons[v675];
        }
      }
    }
    let v678 = [];
    let v679 = new C3();
    let v680 = new C7();
    let v681 = new C8(C6, v282, v679, vP11);
    let v682 = new C10();
    let v683 = v682.hats;
    let v684 = v682.accessories;
    let v685 = new C11(C9, v283, v278, v277, v681, v680, vP11, v679);
    let v686 = new C12(v277, C13, v278, v680, null, vP11, v679);
    let v687 = new C5();
    let v688 = new C19(v679, v680);
    let v689 = new C22();
    let v690 = new C23([[11, 1], [40, 0], [31, 0], [6, 0], [7, 0], [15, 0], [19, 1], [22, 0], [53, 0], [12, 0], [20, 0], [10, 0], [56, 0], [21, 1], [11, 1], [26, 0], [18, 1], [13, 1]]);
    let v691 = new C24();
    let v692 = new C20();
    let v693;
    let v694;
    let v695 = {};
    let v696 = [];
    let v697;
    let v698 = [];
    let v699 = [];
    function f60(p628) {
      f23("6", p628.slice(0, 30));
    }
    let v700 = [];
    function f61(p629, p630, p631, p632, p633, p634, p635, p636) {
      let v701 = p634 == 0 ? 9 : p634 == 2 ? 12 : p634 == 3 ? 13 : p634 == 5 && 15;
      let v702 = vP11.playerScale * 2;
      let v703 = {
        x: p634 == 1 ? p629 : p629 - v702 * Math.cos(p631),
        y: p634 == 1 ? p630 : p630 - v702 * Math.sin(p631)
      };
      let v704 = v278.filter(p637 => p637.visible && v679.getDist(v703, p637, 0, 2) <= p637.scale).sort(function (p638, p639) {
        return v679.getDist(v703, p638, 0, 2) - v679.getDist(v703, p639, 0, 2);
      })[0];
      if (v704) {
        if (p634 == 1) {
          v704.shooting[53] = 1;
        } else {
          v704.shootIndex = v701;
          v704.shooting[1] = 1;
          f62(v704, p631, p632, p633, p634, v701);
        }
      }
    }
    let v705 = 0;
    let v706 = {
      count: 0,
      dmg: 0
    };
    function f62(p640, p641, p642, p643, p644, p645) {
      if (!p640.isTeam(v286)) {
        v304 = v679.getDirect(v286, p640, 2, 2);
        if (v679.getAngleDist(v304, p641) <= 0.2) {
          p640.bowThreat[p645]++;
          if (p644 == 5) {
            v705++;
          }
          if (p640.dist2 > 234) {
            v706.count++;
            v706.dmg += v680.projectiles[p644].dmg;
          }
          setTimeout(() => {
            p640.bowThreat[p645]--;
            v705--;
            if (v706.count > 0) {
              v706.count--;
              v706.dmg -= v680.projectiles[p644].dmg;
            }
          }, p642 / p643);
          if (p640.bowThreat[9] >= 1 && (p640.bowThreat[12] >= 1 || p640.bowThreat[15] >= 1)) {
            f46(3, p640.aim2);
            f46(1, p640.aim2);
            v293.anti0Tick = 4;
            v286.chat.message = "anti bow insta by " + p640.sid + " " + p640.name;
            v286.chat.count = 445;
            f53(1);
          } else if (v705 >= 2 || v706.count >= 4) {
            f46(3, p640.aim2);
            f46(1, p640.aim2);
            v293.anti0Tick = 4;
            v286.chat.message = "anti proj sync";
            v286.chat.count = 445;
            f53(2);
          }
        }
      }
    }
    function f63(p646, p647, p648) {
      if (v286 && p646) {
        v679.removeAllChildren(v53);
        v53.classList.add("visible");
        v679.generateElement({
          id: "itemInfoName",
          text: v679.capitalizeFirst(p646.name),
          parent: v53
        });
        const v707 = {
          id: "itemInfoDesc",
          text: p646.desc,
          parent: v53
        };
        v679.generateElement(v707);
        if (p648) {} else if (p647) {
          const v708 = {
            class: "itemInfoReq",
            text: !p646.type ? "primary" : "secondary",
            parent: v53
          };
          v679.generateElement(v708);
        } else {
          for (let v709 = 0; v709 < p646.req.length; v709 += 2) {
            v679.generateElement({
              class: "itemInfoReq",
              html: p646.req[v709] + "<span class='itemInfoReqVal'> x" + p646.req[v709 + 1] + "</span>",
              parent: v53
            });
          }
          if (p646.group.limit) {
            v679.generateElement({
              class: "itemInfoLmt",
              text: (v286.itemCounts[p646.group.id] || 0) + "/" + (vP11.isSandbox ? 99 : p646.group.limit),
              parent: v53
            });
          }
        }
      } else {
        v53.classList.remove("visible");
      }
    }
    window.addEventListener("resize", v679.checkTrusted(f64));
    function f64() {
      v294 = window.innerWidth;
      v295 = window.innerHeight;
      let v710 = Math.max(v294 / v296, v295 / v297) * v298;
      v13.width = v294 * v298;
      v13.height = v295 * v298;
      v13.style.width = v294 + "px";
      v13.style.height = v295 + "px";
      v62.setTransform(v710, 0, 0, v710, (v294 * v298 - v296 * v710) / 2, (v295 * v298 - v297 * v710) / 2);
    }
    f64();
    v13 = document.getElementById("touch-controls-fullscreen");
    v13.addEventListener("mousemove", f65, false);
    function f65(p649) {
      v305 = p649.clientX;
      v306 = p649.clientY;
    }
    let v711 = {
      left: false,
      middle: false,
      right: false
    };
    v13.addEventListener("mousedown", f66, false);
    function f66(p650) {
      if (v316 != 1) {
        v316 = 1;
        if (p650.button == 0) {
          v711.left = true;
        } else if (p650.button == 1) {
          v711.middle = true;
        } else if (p650.button == 2) {
          v711.right = true;
        }
      }
    }
    window.addEventListener("mouseup", v679.checkTrusted(f67));
    function f67(p651) {
      if (v316 != 0) {
        v316 = 0;
        if (p651.button == 0) {
          v711.left = false;
        } else if (p651.button == 1) {
          v711.middle = false;
        } else if (p651.button == 2) {
          v711.right = false;
        }
      }
    }
    v13.addEventListener("wheel", f68, false);
    function f68(p652) {
      if (p652.deltaY < 0) {
        v293.reSync = true;
      } else {
        v293.reSync = false;
      }
    }
    function f69() {
      let v712 = 0;
      let v713 = 0;
      for (let v714 in vV315) {
        let v715 = vV315[v714];
        v712 += !!v314[v714] * v715[0];
        v713 += !!v314[v714] * v715[1];
      }
      if (v712 == 0 && v713 == 0) {
        return undefined;
      } else {
        return Math.atan2(v713, v712);
      }
    }
    function f70() {
      return !v241 && v291.dist2 <= v680.weapons[v286.weapons[0]].range + v286.scale * 1.8 && !v688.inTrap;
      f41(21, 1);
    }
    function f71() {
      let v716 = v305 + v302 - v286.x;
      let v717 = v306 + v303 - v286.y;
      if (!v286) {
        return 0;
      }
      if (!v286.lockDir) {
        return Math.atan2(v717 - v295 / 2, v716 - v294 / 2);
      }
      return v320 || 0;
    }
    function f72(p653, p654, p655, p656) {
      const v718 = v286.scale * 1.5;
      const v719 = Math.PI / 2.6 / 2;
      const v720 = Math.PI / 8;
      for (let v721 = -Math.PI; v721 < Math.PI; v721 += v720) {
        const v722 = p653.x + p654 * Math.cos(v721);
        const v723 = p653.y + p654 * Math.sin(v721);
        const v724 = Math.atan2(v723 - v286.y2, v722 - v286.x2);
        const v725 = Math.hypot(v723 - v286.y2, v722 - v286.x2);
        let vF11 = p657 => (p657 + Math.PI * 2) % (Math.PI * 2) - Math.PI;
        let vVF11 = vF11(v724);
        let vVF112 = vF11(p655 - v719);
        let vVF113 = vF11(p655 + v719);
        if (v725 >= v718 && v725 <= p656) {
          if (vVF112 <= vVF113) {
            if (vVF11 >= vVF112 && vVF11 <= vVF113) {
              return true;
            }
          } else if (vVF11 >= vVF112 || vVF11 <= vVF113) {
            return true;
          }
        }
      }
      return false;
    }
    function f73(p658, p659, p660, p661, p662) {
      const v726 = Math.atan2(p658.y - v286.y2, p658.x - v286.x2);
      const v727 = Math.atan2(p660.y - v286.y2, p660.x - v286.x2);
      let v728 = (v726 + v727) / 2;
      if (Math.abs(v726 - v727) > Math.PI) {
        v728 += Math.PI;
        v728 = (v728 + Math.PI) % (Math.PI * 2) - Math.PI;
      }
      let vF72 = f72(p658, p659, v728, p662);
      let vF722 = f72(p660, p661, v728, p662);
      return [vF72 && vF722, v726, v727, v728];
    }
    function f74(p663) {
      if (p663) {
        if (!v286) {
          return "0";
        }
        if (v293.autoAim || f70() && v711.left && v286.reloads[v286.weapons[0]] == 0) {
          v320 = f5("weaponGrind").checked ? "getSafeDir()" : v289.length ? v293.revAim ? "(near.aim2 + Math.PI)" : "near.aim2" : "getSafeDir()";
        } else if (v711.right && v286.reloads[v286.weapons[1] == 10 ? v286.weapons[1] : v286.weapons[0]] == 0) {
          v320 = "getSafeDir()";
        } else if (v688.inTrap && v286.reloads[v688.notFast(v688.info[0]) ? v286.weapons[1] : v286.weapons[0]] == 0) {
          v320 = "traps.aim";
        } else if (!v286.lockDir) {
          if (vF20.noDir) {
            return "undefined";
          }
          v320 = "getSafeDir()";
        }
        return v320;
      } else {
        if (!v286) {
          return 0;
        }
        if (v293.autoAim || f70() && v711.left) {
          v320 = f5("weaponGrind").checked ? f71() : v289.length ? v293.revAim ? v291.aim2 + Math.PI : v291.aim2 : f71();
        } else if (v711.right) {
          v320 = f71();
        } else if (v688.inTrap) {
          let v729 = v688.hasSpike && v681.hitsToBreak(v688.info[1], v286) <= v681.hitsToBreak(v688.info[0], v286) ? v688.info[1] : v688.info[0];
          let v730 = v688.notFast(v729) ? v286.weapons[1] : v286.weapons[0];
          let v731 = v680.weapons[v730].range + v286.scale + (v688.hasSpike ? v688.info[1].scale / 3.25 : 0);
          let v732 = 0;
          if (v688.hasSpike) {
            if (v681.canHit(v286, v688.info[1], v730)) {
              let vF73 = f73(v688.info[0], 50, v688.info[1], 50, v731);
              if (vF73[0]) {
                v732 = vF73[3];
              } else if (v729.sid == v688.info[1].sid) {
                v732 = vF73[2];
              } else {
                v732 = v688.aim;
              }
            } else {
              v732 = v688.aim;
            }
          } else {
            v732 = v688.aim;
          }
          v320 = v732;
        } else if (v274.active) {
          v320 = v274.aim;
        } else if (!v286.lockDir) {
          if (vF20.noDir) {
            return undefined;
          }
          v320 = f71();
        }
        return v320 || 0;
      }
    }
    function f75() {
      if (!v286) {
        return 0;
      }
      if (v293.autoAim || (v711.left || v241 && v291.dist2 <= v680.weapons[v286.weapons[0]].range + v291.scale * 1.8 && !v688.inTrap) && v286.reloads[v286.weapons[0]] == 0) {
        v320 = f5("weaponGrind").checked ? f71() : v289.length ? v293.revAim ? v291.aim2 + Math.PI : v291.aim2 : f71();
      } else if (v711.right && v286.reloads[v286.weapons[1] == 10 ? v286.weapons[1] : v286.weapons[0]] == 0) {
        v320 = f71();
      } else if (v688.inTrap && v286.reloads[v688.notFast(v688.info[0]) ? v286.weapons[1] : v286.weapons[0]] == 0) {
        v320 = v688.aim;
      } else if (!v286.lockDir) {
        v320 = f71();
      }
      return v320 || 0;
    }
    function f76() {
      return v23.style.display != "block" && v58.style.display != "block" && !v231;
    }
    function f77() {
      if (v230.style.display != "none") {
        v58.style.display = "none";
        if (vF52.value != "") {
          let vF12 = function (p664) {
            return {
              found: p664.startsWith("/") && vF19[p664.slice(1).split(" ")[0]],
              fv: vF19[p664.slice(1).split(" ")[0]]
            };
          };
          let vVF12 = vF12(vF52.value);
          if (vVF12.found) {
            if (typeof vVF12.fv.action === "function") {
              vVF12.fv.action(vF52.value);
            }
          } else {
            f60(vF52.value);
          }
          vF52.value = "";
          vF52.blur();
        } else if (v231) {
          vF52.blur();
        } else {
          vF52.focus();
        }
      }
    }
    function f78(p665) {
      let v733 = p665.which || p665.keyCode || 0;
      if (v286 && v286.alive && f76()) {
        if (!v314[v733]) {
          v314[v733] = 1;
          v318[p665.key] = 1;
          if (v733 == 27) {
            v240 = !v240;
            $("#menuDiv").toggle();
            $("#menuChatDiv").toggle();
          } else if (v733 == 69) {
            f44(1);
          } else if (v733 == 67) {
            f177();
          } else if (v286.weapons[v733 - 49] != undefined) {
            v286.weaponCode = v286.weapons[v733 - 49];
          } else if (p665.key == "m") {
            v319.placeSpawnPads = !v319.placeSpawnPads;
          } else if (p665.key == "z") {
            v319.place = !v319.place;
          } else if (p665.key == "Z") {
            if (typeof window.debug == "function") {
              window.debug();
            }
          } else if (v733 == 32) {
            f23("F", 1, f71(), 1);
            f23("F", 0, f71(), 1);
          } else if (p665.key == ",") {
            v286.sync = true;
            f60(f5("syncChat").value);
          } else if (v733 == 16) {
            v272 = true;
            setTimeout(() => {
              v272 = false;
            }, 10000);
          }
        }
      }
    }
    addEventListener("keydown", v679.checkTrusted(f78));
    function f79(p666) {
      if (v286 && v286.alive) {
        let v734 = p666.which || p666.keyCode || 0;
        if (v734 == 13) {
          f77();
        } else if (f76()) {
          if (v314[v734]) {
            v314[v734] = 0;
            v318[p666.key] = 0;
            if (p666.key == ",") {
              v286.sync = false;
            } else if (p666.key == "C") {
              f93();
            }
          }
        }
      }
    }
    window.addEventListener("keyup", v679.checkTrusted(f79));
    function f80() {
      if (v689.ticking) {
        return;
      }
      let v735;
      if (f5("followPlayer").checked) {
        let vParseInt = parseInt(f5("targetSid").value);
        let vF29 = f29(vParseInt);
        if (vF29) {
          if (vF29.dist2 >= f5("serverSync").checked ? 10 : 140) {
            v735 = vF29.aim2;
          } else {
            v735 = undefined;
          }
        }
      } else {
        v735 = f69();
      }
      if (v735 == undefined || v286.moveDir == null || Math.abs(v735 - v286.moveDir) > 0.123) {
        if (!v293.autoPush && !v318.l) {
          f23("f", v735, 1);
        }
      }
    }
    function f81() {}
    f81();
    function f82() {}
    let v736 = [];
    let v737 = [];
    var v738;
    const vF13 = () => {
      let vV680 = v680;
      let vV286 = v286;
      let v739 = [];
      let v740 = document.getElementsByClassName("actionBarItem");
      for (let v741 of v740) {
        if (v741.style.display === "inline-block") {
          const vNumber = Number(v741.id.split("Item")[1]);
          v739.push(vNumber);
        }
      }
      v738 = v739.length;
      for (let v742 = 0; v742 < v739.length; v742++) {
        let v743 = v739[v742];
        let v744 = document.getElementById("actionBarItem" + v743);
        let v745;
        let v746;
        if (v743 >= 19) {
          let v747 = vV680.list[v743 - 16];
          v745 = window.location.href.includes("sandbox") ? 299 : v747.group.limit;
          v746 = Math.min(v745, vV286.itemCounts[v743 - 18] || 0);
        } else if (v743 <= 15) {
          let v748 = vV286.reloads[v743] == 0 ? vV680.weapons[v743].speed : vV286.reloads[v743];
          v745 = vV680.weapons[v743].speed;
          v746 = v748;
        } else {
          v745 = 8;
          v746 = vV286.shameCount;
        }
        if (v746 > 0 || v743 <= 18) {
          let v749 = v737[v743];
          if (!v749) {
            v749 = v737[v743] = document.createElement("canvas");
            v749.id = "itemCount" + v743;
            v749.classList.add("animated-progress");
            v749.style.height = "66px";
            v744.appendChild(v749);
            v749.getContext("2d").translate(68, 66);
          }
          f83(v749.getContext("2d"), v745, v746, v743 <= 15, v743);
        }
      }
    };
    function f83(p667, p668, p669, p670, p671) {
      let vV6802 = v680;
      let vV2862 = v286;
      p667.clearRect(-100, -100, 1000, 1000);
      if (p670) {
        let v750 = {
          primary: vV2862.primaryIndex === undefined ? 1 : (vV6802.weapons[vV2862.primaryIndex].speed - vV2862.reloads[vV2862.primaryIndex]) / vV6802.weapons[vV2862.primaryIndex].speed,
          secondary: vV2862.secondaryIndex === undefined ? 1 : (vV6802.weapons[vV2862.secondaryIndex].speed - vV2862.reloads[vV2862.secondaryIndex]) / vV6802.weapons[vV2862.secondaryIndex].speed
        };
        if (!vV2862.currentReloads) {
          const v751 = {
            primary: v750.primary,
            secondary: v750.secondary
          };
          vV2862.currentReloads = v751;
        }
        const v752 = 0.1;
        vV2862.currentReloads.primary = (1 - v752) * vV2862.currentReloads.primary + v752 * v750.primary;
        vV2862.currentReloads.secondary = (1 - v752) * vV2862.currentReloads.secondary + v752 * v750.secondary;
        let vP671 = p671;
        let v753 = vP671 == vV2862.primaryIndex;
        if (vV2862.reloads[vP671] != 0) {
          p667.beginPath();
          p667.lineWidth = 10;
          p667.strokeStyle = "#FFFFFF";
          p667.arc(10, 10, 60, 0, Math.PI * 2 * (v753 ? vV2862.currentReloads.primary : vV2862.currentReloads.secondary) * -1);
          p667.stroke();
        }
      } else {
        p667.beginPath();
        p667.lineWidth = 10;
        p667.strokeStyle = "#FFFFFF";
        p667.arc(0, 0, 60, 0, Math.PI * 2 * (p669 / p668));
        p667.stroke();
      }
    }
    function f84(p672 = undefined) {
      for (let v754 = 3; v754 < v680.list.length; ++v754) {
        let v755 = v680.list[v754].group.id;
        let v756 = v680.weapons.length + v754;
        if (!v736[v756]) {
          v736[v756] = document.createElement("div");
          v736[v756].id = "itemCount" + v756;
          f5("actionBarItem" + v756).appendChild(v736[v756]);
          v736[v756].style = "\n                        display: block;\n                        position: absolute;\n                        padding-left: 27px;\n                        font-size: 1em;\n                        color: #fff;\n                        ";
          v736[v756].innerHTML = v286.itemCounts[v755] || 0;
        } else if (p672 == v755) {
          v736[v756].innerHTML = v286.itemCounts[p672] || 0;
        }
      }
    }
    function f85() {
      const v757 = v286.scale;
      const v758 = v757 + Math.max(v757 / 1.6, v679.getDist(v286, v286, 2, 3) / 1.6);
      const v759 = v282.filter(p673 => p673.dmg && p673.active && v679.getDist(p673, v286, 0, 2) <= 200 && !p673.isTeamObject(v286)).sort((p674, p675) => v679.getDist(p674, v286, 0, 2) - v679.getDist(p675, v286, 0, 2))[0];
      const v760 = v688.checkSpikeTick();
      if (v760[0] > 0) {
        v293.predictSpikes += v760[0];
        if (!v760[1]) {
          v293.anti0Tick = 3;
          v286.chat.message = "PaS detected by " + v291.sid + " " + v291.name;
          v286.chat.count = 334;
        }
      }
      if (v289.length) {
        const v761 = v282.filter(p676 => p676.dmg && p676.active && !p676.isTeamObject(v286) && v679.getDist(p676, v286, 0, 3) <= p676.scale + v757).sort((p677, p678) => v679.getDist(p677, v286, 0, 2) - v679.getDist(p678, v286, 0, 2))[0];
        if (v761 && v291.reloads[v291.primaryIndex] == 0 && [3, 4, 5].includes(v291.primaryIndex) && v291.dist2 < 210) {
          v293.predictSpikes++;
          if (v688.inTrap) {
            if (v286.reloads[v286.weaponIndex] > v246.tickRate) {
              v293.anti0Tick = 2;
              v286.chat.message = "Anti SpikeTick by " + v291.sid + " (" + v291.name + ")";
              v286.chat.count = 223;
            }
          } else {
            v293.anti0Tick = 3;
            v286.chat.message = "Anti SpikeTick by " + v291.sid + " (" + v291.name + ")";
            v286.chat.count = 334;
          }
        }
      }
      if (!v688.inTrap && v759) {
        f86(v759);
        if (vF20.safeWalk) {
          f87(v759, v758);
        } else {
          v293.safeWalk = false;
        }
      } else {
        f88();
      }
      function f86(p679) {
        if (vF20.autoBreakSpike) {
          v274.info = p679;
          v274.aim = v679.getDirect(p679, v286, 0, 2);
          if (v681.canHit(v286, p679, v286.weapons[1] === 10 ? v286.weapons[1] : v286.weapons[0])) {
            v274.active = true;
          } else {
            v274.active = false;
          }
        } else {
          v274.active = false;
        }
      }
      function f87(p680, p681) {
        const v762 = v679.getDist(p680, v286, 0, 3);
        if (v762 <= p680.scale + p681) {
          v293.safeWalk = true;
          const v763 = v679.getDirect(p680, v286, 0, 3);
          f23("f", v763 + Math.PI, 1);
        } else {
          v293.safeWalk = false;
        }
      }
      function f88() {
        v274.active = false;
        v293.safeWalk = false;
      }
    }
    const vF14 = () => {
      if (v272 || !vF20.autoPush || !v289.length || v291.dist2 >= v592.scale || !v291.inTrap) {
        if (v293.autoPush) {
          v592.active = false;
          v293.autoPush = false;
          f23("f", v286.moveDir, 1);
        }
        return;
      }
      let v764 = {};
      let v765 = v282.filter(p682 => p682.active && p682.dmg && p682.isTeamObject(v286) && v679.getDist(p682, v291.inTrap, 0, 0) <= p682.scale * 0.8 + v291.inTrap.scale + v291.scale);
      let v766 = v765[0];
      if (v765.length == 1) {
        const v767 = {
          x: v766.x,
          y: v766.y,
          scale: v766.scale
        };
        v764 = v767;
      } else {
        let v768 = v765.sort((p683, p684) => p684.health - p683.health).sort((p685, p686) => v679.getDist(p685, v291, 0, 2) - v679.getDist(p686, v291, 0, 2));
        let v769 = v768[0];
        let v770 = v768.filter(p687 => p687.sid != v769.sid).sort((p688, p689) => v679.getDist(p688, v769, 0, 0) - v679.getDist(p689, v769, 0, 0))[0];
        if (v770) {
          let v771 = v679.findMiddlePoint(v769, v770);
          if (v679.getDist(v771, v769, 0, 0) <= 30 + v769.scale && v679.getDist(v771, v770, 0, 0) <= 30 + v770.scale) {
            const v772 = {
              x: v771.x,
              y: v771.y,
              scale: 20
            };
            v764 = v772;
          } else {
            const v773 = {
              x: v769.x,
              y: v769.y,
              scale: v769.scale
            };
            v764 = v773;
          }
        } else {
          const v774 = {
            x: v769.x,
            y: v769.y,
            scale: v769.scale
          };
          v764 = v774;
        }
      }
      if (!v764) {
        if (v293.autoPush) {
          v592.active = false;
          v293.autoPush = false;
          f23("f", v286.moveDir, 1);
        }
        return;
      }
      let v775 = v679.getDirect(v764, v291, 0, 2);
      let v776 = v679.getDirect(v764, v291.inTrap, 0, 0);
      const v777 = {
        x: v764.x,
        y: v764.y
      };
      v293.pushData = v777;
      let v778;
      let v779;
      let v780;
      let v781;
      let v782;
      let v783;
      let v784 = v679.getAngleDist(v776, v775);
      if (v784 > 0.25) {
        let v785 = v679.getDirect(v291.inTrap, v286, 0, 2);
        let v786 = v679.getDirect(v291.inTrap, v291, 0, 2);
        let v787 = v679.getDist(v291.inTrap, v291, 0, 2);
        v778 = v291.scale * 1.5;
        v779 = Math.max(v291.scale / 2, v291.scale + v778 - v787);
        v780 = v786;
        v781 = v679.getAngleDist(v785, v786) < 0.4;
        v782 = v778;
        v783 = 1;
      } else {
        let v788 = v679.getDirect(v764, v286, 0, 2);
        let v789 = v679.getDist(v764, v291, 0, 2);
        v778 = v291.scale * 1.5;
        v779 = Math.max(v291.scale / 2, v764.scale + v291.scale + v778 - v789);
        v780 = v775;
        v781 = v679.getAngleDist(v788, v775) < 0.5;
        v782 = null;
        v783 = 0;
      }
      if (v291.dist2 < v778 * 2 && v781) {
        v592.active = false;
        v592.paths = [];
        let v790 = v679.getDirect({
          x: v291.x2 - Math.cos(v780) * v779,
          y: v291.y2 - Math.sin(v780) * v779
        }, v286, 0, 2);
        f23("f", v790, 1);
        v293.autoPush = true;
      } else {
        let v791 = Math.cos(v780) * v779;
        let v792 = Math.sin(v780) * v779;
        let v793 = v692.calc({
          x: v291.x2 - v791,
          y: v291.y2 - v792
        }, false, "auto push");
        v592.paths = v793.paths;
        v592.attempts = v793.attempts;
        if (v592.paths.length > 0) {
          v592.active = true;
          let v794 = v679.getDirect(v592.paths[1], v286, 0, 2);
          f23("f", v794, 1);
          v293.autoPush = true;
        } else {
          v791 = Math.cos(v780) * v778;
          v792 = Math.sin(v780) * v778;
          v793 = v692.calc({
            x: v291.x2 - v791,
            y: v291.y2 - v792
          }, true, "auto push");
          v592.paths = v793.paths;
          v592.attempts = v793.attempts;
          if (v592.paths.length > 0) {
            v592.active = true;
            let v795 = v679.getDirect(v592.paths[1], v286, 0, 2);
            f23("f", v795, 1);
            v293.autoPush = true;
          } else if (v293.autoPush) {
            f23("f", v286.moveDir, 1);
            v592.active = false;
            v592.active = false;
            v293.autoPush = false;
          }
        }
      }
    };
    let v796 = null;
    const v797 = "wss://beryl-brief-farmhouse.glitch.me";
    let v798 = [];
    let v799 = [];
    function f89() {
      if (!v796 || v796.readyState !== WebSocket.OPEN) {
        v796 = new WebSocket(v797);
        v796.addEventListener("message", p690 => {
          const v800 = JSON.parse(p690.data);
          if (v800.action === "update") {
            let v801 = v800.data.filter(p691 => p691.sid !== v286.sid);
            if (!v801) {
              return;
            }
            v798 = v801.map(p692 => p692.sid);
            v799 = v801.filter(p693 => p693.sync).map(p694 => p694.sid);
          }
        });
        v796.addEventListener("close", () => {
          v796 = null;
        });
      }
    }
    function f90() {
      if (v796 && v796.readyState === WebSocket.OPEN) {
        const v802 = {
          action: "update",
          data: {
            sid: v286.sid,
            server: serverID,
            sync: f5("serverSync").checked
          }
        };
        v796.send(JSON.stringify(v802));
      } else {
        f89();
      }
    }
    setInterval(() => {
      if (v317) {
        f90();
      }
    }, 10000);
    function f91(p695) {
      let v803 = ~~(p695 % 3600 / 60);
      let v804 = ~~p695 % 60;
      if (v804 <= 9) {
        v804 = "0" + v804;
      }
      return v803 + ":" + v804;
    }
    let v805 = {
      "0:13": "Clean up gang with a hoover,",
      "0:15": "pull up and sweep the street",
      "0:17": "Told bae book Park Chinois,",
      "0:18": "the bricks came cheap",
      "0:19": "this week",
      "0:20": "Brought out the glee",
      "0:21": "this week,",
      "0:22": "so somethin might end up",
      "0:23": "on a tee this week",
      "0:24": "Done studio time done the re",
      "0:25": "this week,",
      "0:26": "big bustdown",
      "0:27": "that ain't no Jesus piece",
      "0:28": "No G17,G19 had the G17",
      "0:29": "then the G19",
      "0:30": "Had an old .44",
      "0:31": "but the pin was weak,",
      "0:32": "still gonna spin if need",
      "0:35": "Sayin no smoke backstage,",
      "0:36": "but bro still ask",
      "0:37": "can we bring it please,",
      "0:38": "or a ZK at least",
      "0:40": "You could see me",
      "0:41": "in tape with the Gs,",
      "0:42": "bro just got in a",
      "0:43": "striptape with the Gs",
      "0:44": "Get the drop it's go time,",
      "0:45": "bro came out with the key",
      "0:47": "Yo, 38 autos gang said",
      "0:48": "we need more sweets",
      "0:50": "Before Halloween,",
      "0:51": "we was out playin",
      "0:52": "trick or treat",
      "0:53": "An opp boy swam and drowned,",
      "0:55": "he didn't kick his feet",
      "0:57": "Heard that news",
      "0:58": "I was right by the runaway,",
      "0:59": "made me feel like bree",
      "1:00": "This C comes like",
      "1:01": "a pocket rocket,",
      "1:02": "now the gang",
      "1:03": "in central with C",
      "1:04": "Had my case papers printed,",
      "1:05": "now I got the monogram",
      "1:06": "print on me",
      "1:07": "Runnin throught bells,",
      "1:08": "throwback run with the 12",
      "1:10": "Whole 1 cover the scales,",
      "1:11": "bine at the barbeque,",
      "1:12": "better cover your girl",
      "1:14": "Hate when they're",
      "1:15": "runnin their mouth,",
      "1:16": "see them runnin for help",
      "1:17": "I'm in the Bando,",
      "1:18": "but let me see my man again,",
      "1:19": "and I'll double the L",
      "1:21": "We really leave Shit drownin,",
      "1:22": "you ain't brought 3",
      "1:23": "on an outin",
      "1:24": "Shootouts in",
      "1:25": "the oldest clothes,",
      "1:26": "you wouldn't believe",
      "1:27": "these outfits",
      "1:28": "Foot down no breaks,",
      "1:29": "tryna leave everythin taped",
      "1:30": "Asked bout the shotty,",
      "1:31": "told them I got it",
      "1:32": "from the farm,",
      "1:33": "now they think I got from H",
      "1:34": "Clean up gang with a hoover,",
      "1:36": "pull up and sweep the street",
      "1:38": "Told bae book Park Chinois,",
      "1:39": "the bricks came cheap",
      "1:40": "this week",
      "1:41": "Brought out the glee",
      "1:42": "this week,",
      "1:43": "so somethin might end up",
      "1:44": "on a tee this week",
      "1:45": "Done studio time done the re",
      "1:46": "this week,",
      "1:47": "big bustdown",
      "1:48": "that ain't no Jesus piece",
      "1:49": "No G17,G19 had the G17",
      "1:50": "then the G19",
      "1:51": "Had an old .44",
      "1:52": "but the pin was weak,",
      "1:53": "still gonna spin if need",
      "1:54": "Sayin no smoke backstage,",
      "1:55": "but bro still ask",
      "1:56": "can we bring it please,",
      "1:57": "or a ZK at least",
      "1:59": "This opps in this",
      "2:00": "spliff's sativa,",
      "2:01": "still put smoke in the whiz,",
      "2:02": "Khalifa",
      "2:03": "Bad B don't wanna",
      "2:04": "lock the smoke,",
      "2:05": "I just gotta love her",
      "2:06": "and leave her",
      "2:07": "Yo, had the Liz",
      "2:08": "come like Peter",
      "2:09": "and the bujj like Cleveland",
      "2:10": "This ice in my wrist says",
      "2:11": "whole lotta money,",
      "2:12": "swear it's comin like BIA",
      "2:14": "O14 me, Zee had the bruc",
      "2:15": "back in a bruck down Kia",
      "2:16": "Now you'll find me in Venice,",
      "2:17": "tryin some shellfish",
      "2:18": "oh mama mia",
      "2:19": "Old school I was",
      "2:20": "hoppin out first,",
      "2:21": "had bro sayin",
      "2:22": "stop bein selfish",
      "2:23": "Yo,",
      "2:24": "now I just leave that stage,",
      "2:25": "pullin strings like Elvis",
      "2:26": "Ding dong on an outin,",
      "2:27": "would've been a loss",
      "2:28": "if we found him",
      "2:29": "Can't record,",
      "2:30": "need more points on the board",
      "2:31": "Gang, tape it first,",
      "2:32": "then I'll give them an album",
      "2:33": "Spoke to the yard man,",
      "2:34": "wanna know the P for the .45,",
      "2:35": "like Alhan",
      "2:36": "Spoke to the runner,",
      "2:37": "said he's got more than a oner",
      "2:39": "and he's still counting",
      "2:40": "Go get that car,",
      "2:41": "congestion zone,",
      "2:42": "gotta step with ours",
      "2:43": "Pocket rocket,",
      "2:44": "had it in a pouch",
      "2:45": "next to the brush",
      "2:46": "and the metro card",
      "2:47": "Double R truck,",
      "2:48": "stars in the roof,",
      "2:49": "and we got a seperate star",
      "2:50": "Ain't done it in a Tesla yet,",
      "2:51": "if we do thats lead",
      "2:52": "in an electric car",
      "2:53": "Clean up gang with a hoover,",
      "2:55": "pull up and sweep the street",
      "2:57": "Told bae book Park Chinois,",
      "2:58": "the bricks came cheap",
      "2:59": "this week",
      "3:00": "Brought out the glee",
      "3:01": "this week,",
      "3:02": "so somethin might end up",
      "3:03": "on a tee this week",
      "3:04": "Done studio time done the re",
      "3:05": "this week,",
      "3:06": "big bustdown",
      "3:07": "that ain't no Jesus piece",
      "3:08": "No G17,G19 had the G17",
      "3:09": "then the G19",
      "3:10": "Had an old .44",
      "3:11": "but the pin was weak,",
      "3:12": "still gonna spin if need",
      "3:13": "Sayin no smoke backstage,",
      "3:14": "but bro still ask",
      "3:15": "can we bring it please,",
      "3:16": "or a ZK at least"
    };
    let v806 = {
      "0:16": "Ahhhhh",
      "0:19": "gas,",
      "0:20": "Gas,",
      "0:21": "gas",
      "0:23": "Ahhhhh",
      "0:28": "Do you like",
      "0:29": "My car?",
      "0:31": "my car",
      "0:32": "m y  c a r",
      "0:52": "Guess you're ready",
      "0:53": "Cause I'm waiting for you",
      "0:55": "It's gonna be so exciting!",
      "0:58": "Got this feeling",
      "1:00": "Really deep in my soul",
      "1:01": "Let's get out, I wanna go",
      "1:03": "Come along, get it on!",
      "1:05": "Gonna take my car",
      "1:07": "Gonna sit in",
      "1:08": "Gona drive along till I get you",
      "1:10": "Cause I'm crazy, hot and ready",
      "1:12": "But you'll like it!",
      "1:14": "I wanna race for you!",
      "1:15": "(Shall I go now?)",
      "1:17": "Gas Gas Gas!",
      "1:19": "I'm gonna step on the gas",
      "1:20": "Tonight I'll fly!",
      "1:22": "And be your lover",
      "1:23": "Yeah yeah yeah!",
      "1:25": "I'll be so quick as a flash",
      "1:27": "And I'll be your hero",
      "1:29": "Gas Gas Gas!",
      "1:31": "I'm gonna run as a flash",
      "1:32": "Tonight I'll fight!",
      "1:34": "To be the winner",
      "1:35": "Yeah yeah yeah!",
      "1:37": "I'm gonna step on the gas",
      "1:39": "And you'll see the big show!",
      "1:54": "Don't be lazy",
      "1:56": "Cause I'm burning for you",
      "1:57": "It's like a hot sensation!",
      "2:00": "Got this power",
      "2:02": "That is taking me out",
      "2:03": "Yes, I've got a crush on you",
      "2:05": "Ready, now",
      "2:06": "Ready, go!",
      "2:07": "Gonna take my car",
      "2:09": "Gonna sit in",
      "2:10": "Gona drive along til I get you",
      "2:13": "Cause I'm crazy, hot and ready",
      "2:14": "But you'll like it!",
      "2:16": "I wanna race for you!",
      "2:18": "Shall I go now?",
      "2:19": "Gas Gas Gas!",
      "2:21": "I'm gonna step on the gas",
      "2:23": "Tonight I'll fly!",
      "2:24": "And be your lover",
      "2:25": "Yeah yeah yeah!",
      "2:27": "I'll be so quick as a flash",
      "2:29": "And I'll be your hero",
      "2:31": "Gas Gas Gas!",
      "2:33": "I'm gonna run as a flash",
      "2:35": "Tonight I'll fight!",
      "2:37": "To be the winner",
      "2:38": "Yeah yeah yeah!",
      "2:40": "I'm gonna step on the gas",
      "2:41": "And you'll see the big show!",
      "3:09": "Guess you're ready",
      "3:10": "Cause I'm waiting for you",
      "3:12": "It's gonna be so exciting!",
      "3:15": "Got this feeling",
      "3:17": "Really deep in my soul",
      "3:18": "Let's get out, I wanna go",
      "3:20": "Come along, get it on",
      "3:22": "Gonna take my car",
      "3:23": "Do you like my car?",
      "3:28": "Cause I'm crazy, hot and ready",
      "3:30": "But you'll like it!",
      "3:31": "I wanna race for you!",
      "3:33": "Shall I go now?",
      "3:34": "Gas Gas Gas!",
      "3:37": "I'm gonna step on the gas",
      "3:39": "Tonight I'll fly!",
      "3:41": "And be your lover",
      "3:42": "Yeah yeah yeah!",
      "3:43": "I'll be so quick as a flash",
      "3:45": "And I'll be your hero",
      "3:48": "Gas Gas Gas!",
      "3:50": "I'm gonna run as a flash",
      "3:51": "Tonight I'll fight!",
      "3:53": "To be the winner",
      "3:54": "Yeah yeah yeah!",
      "3:56": "I'm gonna step on the gas",
      "3:58": "And you'll see the big show!",
      "4:01": "Gas Gas Gas!",
      "4:04": "Yeah yeah yeah!",
      "4:07": "Gas Gas Gas!",
      "4:10": "And you'll see the big show!",
      "4:27": "Ahhhhh"
    };
    let v807 = {
      "0:13": "Oh, oh",
      "0:14": "Yeah, yeah",
      "0:16": "Oh, oh",
      "0:17": "Yeah, yeah, oh",
      "0:19": "Oh, oh",
      "0:20": "Yeah, yeah",
      "0:22": "Oh, oh",
      "0:25": "I wear women's underwear",
      "0:27": "And then I go to strike a pose",
      "0:29": "In my full length mirror",
      "0:30": "I cross my legs",
      "0:31": "Just like a queer",
      "0:33": "But my libido is strong",
      "0:34": "When a lady is near, yeah",
      "0:36": "What defines",
      "0:37": "A straight man's straight?",
      "0:39": "Is it the boxer in the briefs",
      "0:41": "Or a 12 ounce steak? Nah",
      "0:43": "I tell you what a women",
      "0:44": "Loves most",
      "0:45": "It's a man who can slap",
      "0:47": "But can also stroke",
      "0:49": "Goin' in the wind is an eddy",
      "0:51": "Of the truth and it's naked",
      "0:52": "It's verbatim",
      "0:53": "And it's shakin'",
      "0:56": "No, no, no, no, no, no,",
      "0:58": "no, no, no, no, no,",
      "0:59": "no more gettin' elated",
      "1:00": "No more listless invitations",
      "1:05": "URGH",
      "1:06": "I live by a hospital",
      "1:09": "And every day",
      "1:10": "I go out walking past",
      "1:11": "It's sickly windows",
      "1:12": "I see people dying there",
      "1:15": "But my tender age",
      "1:16": "Makes it hard to care",
      "1:18": "The incinerator and",
      "1:19": "A big smoke stack",
      "1:21": "It's a phallic symbol and",
      "1:23": "It makes me laugh",
      "1:24": "All I need is a heart attack",
      "1:27": "C'mon, humble my bones",
      "1:28": "With a cardiac",
      "1:31": "Goin' in the wind is an eddy",
      "1:33": "Of the truth and it's naked",
      "1:35": "It's verbatim and it's shakin'",
      "1:38": "No, no, no, no, no, no,",
      "1:39": "no, no, no, no, no,",
      "1:42": "no more gettin' elated",
      "1:43": "No more listless invitations",
      "1:47": "For the love of Fuck",
      "1:49": "For the sake of Pete",
      "1:50": "Did you ever really think",
      "1:52": "You'd love a guy like me?",
      "1:53": "I am the rooster in the mornin",
      "1:55": "I'm the Cock of the day",
      "1:57": "I'm the boxer in the briefs",
      "1:58": "I'm a 12 ounce steak",
      "1:59": "Ayy-oh, Ayy-oh, Ayy-oh, Hey-oh",
      "2:05": "Yeah-bo, yeah-bo, yeah-bo,",
      "2:10": "yeah-bo, yeah-bo",
      "2:14": "It's verbatim",
      "2:15": "And yeah, and it's naked",
      "2:18": "And yeah, and it's shakin'",
      "2:21": "It shakes, shakes, shakes",
      "2:24": "Oh-oh, yeah-yeah,",
      "2:28": "oh-oh, yeah-yeah-oh",
      "2:30": "Oh-oh, yeah-yeah,",
      "2:33": "oh-oh, yeah-yeah-oh",
      "2:36": "Oh-oh, yeah-yeah,",
      "2:39": "oh-oh, yeah-yeah-oh",
      "2:42": "Oh-oh, yeah-yeah"
    };
    let v808 = {
      "0:03": "Baby, this is do or die",
      "0:06": "Feel it in my veins at night",
      "0:08": "Emotional suicide",
      "0:11": "You know it's an eye for eye",
      "0:13": "I didn't wanna walk,",
      "0:15": "didn't wanna walk the plank",
      "0:19": "No,",
      "0:20": "but then ready or not,",
      "0:21": "then ready or not it came",
      "0:23": "Like the thunder,",
      "0:24": "I was on my way to going under",
      "0:26": "(under)",
      "0:27": "Swimming in the pain,",
      "0:28": "yeah, I was covered",
      "0:30": "In a tidal wave,",
      "0:32": "in a tidal wave",
      "0:33": "But I'm a fighter",
      "0:34": "(hu)",
      "0:35": "Tryna take me down,",
      "0:36": "I'm going higher",
      "0:37": "(I'm higher)",
      "0:38": "Baby, you've been playing",
      "0:39": "with some fire",
      "0:40": "(you've playing)",
      "0:41": "You've been playing with fire",
      "0:42": "(playing with fire)",
      "0:43": "One day you will see",
      "0:46": "What you made of me",
      "0:48": "Found my inner beast",
      "0:49": "(inner beast)",
      "0:51": "You'll watch it release",
      "0:53": "In the dead of night",
      "1:05": "In the dead of night",
      "1:10": "In the dead of",
      "1:14": "  Night  ",
      "1:18": "Baby, when it's do or die",
      "1:19": "(when it's do or die)",
      "1:20": "You know it's an eye for eye",
      "1:22": "(it's an eye for eye)",
      "1:23": "Feel the energy align",
      "1:25": "(oh)",
      "1:26": "In the dead of night",
      "1:27": "you've been playing with fire",
      "1:28": "In the dead of night,",
      "1:31": "In the dead of night",
      "1:33": "(in the dead of night)",
      "1:37": "In the dead of night",
      "1:50": "You can save your alibi",
      "1:52": "I already know you lied",
      "1:55": "Oh no, no don't even try",
      "1:57": "(don't even try)",
      "1:58": "Watch the flame in me ignite",
      "2:00": "You didn't wanna walk,",
      "2:02": "didn't wanna walk the plank",
      "2:05": "But then ready or not,",
      "2:07": "then ready or not it came",
      "2:09": "Baby, it was dark",
      "2:10": "It was hard to see",
      "2:12": "And that's when a spark",
      "2:14": "lit inside of me,",
      "2:16": " Oh ",
      "2:17": "I was lost in reverie,",
      "2:19": "Oh-oh, oh-oh",
      "2:22": "One day you will see",
      "2:23": "(you will see)",
      "2:24": "What you made of me",
      "2:27": "What's inside of me",
      "2:28": "(what's inside of me)",
      "2:30": "Oh, one day you will see",
      "2:35": "I found my inner beast",
      "2:37": "(I found my inner beast)",
      "2:38": "You'll watch it release",
      "2:41": "In the dead of night, oh",
      "2:51": "In the dead of night",
      "2:55": "(In the dead of)",
      "2:57": "In the dead of night, oh-woah",
      "3:03": "In the dead of night",
      "3:05": "Baby, when it's do or die",
      "3:07": "You know it's an eye for eye",
      "3:10": "Feel the energy align",
      "3:12": "In the dead of night",
      "3:16": " In the dead of night ",
      "3:18": "  In the dead of night  ",
      "3:21": "   In the dead of night   ",
      "3:23": "    In the dead of night    ",
      "3:26": "And one day you will see",
      "3:28": "What you made of me",
      "3:31": "What's inside of me",
      "3:35": "Oh, and one day you will see",
      "3:39": "I found my inner beast",
      "3:42": "And you'll watch it release"
    };
    let v809 = {
      "0:07": "As the wind whips 'round",
      "0:09": "I take a breath for victory",
      "0:14": "Wanna play tag",
      "0:15": "or wave your white flag?",
      "0:17": "'Cause you'll never touch me",
      "0:22": "King of hearts, all in",
      "0:24": "(All in)",
      "0:25": "It's not a sin to wanna win",
      "0:27": "(Sin to wanna win)",
      "0:28": "Can't see me",
      "0:30": "Flyin' like a bee,",
      "0:32": "black and yellow energy",
      "0:34": "Only me on my team, naturally",
      "0:37": "I see a dreamer",
      "0:39": "over there by the water",
      "0:41": "But I got no,",
      "0:42": "but I got no",
      "0:43": "kakorrhaphiophobia",
      "0:45": "I see a dreamer",
      "0:46": "and he ripe for the slaughter",
      "0:48": "But I got no,",
      "0:49": "but I got no",
      "0:50": "kakorrhaphiophobia",
      "0:53": "Phobia,",
      "0:54": "phobia,",
      "0:55": " p h o b i a ",
      "0:56": "(Oh~)",
      "0:57": "I hear battalions",
      "0:58": "sing of my demise",
      "0:59": "But I don't know the words",
      "1:00": "(What?)",
      "1:01": "I take a road of my own making",
      "1:02": "On a journey, no returning",
      "1:04": "Woah oh,",
      "1:05": "woah oh,",
      "1:06": "that's how it goes",
      "1:08": "They've drawn the battle line",
      "1:09": "and I see fire in their eyes",
      "1:12": "Na na na na na na",
      "1:14": "I'm better off not listening",
      "1:16": "Na na na na na na",
      "1:17": "I've got my own song to sing",
      "1:19": "Flyin' like a bee,",
      "1:20": "black and yellow energy",
      "1:23": "Only me on my team,",
      "1:24": "Naturally, wooaahhhh",
      "1:27": "I see a dreamer",
      "1:28": "over there by the water",
      "1:30": "But I got no,",
      "1:31": "but I got no,",
      "1:33": "kakorrhaphiophobia",
      "1:35": "I see a dreamer",
      "1:36": "and hes ripe for the slaughter",
      "1:38": "But I got no,",
      "1:39": "but I got no",
      "1:41": "kakorrhaphiophobia",
      "1:43": "Phobia,",
      "1:44": "phobia,",
      "1:45": "  phobia  ",
      "1:46": "(Phobia)",
      "1:47": "(Oh~)",
      "1:52": "Ooooohh",
      "1:59": "My boat is full,",
      "2:00": "why don't you swim?",
      "2:02": "Enjoy my fortress,",
      "2:04": "I'll be right in",
      "2:06": "I stare a hole",
      "2:07": "through danger's soul",
      "2:09": "We all know I can do this,",
      "2:12": "eyes closed",
      "2:16": "I refuse to fail",
      "2:19": "So heed this cautionary tale",
      "2:23": "You've got dragons,",
      "2:25": "my little friend",
      "2:26": "You'll conquer them in the end",
      "2:29": "If you can,",
      "2:30": "(Aha-ha-ha-ha, jump in)",
      "2:32": "I see a dreamer",
      "2:33": "over there by the water",
      "2:34": "Oh, but I got no,",
      "2:35": "but I got no,",
      "2:36": "kakorrhaphiophobia",
      "2:39": "I see a dreamer",
      "2:40": "and hes ripe for the slaughter",
      "2:43": "Oh, but I got no,",
      "2:44": "but I got no",
      "2:45": "kakorrhaphiophobia",
      "2:47": "Phobia,",
      "2:48": "phobia,",
      "2:49": "pHoBiA",
      "2:50": "(Oh)"
    };
    let v810 = {
      "0:25": "I saw her in",
      "0:27": "the rightest way",
      "0:30": "Looking like",
      "0:32": "Anne Hathaway",
      "0:35": "Laughing while",
      "0:37": "she hit her pen",
      "0:39": "and coughed",
      "0:42": "and coughed.",
      "0:45": "And then",
      "0:46": "she came",
      "0:47": "up to my knees",
      "0:50": "Begging, Baby",
      "0:53": "would you please",
      "0:55": "Do the things",
      "0:57": "you said",
      "0:59": "you'd do to me",
      "1:02": "to me?",
      "1:04": "Oh, won't you",
      "1:05": "kiss me on the mouth",
      "1:07": "and love me like a sailor",
      "1:10": "And when",
      "1:11": "you get a taste me",
      "1:13": "tell me",
      "1:14": "what's my flavor",
      "1:15": "I don't believe in God",
      "1:17": "but i believe",
      "1:18": "that you're my savior"
    };
    let v811 = {
      "0:30": "They tell me keep it simple,",
      "0:31": "I tell them take it slow",
      "0:32": "I feed and water an idea,",
      "0:33": "so I let it grow",
      "0:35": "I tell them take it easy,",
      "0:36": "they laugh and tell me no",
      "0:37": "It's cool, but I don't see them",
      "0:38": "laughin' at my money, though",
      "0:40": "They spittin' facts at me,",
      "0:41": "Im spittin' tracks, catch me?",
      "0:43": "Im spinning gold out my records",
      "0:44": "know you can't combat me",
      "0:45": "They tell me, Jesus walks,",
      "0:47": "I tell them, money talks",
      "0:48": "Bling got me chill, 'cause im",
      "0:49": "living in an icebox",
      "0:51": "They tell me I've been sleepin',",
      "0:52": "I say im wide awake",
      "0:53": "Tracks hot and ready so they,",
      "0:54": "call me Mr. Easy-Bake",
      "0:56": "They say the grass is greener,",
      "0:57": "I think my grass is dank",
      "0:58": "Drivin' with a drank on an",
      "0:59": "empty tank to the bank",
      "1:02": "Do you feel me? Take a look,",
      "1:03": "inside my brain",
      "1:04": "The people always different,",
      "1:05": "but it always feels the same",
      "1:07": "That's the real me, pop the",
      "1:08": "champagne",
      "1:09": "The haters wanna hurt me,",
      "1:10": "and im laughin' at the pain",
      "1:12": "Stayin' still, eyes closed",
      "1:14": "Let the world just pass me by,",
      "1:17": "Pain pills, nice clothes",
      "1:20": "If I fall, I think I'll fly",
      "1:23": "Touch me, Midas",
      "1:25": "Make me part of your design",
      "1:28": "None to, guide us",
      "1:30": "I feel fear",
      "1:31": "for the very last time",
      "1:54": "They tell me that im special,",
      "1:56": "I smile and shake my head",
      "1:57": "I'll give them stories to tell,",
      "1:58": "friends bout the things I said",
      "2:00": "They tell me im so humble,",
      "2:01": "I say im turning red",
      "2:02": "They let me lie to them",
      "2:03": "and dont feel like",
      "2:04": "they've been misled",
      "2:05": "They give so much to me,",
      "2:06": "Im losing touch, get me?",
      "2:07": "Served on a silver platter,",
      "2:08": "ask for seconds,",
      "2:09": "they just let me",
      "2:10": "They tell me im a god,",
      "2:11": "Im lost in the facade",
      "2:13": "Six feet off the ground at all",
      "2:14": "times, I think im feelin' odd",
      "2:15": "No matter what I make,",
      "2:17": "they never see mistakes",
      "2:18": "Makin' so much bread,",
      "2:19": "I don't care that",
      "2:20": "they're just fake",
      "2:21": "They tell me they're below me,",
      "2:22": "I act like im above",
      "2:23": "The people blend together,",
      "2:24": "but I'd be lost",
      "2:25": "without their love",
      "2:26": "Can you heal me?",
      "2:27": " Have I gained too much?",
      "2:29": "When you become untouchable,",
      "2:30": "you're unable to touch",
      "2:31": "Is there a real me?",
      "2:32": "Pop the champagne",
      "2:34": "It hurts me just to think,",
      "2:35": "and I don't do pain",
      "2:37": "Stayin' still, eyes closed,",
      "2:39": "Let the world just pass me by",
      "2:42": "Pain pills, nice clothes,",
      "2:44": "If I fall, I think I'll fly",
      "2:47": "Touch me, Midas,",
      "2:50": "Make me part of your design,",
      "2:53": "None to guide us,",
      "2:55": "I feel fear",
      "2:56": "for the very last time",
      "2:58": "Lay still, restless,",
      "3:00": "Losing sleep while",
      "3:01": "I lose my mind",
      "3:03": "All thrill, no stress,",
      "3:06": "All my muses left behind",
      "3:09": "World is below,",
      "3:11": "So high up, im near-divine",
      "3:14": "Lean in, let go,",
      "3:16": "I feel fear",
      "3:17": "for the very last time"
    };
    let v812 = {
      "0:04": "Ooh-ooh-ooh",
      "0:07": "I will be good",
      "0:18": "We'll be together",
      "0:19": "'til the morning light",
      "0:21": "Don't stand so,",
      "0:23": "don't stand so,",
      "0:24": "Don't stand so close to me",
      "0:39": "Baby, you belong to me",
      "0:42": "Yes, you do, yes, you do",
      "0:44": "you're my affection",
      "0:46": "I can make you wanna cry",
      "0:48": "Yes, I do, yes, I do",
      "0:50": "I will be good",
      "0:52": "You're like a cruel device",
      "0:54": "your blood is cold like ice",
      "0:55": "Poison for my veins",
      "0:56": "I'm breaking my chains",
      "0:58": "One look and you can kill",
      "0:59": "my pain now is your thrill",
      "1:01": "Your love is for me",
      "1:03": "I say, try me",
      "1:05": "take a chance on emotions",
      "1:07": "For now and ever",
      "1:08": "close to your heart",
      "1:10": "I say, try me",
      "1:11": "take a chance on my passion",
      "1:13": "We'll be together all the time",
      "1:16": "I say, try me",
      "1:17": "take a chance on emotions",
      "1:20": "For now and ever",
      "1:21": "into my heart",
      "1:22": "I say, try me",
      "1:23": "take a chance on my passion",
      "1:26": "We'll be together",
      "1:27": "'til the morning light",
      "1:29": "Don't stand so,",
      "1:30": "don't stand so,",
      "1:32": "Don't stand so close to me",
      "1:47": "Baby, let me take control",
      "1:50": "Yes, I do, yes, I do",
      "1:52": "you are my target",
      "1:53": "No one ever made me cry",
      "1:56": "What you do, what you do",
      "1:58": "baby's so bad",
      "2:00": "You're like a cruel device",
      "2:01": "your blood is cold like ice",
      "2:03": "Poison for my veins",
      "2:04": "I'm breaking my chains",
      "2:06": "One look and you can kill",
      "2:07": "my pain now is your thrill",
      "2:09": "Your love is for me",
      "2:11": "I say, try me",
      "2:13": "take a chance on emotions",
      "2:15": "For now and ever",
      "2:16": "close to your heart",
      "2:17": "I say, try me",
      "2:19": "take a chance on my passion",
      "2:21": "We'll be together all the time",
      "2:23": "I say, try me",
      "2:25": "take a chance on emotions",
      "2:27": "For now and ever",
      "2:28": "into my heart",
      "2:29": "I say, try me",
      "2:31": "take a chance on my passion",
      "2:33": "We'll be together",
      "2:34": "'til the morning light",
      "2:37": "Don't stand so,",
      "2:38": "don't stand so,",
      "2:40": "Don't stand so close to me",
      "3:07": "I say, try me",
      "3:08": "take a chance on emotions",
      "3:10": "For now and ever",
      "3:11": "close to your heart",
      "3:13": "I say, try me",
      "3:14": "take a chance on my passion",
      "3:17": "We'll be together all the time",
      "3:19": "I say, try me",
      "3:20": "take a chance on emotions",
      "3:23": "For now and ever",
      "3:24": "into my heart",
      "3:25": "I say, try me",
      "3:26": "take a chance on my passion",
      "3:29": "We'll be together",
      "3:30": "'til the morning light",
      "3:32": "Don't stand so,",
      "3:34": "don't stand so,",
      "3:35": "Don't stand so close to me",
      "3:50": "Try me",
      "3:51": "take a chance on emotions",
      "3:53": "For now and ever",
      "3:54": "close to your heart",
      "3:55": "I say, try me",
      "3:56": "take a chance on my passion",
      "3:59": "We'll be together all the time",
      "4:02": "I say, try me",
      "4:03": "take a chance on emotions",
      "4:06": "For now and ever",
      "4:07": "into my heart",
      "4:08": "I say, try me",
      "4:09": "take a chance on my passion",
      "4:12": "We'll be together",
      "4:13": "'til the morning light",
      "4:15": "Don't stand so,",
      "4:17": "don't stand so,",
      "4:18": "Don't stand so close to me"
    };
    let v813 = {
      "0:01": "Everything is awesome",
      "0:03": "Everything is cool when",
      "0:05": "you're part of a team",
      "0:07": "Everything is awesome",
      "0:10": "When you're living out a dream",
      "0:15": "Everything is better when",
      "0:16": "we stick together",
      "0:21": "Side by side, you and I",
      "0:23": "are gonna win forever,",
      "0:25": "let's party forever",
      "0:28": "We're the same, I'm like you,",
      "0:29": "you're like me",
      "0:30": "We are working in harmony",
      "0:33": "Everything is awesome",
      "0:36": "Everything is cool when you're",
      "0:38": "part of a team",
      "0:40": "Everything is awesome",
      "0:43": "When you're living out a dream",
      "0:45": "(Woooo! Three, two, one, go!)",
      "0:46": "Have you heard the news?",
      "0:47": "Everyone's talkin'",
      "0:48": "Life is good 'cause",
      "0:49": "everything's awesome",
      "0:50": "Lost my job, there's",
      "0:51": "a new opportunity",
      "0:52": "More free time for",
      "0:53": "my awesome community",
      "0:54": "I feel more awesome than an",
      "0:55": "awesome possum",
      "0:56": "Dip my body in",
      "0:57": "chocolate frostin'",
      "0:58": "Three years later,",
      "0:59": "wash off the frostin'",
      "1:00": "Smellin' like a blossom,",
      "1:01": "everything is awesome",
      "1:02": "Stepped in mud,",
      "1:03": "got new brown shoes",
      "1:04": "It's awesome to win, and it's",
      "1:05": "awesome to lose",
      "1:08": "Everything is better when",
      "1:09": "we stick together",
      "1:14": "Side by side, you and I",
      "1:15": "are gonna win forever,",
      "1:17": "let's party forever",
      "1:21": "We're the same, I'm like you,",
      "1:22": "you're like me",
      "1:23": "We are working in harmony",
      "1:28": "Everything is awesome",
      "1:31": "Everything is cool when",
      "1:32": "you're part of a team",
      "1:34": "Everything is awesome",
      "1:37": "When you're living out a dream",
      "1:40": "Blue skies, bouncy springs",
      "1:41": "We just named",
      "1:42": "two awesome things",
      "1:43": "A Nobel prize,",
      "1:44": "a piece of string",
      "1:45": "You know what's awesome?",
      "1:46": "Everything!",
      "1:47": "Dogs with fleas, allergies",
      "1:48": "A book of Greek antiquities",
      "1:50": "Brand new pants,",
      "1:51": "a very old vest",
      "1:52": "Awesome items are the best",
      "1:53": "Trees, frogs, clogs,",
      "1:56": "they're awesome",
      "1:57": "Rocks, clocks, and socks,",
      "1:59": "they're awesome",
      "2:00": "Figs, and jigs, and twigs,",
      "2:02": "that's awesome",
      "2:03": "Everything you see or think",
      "2:05": "or say is awesome",
      "2:27": "Everything is awesome",
      "2:30": "Everything is cool when you're",
      "2:32": "part of a team",
      "2:33": "Everything is awesome",
      "2:36": "When you're living out a dream"
    };
    let v814 = {};
    const v815 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/Headie_One_K-Trap_-_PARK_CHINOIS_(Hydr0.org).mp3");
    const v816 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/Eurobeat_-_Manuel_-_Gas_Gas_Gas_(Hydr0.org).mp3");
    const v817 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/verbatim_-_mother_mother_(Hydr0.org).mp3");
    const v818 = new Audio("https://ncs.io/track/download/3db2d7b2-fe13-4063-a618-a29eca83f45f?_gl=1*1we4mwn*_up*MQ..*_ga*MTgxNjU2NDI0MC4xNzMwMTYzNTE0*_ga_PFS54FR7NV*MTczMDE2MzUxNC4xLjAuMTczMDE2MzUxNC4wLjAuMA..");
    const v819 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/I_See_a_Dreamer_Dream_Team_Original_Song_-_CG5_(Hydr0.org).mp3");
    const v820 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/Gigi_Perez_-_Sailor_Song_(Hydr0.org).mp3");
    const v821 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/he_Living_Tombstone_-_My_Ordinary_Life_(Hydr0.org).mp3");
    const v822 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/dont_stand_so_close_to_me_-_initial_d_(Hydr0.org).mp3");
    const v823 = new Audio("https://github.com/oe2735/music/raw/refs/heads/main/The_LEGO_Movie_-_Everything_is_awesome_(Hydr0.org).mp3");
    const v824 = new Audio("");
    let v825 = false;
    let v826 = "";
    function f92(p696, p697) {
      p696.play();
      p696.ontimeupdate = function (p698) {
        let v827 = p697[f91(Math.round(this.currentTime | 0))];
        if (v827 && v827 !== v826) {
          v826 = v827;
          f60(v827);
        }
      };
      p696.onended = function () {
        if (v825) {
          p696.play();
        }
      };
      v825 = true;
    }
    function f93() {
      if (!v825) {
        switch (f5("songChat").value) {
          case "song1":
            f92(v815, v805);
            break;
          case "song2":
            f92(v816, v806);
            break;
          case "song3":
            f92(v817, v807);
            break;
          case "song4":
            f92(v818, v808);
            break;
          case "song5":
            f92(v819, v809);
            break;
          case "song6":
            f92(v820, v810);
            break;
          case "song7":
            f92(v821, v811);
            break;
          case "song8":
            f92(v822, v812);
            break;
          case "song9":
            f92(v823, v813);
            break;
          case "song10":
            f92(v824, v814);
            break;
          default:
            break;
        }
      } else {
        v815.pause();
        v816.pause();
        v817.pause();
        v818.pause();
        v819.pause();
        v820.pause();
        v821.pause();
        v822.pause();
        v823.pause();
        v824.pause();
        v825 = false;
      }
    }
    function f94() {
      let v828 = Math.atan2(v291.y2 - v286.y2, v291.x2 - v286.x2);
      let vInfinity = Infinity;
      let v829 = v291.inTrap;
      if (v291.dist2 - v286.scale * 1.8 <= v680.weapons[v286.weapons[0]].range && !v829) {
        for (let v830 of v282) {
          if (v830.dmg && v830.active && v830.isTeamObject(v286) || v830.type == 1 && v830.y >= 12000) {
            let v831 = (v680.weapons[v286.weapons[0]].knock || 0) * v680.weapons[v286.weapons[0]].range + v286.scale * 2;
            let v832 = ![undefined, 9, 12, 13, 15].includes(v286.weapons[1]) ? (v680.weapons[v286.weapons[1]].knock || 0) * v680.weapons[v286.weapons[1]].range + v286.scale * 2 - 10 : v286.weapons[1] != undefined ? 60 : 0;
            let v833 = v831 + v832;
            let v834 = v286.reloads[53] == 0 ? v831 + v832 + 75 : v833;
            let v835 = v291.x2 + v831 * Math.cos(v828);
            let v836 = v291.y2 + v831 * Math.sin(v828);
            let v837 = v291.x2 + v832 * Math.cos(v828);
            let v838 = v291.y2 + v832 * Math.sin(v828);
            let v839 = v291.x2 + v833 * Math.cos(v828);
            let v840 = v291.y2 + v833 * Math.sin(v828);
            let v841 = v291.x2 + v834 * Math.cos(v828);
            let v842 = v291.y2 + v834 * Math.sin(v828);
            const v843 = {
              x: v835,
              y: v836
            };
            if (v679.getDist(v843, v830, 0, 0) < v830.scale + v286.scale && v286.reloads[v286.weapons[0]] == 0) {
              return "primary sync";
            }
            const v844 = {
              x: v839,
              y: v840
            };
            if (v679.getDist(v844, v830, 0, 0) < v830.scale + v286.scale && v286.reloads[v286.weapons[0]] == 0 && v286.reloads[v286.weapons[1]] == 0 && v291.dist2 <= v680.weapons[v286.weapons[1]].range + v286.scale * 1.8) {
              return "insta them";
            }
          }
        }
      } else {}
      return false;
    }
    function f95(p699, p700, p701) {
      let v845 = document.getElementById("gameCanvas").getContext("2d");
      let vV273 = v273;
      v845.globalAlpha = 0.5;
      let v846 = {
        x: vV273.mex - p700,
        y: vV273.mey - p701
      };
      v845.fillStyle = "#A9A9A9";
      v845.beginPath();
      v845.arc(v846.x, v846.y, 65, 0, Math.PI * 2);
      v845.fill();
    }
    function f96(p702) {
      v284.push(new C16(p702.x, p702.y, p702.dir, p702.buildIndex, p702.weaponIndex, p702.weaponVariant, p702.skinColor, p702.scale, p702.name));
    }
    function f97(p703) {
      v279 = p703.teams;
    }
    function f98(p704) {
      v314 = {};
      v318 = {};
      v287 = p704;
      v316 = 0;
      v317 = true;
      v68.style.display = "none";
      f23("F", 0, f74(), 1);
      v293.ageInsta = true;
      if (v313) {
        v313 = false;
        v282.length = 0;
      }
    }
    function f99(p705, p706) {
      let vF28 = f28(p705[0]);
      if (!vF28) {
        vF28 = new C17(p705[0], p705[1], vP11, v679, v685, v681, v278, v277, v680, v683, v684);
        v278.push(vF28);
        if (p705[1] != v287) {
          f21("Game", "Encountered " + p705[2] + " {" + p705[1] + "}.", "lightblue");
        }
      } else if (p705[1] != v287) {
        f21("Game", "Encountered " + p705[2] + " {" + p705[1] + "}.", "lightblue");
      }
      vF28.spawn(p706 ? true : null);
      vF28.visible = false;
      const v847 = {
        x2: undefined,
        y2: undefined
      };
      vF28.oldPos = v847;
      vF28.x2 = undefined;
      vF28.y2 = undefined;
      vF28.x3 = undefined;
      vF28.y3 = undefined;
      vF28.setData(p705);
      if (p706) {
        if (!v286) {
          window.prepareUI(vF28);
        }
        v286 = vF28;
        v302 = v286.x;
        v303 = v286.y;
        v293.lastDir = 0;
        f121();
        f106();
        f84();
        for (let v848 = 0; v848 < 5; v848++) {
          v275.push(new C14(v286.x, v286.y));
        }
        if (v286.skins[7]) {
          v293.reSync = true;
        }
      }
    }
    function f100(p707) {
      for (let v849 = 0; v849 < v278.length; v849++) {
        if (v278[v849].id == p707) {
          f21("Game", v278[v849].name + " left the game", "yellow");
          v278.splice(v849, 1);
          break;
        }
      }
    }
    let v850 = false;
    setInterval(() => {
      if (v317) {
        if (v286.health < 100 && !v850) {
          if (v292 < 69) {
            if (Date.now() - v286.lastHit >= 120) {
              v850 = true;
              f52();
            }
          } else if (v246.tick - v286.hitTick > 1) {
            v850 = true;
            f52();
          }
          if (v286.shameCount < 7) {
            if (v688.inTrap && v688.hasSpike && v291.dist2 <= 169 && v679.getDist(v286, v688.info[1], 2, 0) <= v286.scale + v688.info[1].scale + 3) {
              if (v286.health <= v292 < 45 ? 35 : 65) {
                v850 = true;
                if (v292 < 45) {
                  f52();
                } else {
                  f53(2);
                }
              }
            } else if (v286.health < 33) {
              v850 = true;
              f52();
            }
          }
        }
      }
    });
    function f101(p708, p709) {
      v288 = f29(p708);
      if (v288) {
        v850 = false;
        v288.oldHealth = v288.health;
        v288.health = p709;
        v288.judgeShame();
        if (v288.oldHealth > v288.health) {
          v288.damaged = v288.oldHealth - v288.health;
          v494.push([p708, p709, v288.damaged]);
        }
      }
    }
    let v851 = [];
    function f102() {
      let v852 = window.pingTime;
      v851.push(v852);
      if (v851.length > 20) {
        v851.shift();
      }
      function f103(p710) {
        if (p710.length === 0) {
          return 0;
        }
        let v853 = [...p710].sort((p711, p712) => p711 - p712);
        let v854 = Math.floor(v853.length / 2);
        if (v853.length % 2 !== 0) {
          return v853[v854];
        } else {
          return (v853[v854 - 1] + v853[v854]) / 2;
        }
      }
      let vF103 = f103(v851);
      v292 = vF103;
    }
    function f104() {
      v317 = false;
      const v855 = {
        x: v286.x,
        y: v286.y
      };
      v693 = v855;
      v20.style.display = "block";
      v20.style.fontSize = "0px";
      setTimeout(function () {
        if (vF20.autoRespawn) {
          const v856 = {
            name: v250[0],
            moofoll: v250[1],
            skin: v250[2]
          };
          f23("M", v856);
        }
        v52.style.display = "block";
        v10.style.display = "block";
        v20.style.display = "none";
      }, vP11.deathFadeout);
    }
    function f105(p713, p714) {
      if (v286) {
        v286.itemCounts[p713] = p714;
        f84(p713);
      }
    }
    function f106(p715, p716, p717) {
      if (p715 != undefined) {
        v286.XP = p715;
      }
      if (p716 != undefined) {
        v286.maxXP = p716;
      }
      if (p717 != undefined) {
        v286.age = p717;
      }
    }
    function f107(p718, p719) {
      v286.upgradePoints = p718;
      v286.upgrAge = p719;
      if (p718 > 0) {
        v678.length = 0;
        v679.removeAllChildren(v54);
        for (let v857 = 0; v857 < v680.weapons.length; ++v857) {
          if (v680.weapons[v857].age == p719 && (v98 || v680.weapons[v857].pre == undefined || v286.weapons.indexOf(v680.weapons[v857].pre) >= 0)) {
            let v858 = v679.generateElement({
              id: "upgradeItem" + v857,
              class: "actionBarItem",
              onmouseout: function () {
                f63();
              },
              parent: v54
            });
            v858.style.backgroundImage = f5("actionBarItem" + v857).style.backgroundImage;
            v678.push(v857);
          }
        }
        for (let v859 = 0; v859 < v680.list.length; ++v859) {
          if (v680.list[v859].age == p719 && (v98 || v680.list[v859].pre == undefined || v286.items.indexOf(v680.list[v859].pre) >= 0)) {
            let v860 = v680.weapons.length + v859;
            let v861 = v679.generateElement({
              id: "upgradeItem" + v860,
              class: "actionBarItem",
              onmouseout: function () {
                f63();
              },
              parent: v54
            });
            v861.style.backgroundImage = f5("actionBarItem" + v860).style.backgroundImage;
            v678.push(v860);
          }
        }
        for (let v862 = 0; v862 < v678.length; v862++) {
          (function (p720) {
            let vF53 = f5("upgradeItem" + p720);
            vF53.onmouseover = function () {
              if (v680.weapons[p720]) {
                f63(v680.weapons[p720], true);
              } else {
                f63(v680.list[p720 - v680.weapons.length]);
              }
            };
            vF53.onclick = v679.checkTrusted(function () {
              f23("H", p720);
            });
            v679.hookTouchEvents(vF53);
          })(v678[v862]);
        }
        if (v678.length) {
          v54.style.display = "block";
          v29.style.display = "block";
          v29.innerHTML = "SELECT ITEMS (" + p718 + ")";
        } else {
          v54.style.display = "none";
          v29.style.display = "none";
          f63();
        }
      } else {
        v54.style.display = "none";
        v29.style.display = "none";
        f63();
      }
    }
    function f108(p721) {
      let vF312 = f31(p721);
      v681.disableBySid(p721);
      if (v286) {
        for (let v863 = 0; v863 < v285.length; v863++) {
          if (v285[v863].sid == p721) {
            v285.splice(v863, 1);
            break;
          }
        }
        if (!v286.canSee(vF312)) {
          const v864 = {
            x: vF312.x,
            y: vF312.y
          };
          v698.push(v864);
        }
        if (v698.length > 8) {
          v698.shift();
        }
        v688.replaceSids.push(p721);
        v688.replaced = false;
      }
    }
    function f109(p722) {
      if (v286) {
        v681.removeAllItems(p722);
      }
    }
    function f110(p723) {
      return v286.reloads[p723] > 0;
    }
    function f111(p724) {
      return v286.weaponIndex != p724 || v286.buildIndex > -1;
    }
    let v865 = false;
    function f112(p725) {
      setTimeout(() => {
        if (vF20.autoPrePlace && v289.length && !f5("weaponGrind").checked) {
          vF7();
        }
      }, 111 - v292);
      v246.tick++;
      v289 = [];
      v290 = [];
      v291 = [];
      v246.tickSpeed = performance.now() - v246.lastTick;
      v246.lastTick = performance.now();
      v278.forEach(p726 => {
        p726.forcePos = !p726.visible;
        p726.visible = false;
      });
      for (let v866 = 0; v866 < p725.length;) {
        v288 = f29(p725[v866]);
        if (v288) {
          v288.t1 = v288.t2 === undefined ? v246.lastTick : v288.t2;
          v288.t2 = v246.lastTick;
          v288.oldPos.x2 = v288.x2;
          v288.oldPos.y2 = v288.y2;
          v288.x1 = v288.x;
          v288.y1 = v288.y;
          v288.x2 = p725[v866 + 1];
          v288.y2 = p725[v866 + 2];
          v288.x3 = v288.x2 + (v288.x2 - v288.oldPos.x2);
          v288.y3 = v288.y2 + (v288.y2 - v288.oldPos.y2);
          v288.d1 = v288.d2 === undefined ? p725[v866 + 3] : v288.d2;
          v288.d2 = p725[v866 + 3];
          v288.dt = 0;
          v288.buildIndex = p725[v866 + 4];
          v288.weaponIndex = p725[v866 + 5];
          v288.weaponVariant = p725[v866 + 6];
          v288.team = p725[v866 + 7];
          v288.isLeader = p725[v866 + 8];
          v288.oldSkinIndex = v288.skinIndex;
          v288.oldTailIndex = v288.tailIndex;
          v288.skinIndex = p725[v866 + 9];
          v288.tailIndex = p725[v866 + 10];
          v288.iconIndex = p725[v866 + 11];
          v288.zIndex = p725[v866 + 12];
          v288.visible = true;
          v288.update(v246.tickSpeed);
          v288.dist2 = v679.getDist(v288, v286, 2, 2);
          v288.aim2 = v679.getDirect(v288, v286, 2, 2);
          v288.dist3 = v679.getDist(v288, v286, 3, 3);
          v288.aim3 = v679.getDirect(v288, v286, 3, 3);
          v288.damageThreat = 0;
          v288.mostDamageThreat = 0;
          if (v288.skinIndex == 45 && v288.shameTimer <= 0) {
            v288.addShameTimer();
          }
          if (v288.oldSkinIndex == 45 && v288.skinIndex != 45) {
            v288.shameTimer = 0;
            v288.shameCount = 0;
            if (v288 == v286) {
              f52();
            }
          }
          let v867 = v282.filter(p727 => p727.trap && p727.active && v679.getDist(p727, v288, 0, 2) <= v288.scale + p727.getScale() + 3 && !p727.isTeamObject(v288)).sort(function (p728, p729) {
            return v679.getDist(p728, v288, 0, 2) - v679.getDist(p729, v288, 0, 2);
          })[0];
          v865 = v291.inTrap ? true : false;
          v288.inTrap = v867;
          if (v288 == v286) {
            let v868 = 0;
            v288.inWater = v288.y2 >= vP11.mapScale / 2 - vP11.riverWidth / 2 && v288.y2 <= vP11.mapScale / 2 + vP11.riverWidth / 2;
            if (v282.length) {
              v282.forEach(p730 => {
                p730.onNear = false;
                if (p730.active) {
                  if (!p730.onNear && v679.getDist(p730, v288, 0, 2) <= p730.scale + v680.weapons[v288.weapons[0]].range) {
                    p730.onNear = true;
                  }
                  if (p730.isItem && p730.owner) {
                    if (p730.name == "turret" && v679.getDist(v286, p730, 2, 0) < 680 && !p730.isTeamObject(v288)) {
                      v868++;
                    }
                    if (!p730.pps && v288.sid == p730.owner.sid && v679.getDist(p730, v288, 0, 2) > (parseInt(f5("breakRange").value) || 0) && !p730.breakObj && ![13, 14, 20].includes(p730.id)) {
                      p730.breakObj = true;
                      const v869 = {
                        x: p730.x,
                        y: p730.y,
                        sid: p730.sid
                      };
                      v285.push(v869);
                    }
                  }
                }
              });
              v288.antiTurretSpam = v868 >= 5;
              let v870 = v282.filter(p731 => p731.dmg && p731.active && v681.canHit(v288, p731, v288.weapons[1] == 10 ? v288.weapons[1] : v288.weapons[0]) && !p731.isTeamObject(v288)).sort(function (p732, p733) {
                return v679.getDist(p732, v288, 0, 2) - v679.getDist(p733, v288, 0, 2);
              })[0];
              if (v867) {
                v688.dist = v679.getDist(v867, v288, 0, 2);
                v688.aim = v679.getDirect(v867, v288, 0, 2);
                if (!v688.inTrap) {
                  v688.protect(v688.aim);
                }
                v688.inTrap = true;
                v688.info = [v867, v870];
                v688.hasSpike = v870 != undefined ? true : false;
              } else {
                v688.inTrap = false;
              }
            } else {
              v688.inTrap = false;
            }
          }
          if (v288.weaponIndex < 9) {
            v288.primaryIndex = v288.weaponIndex;
            v288.primaryVariant = v288.weaponVariant;
          } else if (v288.weaponIndex > 8) {
            v288.secondaryIndex = v288.weaponIndex;
            v288.secondaryVariant = v288.weaponVariant;
          }
        }
        v866 += 13;
      }
      if (v687.stack.length) {
        let v871 = [];
        let v872 = [];
        let v873 = 0;
        let v874 = 0;
        let v875 = {
          x: null,
          y: null
        };
        let v876 = {
          x: null,
          y: null
        };
        v687.stack.forEach(p734 => {
          if (p734.value >= 0) {
            const v877 = {
              x: p734.x,
              y: p734.y
            };
            if (v873 == 0) {
              v875 = v877;
            }
            v873 += Math.abs(p734.value);
          } else {
            const v878 = {
              x: p734.x,
              y: p734.y
            };
            if (v874 == 0) {
              v876 = v878;
            }
            v874 += Math.abs(p734.value);
          }
        });
        if (v874 > 0) {
          v687.showText(v876.x, v876.y, Math.max(45, Math.min(50, v874)), 0.18, 500, v874, "#8ecc51");
        }
        if (v873 > 0) {
          v687.showText(v875.x, v875.y, Math.max(45, Math.min(50, v873)), 0.18, 500, v873, "#fff");
        }
        v687.stack = [];
      }
      if (v700.length) {
        v700.forEach(p735 => {
          f61(...p735);
        });
        v700 = [];
      }
      for (let v879 = 0; v879 < p725.length;) {
        v288 = f29(p725[v879]);
        if (v288) {
          if (!v288.isTeam(v286)) {
            v289.push(v288);
            if (v288.dist2 <= v680.weapons[v288.primaryIndex == undefined ? 5 : v288.primaryIndex].range + v286.scale * 2 + 69) {
              v290.push(v288);
            }
          }
          v288.manageReload();
          if (v288 != v286) {
            v288.addDamageThreat(v286);
          }
        }
        v879 += 13;
      }
      if (v286 && v286.alive) {
        if (v289.length) {
          v291 = v289.sort(function (p736, p737) {
            return p736.dist2 - p737.dist2;
          })[0];
        }
        if (v246.tickQueue[v246.tick]) {
          v246.tickQueue[v246.tick].forEach(p738 => {
            p738();
          });
          v246.tickQueue[v246.tick] = null;
        }
        if (v494.length) {
          v494.forEach(p739 => {
            let v880 = p739[0];
            let v881 = p739[1];
            let v882 = p739[2];
            v288 = f29(v880);
            let v883 = false;
            if (v288.health <= 0) {
              if (!v288.death) {
                v288.death = true;
                if (v288 != v286) {
                  f21("", v288.name + " {" + v288.sid + "} has died.", "red");
                }
                f96(v288);
              }
            }
            if (v288 == v286) {
              if (v288.skinIndex == 7 && (v882 == 5 || v288.latestTail == 13 && v882 == 2)) {
                if (v293.reSync) {
                  v293.reSync = false;
                  v288.setBullTick = true;
                }
                v883 = true;
              }
              if (v317) {
                let vF51 = f51(v882);
                let v884 = 100 - v286.health;
                let v885 = v290.some(p740 => p740.primaryVariant == 3 || p740.secondaryIndex == 10 && p740.secondaryVariant == 3) && v883 ? 10 : 5;
                let v886 = v884 + v288.damageThreat >= 100 ? 6 : 5;
                if (v884 + v288.mostDamageThreat >= 100 && v884 + v288.damageThreat < 100) {
                  v270 = true;
                }
                if (v290.some(p741 => [undefined, 9, 12, 13, 15].includes(p741.secondaryIndex))) {
                  if (v882 > 39 && v882 < 80 && v884 + v288.damageThreat >= 100) {
                    if (v246.tick - v288.antiTimer > 1) {
                      v288.canEmpAnti = true;
                      v288.antiTimer = v246.tick;
                    }
                    if (v288.shameCount < v886) {
                      f52();
                      v293.antiInsta = true;
                    }
                  } else if ([18.75, 22.5, 25, 26.25, 30, 35, 37.5, 50].includes(v882) && v884 + v288.damageThreat >= 100) {
                    if (v246.tick - v288.antiTimer > 1) {
                      v288.canEmpAnti = true;
                      v288.antiTimer = v246.tick;
                    }
                    if (v288.shameCount < v886) {
                      f52();
                      v293.antiInsta = true;
                    }
                  } else if (v882 > v885 && v884 + v288.damageThreat >= 100) {
                    if (v288.shameCount < v886) {
                      f52();
                      v293.antiInsta = true;
                    }
                  }
                } else if (v882 > v885 && v884 + v288.damageThreat >= 100) {
                  if (v288.shameCount < v886) {
                    f52();
                    v293.antiInsta = true;
                  }
                }
                if (v882 >= 20 && v286.skinIndex == 11) {
                  v689.canCounter = true;
                }
              }
            } else if (!v288.setPoisonTick && (v288.damaged == 5 || v288.latestTail == 13 && v288.damaged == 2)) {
              v288.setPoisonTick = true;
            }
          });
          v494 = [];
        }
        v278.forEach(p742 => {
          if (!p742.visible && v286 != p742) {
            p742.reloads = {
              "0": 0,
              "1": 0,
              "2": 0,
              "3": 0,
              "4": 0,
              "5": 0,
              "6": 0,
              "7": 0,
              "8": 0,
              "9": 0,
              "10": 0,
              "11": 0,
              "12": 0,
              "13": 0,
              "14": 0,
              "15": 0,
              "53": 0
            };
          }
          if (p742.setBullTick) {
            p742.bullTimer = 0;
          }
          if (p742.setPoisonTick) {
            p742.poisonTimer = 0;
          }
          p742.updateTimer();
        });
        if (v317) {
          if (v289.length) {
            v688.preplaces[0] = [];
            v688.preplaces[1] = [];
            if (!v688.replaced) {
              v688.autoReplace(v688.replaceSids);
              v688.replaced = true;
              v688.replaceSids = [];
            }
            if (v286.inTrap) {
              v688.autoPlace(1, 4, 2, true);
            }
            if (v689.ticking) {
              v688.autoPlace(0, 4, 2);
            }
            if (v293.predictSpikes > 0) {
              v688.autoPlace(0, 4, 2);
            }
            if (v291.inTrap && v291.dist2 < 500) {
              v688.autoPlace(1, 2, 4, true);
            } else if (v865 && !v291.inTrap) {
              v688.autoPlace(0, 4, 2);
            } else if (v291.dist2 > 300 && v291.dist2 < 499) {
              v688.autoPlace(1, 2, 4, true);
            } else if (v291.dist2 < 150) {
              v688.autoPlace(1, 2, 4, true);
            } else if (v291.dist2 <= 300) {
              v688.autoPlace(0, 4, 2);
            }
            if (v286.canEmpAnti) {
              v286.canEmpAnti = false;
              if (v291.dist2 <= 300 && !v293.safePrimary(v291) && !v293.safeSecondary(v291)) {
                if (v291.reloads[53] == 0) {
                  v286.empAnti = true;
                  v286.soldierAnti = false;
                } else {
                  v286.empAnti = false;
                  v286.soldierAnti = true;
                }
              }
            }
            if (!v689.isTrue && vF20.predictTick && v293.anti0Tick <= 0) {
              let vF94 = f94();
              if (vF94 == "insta them" && (![9, 12, 13, 15].includes(v286.weapons[1]) || v291.dist2 <= v680.weapons[v286.weapons[1]].range + v286.scale * 1.8)) {
                v689.changeType("rev");
              }
              if (vF94 == "primary sync") {
                v689.spikeTickType("rev");
              }
            }
            let v887 = v282.filter(p743 => p743.dmg && p743.active && p743.isTeamObject(v286) && v679.getDist(p743, v291, 0, 3) <= p743.scale + v291.scale).sort(function (p744, p745) {
              return v679.getDist(p744, v291, 0, 2) - v679.getDist(p745, v291, 0, 2);
            })[0];
            if (v887) {
              if (v291.dist2 <= v680.weapons[v286.weapons[0]].range + v286.scale * 1.8 && vF20.predictTick) {
                v689.canSpikeTick = true;
              }
            }
            if (vF20.anti1tick) {
              v290.forEach(p746 => {
                if (p746.primaryIndex == 5 && p746.primaryVariant >= 2) {
                  if (p746.dist2 > 169 && p746.dist2 < 269) {
                    if (p746.skinIndex == 53) {
                      v293.anti0Tick = 3;
                      f53(1);
                      v286.chat.message = "Anti 1 tick by " + p746.sid + " " + p746.name;
                      v286.chat.count = 334;
                    }
                  }
                }
              });
            }
            if (vF20.autoQonSync && v290.length > 1 && v286.shameCount < 5 && v290.some(p747 => [undefined, 3, 4, 5].includes(p747.primaryIndex)) && v242 < 60) {
              v293.anti0Tick = 3;
              f53(2);
              v286.chat.message = "sync detect test";
              v286.chat.count = 334;
            }
            if (f5("serverSync").checked && v799.length && v290.length) {
              v290.forEach(p748 => {
                let v888 = p748.dist2;
                v799.forEach(p749 => {
                  if (p748.sid == p749) {
                    return;
                  }
                  let vF292 = f29(p749);
                  let v889 = v679.getDist(vF292, p748, 2, 2);
                  if (v888 <= v286.scale * 1.8 + v680.weapons[v286.weapons[0]].range && v889 <= v286.scale * 1.8 + v680.weapons[vF292.primaryIndex || 5].range && v286.reloads[v286.weapons[0]] == 0 && vF292.reloads[vF292.primaryIndex || 5] == 0) {
                    v689.spikeTickType();
                  }
                });
              });
            }
          }
          if (v291.dist2 <= v680.weapons[v286.weapons[1] == 10 ? v286.weapons[1] : v286.weapons[0]].range + v291.scale * 1.8 && v689.wait && !v689.isTrue && !v293.waitHit && v286.reloads[v286.weapons[0]] == 0 && v286.reloads[v286.weapons[1]] == 0 && f5("instaType").value == "oneShot" && v689.perfCheck(v286, v291)) {
            v689.can = true;
          } else {
            v689.can = false;
          }
          if (v318.q) {
            f46(0, f74());
          }
          if (v318.f) {
            f46(4, f71());
          }
          if (v318.v) {
            f46(2, f71());
          }
          if (v318.y) {
            f46(5, f71());
          }
          if (v318.h) {
            f46(v286.getItemType(22), f71());
          }
          if (v318.n) {
            f46(3, f71());
          }
          if (v318.l) {
            let vF293 = f29(parseInt(f5("targetSid").value));
            if (vF293) {
              if (f5("hatType").value != "ag") {
                f23("f", vF293.aim2, 1);
                if (vF293.dist2 >= 145) {
                  if (v286.items[4] != 15) {
                    f46(4, vF293.aim2);
                  }
                }
              }
              if (vF293.dist2 <= 70) {
                v688.testCanPlace(2, 0, Math.PI * 2, Math.PI / 8, vF293.aim2 + Math.PI / 2, 0, 1);
                f23("N");
              }
            }
          }
          f80();
          if (v679.getDist(v293.millPlacePos, v286, 0, 2) >= (v680.list[v286.items[3]].scale + 5) * 2) {
            if (v319.place) {
              let v890 = v286.items[4] == 16 ? 1.4 : 1.23456789;
              v688.testCanPlace(3, -v890, v890, v890 / 3, v679.getDirect(v293.millPlacePos, v286, 0, 2));
            }
            if (v319.placeSpawnPads) {
              v688.testCanPlace(v286.getItemType(20), 0, Math.PI * 2, Math.PI / 2, v679.getDirect(v286.oldPos, v286, 2, 2));
            }
            const v891 = {
              x: v286.x2,
              y: v286.y2
            };
            v293.millPlacePos = v891;
          }
          if (v689.can) {
            v689.changeType(vF20.revInsta || v286.weapons[1] == 10 ? "rev" : "normal");
          }
          if (v689.canCounter) {
            v689.canCounter = false;
            if (v286.reloads[v286.weapons[0]] == 0 && !v689.isTrue) {
              v689.counterType();
            }
          }
          if (v689.canSpikeTick) {
            v689.canSpikeTick = false;
            if (v286.reloads[v286.weapons[0]] == 0 && !v689.isTrue && [3, 4, 5].includes(v286.weapons[0])) {
              v689.spikeTickType();
            }
          }
          if (v270 && v457) {
            v246.tickBase(() => {
              f44();
              v293.waitHit = 0;
            }, 1);
          } else {
            if (!v711.middle && !v711.left && !v711.right && !v689.isTrue && !v688.inTrap && !v274.active && v457) {
              v246.tickBase(() => {
                f44();
                v293.waitHit = 0;
              }, 1);
            }
            if (!v711.middle && (v711.left || v711.right) && !v689.isTrue) {
              if (v286.weaponIndex != (v711.right && v286.weapons[1] == 10 && vF20.hammerBreakerOptimisation ? v286.weapons[1] : v286.weapons[0]) || v286.buildIndex > -1) {
                f43(v711.right && v286.weapons[1] == 10 && vF20.hammerBreakerOptimisation ? v286.weapons[1] : v286.weapons[0]);
              }
              if (v286.reloads[v711.right && v286.weapons[1] == 10 && vF20.hammerBreakerOptimisation ? v286.weapons[1] : v286.weapons[0]] == 0 && !v293.waitHit && !v457) {
                f44();
                v293.waitHit = 1;
                v246.tickBase(() => {
                  v293.waitHit = 0;
                }, 1);
              }
            }
            if (v241 && !v711.left && !v711.right && !v689.isTrue && v291.dist2 <= v680.weapons[v286.weapons[0]].range + v286.scale * 1.8 && !v688.inTrap) {
              if (v286.weaponIndex != v286.weapons[0] || v286.buildIndex > -1) {
                f43(v286.weapons[0]);
              }
              if (v286.reloads[v286.weapons[0]] == 0 && !v293.waitHit && !v457) {
                f44();
                v293.waitHit = 1;
              }
            }
            if (v688.inTrap) {
              if (!v711.left && !v711.right && !v689.isTrue) {
                let v892 = v688.hasSpike && v681.hitsToBreak(v688.info[1], v286) <= v681.hitsToBreak(v688.info[0], v286) ? v688.info[1] : v688.info[0];
                let v893 = v688.notFast(v892) ? v286.weapons[1] : v286.weapons[0];
                if (v286.weaponIndex != v893 || v286.buildIndex > -1) {
                  f43(v893);
                }
                if (v286.reloads[v893] == 0 && !v293.waitHit && !v457) {
                  f44();
                  v293.waitHit = 1;
                  v246.tickBase(() => {
                    v293.waitHit = 0;
                  }, 1);
                }
              }
            }
            if (!v688.inTrap && v274.active) {
              if (!v711.left && !v711.right && !v689.isTrue) {
                let v894 = v688.notFast(v274.info) ? v286.weapons[1] : v286.weapons[0];
                if (v286.weaponIndex != v894 || v286.buildIndex > -1) {
                  f43(v894);
                }
                if (v286.reloads[v894] == 0 && !v293.waitHit && !v457) {
                  f44();
                  v293.waitHit = 1;
                  v246.tickBase(() => {
                    v293.waitHit = 0;
                  }, 1);
                }
              }
            }
          }
          if (v711.middle && !v688.inTrap) {
            if (!v689.isTrue && v286.reloads[v286.weapons[1]] == 0) {
              if (v293.ageInsta && v286.weapons[0] != 4 && v286.weapons[1] == 9 && v286.age >= 9 && v289.length) {
                v689.bowMovement();
              } else {
                v689.rangeType();
              }
            }
          }
          if (v318.t && !v688.inTrap) {
            if (!v689.isTrue && v286.reloads[v286.weapons[0]] == 0 && (v286.weapons[1] == 15 ? v286.reloads[v286.weapons[1]] == 0 : true) && (v286.weapons[0] == 5 || v286.weapons[0] == 4 && v286.weapons[1] == 15)) {
              v689[v286.weapons[0] == 4 && v286.weapons[1] == 15 ? "kmTickMovement" : "tickMovement"]();
            }
          }
          if (v318["."] && !v688.inTrap) {
            if (!v689.isTrue && v286.reloads[v286.weapons[0]] == 0 && ([9, 12, 13, 15].includes(v286.weapons[1]) ? v286.reloads[v286.weapons[1]] == 0 : true)) {
              v689.boostTickMovement();
            }
          }
          if (v286.weapons[1] && !v711.left && !v711.right && !v688.inTrap && !v689.isTrue && !v274.active) {
            if (v286.reloads[v286.weapons[0]] == 0 && v286.reloads[v286.weapons[1]] == 0) {
              if (!v293.reloaded) {
                v293.reloaded = true;
                let v895 = v680.weapons[v286.weapons[0]].spdMult < v680.weapons[v286.weapons[1]].spdMult ? 1 : 0;
                if (v286.weaponIndex != v286.weapons[v895] || v286.buildIndex > -1) {
                  f43(v286.weapons[v895]);
                }
              }
            } else {
              v293.reloaded = false;
              let v896 = [9, 12, 13, 15].includes(v286.weapons[1]);
              if (v896) {
                if (f110(v286.weapons[0])) {
                  if (f111(v286.weapons[0])) {
                    f43(v286.weapons[0]);
                  }
                } else if (f110(v286.weapons[1])) {
                  if (f111(v286.weapons[1])) {
                    f43(v286.weapons[1]);
                  }
                }
              } else if (f110(v286.weapons[1])) {
                if (f111(v286.weapons[1])) {
                  f43(v286.weapons[1]);
                }
              } else if (f110(v286.weapons[0])) {
                if (f111(v286.weapons[0])) {
                  f43(v286.weapons[0]);
                }
              }
            }
          }
          if (!v318.q && !v318.f && !v318.v && !v318.h && !v318.n) {
            f23("D", f74());
          }
          let vF15 = function () {
            if (v293.anti0Tick > 0 || v270) {
              f41(6, 0);
            } else if (f5("hatType").value == "ag" && v286.moveDir == null && Date.now() - v286.moveTime > 1357 && v286.health == 100 && Date.now() - v286.lastHit > 1357 && Date.now() - v286.lastGather > 1357) {
              f41(56, 0);
            } else if (v711.left || v711.right) {
              if (v711.left) {
                f41(v286.reloads[v286.weapons[0]] == 0 ? f5("weaponGrind").checked ? 40 : 7 : v286.tailIndex == 11 ? 7 : v286.empAnti || v286.antiTurretSpam ? 22 : v286.soldierAnti ? 6 : f5("antiBullType").value == "abreload" && v291.antiBull > 0 ? 11 : v291.dist2 <= 300 ? f5("antiBullType").value == "abalway" && v291.reloads[v291.primaryIndex] == 0 ? 11 : 6 : f55(1, 1), 0);
              } else if (v711.right) {
                f41(v286.reloads[v286.weapons[1] == 10 && vF20.hammerBreakerOptimisation ? v286.weapons[1] : v286.weapons[0]] == 0 && v454 != 40 ? 40 : v286.empAnti || v286.antiTurretSpam ? 22 : v286.soldierAnti ? 6 : f5("antiBullType").value == "abreload" && v291.antiBull > 0 ? 11 : v291.dist2 <= 300 ? f5("antiBullType").value == "abalway" && v291.reloads[v291.primaryIndex] == 0 ? 11 : 6 : f55(1, 1), 0);
              }
            } else if (v688.inTrap) {
              let v897 = v688.hasSpike && v681.hitsToBreak(v688.info[1], v286) <= v681.hitsToBreak(v688.info[0], v286) ? v688.info[1] : v688.info[0];
              if (v897.health <= v680.weapons[v688.notFast(v897) ? v286.weapons[1] : v286.weapons[0]].dmg && v897.active ? false : v286.reloads[v286.weapons[1] == 10 ? v286.weapons[1] : v286.weapons[0]] == 0 && v454 != 40) {
                f41(40, 0);
              } else if ((!v289.length || v286.mostDamageThreat < 95) && v286.shameCount > 0 && v286.skinIndex != 45 && Date.now() - v286.lastHit > 240 || v293.reSync) {
                f41(7, 0);
              } else {
                f41(v286.empAnti || v291.dist2 > 300 || !v289.length ? 22 : 6, 0);
              }
            } else if (v274.active) {
              if (v274.info.health > v680.weapons[v688.notFast(v274.info) ? v286.weapons[1] : v286.weapons[0]].dmg && v274.info.active && v286.reloads[v286.weapons[1] == 10 ? v286.weapons[1] : v286.weapons[0]] == 0 && v454 != 40) {
                f41(40, 0);
              } else if ((!v289.length || v286.mostDamageThreat < 95) && v286.shameCount > 0 && v286.skinIndex != 45 && Date.now() - v286.lastHit > 169 || v293.reSync) {
                f41(7, 0);
              } else {
                f41(v286.empAnti || v291.dist2 > 300 || !v289.length ? 22 : 6, 0);
              }
            } else if (v286.empAnti || v286.antiTurretSpam || v286.soldierAnti) {
              f41(v286.empAnti || v286.antiTurretSpam ? 22 : 6, 0);
            } else if ((!v289.length || v286.mostDamageThreat < 95) && v286.shameCount > 0 && v286.skinIndex != 45 && Date.now() - v286.lastHit > 169 && (v688.info[0] ? Date.now() - v688.info[0].breakTime > 169 : true) || v293.reSync) {
              f41(7, 0);
            } else if (v286.inWater) {
              if (!vF20.alwaysFlipper) {
                if (v291.dist2 <= 300) {
                  f41(f5("antiBullType").value == "abreload" && v291.antiBull > 0 ? 11 : f5("antiBullType").value == "abalway" && v291.reloads[v291.primaryIndex] == 0 ? 11 : 6, 0);
                } else {
                  f55(1);
                }
              } else {
                f55(1);
              }
            } else if (v291.dist2 <= 300) {
              f41(f5("antiBullType").value == "abreload" && v291.antiBull > 0 ? 11 : f5("antiBullType").value == "abalway" && v291.reloads[v291.primaryIndex] == 0 ? 11 : 6, 0);
            } else {
              f55(1);
            }
          };
          let vF16 = function () {
            if ((v711.left || v291.dist2 < 300) && v286.weapons[0] != 8 && (!v293.autoPush || !(v291.dist2 > 100))) {
              if (f5("antiBullType").value == "noab" || vF20.alwaysFlipper && v286.inWater) {
                f41(19, 1);
              } else {
                f41(21, 1);
              }
            } else {
              f41(11, 1);
            }
          };
          if (v11.style.display != "block" && !v689.isTrue && !v689.ticking) {
            vF15();
            vF16();
          }
          f85();
          if (!v293.safeWalk) {
            vF14();
            if (!v293.autoPush && !v272) {
              console.log(1);
              if (vF20.autoPlay && v289.length && v291.dist2 < v592.scale / 2) {
                console.log(2);
                let v898 = v692.calc({
                  x: Math.cos(v291.aim2 + Math.PI / 2) * (v291.scale * 2),
                  y: Math.sin(v291.aim2 + Math.PI / 2) * (v291.scale * 2)
                }, false, "follow");
                v592.paths = v898.paths;
                v592.attempts = v898.attempts;
                if (v592.paths.length > 0) {
                  console.log(3);
                  v592.finded = true;
                  let v899 = v679.getDirect(v592.paths[1], v286, 0, 2);
                  f23("f", v899, 1);
                } else {
                  console.log(4);
                  v898 = v692.calc({
                    x: 0,
                    y: 0
                  }, true, "follow");
                  v592.paths = v898.paths;
                  v592.attempts = v898.attempts;
                  if (v592.paths.length > 0) {
                    console.log(5);
                    v592.finded = true;
                    let v900 = v679.getDirect(v592.paths[1], v286, 0, 2);
                    f23("f", v900, 1);
                  } else {
                    console.log(6);
                    v592.finded = false;
                    f23("f", v286.moveDir, 1);
                  }
                }
              } else {
                console.log(7);
                v592.finded = false;
              }
            } else {
              console.log(8);
              v592.finded = false;
            }
          } else if (v293.autoPush) {
            v293.autoPush = false;
            f23("f", v286.moveDir, 1);
          }
          v689.ticking &&= false;
          v689.syncHit &&= false;
          v286.empAnti &&= false;
          if (v286.soldierAnti) {
            v286.soldierAnti = false;
          }
          if (v293.anti0Tick > 0) {
            v293.anti0Tick--;
          }
          v688.antiTrapped &&= false;
          v270 = false;
          v293.antiInsta = false;
        }
      }
    }
    let v901 = document.getElementById("leaderboard");
    let v902 = v901.firstChild;
    if (v902.nodeType === 3 && v902.textContent === "Leaderboard") {
      v901.removeChild(v902);
    }
    function f113(p750) {
      v321 = p750;
      v679.removeAllChildren(v26);
      let v903 = 1;
      let v904 = p750[2];
      for (let v905 = 0; v905 < p750.length; v905 += 3) {
        (function (p751) {
          let v906 = p750[p751 + 2];
          let v907 = v906 / v904 * 100;
          let v908 = document.createElement("div");
          v908.className = "leaderHolder";
          v908.style = "\n                background-color: rgba(0, 0, 0, 0.45);\n                height: 20px;\n                border-radius: 5px;\n                margin-bottom: 5px;\n            ";
          v26.appendChild(v908);
          let v909 = p750[p751];
          let v910 = document.createElement("div");
          v910.className = "leaderboardItem";
          v910.style = "\n                color: " + (v909 == v286.sid ? "#fffb95" : v799.includes(v909) ? "#FF0000" : v798.includes(v909) ? "#00ff00" : "#fff") + ";\n            ";
          v910.textContent = p750[p751 + 1] + ": " + (v679.sFormat(v906) || "0");
          v908.appendChild(v910);
          let v911 = document.createElement("div");
          v911.id = "leaderProsBar-" + p750[p751];
          v911.className = "leaderProgressBar";
          v911.style = "\n                margin-bottom: 5px;\n                display: block;\n                height: 20px;\n                border-radius: 5px;\n                background-color: #94e484;\n                width: " + v907 + "% ;\n                transition: width 0.5s ease-in-out;\n            ";
          v908.appendChild(v911);
          if (v911.style.width) {
            let vParseFloat = parseFloat(v911.style.width);
            let v912 = v907 + "%";
            v911.style.width = v912;
          } else {
            v911.style.width = v907 + "%";
          }
        })(v905);
        v903++;
      }
    }
    function f114(p752) {
      for (let v913 = 0; v913 < p752.length;) {
        v681.add(p752[v913], p752[v913 + 1], p752[v913 + 2], p752[v913 + 3], p752[v913 + 4], p752[v913 + 5], v680.list[p752[v913 + 6]], true, p752[v913 + 7] >= 0 ? {
          sid: p752[v913 + 7]
        } : null);
        v913 += 8;
      }
    }
    function f115(p753) {
      for (let v914 = 0; v914 < v277.length; ++v914) {
        v277[v914].forcePos = !v277[v914].visible;
        v277[v914].visible = false;
      }
      if (p753) {
        let v915 = performance.now();
        for (let v916 = 0; v916 < p753.length;) {
          v288 = f30(p753[v916]);
          if (v288) {
            v288.index = p753[v916 + 1];
            v288.t1 = v288.t2 === undefined ? v915 : v288.t2;
            v288.t2 = v915;
            v288.x1 = v288.x;
            v288.y1 = v288.y;
            v288.x2 = p753[v916 + 2];
            v288.y2 = p753[v916 + 3];
            v288.d1 = v288.d2 === undefined ? p753[v916 + 4] : v288.d2;
            v288.d2 = p753[v916 + 4];
            v288.health = p753[v916 + 5];
            v288.dt = 0;
            v288.visible = true;
          } else {
            v288 = v686.spawn(p753[v916 + 2], p753[v916 + 3], p753[v916 + 4], p753[v916 + 1]);
            v288.x2 = v288.x;
            v288.y2 = v288.y;
            v288.d2 = v288.dir;
            v288.health = p753[v916 + 5];
            if (!v686.aiTypes[p753[v916 + 1]].name) {
              v288.name = vP11.cowNames[p753[v916 + 6]];
            }
            v288.forcePos = true;
            v288.sid = p753[v916];
            v288.visible = true;
          }
          v916 += 7;
        }
      }
    }
    function f116(p754) {
      v288 = f30(p754);
      if (v288) {
        v288.startAnim();
      }
    }
    function f117(p755, p756, p757) {
      v288 = f29(p755);
      if (v288) {
        v288.startAnim(p756, p757);
        v288.gatherIndex = p757;
        v288.gathering = 1;
        v288.lastGather = Date.now();
        if (p756) {
          let v917 = v681.hitObj;
          v681.hitObj = [];
          v246.tickBase(() => {
            v288 = f29(p755);
            let v918 = v680.weapons[p757].dmg * vP11.weaponVariants[v288[(p757 < 9 ? "prima" : "seconda") + "ryVariant"]].val * (v680.weapons[p757].sDmg || 1) * (v288.skinIndex == 40 ? 3.3 : 1);
            v917.forEach(p758 => {
              p758.health -= v918;
            });
          }, 1);
        }
      }
    }
    function f118(p759, p760) {
      v288 = f31(p760);
      if (v288) {
        v288.xWiggle += vP11.gatherWiggle * Math.cos(p759);
        v288.yWiggle += vP11.gatherWiggle * Math.sin(p759);
        if (v288.health) {
          v681.hitObj.push(v288);
        }
      }
    }
    function f119(p761, p762) {
      v288 = f31(p761);
      if (v288) {
        if (vP11.anotherVisual) {
          v288.lastDir = p762;
        } else {
          v288.dir = p762;
        }
        v288.xWiggle += vP11.gatherWiggle * Math.cos(p762 + Math.PI);
        v288.yWiggle += vP11.gatherWiggle * Math.sin(p762 + Math.PI);
      }
    }
    function f120(p763, p764, p765) {
      if (v286) {
        v286[p763] = p764;
        if (p763 == "points") {
          if (vF20.autoBuy) {
            v690.buyNext();
          }
        } else if (p763 == "kills") {
          if (vF20.killChat) {
            f60("FE!N");
          }
        }
      }
    }
    function f121(p766, p767) {
      if (p766) {
        if (p767) {
          v286.weapons = p766;
          v286.primaryIndex = v286.weapons[0];
          v286.secondaryIndex = v286.weapons[1];
          if (!v689.isTrue) {
            f43(v286.weapons[0]);
          }
        } else {
          v286.items = p766;
        }
      }
      for (let v919 = 0; v919 < v680.list.length; v919++) {
        let v920 = v680.weapons.length + v919;
        f5("actionBarItem" + v920).style.display = v286.items.indexOf(v680.list[v919].id) >= 0 ? "inline-block" : "none";
      }
      for (let v921 = 0; v921 < v680.weapons.length; v921++) {
        f5("actionBarItem" + v921).style.display = v286.weapons[v680.weapons[v921].type] == v680.weapons[v921].id ? "inline-block" : "none";
      }
      let v922 = v286.weapons[0] == 3 && v286.weapons[1] == 15;
      if (v922) {
        f5("actionBarItem3").style.display = "none";
        f5("actionBarItem4").style.display = "inline-block";
      }
    }
    function f122(p768, p769, p770, p771, p772, p773, p774, p775) {
      v685.addProjectile(p768, p769, p770, p771, p772, p773, null, null, p774, v322).sid = p775;
      v700.push(Array.prototype.slice.call(arguments));
    }
    function f123(p776, p777) {
      for (let v923 = 0; v923 < v283.length; ++v923) {
        if (v283[v923].sid == p776) {
          v283[v923].range = p777;
          let v924 = v681.hitObj;
          v681.hitObj = [];
          v246.tickBase(() => {
            let v925 = v283[v923].dmg;
            v924.forEach(p778 => {
              if (p778.projDmg) {
                p778.health -= v925;
              }
            });
          }, 1);
        }
      }
    }
    function f124(p779) {
      v17.innerHTML = "Server restarting in " + p779 + "s";
    }
    function f125(p780, p781) {}
    function f126(p782, p783) {
      if (v286) {
        v286.team = p782;
        v286.isOwner = p783;
        if (p782 == null) {
          v280 = [];
        }
      }
    }
    function f127(p784) {
      v280 = p784;
    }
    function f128(p785, p786, p787) {
      if (p787) {
        if (!p785) {
          v286.tails[p786] = 1;
        } else {
          v286.latestTail = p786;
        }
      } else if (!p785) {
        v286.skins[p786] = 1;
      } else {
        v286.latestSkin = p786;
      }
    }
    function f129(p788) {
      return p788 == v286 || p788.team && p788.team == v286.team;
    }
    function f130(p789, p790) {
      p790 = DOMPurify.sanitize(p790);
      let vF294 = f29(p789);
      if (vF294) {
        f21(vF294.name + " {" + vF294.sid + "}", p790, vF294 == v286 || vF294.team && vF294.team == v286.team ? "#8ecc51" : "#fff");
        vF294.chatMessage = p790;
        vF294.chatCountdown = vP11.chatCountdown;
        if (vF294.team == v286.team && p790 == f5("syncChat").value) {
          v689.musketSync();
        }
      }
    }
    function f131(p791) {
      v694 = p791;
    }
    function f132(p792, p793, p794, p795) {
      v687.showText(p792, p793, 50, 0.18, 500, Math.abs(p794), p794 >= 0 ? "#fff" : "#8ecc51");
    }
    function f133(p796, p797) {
      v687.showText(v286.x, v286.y, v286.scale, 0.1, p796, p797, "#fff");
    }
    function f134(p798, p799, p800, p801, p802) {
      let v926 = p798 + p800 * Math.cos(p801);
      let v927 = p799 + p800 * Math.sin(p801);
      let v928 = p800 * 0.4;
      p802.moveTo(p798, p799);
      p802.beginPath();
      p802.quadraticCurveTo((p798 + v926) / 2 + v928 * Math.cos(p801 + Math.PI / 2), (p799 + v927) / 2 + v928 * Math.sin(p801 + Math.PI / 2), v926, v927);
      p802.quadraticCurveTo((p798 + v926) / 2 - v928 * Math.cos(p801 + Math.PI / 2), (p799 + v927) / 2 - v928 * Math.sin(p801 + Math.PI / 2), p798, p799);
      p802.closePath();
      p802.fill();
      p802.stroke();
    }
    function f135(p803, p804) {
      if (v592.active) {
        p803.lineWidth = 6;
        p803.globalAlpha = 1;
        p803.beginPath();
        p803.strokeStyle = "#00ffff";
        p803.moveTo(v286.x - p804.x, v286.y - p804.y);
        let v929 = v592.paths.length;
        for (let v930 = 0; v930 < v929; v930++) {
          let v931 = v592.paths[v930];
          if (v931) {
            p803.lineTo(v931.x - p804.x, v931.y - p804.y);
          }
        }
        p803.stroke();
        if (v293.pushData) {
          p803.lineWidth = 6;
          p803.beginPath();
          p803.strokeStyle = "#fff";
          p803.moveTo(v592.paths[v592.paths.length - 1].x - p804.x, v592.paths[v592.paths.length - 1].y - p804.y);
          p803.lineTo(v293.pushData.x - p804.x, v293.pushData.y - p804.y);
          p803.stroke();
        }
      } else if (v293.autoPush) {
        p803.lineWidth = 6;
        p803.globalAlpha = 1;
        p803.beginPath();
        p803.strokeStyle = "#fff";
        p803.moveTo(v286.x - p804.x, v286.y - p804.y);
        p803.lineTo(v293.pushData.x - p804.x, v293.pushData.y - p804.y);
        p803.stroke();
      } else if (v592.finded) {
        p803.globalAlpha = 1;
        p803.lineWidth = 6;
        p803.beginPath();
        p803.strokeStyle = "#00ffff";
        p803.moveTo(v286.x - p804.x, v286.y - p804.y);
        let v932 = v592.paths.length;
        for (let v933 = 0; v933 < v932; v933++) {
          let v934 = v592.paths[v933];
          if (v934) {
            p803.lineTo(v934.x - p804.x, v934.y - p804.y);
          }
        }
        p803.stroke();
      }
    }
    function f136(p805, p806, p807, p808, p809, p810) {
      p808 = p808 || v62;
      p808.beginPath();
      p808.arc(p805, p806, p807, 0, Math.PI * 2);
      if (!p810) {
        p808.fill();
      }
      if (!p809) {
        p808.stroke();
      }
    }
    function f137(p811, p812, p813, p814, p815, p816) {
      p814 = p814 || v62;
      p814.beginPath();
      p814.arc(p811, p812, p813, 0, Math.PI * 2);
      if (!p816) {
        p814.fill();
      }
      if (!p815) {
        p814.stroke();
      }
    }
    function f138(p817, p818, p819, p820) {
      let v935 = Math.PI / 2 * 3;
      let v936;
      let v937;
      let v938 = Math.PI / p818;
      p817.beginPath();
      p817.moveTo(0, -p819);
      for (let v939 = 0; v939 < p818; v939++) {
        v936 = Math.cos(v935) * p819;
        v937 = Math.sin(v935) * p819;
        p817.lineTo(v936, v937);
        v935 += v938;
        v936 = Math.cos(v935) * p820;
        v937 = Math.sin(v935) * p820;
        p817.lineTo(v936, v937);
        v935 += v938;
      }
      p817.lineTo(0, -p819);
      p817.closePath();
    }
    function f139(p821, p822, p823, p824) {
      let v940 = Math.PI / 2 * 3;
      let v941;
      let v942;
      let v943 = Math.PI / p822;
      p821.beginPath();
      p821.moveTo(0, -p823);
      for (let v944 = 0; v944 < p822; v944++) {
        v941 = Math.cos(v940) * p823;
        v942 = Math.sin(v940) * p823;
        p821.lineTo(v941, v942);
        v940 += v943;
        v941 = Math.cos(v940) * p824;
        v942 = Math.sin(v940) * p824;
        p821.lineTo(v941, v942);
        v940 += v943;
      }
      p821.lineTo(0, -p823);
      p821.closePath();
    }
    function f140(p825, p826, p827, p828, p829, p830, p831) {
      if (!p831) {
        p829.fillRect(p825 - p827 / 2, p826 - p828 / 2, p827, p828);
      }
      if (!p830) {
        p829.strokeRect(p825 - p827 / 2, p826 - p828 / 2, p827, p828);
      }
    }
    function f141(p832, p833, p834, p835, p836, p837, p838) {
      if (!p838) {
        p836.fillRect(p832 - p834 / 2, p833 - p835 / 2, p834, p835);
      }
      if (!p837) {
        p836.strokeRect(p832 - p834 / 2, p833 - p835 / 2, p834, p835);
      }
    }
    function f142(p839, p840, p841, p842, p843, p844, p845, p846) {
      p844.save();
      p844.translate(p839, p840);
      p843 = Math.ceil(p843 / 2);
      for (let v945 = 0; v945 < p843; v945++) {
        f140(0, 0, p841 * 2, p842, p844, p845, p846);
        p844.rotate(Math.PI / p843);
      }
      p844.restore();
    }
    function f143(p847, p848, p849, p850) {
      let v946 = Math.PI / 2 * 3;
      let v947;
      let v948;
      let v949 = Math.PI / p848;
      let v950;
      p847.beginPath();
      p847.moveTo(0, -p850);
      for (let v951 = 0; v951 < p848; v951++) {
        v950 = v679.randInt(p849 + 0.9, p849 * 1.2);
        p847.quadraticCurveTo(Math.cos(v946 + v949) * v950, Math.sin(v946 + v949) * v950, Math.cos(v946 + v949 * 2) * p850, Math.sin(v946 + v949 * 2) * p850);
        v946 += v949 * 2;
      }
      p847.lineTo(0, -p850);
      p847.closePath();
    }
    function f144(p851, p852) {
      p852 = p852 || v62;
      let v952 = p851 * (Math.sqrt(3) / 2);
      p852.beginPath();
      p852.moveTo(0, -v952 / 2);
      p852.lineTo(-p851 / 2, v952 / 2);
      p852.lineTo(p851 / 2, v952 / 2);
      p852.lineTo(0, -v952 / 2);
      p852.fill();
      p852.closePath();
    }
    function f145(p853, p854, p855) {
      let v953 = p853.lineWidth || 0;
      let v954 = p855 / 2;
      p853.beginPath();
      let v955 = Math.PI * 2 / p854;
      for (let v956 = 0; v956 < p854; v956++) {
        let v957 = v954 + (v954 - v953 / 2) * Math.cos(v955 * v956);
        let v958 = v954 + (v954 - v953 / 2) * Math.sin(v955 * v956);
        p853.lineTo(v957, v958);
      }
      p853.closePath();
    }
    function f146() {
      var v959 = vP11.mapScale / 2;
      v681.add(0, v959, v959 + 200, 0, vP11.treeScales[3], 0);
      v681.add(1, v959, v959 - 480, 0, vP11.treeScales[3], 0);
      v681.add(2, v959 + 300, v959 + 450, 0, vP11.treeScales[3], 0);
      v681.add(3, v959 - 950, v959 - 130, 0, vP11.treeScales[2], 0);
      v681.add(4, v959 - 750, v959 - 400, 0, vP11.treeScales[3], 0);
      v681.add(5, v959 - 700, v959 + 400, 0, vP11.treeScales[2], 0);
      v681.add(6, v959 + 800, v959 - 200, 0, vP11.treeScales[3], 0);
      v681.add(7, v959 - 260, v959 + 340, 0, vP11.bushScales[3], 1);
      v681.add(8, v959 + 760, v959 + 310, 0, vP11.bushScales[3], 1);
      v681.add(9, v959 - 800, v959 + 100, 0, vP11.bushScales[3], 1);
      v681.add(10, v959 - 800, v959 + 300, 0, v680.list[4].scale, v680.list[4].id, v680.list[10]);
      v681.add(11, v959 + 650, v959 - 390, 0, v680.list[4].scale, v680.list[4].id, v680.list[10]);
      v681.add(12, v959 - 400, v959 - 450, 0, vP11.rockScales[2], 2);
    }
    const v960 = 35;
    function f147(p856, p857) {
      v62.fillStyle = "#91b2db";
      v284.filter(p858 => p858.active).forEach(p859 => {
        p859.animate(v299);
        v62.globalAlpha = p859.alpha;
        v62.strokeStyle = v309;
        v62.save();
        v62.translate(p859.x - p856, p859.y - p857);
        v62.rotate(p859.dir);
        v62.scale(p859.visScale / p859.scale, p859.visScale / p859.scale);
        f150(p859, v62);
        v62.restore();
        v62.font = "20px Ubuntu";
        let v961 = v62.measureText("imagine using fixed mod L");
        let v962 = 60;
        let v963 = v961.width + 10;
        v62.textBaseline = "middle";
        v62.textAlign = "center";
        v62.fillStyle = "#ccc";
        v62.strokeStyle = "#999";
        v62.roundRect(p859.x - p856 - v963 / 2, p859.y - p857 - v962 / 2 + p859.scale * 1.5, v963, v962, 6);
        v62.fill();
        v62.stroke();
        v62.fillStyle = "#fff";
        v62.strokeStyle = "#000";
        v62.strokeText("disney", p859.x - p856, p859.y + p859.scale * 1.5 - p857);
        v62.fillText("fixed", p859.x - p856, p859.y + p859.scale * 1.5 - p857);
        v62.strokeText(p859.name, p859.x - p856, p859.y + p859.scale * 1.5 + 20 - p857);
        v62.fillText(p859.name, p859.x - p856, p859.y + p859.scale * 1.5 + 20 - p857);
        v62.fillStyle = "#91b2db";
      });
    }
    function f148(p860, p861, p862, p863, p864, p865) {
      p863 = p863 || v62;
      p863.beginPath();
      p863.ellipse(p860, p861, p862 * 1.5, p862, Math.PI / 2, 0, Math.PI * 2);
      if (!p865) {
        p863.fill();
      }
      if (!p864) {
        p863.lineWidth = 3.5;
        p863.stroke();
      }
    }
    function f149(p866, p867, p868) {
      v62.globalAlpha = 1;
      v62.fillStyle = "#91b2db";
      for (var v964 = 0; v964 < v278.length; ++v964) {
        v288 = v278[v964];
        if (v288.zIndex == p868) {
          v288.animate(v299);
          if (v288.visible) {
            v288.skinRot += v299 * 0.002;
            v304 = !vF20.showDir && !v241 && v288 == v286 ? vF20.attackDir ? f75() : f71() : v288.dir || 0;
            v62.save();
            v62.translate(v288.x - p866, v288.y - p867);
            v62.rotate(v304 + v288.dirPlus);
            f151(v288, v62);
            v62.restore();
          }
        }
      }
    }
    function f150(p869, p870) {
      p870 = p870 || v62;
      p870.lineWidth = v311;
      p870.lineJoin = "miter";
      let v965 = Math.PI / 4 * (v680.weapons[p869.weaponIndex].armS || 1);
      let v966 = p869.buildIndex < 0 ? v680.weapons[p869.weaponIndex].hndS || 1 : 1;
      let v967 = p869.buildIndex < 0 ? v680.weapons[p869.weaponIndex].hndD || 1 : 1;
      if (p869.buildIndex < 0 && !v680.weapons[p869.weaponIndex].aboveHand) {
        f154(v680.weapons[p869.weaponIndex], vP11.weaponVariants[p869.weaponVariant].src, p869.scale, 0, p870);
        if (v680.weapons[p869.weaponIndex].projectile != undefined && !v680.weapons[p869.weaponIndex].hideProjectile) {
          f156(p869.scale, 0, v680.projectiles[v680.weapons[p869.weaponIndex].projectile], v62);
        }
      }
      p870.fillStyle = vP11.skinColors[p869.skinColor];
      f136(p869.scale * Math.cos(v965), p869.scale * Math.sin(v965), 14);
      f136(p869.scale * v967 * Math.cos(-v965 * v966), p869.scale * v967 * Math.sin(-v965 * v966), 14);
      if (p869.buildIndex < 0 && v680.weapons[p869.weaponIndex].aboveHand) {
        f154(v680.weapons[p869.weaponIndex], vP11.weaponVariants[p869.weaponVariant].src, p869.scale, 0, p870);
        if (v680.weapons[p869.weaponIndex].projectile != undefined && !v680.weapons[p869.weaponIndex].hideProjectile) {
          f156(p869.scale, 0, v680.projectiles[v680.weapons[p869.weaponIndex].projectile], v62);
        }
      }
      if (p869.buildIndex >= 0) {
        var v_0x3e3113 = f160(v680.list[p869.buildIndex]);
        p870.drawImage(v_0x3e3113, p869.scale - v680.list[p869.buildIndex].holdOffset, -v_0x3e3113.width / 2);
      }
      f136(0, 0, p869.scale, p870);
      p870.lineWidth = 2;
      p870.fillStyle = "#555";
      p870.font = "35px Hammersmith One";
      p870.textBaseline = "middle";
      p870.textAlign = "center";
      p870.fillText("(", 20, 5);
      p870.rotate(Math.PI / 2);
      p870.font = "30px Hammersmith One";
      p870.fillText("X", -15, 15 / 2);
      p870.fillText("D", 15, 15 / 2);
    }
    function f151(p871, p872) {
      p872 = p872 || v62;
      p872.lineWidth = v311;
      p872.lineJoin = "miter";
      let v968 = Math.PI / 4 * (v680.weapons[p871.weaponIndex].armS || 1);
      let v969 = p871.buildIndex < 0 ? v680.weapons[p871.weaponIndex].hndS || 1 : 1;
      let v970 = p871.buildIndex < 0 ? v680.weapons[p871.weaponIndex].hndD || 1 : 1;
      let v971 = p871 == v278 && p871.weapons[0] == 3 && p871.weapons[1] == 15;
      if (p871.tailIndex > 0) {
        f153(p871.tailIndex, p872, p871);
      }
      if (p871.buildIndex < 0 && !v680.weapons[p871.weaponIndex].aboveHand) {
        f154(v680.weapons[v971 ? 4 : p871.weaponIndex], vP11.weaponVariants[p871.weaponVariant].src, p871.scale, 0, p872);
        if (v680.weapons[p871.weaponIndex].projectile != undefined && !v680.weapons[p871.weaponIndex].hideProjectile) {
          f156(p871.scale, 0, v680.projectiles[v680.weapons[p871.weaponIndex].projectile], v62);
        }
      }
      p872.fillStyle = vP11.skinColors[p871.skinColor];
      f136(p871.scale * Math.cos(v968), p871.scale * Math.sin(v968), 14);
      f136(p871.scale * v970 * Math.cos(-v968 * v969), p871.scale * v970 * Math.sin(-v968 * v969), 14);
      if (p871.buildIndex < 0 && v680.weapons[p871.weaponIndex].aboveHand) {
        f154(v680.weapons[p871.weaponIndex], vP11.weaponVariants[p871.weaponVariant].src, p871.scale, 0, p872);
        if (v680.weapons[p871.weaponIndex].projectile != undefined && !v680.weapons[p871.weaponIndex].hideProjectile) {
          f156(p871.scale, 0, v680.projectiles[v680.weapons[p871.weaponIndex].projectile], v62);
        }
      }
      if (p871.buildIndex >= 0) {
        var v_0x3e31132 = f160(v680.list[p871.buildIndex]);
        p872.drawImage(v_0x3e31132, p871.scale - v680.list[p871.buildIndex].holdOffset, -v_0x3e31132.width / 2);
      }
      f136(0, 0, p871.scale, p872);
      if (p871.skinIndex > 0) {
        p872.rotate(Math.PI / 2);
        f152(p871.skinIndex, p872, null, p871);
      }
    }
    let v972 = {};
    let v973 = {};
    let v974;
    function f152(p873, p874, p875, p876) {
      v974 = v972[p873];
      if (!v974) {
        let v975 = new Image();
        v975.onload = function () {
          this.isLoaded = true;
          this.onload = null;
        };
        v975.src = "https://moomoo.io/img/hats/hat_" + p873 + ".png";
        v972[p873] = v975;
        v974 = v975;
      }
      let v976 = p875 || v973[p873];
      if (!v976) {
        for (let v977 = 0; v977 < v683.length; ++v977) {
          if (v683[v977].id == p873) {
            v976 = v683[v977];
            break;
          }
        }
        v973[p873] = v976;
      }
      if (v974.isLoaded) {
        p874.drawImage(v974, -v976.scale / 2, -v976.scale / 2, v976.scale, v976.scale);
      }
      if (!p875 && v976.topSprite) {
        p874.save();
        p874.rotate(p876.skinRot);
        f152(p873 + "_top", p874, v976, p876);
        p874.restore();
      }
    }
    let v978 = {};
    let v979 = {};
    function f153(p877, p878, p879) {
      v974 = v978[p877];
      if (!v974) {
        let v980 = new Image();
        v980.onload = function () {
          this.isLoaded = true;
          this.onload = null;
        };
        v980.src = "https://moomoo.io/img/accessories/access_" + p877 + ".png";
        v978[p877] = v980;
        v974 = v980;
      }
      let v981 = v979[p877];
      if (!v981) {
        for (let v982 = 0; v982 < v684.length; ++v982) {
          if (v684[v982].id == p877) {
            v981 = v684[v982];
            break;
          }
        }
        v979[p877] = v981;
      }
      if (v974.isLoaded) {
        p878.save();
        p878.translate(-20 - (v981.xOff || 0), 0);
        if (v981.spin) {
          p878.rotate(p879.skinRot);
        }
        p878.drawImage(v974, -(v981.scale / 2), -(v981.scale / 2), v981.scale, v981.scale);
        p878.restore();
      }
    }
    let v983 = {};
    function f154(p880, p881, p882, p883, p884) {
      let v984 = p880.src + (p881 || "");
      let v985 = v983[v984];
      if (!v985) {
        v985 = new Image();
        v985.onload = function () {
          this.isLoaded = true;
        };
        v985.src = "https://moomoo.io/img/weapons/" + v984 + ".png";
        v983[v984] = v985;
      }
      if (v985.isLoaded) {
        p884.drawImage(v985, p882 + p880.xOff - p880.length / 2, p883 + p880.yOff - p880.width / 2, p880.length, p880.width);
      }
    }
    function f155(p885, p886, p887) {
      for (let v986 = 0; v986 < v283.length; v986++) {
        v288 = v283[v986];
        if (v288.active && v288.layer == p885 && v288.inWindow) {
          v288.update(v299);
          if (v288.active && f167(v288.x - p886, v288.y - p887, v288.scale)) {
            v62.save();
            v62.translate(v288.x - p886, v288.y - p887);
            v62.rotate(v288.dir);
            f156(0, 0, v288, v62, 1);
            v62.restore();
          }
        }
      }
      ;
    }
    let v987 = {};
    function f156(p888, p889, p890, p891, p892) {
      if (p890.src) {
        let v988 = v680.projectiles[p890.indx].src;
        let v989 = v987[v988];
        if (!v989) {
          v989 = new Image();
          v989.onload = function () {
            this.isLoaded = true;
          };
          v989.src = "https://moomoo.io/img/weapons/" + v988 + ".png";
          v987[v988] = v989;
        }
        if (v989.isLoaded) {
          p891.drawImage(v989, p888 - p890.scale / 2, p889 - p890.scale / 2, p890.scale, p890.scale);
        }
      } else if (p890.indx == 1) {
        p891.fillStyle = "#939393";
        f136(p888, p889, p890.scale, p891);
      }
    }
    let v990 = {};
    function f157(p893, p894) {
      let v991 = p893.index;
      let v992 = v990[v991];
      if (!v992) {
        let v993 = new Image();
        v993.onload = function () {
          this.isLoaded = true;
          this.onload = null;
        };
        v993.src = "https://moomoo.io/img/animals/" + p893.src + ".png";
        v992 = v993;
        v990[v991] = v992;
      }
      if (v992.isLoaded) {
        let v994 = p893.scale * 1.2 * (p893.spriteMlt || 1);
        p894.drawImage(v992, -v994, -v994, v994 * 2, v994 * 2);
      }
    }
    function f158(p895, p896, p897, p898) {
      let v995 = vP11.riverWidth + p898;
      let v996 = vP11.mapScale / 2 - p896 - v995 / 2;
      if (v996 < v297 && v996 + v995 > 0) {
        p897.fillRect(0, v996, v296, v995);
      }
    }
    let v997 = {};
    function f159(p899) {
      let v998 = p899.y >= vP11.mapScale - vP11.snowBiomeTop ? 2 : p899.y <= vP11.snowBiomeTop ? 1 : 0;
      let v999 = p899.type + "_" + p899.scale + "_" + v998;
      let v1000 = v997[v999];
      if (!v1000) {
        let v1001 = 15;
        let v1002 = document.createElement("canvas");
        v1002.width = v1002.height = p899.scale * 2.1 + v311;
        let v1003 = v1002.getContext("2d");
        v1003.translate(v1002.width / 2, v1002.height / 2);
        v1003.rotate(v679.randFloat(0, Math.PI));
        v1003.strokeStyle = v309;
        v1003.lineWidth = v311;
        if (p899.type == 0) {
          let v1004;
          let v1005 = v679.randInt(5, 7);
          v1003.globalAlpha = v312 ? 0.6 : 0.8;
          for (let v1006 = 0; v1006 < 2; ++v1006) {
            v1004 = v288.scale * (!v1006 ? 1 : 0.5);
            f138(v1003, v1005, v1004, v1004 * 0.7);
            v1003.fillStyle = !v998 ? !v1006 ? "#9ebf57" : "#b4db62" : !v1006 ? "#e3f1f4" : "#fff";
            v1003.fill();
            if (!v1006) {
              v1003.stroke();
              v1003.shadowBlur = null;
              v1003.shadowColor = null;
              v1003.globalAlpha = 1;
            }
          }
        } else if (p899.type == 1) {
          if (v998 == 2) {
            v1003.fillStyle = "#606060";
            f138(v1003, 6, p899.scale * 0.3, p899.scale * 0.71);
            v1003.fill();
            v1003.stroke();
            v1003.fillStyle = "#89a54c";
            f136(0, 0, p899.scale * 0.55, v1003);
            v1003.fillStyle = "#a5c65b";
            f136(0, 0, p899.scale * 0.3, v1003, true);
          } else {
            f143(v1003, 6, v288.scale, v288.scale * 0.7);
            v1003.fillStyle = v998 ? "#e3f1f4" : "#89a54c";
            v1003.fill();
            v1003.stroke();
            v1003.fillStyle = v998 ? "#6a64af" : "#c15555";
            let v1007;
            let v1008 = 4;
            let v1009 = Math.PI * 2 / v1008;
            for (let v1010 = 0; v1010 < v1008; ++v1010) {
              v1007 = v679.randInt(v288.scale / 3.5, v288.scale / 2.3);
              f136(v1007 * Math.cos(v1009 * v1010), v1007 * Math.sin(v1009 * v1010), v679.randInt(10, 12), v1003);
            }
          }
        } else if (p899.type == 2 || p899.type == 3) {
          v1003.fillStyle = p899.type == 2 ? v998 == 2 ? "#938d77" : "#939393" : "#e0c655";
          f138(v1003, 3, p899.scale, p899.scale);
          v1003.fill();
          v1003.stroke();
          v1003.shadowBlur = null;
          v1003.shadowColor = null;
          v1003.fillStyle = p899.type == 2 ? v998 == 2 ? "#b2ab90" : "#bcbcbc" : "#ebdca3";
          f138(v1003, 3, p899.scale * 0.55, p899.scale * 0.65);
          v1003.fill();
        }
        v1000 = v1002;
        v997[v999] = v1000;
      }
      return v1000;
    }
    let v1011 = [];
    function f160(p900, p901) {
      let v1012 = v1011[p900.id];
      if (!v1012 || p901) {
        let v1013 = !p901 && v312 ? 15 : 0;
        let v1014 = document.createElement("canvas");
        let v1015 = !p901 && p900.name == "windmill" ? v680.list[4].scale : p900.scale;
        v1014.width = v1014.height = v1015 * 2.5 + v311 + (v680.list[p900.id].spritePadding || 0) + v1013;
        if (vP11.useWebGl) {
          let v1016 = v1014.getContext("webgl");
          v1016.clearColor(0, 0, 0, 0);
          v1016.clear(v1016.COLOR_BUFFER_BIT);
          let v1017 = v1016.createBuffer();
          v1016.bindBuffer(v1016.ARRAY_BUFFER, v1017);
          function f161(p902, p903, p904, p905) {
            let v1018 = v1016.createShader(v1016.VERTEX_SHADER);
            v1016.shaderSource(v1018, p902);
            v1016.compileShader(v1018);
            v1016.getShaderParameter(v1018, v1016.COMPILE_STATUS);
            let v1019 = v1016.createShader(v1016.FRAGMENT_SHADER);
            v1016.shaderSource(v1019, p903);
            v1016.compileShader(v1019);
            v1016.getShaderParameter(v1019, v1016.COMPILE_STATUS);
            let v1020 = v1016.createProgram();
            v1016.attachShader(v1020, v1018);
            v1016.attachShader(v1020, v1019);
            v1016.linkProgram(v1020);
            v1016.getProgramParameter(v1020, v1016.LINK_STATUS);
            v1016.useProgram(v1020);
            let v1021 = v1016.getAttribLocation(v1020, "vertex");
            v1016.enableVertexAttribArray(v1021);
            v1016.vertexAttribPointer(v1021, 2, v1016.FLOAT, false, 0, 0);
            let v1022 = p904.length / 2;
            v1016.bufferData(v1016.ARRAY_BUFFER, new Float32Array(p904), v1016.DYNAMIC_DRAW);
            v1016.drawArrays(p905, 0, v1022);
          }
          function f162(p906) {
            return p906.slice(1).match(/.{1,2}/g).map(p907 => parseInt(p907, 16));
          }
          function f163(p908, p909, p910) {
            return [p908 / 255, p909 / 255, p910 / 255].join(", ");
          }
          let v1023 = 100;
          for (let v1024 = 0; v1024 < v1023; v1024++) {
            let v1025 = Math.PI * (v1024 / (v1023 / 2));
            f161("\n                            precision mediump float;\n                            attribute vec2 vertex;\n                            void main(void) {\n                                gl_Position = vec4(vertex, 0, 1);\n                            }\n                            ", "\n                            precision mediump float;\n                            void main(void) {\n                                gl_FragColor = vec4(" + f163(...f162("#fff")) + ", 1);\n                            }\n                            ", [0 + Math.cos(v1025) * 0.5, 0 + Math.sin(v1025) * 0.5, 0, 0], v1016.LINE_LOOP);
          }
        } else {
          let v1026 = v1014.getContext("2d");
          v1026.translate(v1014.width / 2, v1014.height / 2);
          v1026.rotate(p901 ? 0 : Math.PI / 2);
          v1026.strokeStyle = v309;
          v1026.lineWidth = v311 * (p901 ? v1014.width / 81 : 1);
          if (p900.name == "apple") {
            v1026.fillStyle = "#c15555";
            f136(0, 0, p900.scale, v1026);
            v1026.fillStyle = "#89a54c";
            let v1027 = -(Math.PI / 2);
            f134(p900.scale * Math.cos(v1027), p900.scale * Math.sin(v1027), 25, v1027 + Math.PI / 2, v1026);
          } else if (p900.name == "cookie") {
            v1026.fillStyle = "#cca861";
            f136(0, 0, p900.scale, v1026);
            v1026.fillStyle = "#937c4b";
            let v1028 = 4;
            let v1029 = Math.PI * 2 / v1028;
            let v1030;
            for (let v1031 = 0; v1031 < v1028; ++v1031) {
              v1030 = v679.randInt(p900.scale / 2.5, p900.scale / 1.7);
              f136(v1030 * Math.cos(v1029 * v1031), v1030 * Math.sin(v1029 * v1031), v679.randInt(4, 5), v1026, true);
            }
          } else if (p900.name == "cheese") {
            v1026.fillStyle = "#f4f3ac";
            f136(0, 0, p900.scale, v1026);
            v1026.fillStyle = "#c3c28b";
            let v1032 = 4;
            let v1033 = Math.PI * 2 / v1032;
            let v1034;
            for (let v1035 = 0; v1035 < v1032; ++v1035) {
              v1034 = v679.randInt(p900.scale / 2.5, p900.scale / 1.7);
              f136(v1034 * Math.cos(v1033 * v1035), v1034 * Math.sin(v1033 * v1035), v679.randInt(4, 5), v1026, true);
            }
          } else if (p900.name == "wood wall" || p900.name == "stone wall" || p900.name == "castle wall") {
            v1026.fillStyle = p900.name == "castle wall" ? "#83898e" : p900.name == "wood wall" ? "#a5974c" : "#939393";
            let v1036 = p900.name == "castle wall" ? 4 : 3;
            f138(v1026, v1036, p900.scale * 1.1, p900.scale * 1.1);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = p900.name == "castle wall" ? "#9da4aa" : p900.name == "wood wall" ? "#c9b758" : "#bcbcbc";
            f138(v1026, v1036, p900.scale * 0.65, p900.scale * 0.65);
            v1026.fill();
          } else if (p900.name == "spikes" || p900.name == "greater spikes" || p900.name == "poison spikes" || p900.name == "spinning spikes") {
            v1026.fillStyle = p900.name == "poison spikes" ? "#7b935d" : "#939393";
            let v1037 = p900.scale * 0.6;
            f138(v1026, p900.name == "spikes" ? 5 : 6, p900.scale, v1037);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#a5974c";
            f136(0, 0, v1037, v1026);
            v1026.fillStyle = "#c9b758";
            f136(0, 0, v1037 / 2, v1026, true);
          } else if (p900.name == "windmill" || p900.name == "faster windmill" || p900.name == "power mill") {
            v1026.fillStyle = "#a5974c";
            f136(0, 0, v1015, v1026);
            v1026.fillStyle = "#c9b758";
            f142(0, 0, v1015 * 1.5, 29, 4, v1026);
            v1026.fillStyle = "#a5974c";
            f136(0, 0, v1015 * 0.5, v1026);
          } else if (p900.name == "mine") {
            v1026.fillStyle = "#939393";
            f138(v1026, 3, p900.scale, p900.scale);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#bcbcbc";
            f138(v1026, 3, p900.scale * 0.55, p900.scale * 0.65);
            v1026.fill();
          } else if (p900.name == "sapling") {
            for (let v1038 = 0; v1038 < 2; ++v1038) {
              let v1039 = p900.scale * (!v1038 ? 1 : 0.5);
              f138(v1026, 7, v1039, v1039 * 0.7);
              v1026.fillStyle = !v1038 ? "#9ebf57" : "#b4db62";
              v1026.fill();
              if (!v1038) {
                v1026.stroke();
              }
            }
          } else if (p900.name == "pit trap") {
            v1026.fillStyle = "#a5974c";
            f138(v1026, 3, p900.scale * 1.1, p900.scale * 1.1);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = v309;
            f138(v1026, 3, p900.scale * 0.65, p900.scale * 0.65);
            v1026.fill();
          } else if (p900.name == "boost pad") {
            v1026.fillStyle = "#7e7f82";
            f140(0, 0, p900.scale * 2, p900.scale * 2, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#dbd97d";
            f144(p900.scale * 1, v1026);
          } else if (p900.name == "turret") {
            v1026.fillStyle = "#a5974c";
            f136(0, 0, p900.scale, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#939393";
            let v1040 = 50;
            f140(0, -v1040 / 2, p900.scale * 0.9, v1040, v1026);
            f136(0, 0, p900.scale * 0.6, v1026);
            v1026.fill();
            v1026.stroke();
          } else if (p900.name == "platform") {
            v1026.fillStyle = "#cebd5f";
            let v1041 = 4;
            let v1042 = p900.scale * 2;
            let v1043 = v1042 / v1041;
            let v1044 = -(p900.scale / 2);
            for (let v1045 = 0; v1045 < v1041; ++v1045) {
              f140(v1044 - v1043 / 2, 0, v1043, p900.scale * 2, v1026);
              v1026.fill();
              v1026.stroke();
              v1044 += v1042 / v1041;
            }
          } else if (p900.name == "healing pad") {
            v1026.fillStyle = "#7e7f82";
            f140(0, 0, p900.scale * 2, p900.scale * 2, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#db6e6e";
            f142(0, 0, p900.scale * 0.65, 20, 4, v1026, true);
          } else if (p900.name == "spawn pad") {
            v1026.fillStyle = "#7e7f82";
            f140(0, 0, p900.scale * 2, p900.scale * 2, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.fillStyle = "#71aad6";
            f136(0, 0, p900.scale * 0.6, v1026);
          } else if (p900.name == "blocker") {
            v1026.fillStyle = "#7e7f82";
            f136(0, 0, p900.scale, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.rotate(Math.PI / 4);
            v1026.fillStyle = "#db6e6e";
            f142(0, 0, p900.scale * 0.65, 20, 4, v1026, true);
          } else if (p900.name == "teleporter") {
            v1026.fillStyle = "#7e7f82";
            f136(0, 0, p900.scale, v1026);
            v1026.fill();
            v1026.stroke();
            v1026.rotate(Math.PI / 4);
            v1026.fillStyle = "#d76edb";
            f136(0, 0, p900.scale * 0.5, v1026, true);
          }
        }
        v1012 = v1014;
        if (!p901) {
          v1011[p900.id] = v1012;
        }
      }
      return v1012;
    }
    function f164(p911, p912, p913) {
      let vV62 = v62;
      let v1046 = p911.name == "windmill" ? v680.list[4].scale : p911.scale;
      vV62.save();
      vV62.translate(p912, p913);
      vV62.rotate(p911.dir);
      vV62.strokeStyle = v309;
      vV62.lineWidth = v311;
      if (p911.name == "apple") {
        vV62.fillStyle = "#c15555";
        f136(0, 0, p911.scale, vV62);
        vV62.fillStyle = "#89a54c";
        let v1047 = -(Math.PI / 2);
        f134(p911.scale * Math.cos(v1047), p911.scale * Math.sin(v1047), 25, v1047 + Math.PI / 2, vV62);
      } else if (p911.name == "cookie") {
        vV62.fillStyle = "#cca861";
        f136(0, 0, p911.scale, vV62);
        vV62.fillStyle = "#937c4b";
        let v1048 = 4;
        let v1049 = Math.PI * 2 / v1048;
        let v1050;
        for (let v1051 = 0; v1051 < v1048; ++v1051) {
          v1050 = v679.randInt(p911.scale / 2.5, p911.scale / 1.7);
          f136(v1050 * Math.cos(v1049 * v1051), v1050 * Math.sin(v1049 * v1051), v679.randInt(4, 5), vV62, true);
        }
      } else if (p911.name == "cheese") {
        vV62.fillStyle = "#f4f3ac";
        f136(0, 0, p911.scale, vV62);
        vV62.fillStyle = "#c3c28b";
        let v1052 = 4;
        let v1053 = Math.PI * 2 / v1052;
        let v1054;
        for (let v1055 = 0; v1055 < v1052; ++v1055) {
          v1054 = v679.randInt(p911.scale / 2.5, p911.scale / 1.7);
          f136(v1054 * Math.cos(v1053 * v1055), v1054 * Math.sin(v1053 * v1055), v679.randInt(4, 5), vV62, true);
        }
      } else if (p911.name == "wood wall" || p911.name == "stone wall" || p911.name == "castle wall") {
        vV62.fillStyle = p911.name == "castle wall" ? "#83898e" : p911.name == "wood wall" ? "#a5974c" : "#939393";
        let v1056 = p911.name == "castle wall" ? 4 : 3;
        f138(vV62, v1056, p911.scale * 1.1, p911.scale * 1.1);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = p911.name == "castle wall" ? "#9da4aa" : p911.name == "wood wall" ? "#c9b758" : "#bcbcbc";
        f138(vV62, v1056, p911.scale * 0.65, p911.scale * 0.65);
        vV62.fill();
      } else if (p911.name == "spikes" || p911.name == "greater spikes" || p911.name == "poison spikes" || p911.name == "spinning spikes") {
        vV62.fillStyle = p911.name == "poison spikes" ? "#7b935d" : "#939393";
        let v1057 = p911.scale * 0.6;
        f138(vV62, p911.name == "spikes" ? 5 : 6, p911.scale, v1057);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#a5974c";
        f136(0, 0, v1057, vV62);
        vV62.fillStyle = "#c9b758";
        f136(0, 0, v1057 / 2, vV62, true);
      } else if (p911.name == "windmill" || p911.name == "faster windmill" || p911.name == "power mill") {
        vV62.fillStyle = "#a5974c";
        f136(0, 0, v1046, vV62);
        vV62.fillStyle = "#c9b758";
        f142(0, 0, v1046 * 1.5, 29, 4, vV62);
        vV62.fillStyle = "#a5974c";
        f136(0, 0, v1046 * 0.5, vV62);
      } else if (p911.name == "mine") {
        vV62.fillStyle = "#939393";
        f138(vV62, 3, p911.scale, p911.scale);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#bcbcbc";
        f138(vV62, 3, p911.scale * 0.55, p911.scale * 0.65);
        vV62.fill();
      } else if (p911.name == "sapling") {
        for (let v1058 = 0; v1058 < 2; ++v1058) {
          let v1059 = p911.scale * (!v1058 ? 1 : 0.5);
          f138(vV62, 7, v1059, v1059 * 0.7);
          vV62.fillStyle = !v1058 ? "#9ebf57" : "#b4db62";
          vV62.fill();
          if (!v1058) {
            vV62.stroke();
          }
        }
      } else if (p911.name == "pit trap") {
        vV62.fillStyle = "#a5974c";
        f138(vV62, 3, p911.scale * 1.1, p911.scale * 1.1);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = v309;
        f138(vV62, 3, p911.scale * 0.65, p911.scale * 0.65);
        vV62.fill();
      } else if (p911.name == "boost pad") {
        vV62.fillStyle = "#7e7f82";
        f140(0, 0, p911.scale * 2, p911.scale * 2, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#dbd97d";
        f144(p911.scale * 1, vV62);
      } else if (p911.name == "turret") {
        vV62.fillStyle = "#a5974c";
        f136(0, 0, p911.scale, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#939393";
        let v1060 = 50;
        f140(0, -v1060 / 2, p911.scale * 0.9, v1060, vV62);
        f136(0, 0, p911.scale * 0.6, vV62);
        vV62.fill();
        vV62.stroke();
      } else if (p911.name == "platform") {
        vV62.fillStyle = "#cebd5f";
        let v1061 = 4;
        let v1062 = p911.scale * 2;
        let v1063 = v1062 / v1061;
        let v1064 = -(p911.scale / 2);
        for (let v1065 = 0; v1065 < v1061; ++v1065) {
          f140(v1064 - v1063 / 2, 0, v1063, p911.scale * 2, vV62);
          vV62.fill();
          vV62.stroke();
          v1064 += v1062 / v1061;
        }
      } else if (p911.name == "healing pad") {
        vV62.fillStyle = "#7e7f82";
        f140(0, 0, p911.scale * 2, p911.scale * 2, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#db6e6e";
        f142(0, 0, p911.scale * 0.65, 20, 4, vV62, true);
      } else if (p911.name == "spawn pad") {
        vV62.fillStyle = "#7e7f82";
        f140(0, 0, p911.scale * 2, p911.scale * 2, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.fillStyle = "#71aad6";
        f136(0, 0, p911.scale * 0.6, vV62);
      } else if (p911.name == "blocker") {
        vV62.fillStyle = "#7e7f82";
        f136(0, 0, p911.scale, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.rotate(Math.PI / 4);
        vV62.fillStyle = "#db6e6e";
        f142(0, 0, p911.scale * 0.65, 20, 4, vV62, true);
      } else if (p911.name == "teleporter") {
        vV62.fillStyle = "#7e7f82";
        f136(0, 0, p911.scale, vV62);
        vV62.fill();
        vV62.stroke();
        vV62.rotate(Math.PI / 4);
        vV62.fillStyle = "#d76edb";
        f136(0, 0, p911.scale * 0.5, vV62, true);
      }
      vV62.restore();
    }
    let v1066 = [];
    function f165(p914) {
      let v1067 = v1066[p914.id];
      if (!v1067) {
        let v1068 = v312 ? 15 : 0;
        let v1069 = document.createElement("canvas");
        v1069.width = v1069.height = p914.scale * 2.5 + v311 + (v680.list[p914.id].spritePadding || 0) + v1068;
        let v1070 = v1069.getContext("2d");
        v1070.translate(v1069.width / 2, v1069.height / 2);
        v1070.rotate(Math.PI / 2);
        v1070.strokeStyle = v309;
        v1070.lineWidth = v311;
        if (v312) {
          v1070.shadowBlur = v1068;
          v1070.shadowColor = "rgba(0, 0, 0, " + Math.min(0.3, p914.alpha) + ")";
        }
        if (p914.name == "spikes" || p914.name == "greater spikes" || p914.name == "poison spikes" || p914.name == "spinning spikes") {
          v1070.fillStyle = p914.name == "poison spikes" ? "#7b935d" : "#939393";
          let v1071 = p914.scale * 0.6;
          f138(v1070, p914.name == "spikes" ? 5 : 6, p914.scale, v1071);
          v1070.fill();
          v1070.stroke();
          v1070.fillStyle = "#a5974c";
          f136(0, 0, v1071, v1070);
          v1070.fillStyle = "#cc5151";
          f136(0, 0, v1071 / 2, v1070, true);
        } else if (p914.name == "pit trap") {
          v1070.fillStyle = "#a5974c";
          f138(v1070, 3, p914.scale * 1.1, p914.scale * 1.1);
          v1070.fill();
          v1070.stroke();
          v1070.fillStyle = "#cc5151";
          f138(v1070, 3, p914.scale * 0.65, p914.scale * 0.65);
          v1070.fill();
        }
        v1067 = v1069;
        v1066[p914.id] = v1067;
      }
      return v1067;
    }
    function f166(p915, p916, p917, p918, p919) {
      p916.lineWidth = v311;
      p916.globalAlpha = 1;
      p916.strokeStyle = v309;
      p916.save();
      p916.translate(p917, p918);
      p916.rotate(p915.dir);
      if (p919) {
        p916.globalAlpha = 0.6;
        p916.fillStyle = "rgba(0, 255, 255, 0.6)";
        f136(0, 0, v288.scale, p916);
        p916.fill();
        p916.stroke();
      } else if (p915.name == "wood wall" || p915.name == "stone wall" || p915.name == "castle wall") {
        let v1072 = p915.name == "castle wall" ? 4 : 3;
        f139(p916, v1072, p915.scale * 1.1, p915.scale * 1.1);
        p916.stroke();
      } else if (p915.name == "spikes" || p915.name == "greater spikes" || p915.name == "poison spikes" || p915.name == "spinning spikes") {
        let v1073 = p915.scale * 0.6;
        f139(p916, p915.name == "spikes" ? 5 : 6, p915.scale, v1073);
        p916.stroke();
      } else if (p915.name == "windmill" || p915.name == "faster windmill" || p915.name == "power mill") {
        f137(0, 0, p915.scale, p916, false, true);
      } else if (p915.name == "mine") {
        f139(p916, 3, p915.scale, p915.scale);
        p916.stroke();
      } else if (p915.name == "sapling") {
        let v1074 = p915.scale * 0.7;
        f139(p916, 7, p915.scale, v1074);
        p916.stroke();
      } else if (p915.name == "pit trap") {
        f139(p916, 3, p915.scale * 1.1, p915.scale * 1.1);
        p916.stroke();
      } else if (p915.name == "boost pad") {
        f141(0, 0, p915.scale * 2, p915.scale * 2, p916, false, true);
      } else if (p915.name == "turret") {
        f137(0, 0, p915.scale, p916, false, true);
      } else if (p915.name == "platform") {
        f141(0, 0, p915.scale * 2, p915.scale * 2, p916, false, true);
      } else if (p915.name == "healing pad") {
        f141(0, 0, p915.scale * 2, p915.scale * 2, p916, false, true);
      } else if (p915.name == "spawn pad") {
        f141(0, 0, p915.scale * 2, p915.scale * 2, p916, false, true);
      } else if (p915.name == "blocker") {
        f137(0, 0, p915.scale, p916, false, true);
      } else if (p915.name == "teleporter") {
        f137(0, 0, p915.scale, p916, false, true);
      }
      p916.restore();
    }
    function f167(p920, p921, p922) {
      return p920 + p922 >= 0 && p920 - p922 <= v296 && p921 + p922 >= 0 && (p921, p922, v297);
    }
    function f168() {
      let v1075 = vP11.volcanoScale * 2;
      let v1076 = document.createElement("canvas");
      v1076.width = v1075;
      v1076.height = v1075;
      let v1077 = v1076.getContext("2d");
      v1077.strokeStyle = "#3e3e3e";
      v1077.lineWidth = 11;
      v1077.fillStyle = "#7f7f7f";
      f145(v1077, 10, v1075);
      v1077.fill();
      v1077.stroke();
      vV271.land = v1076;
      let v1078 = document.createElement("canvas");
      let v1079 = vP11.innerVolcanoScale * 2;
      v1078.width = v1079;
      v1078.height = v1079;
      let v1080 = v1078.getContext("2d");
      v1080.strokeStyle = "#525252";
      v1080.lineWidth = 8.8;
      v1080.fillStyle = "#f54e16";
      v1080.strokeStyle = "#f56f16";
      f145(v1080, 10, v1079);
      v1080.fill();
      v1080.stroke();
      vV271.lava = v1078;
    }
    f168();
    function f169() {
      let vVUndefined3 = vUndefined3;
      let vVUndefined4 = vUndefined4;
      vV271.animationTime += v299;
      vV271.animationTime %= vP11.volcanoAnimationDuration;
      let v1081 = vP11.volcanoAnimationDuration / 2;
      let v1082 = 1.7 + Math.abs(v1081 - vV271.animationTime) / v1081 * 0.3;
      let v1083 = vP11.innerVolcanoScale * v1082;
      v62.drawImage(vV271.land, vV271.x - vP11.volcanoScale - vVUndefined3, vV271.y - vP11.volcanoScale - vVUndefined4, vP11.volcanoScale * 2, vP11.volcanoScale * 2);
      v62.drawImage(vV271.lava, vV271.x - v1083 - vVUndefined3, vV271.y - v1083 - vVUndefined4, v1083 * 2, v1083 * 2);
    }
    function f170(p923, p924, p925) {
      let v1084;
      let v1085;
      let v1086;
      v282.forEach(p926 => {
        v288 = p926;
        if (v288.alive) {
          v1085 = v288.x + v288.xWiggle - p924;
          v1086 = v288.y + v288.yWiggle - p925;
          if (p923 == 0) {
            v288.update(v299);
          }
          v62.globalAlpha = v288.alpha;
          if (v288.layer == p923 && f167(v1085, v1086, v288.scale + (v288.blocker || 0))) {
            if (v288.isItem) {
              if ((v288.dmg || v288.trap) && !v288.isTeamObject(v286)) {
                v1084 = f165(v288);
              } else {
                v1084 = f160(v288);
              }
              v62.save();
              v62.translate(v1085, v1086);
              v62.rotate(v288.dir);
              if (!v288.active) {
                v62.scale(v288.visScale / v288.scale, v288.visScale / v288.scale);
              }
              if (!v288.hideFromEnemy) {
                v62.globalAlpha = 1;
              }
              v62.drawImage(v1084, -(v1084.width / 2), -(v1084.height / 2));
              if (v288.blocker) {
                v62.strokeStyle = "#db6e6e";
                v62.globalAlpha = 0.3;
                v62.lineWidth = 6;
                f136(0, 0, v288.blocker, v62, false, true);
              }
              v62.restore();
            } else if (v288.type == 4) {
              f169();
            } else {
              v1084 = f159(v288);
              v62.drawImage(v1084, v1085 - v1084.width / 2, v1086 - v1084.height / 2);
            }
          }
          if (p923 == 3 && !v241) {
            if (v288.health < v288.maxHealth) {
              v62.fillStyle = v310;
              v62.roundRect(v1085 - vP11.healthBarWidth / 2 - vP11.healthBarPad, v1086 - vP11.healthBarPad, vP11.healthBarWidth + vP11.healthBarPad * 2, 17, 8);
              v62.fill();
              v62.fillStyle = v288.isTeamObject(v286) ? "#8ecc51" : "#cc5151";
              v62.roundRect(v1085 - vP11.healthBarWidth / 2, v1086, vP11.healthBarWidth * (v288.health / v288.maxHealth), 17 - vP11.healthBarPad * 2, 7);
              v62.fill();
            }
          }
        }
      });
      if (p923 == 0) {
        if (v323.length) {
          v323.forEach(p927 => {
            v1085 = p927.x - p924;
            v1086 = p927.y - p925;
            f171(p927, v1085, v1086);
          });
        }
        if (v324.length) {
          v324.forEach(p928 => {
            v1085 = p928.x - p924;
            v1086 = p928.y - p925;
            f172(p928, v1085, v1086);
          });
        }
        if (v325.length) {
          v325.forEach(p929 => {
            v1085 = p929.x - p924;
            v1086 = p929.y - p925;
            f173(p929, v1085, v1086);
          });
        }
      }
    }
    function f171(p930, p931, p932) {
      f166(p930, v62, p931, p932);
    }
    function f172(p933, p934, p935) {
      f174(v62, p934, p935);
    }
    function f173(p936, p937, p938) {
      f175(v62, p937, p938);
    }
    function f174(p939, p940, p941) {
      p939.fillStyle = "rgba(0, 255, 255, 0.4)";
      p939.beginPath();
      p939.arc(p940, p941, 55, 0, Math.PI * 2);
      p939.fill();
      p939.closePath();
    }
    function f175(p942, p943, p944) {
      p942.fillStyle = "rgba(255, 0, 0, 0.4)";
      p942.beginPath();
      p942.arc(p943, p944, 55, 0, Math.PI * 2);
      p942.fill();
      p942.closePath();
    }
    class C26 {
      constructor(p945, p946) {
        this.init = function (p947, p948) {
          this.scale = 0;
          this.x = p947;
          this.y = p948;
          this.active = true;
        };
        this.update = function (p949, p950) {
          if (this.active) {
            this.scale += p950 * 0.05;
            if (this.scale >= p946) {
              this.active = false;
            } else {
              p949.globalAlpha = 1 - Math.max(0, this.scale / p946);
              p949.beginPath();
              p949.arc(this.x / vP11.mapScale * v15.width, this.y / vP11.mapScale * v15.width, this.scale, 0, Math.PI * 2);
              p949.stroke();
            }
          }
        };
        this.color = p945;
      }
    }
    function f176(p951, p952) {
      v697 = v696.find(p953 => !p953.active);
      if (!v697) {
        v697 = new C26("#fff", vP11.mapPingScale);
        v696.push(v697);
      }
      v697.init(p951, p952);
    }
    function f177() {
      v695.x = v286.x;
      v695.y = v286.y;
    }
    function f178(p954) {
      if (v286 && v286.alive) {
        v16.clearRect(0, 0, v15.width, v15.height);
        v16.lineWidth = 4;
        for (let v1087 = 0; v1087 < v696.length; ++v1087) {
          v697 = v696[v1087];
          v16.strokeStyle = v697.color;
          v697.update(v16, p954);
        }
        v16.globalAlpha = 1;
        v16.fillStyle = "#ff0000";
        if (v698.length) {
          v16.fillStyle = "#abcdef";
          v16.font = "34px Hammersmith One";
          v16.textBaseline = "middle";
          v16.textAlign = "center";
          for (let v1088 = 0; v1088 < v698.length;) {
            v16.fillText("!", v698[v1088].x / vP11.mapScale * v15.width, v698[v1088].y / vP11.mapScale * v15.height);
            v1088 += 2;
          }
        }
        v16.globalAlpha = 1;
        v16.fillStyle = "#fff";
        f136(v286.x / vP11.mapScale * v15.width, v286.y / vP11.mapScale * v15.height, 7, v16, true);
        v16.fillStyle = "rgba(255,255,255,0.35)";
        if (v286.team && v694) {
          for (let v1089 = 0; v1089 < v694.length;) {
            f136(v694[v1089] / vP11.mapScale * v15.width, v694[v1089 + 1] / vP11.mapScale * v15.height, 7, v16, true);
            v1089 += 2;
          }
        }
        if (v693) {
          v16.fillStyle = "#fc5553";
          v16.font = "34px Hammersmith One";
          v16.textBaseline = "middle";
          v16.textAlign = "center";
          v16.fillText("x", v693.x / vP11.mapScale * v15.width, v693.y / vP11.mapScale * v15.height);
        }
        if (v695) {
          v16.fillStyle = "#fff";
          v16.font = "34px Hammersmith One";
          v16.textBaseline = "middle";
          v16.textAlign = "center";
          v16.fillText("x", v695.x / vP11.mapScale * v15.width, v695.y / vP11.mapScale * v15.height);
        }
      }
    }
    let v1090 = ["https://upload.wikimedia.org/wikipedia/commons/9/95/Crosshairs_Red.svg", "https://upload.wikimedia.org/wikipedia/commons/9/95/Crosshairs_Red.svg"];
    let v1091 = {};
    let v1092 = {};
    let v1093 = ["crown", "skull"];
    function f179() {
      for (let v1094 = 0; v1094 < v1093.length; ++v1094) {
        let v1095 = new Image();
        v1095.onload = function () {
          this.isLoaded = true;
        };
        v1095.src = "./../img/icons/" + v1093[v1094] + ".png";
        v1092[v1093[v1094]] = v1095;
      }
      for (let v1096 = 0; v1096 < v1090.length; ++v1096) {
        let v1097 = new Image();
        v1097.onload = function () {
          this.isLoaded = true;
        };
        v1097.src = v1090[v1096];
        v1091[v1096] = v1097;
      }
    }
    f179();
    function f180(p955) {
      var v1098 = Math.abs(p955.x - v286.x) - p955.scale;
      var v1099 = Math.abs(p955.y - v286.y) - p955.scale;
      var v1100 = v296 / 2 * 1.3;
      var v1101 = v297 / 2 * 1.3;
      return v1098 <= v1100 && v1099 <= v1101;
    }
    function f181(p956, p957, p958, p959, p960) {
      this.startX = p956;
      this.startY = p957;
      this.endX = p958;
      this.distance = p959;
      this.float = p960;
      this.amountPaths = Math.ceil(this.endX / this.distance);
      this.path = new Map();
      this.generate = function () {
        for (let v1102 = 1; v1102 <= this.amountPaths; v1102 += 1) {
          const v1103 = v1102 % 2 === 0 ? this.distance : 0;
          const v1104 = this.startX + this.distance * (v1102 - 1);
          const v1105 = Math.floor(Math.random() * 35) + 10;
          const v1106 = this.startY + ((this.float === "down" ? v1103 : -v1103) + (v1102 % 2 === 0 ? Math.random() < 0.55 ? v1105 : -v1105 : 0));
          this.path.set(v1102, [v1104, v1106, v1103, v1105]);
        }
      };
      this.render = function (p961, p962, p963) {
        const v1107 = Array.from(this.path.values());
        if (!v286?.active || !v286?.alive) {
          return;
        }
        for (let v1108 = 1; v1108 < v1107.length; v1108++) {
          const v1109 = v1107[v1108 - 1];
          const v1110 = v1107[v1108];
          const v1111 = {
            x: v1109[0],
            y: v1109[1],
            scale: 10
          };
          if (!f180(v1111)) {
            continue;
          }
          const v1112 = {
            x: v1110[0],
            y: v1110[1],
            scale: 10
          };
          if (!f180(v1112)) {
            continue;
          }
          const v1113 = this.distance / 2;
          const v1114 = [v1109[0] - v1113 / 2, v1109[1] + (v1109[2] === 0 ? v1113 : -v1113)];
          const v1115 = [v1110[0] + v1113 * 1.15, v1110[1] + v1113 * 1.2];
          const v1116 = [v1110[0] + v1113 * 1.35, v1110[1] - v1113 * 1.15];
          const v1117 = [v1110[0] - v1113 * 1.35, v1110[1] + v1113 * 1.15];
          v62.save();
          v62.fillStyle = p961;
          v62.lineCap = "round";
          v62.lineJoin = "round";
          v62.beginPath();
          v62.moveTo(v1109[0] - p962, v1109[1] - p963);
          v62.lineTo(v1109[0] + this.distance * 2 - p962, this.startY - p963);
          v62.lineTo(v1110[0] - p962, v1110[1] - p963);
          v62.fill();
          v62.beginPath();
          v62.moveTo(v1109[0] - p962, v1109[1] - p963);
          v62.bezierCurveTo(v1114[0] - p962, v1114[1] - p963, v1115[0] - p962, v1115[1] - p963, v1110[0] + (v1110[3] >= 10 ? 3.5 : 1) - p962, v1110[1] - p963);
          v62.fill();
          v62.beginPath();
          v62.moveTo(v1110[0] - p962, v1110[1] - p963);
          v62.bezierCurveTo(v1115[0] - p962, v1115[1] - p963, v1116[0] - p962, v1116[1] - p963, v1110[0] + this.distance * 2 - p962, this.startY - p963);
          v62.fill();
          v62.restore();
        }
      };
      return this.generate();
    }
    const v1118 = new f181(-v296, vP11.snowBiomeTop - 1, vP11.mapScale + v296 * 2, 50, "down");
    const v1119 = new f181(-v296, vP11.mapScale - vP11.snowBiomeTop + 1, vP11.mapScale + v296 * 2, 50, "up");
    let vF17 = () => {
      let v1120 = document.querySelectorAll(".snowflake");
      v1120.forEach(p964 => p964.remove());
    };
    let vF18 = function () {
      let v1121 = document.createElement("div");
      v1121.className = "snowflake";
      v1121.style = "\n        position: absolute;\n        width: 10px;\n        height: 10px;\n        background: #fff;\n        border-radius: 50%;\n        z-index: 9998;\n        opacity: " + Math.random() + ";\n        left: " + Math.random() * 100 + "vw;\n        animation: fall " + (Math.random() * 3 + 2) + "s linear infinite;\n    ";
      v1121.addEventListener("animationiteration", function () {
        v1121.style.left = Math.random() * 100 + "vw";
        v1121.style.opacity = Math.random();
      });
      return v1121;
    };
    let v1122 = document.createElement("style");
    v1122.textContent = "\n    @keyframes fall {\n        0% { transform: translateY(-10vh); opacity: 1; }\n        100% { transform: translateY(110vh); opacity: 0; }\n    }\n    .fast-fall { animation-duration: " + (Math.random() * 1 + 1) + "s; }\n";
    document.head.appendChild(v1122);
    let v1123 = document.createElement("div");
    v1123.style = "\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    pointer-events: none;\n    z-index: 9998;\n    display: none;\n";
    document.body.appendChild(v1123);
    let v1125 = {
      isEnabled: false,
      overlay: {
        opacity: 0,
        r: 0,
        g: 0,
        b: 0
      },
      starField: []
    };
    let v1126 = 0;
    let vF21 = (p965, p966, p967, p968) => {
      v1125.overlay.opacity = v1125.isEnabled ? Math.min(0.5, v1125.overlay.opacity + 0.001) : Math.max(0, v1125.overlay.opacity - 0.001);
      if (v1125.overlay.opacity > 0) {
        if (v1125.overlay.opacity > 0.3 && v1126 > 300) {
          v1126 = 0;
          let v1127 = v679.randInt(3, 5);
          for (let v1128 = 0; v1128 < v1127; v1128++) {
            let v1129 = v679.randFloat(1, 3);
          }
        } else {
          v1126 += p966;
        }
        p965.globalAlpha = v1125.overlay.opacity;
        p965.fillStyle = "rgb(" + v1125.overlay.r + ", " + v1125.overlay.g + ", " + v1125.overlay.b + ")";
        p965.fillRect(0, 0, v296, v297);
      }
      v1125.starField = v1125.starField.filter(p969 => p969.visible);
      for (let v1130 = 0; v1130 < v1125.starField.length; v1130++) {
        let v1131 = v1125.starField[v1130];
        if (v1131.brightening) {
          v1131.transparency = Math.min(1, v1131.transparency + 0.02);
          if (v1131.transparency >= 1) {
            v1131.brightening = false;
          }
        } else {
          v1131.transparency = Math.max(0, v1131.transparency - 0.02);
          if (v1131.transparency <= 0) {
            v1131.visible = false;
          }
        }
        let vF22 = (p970, p971) => {
          p970.beginPath();
          p970.moveTo(0, -p971);
          for (let v1132 = 1; v1132 < 8; v1132++) {
            let v1133 = Math.PI / 4 * v1132;
            let v1134 = v1132 % 2 === 0 ? p971 : p971 / 2;
            p970.lineTo(Math.sin(v1133) * v1134, -Math.cos(v1133) * v1134);
          }
          p970.closePath();
        };
        p965.save();
        p965.globalAlpha = v1131.transparency;
        p965.translate(v1131.posX - p967 * v1131.scaleMultiplier, v1131.posY - p968 * v1131.scaleMultiplier);
        p965.scale(v1131.size, v1131.size);
        vF22(p965, 3);
        p965.fillStyle = v1131.color;
        p965.fill();
        p965.restore();
      }
    };
    let v1135 = 1;
    let v1136 = Date.now();
    function f182() {
      v1125.isEnabled = !v1125.isEnabled;
      if (v1125.isEnabled) {
        v221.style.animationName = "night1";
        v221.style.opacity = 0.35;
        v221.style.display = "block";
      } else {
        v221.style.animationName = "night2";
        v221.style.opacity = 0;
        setTimeout(() => {
          v221.style.display = "none";
        }, parseFloat(v221.style.animationDuration) * 1000);
      }
    }
    setInterval(() => {
      if (!v1136 || Date.now() - v1136 >= 240000) {
        v1135 = !v1135;
        v1136 = Date.now();
        f182();
      }
    }, 1000);
    window.toggleNight = function () {
      clearTimeout(v1212);
      f182();
      v1135 = !v1135;
      v1136 = Date.now();
    };
    function f183() {
      vF13();
      if (vP11.resetRender) {
        v62.clearRect(0, 0, v13.width, v13.height);
        v62.beginPath();
      }
      let v1137 = {
        width: 1920,
        height: 1080
      };
      if (true) {
        if (f5("camSexy").checked) {
          if (v286) {
            let v1138;
            let v1139;
            let v1140 = 0.1;
            let v1141 = 0;
            let v1142 = v286.x;
            let v1143 = v286.y;
            if (v289.length) {
              if (v291.dist2 <= 650) {
                v1141 = (650 - v291.dist2) / 650;
                v1142 = v286.x2 + (v291.x2 - v286.x2) * v1141;
                v1143 = v286.y2 + (v291.y2 - v286.y2) * v1141;
              }
            }
            v1138 = v1137.width;
            v1139 = v1137.height;
            if (v1141 === 0) {
              v1138 *= 1.2;
              v1139 *= 1.4;
            }
            v302 = (v302 * 24 + v1142) / 25;
            v303 = (v303 * 24 + v1143) / 25;
            v302 = Math.max(540, Math.min(13840, v302));
            v303 = Math.max(200, Math.min(14240, v303));
            v296 += (v1138 - v296) * v1140;
            v297 += (v1139 - v297) * v1140;
            f64();
          } else {
            v302 = Math.max(540, Math.min(13840, vP11.mapScale / 2));
            v303 = Math.max(200, Math.min(14240, vP11.mapScale / 2));
            f64();
          }
        } else if (v286) {
          if (false) {
            v302 = v286.x;
            v303 = v286.y;
          } else {
            let v1144 = v679.getDistance(v302, v303, v286.x, v286.y);
            let v1145 = v679.getDirection(v286.x, v286.y, v302, v303);
            let v1146 = Math.min(v1144 * 0.01 * v299, v1144);
            if (v1144 > 0.05) {
              v302 += v1146 * Math.cos(v1145);
              v303 += v1146 * Math.sin(v1145);
            } else {
              v302 = v286.x;
              v303 = v286.y;
            }
          }
        } else {
          v302 = vP11.mapScale / 2 + vP11.riverWidth;
          v303 = vP11.mapScale / 2;
        }
        let v1147 = v300 - 1000 / vP11.serverUpdateRate;
        let v1148;
        for (let v1149 = 0; v1149 < v278.length + v277.length; ++v1149) {
          v288 = v278[v1149] || v277[v1149 - v278.length];
          if (v288 && v288.visible) {
            if (v288.forcePos) {
              v288.x = v288.x2;
              v288.y = v288.y2;
              v288.dir = v288.d2;
            } else {
              let v1150 = v288.t2 - v288.t1;
              let v1151 = v1147 - v288.t1;
              let v1152 = v1151 / v1150;
              let v1153 = 170;
              v288.dt += v299;
              let v1154 = Math.min(1.7, v288.dt / v1153);
              v1148 = v288.x2 - v288.x1;
              v288.x = v288.x1 + v1148 * v1154;
              v1148 = v288.y2 - v288.y1;
              v288.y = v288.y1 + v1148 * v1154;
              v288.dir = Math.lerpAngle(v288.d2, v288.d1, Math.min(1.2, v1152));
            }
          }
        }
        let v1156 = v302 - v296 / 2;
        let v1157 = v303 - v297 / 2;
        vUndefined3 = v1156;
        vUndefined4 = v1157;
        if (vP11.snowBiomeTop - v1157 <= 0 && vP11.mapScale - vP11.snowBiomeTop - v1157 >= v297) {
          v62.fillStyle = "#b6db66";
          v62.fillRect(0, 0, v296, v297);
        } else if (vP11.mapScale - vP11.snowBiomeTop - v1157 <= 0) {
          v62.fillStyle = "#dbc666";
          v62.fillRect(0, 0, v296, v297);
        } else if (vP11.snowBiomeTop - v1157 >= v297) {
          v62.fillStyle = "#fff";
          v62.fillRect(0, 0, v296, v297);
        } else if (vP11.snowBiomeTop - v1157 >= 0) {
          v62.fillStyle = "#fff";
          v62.fillRect(0, 0, v296, vP11.snowBiomeTop - v1157);
          v62.fillStyle = "#b6db66";
          v62.fillRect(0, vP11.snowBiomeTop - v1157, v296, v297 - (vP11.snowBiomeTop - v1157));
        } else {
          v62.fillStyle = "#b6db66";
          v62.fillRect(0, 0, v296, vP11.mapScale - vP11.snowBiomeTop - v1157);
          v62.fillStyle = "#dbc666";
          v62.fillRect(0, vP11.mapScale - vP11.snowBiomeTop - v1157, v296, v297 - (vP11.mapScale - vP11.snowBiomeTop - v1157));
          v1119.render("#b6db66", v1156, v1157);
        }
        if (!v313) {
          v307 += v308 * vP11.waveSpeed * v299;
          if (v307 >= vP11.waveMax) {
            v307 = vP11.waveMax;
            v308 = -1;
          } else if (v307 <= 1) {
            v307 = v308 = 1;
          }
          v62.globalAlpha = 1;
          v62.fillStyle = "#dbc666";
          f158(v1156, v1157, v62, vP11.riverPadding);
          v62.fillStyle = "#91b2db";
          f158(v1156, v1157, v62, (v307 - 1) * 250);
        }
        if (v286) {
          if (v286.alive) {
            f95(v288, v1156, v1157);
          }
          if (v693) {
            v62.globalAlpha = 1;
            v62.fillStyle = "#fc5553";
            v62.font = "100px Hammersmith One";
            v62.textBaseline = "middle";
            v62.textAlign = "center";
            v62.fillText("x", v693.x - v1156, v693.y - v1157);
          }
        }
        v62.globalAlpha = 1;
        v62.strokeStyle = v309;
        f147(v1156, v1157);
        v62.globalAlpha = 1;
        v62.strokeStyle = v309;
        f170(-1, v1156, v1157);
        v62.globalAlpha = 1;
        v62.lineWidth = v311;
        f155(0, v1156, v1157);
        f149(v1156, v1157, 0);
        v62.globalAlpha = 1;
        for (let v1158 = 0; v1158 < v277.length; ++v1158) {
          v288 = v277[v1158];
          if (v288.active && v288.visible) {
            v288.animate(v299);
            v62.save();
            v62.translate(v288.x - v1156, v288.y - v1157);
            v62.rotate(v288.dir + v288.dirPlus - Math.PI / 2);
            f157(v288, v62);
            v62.restore();
          }
        }
        f170(0, v1156, v1157);
        f155(1, v1156, v1157);
        f170(1, v1156, v1157);
        f149(v1156, v1157, 1);
        f170(2, v1156, v1157);
        f170(3, v1156, v1157);
        v62.fillStyle = "#000";
        v62.globalAlpha = 0.09;
        if (v1156 <= 0) {
          v62.fillRect(0, 0, -v1156, v297);
        }
        if (vP11.mapScale - v1156 <= v296) {
          let v1159 = Math.max(0, -v1157);
          v62.fillRect(vP11.mapScale - v1156, v1159, v296 - (vP11.mapScale - v1156), v297 - v1159);
        }
        if (v1157 <= 0) {
          v62.fillRect(-v1156, 0, v296 + v1156, -v1157);
        }
        if (vP11.mapScale - v1157 <= v297) {
          let v1160 = Math.max(0, -v1156);
          let v1161 = 0;
          if (vP11.mapScale - v1156 <= v296) {
            v1161 = v296 - (vP11.mapScale - v1156);
          }
          v62.fillRect(v1160, vP11.mapScale - v1157, v296 - v1160 - v1161, v297 - (vP11.mapScale - v1157));
        }
        v62.globalAlpha = 1;
        v62.fillStyle = "rgba(0, 0, 70, 0.35)";
        v62.fillRect(0, 0, v296, v297);
        v62.strokeStyle = v310;
        v62.globalAlpha = 1;
        for (let v1162 = 0; v1162 < v278.length + v277.length; ++v1162) {
          v288 = v278[v1162] || v277[v1162 - v278.length];
          if (v288.visible) {
            v62.strokeStyle = v310;
            if (v288.skinIndex != 10 || v288 == v286 || v288.team && v288.team == v286.team) {
              let v1163 = (v288.team ? "[" + v288.team + "] " : "") + (v288.name || "") + (v288.isPlayer ? " {" + v288.sid + "}" : "");
              if (v1163 != "") {
                v62.font = (v288.nameScale || 30) + "px Hammersmith One";
                v62.fillStyle = v288.isPlayer ? v799.includes(v288.sid) ? "#FF0000" : v798.includes(v288.sid) ? "#00ff00" : "#fff" : "#fff";
                v62.textBaseline = "middle";
                v62.textAlign = "center";
                v62.lineWidth = v288.nameScale ? 11 : 8;
                v62.lineJoin = "round";
                v62.strokeText(v1163, v288.x - v1156, v288.y - v1157 - v288.scale - vP11.nameY);
                v62.fillText(v1163, v288.x - v1156, v288.y - v1157 - v288.scale - vP11.nameY);
                if (v288.isLeader && v1092.crown.isLoaded) {
                  let v1164 = vP11.crownIconScale;
                  let v1165 = v288.x - v1156 - v1164 / 2 - v62.measureText(v1163).width / 2 - vP11.crownPad;
                  v62.drawImage(v1092.crown, v1165, v288.y - v1157 - v288.scale - vP11.nameY - v1164 / 2 - 5, v1164, v1164);
                }
                if (v288.iconIndex == 1 && v1092.skull.isLoaded) {
                  let v1166 = vP11.crownIconScale;
                  let v1167 = v288.x - v1156 - v1166 / 2 + v62.measureText(v1163).width / 2 + vP11.crownPad;
                  v62.drawImage(v1092.skull, v1167, v288.y - v1157 - v288.scale - vP11.nameY - v1166 / 2 - 5, v1166, v1166);
                }
                if (v288.isPlayer && v689.wait && v291 == v288 && (v288.backupNobull ? v1091[1].isLoaded : v1091[0].isLoaded) && v289.length && !v241) {
                  let v1168 = v288.scale * 2.2;
                  v62.drawImage(v288.backupNobull ? v1091[1] : v1091[0], v288.x - v1156 - v1168 / 2, v288.y - v1157 - v1168 / 2, v1168, v1168);
                }
              }
              if (v288.health > 0) {
                let v1169 = v288.prevHW || vP11.healthBarWidth * 2 * (v288.health / v288.maxHealth);
                v62.fillStyle = v310;
                v62.roundRect(v288.x - v1156 - vP11.healthBarWidth - vP11.healthBarPad, v288.y - v1157 + v288.scale + vP11.nameY, vP11.healthBarWidth * 2 + vP11.healthBarPad * 2, 17, 8);
                v62.fill();
                let v1170 = vP11.healthBarWidth * 2 * (v288.health / v288.maxHealth);
                if (v288.prevHW !== undefined) {
                  v288.prevDW = v288.prevDW || v288.prevHW;
                  v288.prevDW += (v1170 - v288.prevDW) * 0.03;
                }
                v1169 += (v1170 - v1169) * 0.2;
                v288.prevHW = v1169;
                v62.fillStyle = v288 == v286 || v288.team && v288.team == v286.team ? "#FF6666" : "#FFFF66";
                v62.roundRect(v288.x - v1156 - vP11.healthBarWidth, v288.y - v1157 + v288.scale + vP11.nameY + vP11.healthBarPad, v288.prevDW, 17 - vP11.healthBarPad * 2, 7);
                v62.fill();
                v62.fillStyle = v288 == v286 || v288.team && v288.team == v286.team ? "#8ecc51" : "#cc5151";
                v62.roundRect(v288.x - v1156 - vP11.healthBarWidth, v288.y - v1157 + v288.scale + vP11.nameY + vP11.healthBarPad, v1169, 17 - vP11.healthBarPad * 2, 7);
                v62.fill();
                if (v288.isPlayer) {
                  v62.globalAlpha = 1;
                  if (v288 == v286) {}
                  v62.globalAlpha = 1;
                  v62.font = "20px Hammersmith One";
                  v62.fillStyle = "#fff";
                  v62.strokeStyle = v310;
                  v62.textBaseline = "middle";
                  v62.textAlign = "center";
                  v62.lineWidth = 8;
                  v62.lineJoin = "round";
                  let v1171 = [];
                  if (v288 == v286) {
                    if (f5("visualType").value == "ueh1") {
                      v1171 = [v288.oldSkinIndex, v288.skinIndex];
                      v62.strokeText("[" + v1171.join(",") + "]", v288.x - v1156, v288.y - v1157 + v288.scale + vP11.nameY + 27);
                      v62.fillText("[" + v1171.join(",") + "]", v288.x - v1156, v288.y - v1157 + v288.scale + vP11.nameY + 27);
                    }
                  } else {
                    v1171 = [v288.primaryIndex, v288.secondaryIndex || 0, v679.fixTo(v288.damageThreat, 2)];
                    v62.strokeText("[" + v1171.join(",") + "]", v288.x - v1156, v288.y - v1157 + v288.scale + vP11.nameY + 27);
                    v62.fillText("[" + v1171.join(",") + "]", v288.x - v1156, v288.y - v1157 + v288.scale + vP11.nameY + 27);
                  }
                  v62.globalAlpha = 1;
                  v62.font = "30px Hammersmith One";
                  v62.fillStyle = "#fff";
                  v62.strokeStyle = v310;
                  v62.textBaseline = "middle";
                  v62.textAlign = "center";
                  v62.lineWidth = 8;
                  v62.lineJoin = "round";
                  let v1172 = vP11.crownIconScale;
                  let v1173 = v288.x - v1156 - v1172 / 2 + v62.measureText(v1163).width / 2 + vP11.crownPad + (v288.iconIndex == 1 ? 82.5 : 30);
                  v62.strokeText(v288.skinIndex == 45 && v288.shameTimer > 0 ? v288.shameTimer : v288.shameCount, v1173, v288.y - v1157 - v288.scale - vP11.nameY);
                  v62.fillText(v288.skinIndex == 45 && v288.shameTimer > 0 ? v288.shameTimer : v288.shameCount, v1173, v288.y - v1157 - v288.scale - vP11.nameY);
                  if (!v288.isTeam(v286)) {
                    let v1174 = {
                      x: v294 / 2,
                      y: v295 / 2
                    };
                    let v1175 = Math.min(1, v679.getDistance(0, 0, v286.x - v288.x, (v286.y - v288.y) * (16 / 9)) * 100 / (vP11.maxScreenHeight / 2) / v1174.y);
                    let v1176 = v1174.y * v1175;
                    let v1177 = v1176 * Math.cos(v679.getDirect(v288, v286, 0, 0));
                    let v1178 = v1176 * Math.sin(v679.getDirect(v288, v286, 0, 0));
                    v62.save();
                    v62.translate(v286.x - v1156 + v1177, v286.y - v1157 + v1178);
                    v62.rotate(v288.aim2 + Math.PI / 2);
                    let v1179 = 255 - v288.sid * 2;
                    v62.fillStyle = "rgb(" + v1179 + ", " + v1179 + ", " + v1179 + ")";
                    v62.globalAlpha = v1175;
                    let vF23 = function (p972, p973) {
                      p973 = p973 || v62;
                      let v1180 = p972 * (Math.sqrt(3) / 2);
                      p973.beginPath();
                      p973.moveTo(0, -v1180 / 1.5);
                      p973.lineTo(-p972 / 2, v1180 / 2);
                      p973.lineTo(p972 / 2, v1180 / 2);
                      p973.lineTo(0, -v1180 / 1.5);
                      p973.fill();
                      p973.closePath();
                    };
                    vF23(25, v62);
                    v62.restore();
                  }
                  if (f5("predictType").value == "pre2") {
                    v62.lineWidth = 3;
                    v62.strokeStyle = "#cc5151";
                    v62.globalAlpha = 1;
                    v62.beginPath();
                    let v1181 = {
                      x: v288.x2 - v1156,
                      y: v288.y2 - v1157
                    };
                    v62.moveTo(v288.x - v1156, v288.y - v1157);
                    v62.lineTo(v1181.x, v1181.y);
                    v62.stroke();
                  } else if (f5("predictType").value == "pre3") {
                    v62.lineWidth = 3;
                    v62.strokeStyle = "#cc5151";
                    v62.globalAlpha = 1;
                    v62.beginPath();
                    let v1182 = {
                      x: v288.x3 - v1156,
                      y: v288.y3 - v1157
                    };
                    v62.moveTo(v288.x - v1156, v288.y - v1157);
                    v62.lineTo(v1182.x, v1182.y);
                    v62.stroke();
                  }
                }
              }
            }
          }
        }
        if (v286) {
          const v1183 = {
            x: v1156,
            y: v1157
          };
          f135(v62, v1183);
          if (v275.length && f5("funni").checked) {
            v286.spinDir += 2.5 / 60;
            let v1184 = 0;
            if (v711.left) {
              v1184 = 100;
            } else if (v711.right) {
              v1184 = 15;
            } else {
              v1184 = 40;
            }
            v1184 += v286.scale;
            v275.forEach((p974, p975) => {
              if (p974.active) {
                let v1185 = Math.PI * (p975 / (v275.length / 2));
                let v1186 = {
                  x: v286.x + v1184 * Math.cos(v286.spinDir + v1185),
                  y: v286.y + v1184 * Math.sin(v286.spinDir + v1185)
                };
                let v1187 = v679.getDirect(v1186, p974, 0, 0);
                let v1188 = v679.getDist(v1186, p974, 0, 0);
                p974.x += v1188 / 7 * Math.cos(v1187);
                p974.y += v1188 / 7 * Math.sin(v1187);
                v278.filter(p976 => p976.visible && p976 != v286).forEach(p977 => {
                  let v1189 = v679.getDirect(p974, p977, 0, 0);
                  let v1190 = v679.getDist(p974, p977, 0, 0);
                  let v1191 = p974.scale + p977.scale;
                  if (v1190 <= v1191) {
                    let v1192 = v1190 - v1191;
                    let v1193 = -v1192;
                    p974.x += v1193 * Math.cos(v1189);
                    p974.y += v1193 * Math.sin(v1189);
                    p974.health -= 10;
                    p974.damaged += 125;
                    if (p974.health <= 0) {
                      p974.active = false;
                    }
                  }
                });
              } else {
                p974.time += v299;
                if (p974.alive) {
                  p974.alpha -= v299 / 200;
                  p974.visScale += v299 / (p974.scale * 2);
                  if (p974.alpha <= 0) {
                    p974.alpha = 0;
                    p974.alive = false;
                  }
                }
                if (p974.time >= p974.timer) {
                  p974.time = 0;
                  p974.active = true;
                  p974.alive = true;
                  p974.x = v286.x;
                  p974.y = v286.y;
                  p974.health = p974.maxHealth;
                  p974.damaged = 0;
                  p974.alpha = 1;
                  p974.visScale = p974.scale;
                }
              }
              if (p974.alive) {
                let vF24 = function (p978, p979, p980, p981) {
                  return "rgb(" + (Math.min(255, p978 + Math.floor(p981)) + ", " + Math.max(0, p979 - Math.floor(p981)) + ", " + Math.max(0, p980 - Math.floor(p981))) + ")";
                };
                v62.globalAlpha = p974.alpha;
                v62.lineWidth = 3;
                v62.fillStyle = vF24(255, 255, 255, p974.damaged);
                v62.strokeStyle = vF24(200, 200, 200, p974.damaged);
                v62.beginPath();
                v62.arc(p974.x - v1156, p974.y - v1157, p974.visScale, 0, Math.PI * 2);
                v62.fill();
                v62.stroke();
                p974.damaged = Math.max(0, p974.damaged - v299 / 2);
              }
            });
          }
        }
        v62.globalAlpha = 1;
        v687.update(v299, v62, v1156, v1157);
        for (let v1194 = 0; v1194 < v278.length; ++v1194) {
          v288 = v278[v1194];
          if (v288.visible) {
            if (v288.chatCountdown > 0) {
              v288.chatCountdown -= v299;
              if (v288.chatCountdown <= 0) {
                v288.chatCountdown = 0;
              }
              v62.font = "32px Hammersmith One";
              let v1195 = v62.measureText(v288.chatMessage);
              v62.textBaseline = "middle";
              v62.textAlign = "center";
              let v1196 = v288.x - v1156;
              let v1197 = v288.y - v288.scale - v1157 - 90;
              let v1198 = 47;
              let v1199 = v1195.width + 17;
              v62.fillStyle = "rgba(0,0,0,0.2)";
              v62.roundRect(v1196 - v1199 / 2, v1197 - v1198 / 2, v1199, v1198, 6);
              v62.fill();
              v62.fillStyle = "#fff";
              v62.fillText(v288.chatMessage, v1196, v1197);
            }
            if (v288.chat.count > 0) {
              if (!v241) {
                v288.chat.count -= v299;
                if (v288.chat.count <= 0) {
                  v288.chat.count = 0;
                }
                v62.font = "32px Hammersmith One";
                let v1200 = v62.measureText(v288.chat.message);
                v62.textBaseline = "middle";
                v62.textAlign = "center";
                let v1201 = v288.x - v1156;
                let v1202 = v288.y - v288.scale - v1157 + 180;
                let v1203 = 47;
                let v1204 = v1200.width + 17;
                v62.fillStyle = "rgba(0,0,0,0.2)";
                v62.roundRect(v1201 - v1204 / 2, v1202 - v1203 / 2, v1204, v1203, 6);
                v62.fill();
                v62.fillStyle = "#ffffff99";
                v62.fillText(v288.chat.message, v1201, v1202);
              } else {
                v288.chat.count = 0;
              }
            }
          }
        }
        if (v276.length) {
          v276.filter(p982 => p982.active).forEach(p983 => {
            if (!p983.alive) {
              if (p983.alpha <= 1) {
                p983.alpha += v299 / 250;
                if (p983.alpha >= 1) {
                  p983.alpha = 1;
                  p983.alive = true;
                }
              }
            } else {
              p983.alpha -= v299 / 5000;
              if (p983.alpha <= 0) {
                p983.alpha = 0;
                p983.active = false;
              }
            }
            if (p983.active) {
              v62.font = "20px Ubuntu";
              let v1205 = v62.measureText(p983.chat);
              v62.textBaseline = "middle";
              v62.textAlign = "center";
              let v1206 = p983.x - v1156;
              let v1207 = p983.y - v1157 - 90;
              let v1208 = 40;
              let v1209 = v1205.width + 15;
              v62.globalAlpha = p983.alpha;
              v62.fillStyle = p983.owner.isTeam(v286) ? "#8ecc51" : "#cc5151";
              v62.strokeStyle = "rgb(25, 25, 25)";
              v62.strokeText(p983.owner.name, v1206, v1207 - 45);
              v62.fillText(p983.owner.name, v1206, v1207 - 45);
              v62.lineWidth = 5;
              v62.fillStyle = "#ccc";
              v62.strokeStyle = "rgb(25, 25, 25)";
              v62.roundRect(v1206 - v1209 / 2, v1207 - v1208 / 2, v1209, v1208, 6);
              v62.stroke();
              v62.fill();
              v62.fillStyle = "#fff";
              v62.strokeStyle = "#000";
              v62.strokeText(p983.chat, v1206, v1207);
              v62.fillText(p983.chat, v1206, v1207);
              p983.y -= v299 / 100;
            }
          });
        }
        vF21(v62, v299, v1156, v1157);
      }
      v62.globalAlpha = 1;
      f178(v299);
    }
    window.requestAnimFrame = function () {
      return null;
    };
    window.rAF = function () {
      return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (p984) {
        window.setTimeout(p984, 1000 / 60);
      };
    }();
    function f184() {
      v300 = performance.now();
      v299 = v300 - v301;
      v301 = v300;
      let v1210 = performance.now();
      let v1211 = v1210 - v249.last;
      if (v1211 >= 1000) {
        v249.ltime = v249.time * (1000 / v1211);
        v249.last = v1210;
        v249.time = 0;
      }
      v249.time++;
      f183();
      rAF(f184);
    }
    f146();
    f184();
    function f185(p985) {
      f5("instaType").disabled = p985;
      f5("antiBullType").disabled = p985;
      f5("predictType").disabled = p985;
      f5("visualType").disabled = p985;
    }
    f185(v241);
    let v1212;
    window.debug = function () {
      v293.waitHit = 0;
      v293.autoAim = false;
      v689.isTrue = false;
      v688.inTrap = false;
      v274.active = false;
      v1011 = [];
      v1066 = [];
      v997 = [];
      v272 = true;
      setTimeout(() => {
        v272 = false;
      }, 10000);
      v246.tick = 0;
    };
    window.wasdMode = function () {
      v241 = !v241;
      f185(v241);
    };
    window.startGrind = function () {
      if (f5("weaponGrind").checked) {
        for (let v1213 = 0; v1213 < Math.PI * 2; v1213 += Math.PI / 2) {
          f48(v286.getItemType(22), v1213);
        }
      }
    };
    window.resBuild = function () {
      if (v282.length) {
        v282.forEach(p986 => {
          p986.breakObj = false;
        });
        v285 = [];
      }
    };
    const vF25 = async p987 => new Promise(p988 => setTimeout(p988, p987));
    const vF27 = (p989, p990) => {
      const v1214 = q3.url.split("token=")[0] + "token=" + encodeURIComponent("alt:" + V0);
      let v1215 = new WebSocket(v1214);
      v1215.binaryType = "arraybuffer";
      v1215.botType = p990;
      v1215.emit = (p991, p992, p993, p994) => {
        v1215.send(window.msgpack.encode([p991, [p992, p993, p994]]));
      };
      v1215.spawn = function () {
        v1215.emit("M", {
          name: "unknown",
          moofoll: 1,
          skin: 0
        });
      };
      v1215.onopen = async () => {
        await vF25(111);
        v1215.spawn();
      };
      v1215.onmessage = p995 => {
        let v1216 = new Uint8Array(p995.data);
        let v1217 = window.msgpack.decode(v1216);
        let v1218 = v1217[0];
        if (v1218 == "P") {
          v1215.spawn();
        }
      };
    };
    window.toggleBotsCircle = function () {
      v286.circle = !v286.circle;
    };
    window.toggleVisual = function () {
      vP11.anotherVisual = !vP11.anotherVisual;
      v282.forEach(p996 => {
        if (p996.active) {
          p996.dir = p996.lastDir;
        }
      });
    };
    window.prepareUI = function (p997) {
      f64();
      v679.removeAllChildren(v27);
      for (let v1219 = 0; v1219 < v680.weapons.length + v680.list.length; ++v1219) {
        (function (p998) {
          v679.generateElement({
            id: "actionBarItem" + p998,
            class: "actionBarItem",
            style: "display:none",
            onmouseout: function () {
              f63();
            },
            parent: v27
          });
        })(v1219);
      }
      for (let v1220 = 0; v1220 < v680.list.length + v680.weapons.length; ++v1220) {
        (function (p999) {
          let v1221 = document.createElement("canvas");
          v1221.width = v1221.height = 66;
          let v1222 = v1221.getContext("2d");
          v1222.translate(v1221.width / 2, v1221.height / 2);
          v1222.imageSmoothingEnabled = false;
          v1222.webkitImageSmoothingEnabled = false;
          v1222.mozImageSmoothingEnabled = false;
          if (v680.weapons[p999]) {
            v1222.rotate(Math.PI / 4 + Math.PI);
            let v1223 = new Image();
            v983[v680.weapons[p999].src] = v1223;
            v1223.onload = function () {
              this.isLoaded = true;
              let v1224 = 1 / (this.height / this.width);
              let v1225 = v680.weapons[p999].iPad || 1;
              v1222.drawImage(this, -(v1221.width * v1225 * vP11.iconPad * v1224) / 2, -(v1221.height * v1225 * vP11.iconPad) / 2, v1221.width * v1225 * v1224 * vP11.iconPad, v1221.height * v1225 * vP11.iconPad);
              v1222.fillStyle = "rgba(0, 0, 70, 0.1)";
              v1222.globalCompositeOperation = "source-atop";
              v1222.fillRect(-v1221.width / 2, -v1221.height / 2, v1221.width, v1221.height);
              f5("actionBarItem" + p999).style.backgroundImage = "url(" + v1221.toDataURL() + ")";
            };
            v1223.src = "./../img/weapons/" + v680.weapons[p999].src + ".png";
            let vF54 = f5("actionBarItem" + p999);
            vF54.onmouseover = v679.checkTrusted(function () {
              f63(v680.weapons[p999], true);
            });
            vF54.onclick = v679.checkTrusted(function () {
              f43(p997.weapons[v680.weapons[p999].type]);
            });
            v679.hookTouchEvents(vF54);
          } else {
            let vF160 = f160(v680.list[p999 - v680.weapons.length], true);
            let v1226 = Math.min(v1221.width - vP11.iconPadding, vF160.width);
            v1222.globalAlpha = 1;
            v1222.drawImage(vF160, -v1226 / 2, -v1226 / 2, v1226, v1226);
            v1222.fillStyle = "rgba(0, 0, 70, 0.1)";
            v1222.globalCompositeOperation = "source-atop";
            v1222.fillRect(-v1226 / 2, -v1226 / 2, v1226, v1226);
            f5("actionBarItem" + p999).style.backgroundImage = "url(" + v1221.toDataURL() + ")";
            let vF55 = f5("actionBarItem" + p999);
            vF55.onmouseover = v679.checkTrusted(function () {
              f63(v680.list[p999 - v680.weapons.length]);
            });
            vF55.onclick = v679.checkTrusted(function () {
              f42(p997.items[p997.getItemType(p999 - v680.weapons.length)]);
            });
            v679.hookTouchEvents(vF55);
          }
        })(v1220);
      }
    };
    window.profineTest = function (p1000) {
      if (p1000) {
        let v1227 = "unknown";
        let v1228 = p1000 + "";
        v1228 = v1228.slice(0, vP11.maxNameLength);
        v1228 = v1228.replace(/[^\w:\(\)\/? -]+/gmi, " ");
        v1228 = v1228.replace(/[^\x00-\x7F]/g, " ");
        v1228 = v1228.trim();
        let v1229 = {
          list: ["ahole", "anus", "ash0le", "ash0les", "asholes", "ass", "Ass Monkey", "Assface", "assh0le", "assh0lez", "asshole", "assholes", "assholz", "asswipe", "azzhole", "bassterds", "bastard", "bastards", "bastardz", "basterds", "basterdz", "Biatch", "bitch", "bitches", "Blow Job", "boffing", "butthole", "buttwipe", "c0ck", "c0cks", "c0k", "Carpet Muncher", "cawk", "cawks", "Clit", "cnts", "cntz", "cock", "cockhead", "cock-head", "cocks", "CockSucker", "cock-sucker", "crap", "cum", "cunt", "cunts", "cuntz", "dick", "dild0", "dild0s", "dildo", "dildos", "dilld0", "dilld0s", "dominatricks", "dominatrics", "dominatrix", "dyke", "enema", "f u c k", "f u c k e r", "fag", "fag1t", "faget", "fagg1t", "faggit", "faggot", "fagg0t", "fagit", "fags", "fagz", "faig", "faigs", "fart", "flipping the bird", "fuck", "fucker", "fuckin", "fucking", "fucks", "Fudge Packer", "fuk", "Fukah", "Fuken", "fuker", "Fukin", "Fukk", "Fukkah", "Fukken", "Fukker", "Fukkin", "g00k", "God-damned", "h00r", "h0ar", "h0re", "hells", "hoar", "hoor", "hoore", "jackoff", "jap", "japs", "jerk-off", "jisim", "jiss", "jizm", "jizz", "knob", "knobs", "knobz", "kunt", "kunts", "kuntz", "Lezzian", "Lipshits", "Lipshitz", "masochist", "masokist", "massterbait", "masstrbait", "masstrbate", "masterbaiter", "masterbate", "masterbates", "Motha Fucker", "Motha Fuker", "Motha Fukkah", "Motha Fukker", "Mother Fucker", "Mother Fukah", "Mother Fuker", "Mother Fukkah", "Mother Fukker", "mother-fucker", "Mutha Fucker", "Mutha Fukah", "Mutha Fuker", "Mutha Fukkah", "Mutha Fukker", "n1gr", "nastt", "nigger;", "nigur;", "niiger;", "niigr;", "orafis", "orgasim;", "orgasm", "orgasum", "oriface", "orifice", "orifiss", "packi", "packie", "packy", "paki", "pakie", "paky", "pecker", "peeenus", "peeenusss", "peenus", "peinus", "pen1s", "penas", "penis", "penis-breath", "penus", "penuus", "Phuc", "Phuck", "Phuk", "Phuker", "Phukker", "polac", "polack", "polak", "Poonani", "pr1c", "pr1ck", "pr1k", "pusse", "pussee", "pussy", "puuke", "puuker", "queer", "queers", "queerz", "qweers", "qweerz", "qweir", "recktum", "rectum", "retard", "sadist", "scank", "schlong", "screwing", "semen", "sex", "sexy", "Sh!t", "sh1t", "sh1ter", "sh1ts", "sh1tter", "sh1tz", "shit", "shits", "shitter", "Shitty", "Shity", "shitz", "Shyt", "Shyte", "Shytty", "Shyty", "skanck", "skank", "skankee", "skankey", "skanks", "Skanky", "slag", "slut", "sluts", "Slutty", "slutz", "son-of-a-bitch", "tit", "turd", "va1jina", "vag1na", "vagiina", "vagina", "vaj1na", "vajina", "vullva", "vulva", "w0p", "wh00r", "wh0re", "whore", "xrated", "xxx", "b!+ch", "bitch", "blowjob", "clit", "arschloch", "fuck", "shit", "ass", "asshole", "b!tch", "b17ch", "b1tch", "bastard", "bi+ch", "boiolas", "buceta", "c0ck", "cawk", "chink", "cipa", "clits", "cock", "cum", "cunt", "dildo", "dirsa", "ejakulate", "fatass", "fcuk", "fuk", "fux0r", "hoer", "hore", "jism", "kawk", "l3itch", "l3i+ch", "lesbian", "masturbate", "masterbat*", "masterbat3", "motherfucker", "s.o.b.", "mofo", "nazi", "nigga", "nigger", "nutsack", "phuck", "pimpis", "pusse", "pussy", "scrotum", "sh!t", "shemale", "shi+", "sh!+", "slut", "smut", "teets", "tits", "boobs", "b00bs", "teez", "testical", "testicle", "titt", "w00se", "jackoff", "wank", "whoar", "whore", "*damn", "*dyke", "*fuck*", "*shit*", "@$$", "amcik", "andskota", "arse*", "assrammer", "ayir", "bi7ch", "bitch*", "bollock*", "breasts", "butt-pirate", "cabron", "cazzo", "chraa", "chuj", "Cock*", "cunt*", "d4mn", "daygo", "dego", "dick*", "dike*", "dupa", "dziwka", "ejackulate", "Ekrem*", "Ekto", "enculer", "faen", "fag*", "fanculo", "fanny", "feces", "feg", "Felcher", "ficken", "fitt*", "Flikker", "foreskin", "Fotze", "Fu(*", "fuk*", "futkretzn", "gook", "guiena", "h0r", "h4x0r", "hell", "helvete", "hoer*", "honkey", "Huevon", "hui", "injun", "jizz", "kanker*", "kike", "klootzak", "kraut", "knulle", "kuk", "kuksuger", "Kurac", "kurwa", "kusi*", "kyrpa*", "lesbo", "mamhoon", "masturbat*", "merd*", "mibun", "monkleigh", "mouliewop", "muie", "mulkku", "muschi", "nazis", "nepesaurio", "nigger*", "nigga", "negga", "orospu", "paska*", "perse", "picka", "pierdol*", "pillu*", "pimmel", "piss*", "pizda", "poontsee", "poop", "porn", "p0rn", "pr0n", "preteen", "pula", "pule", "puta", "puto", "qahbeh", "queef*", "rautenberg", "schaffer", "scheiss*", "schlampe", "schmuck", "screw", "sh!t*", "sharmuta", "sharmute", "shipal", "shiz", "skribz", "skurwysyn", "sphencter", "spic", "spierdalaj", "splooge", "suka", "b00b*", "testicle*", "titt*", "twat", "vittu", "wank*", "wetback*", "wichser", "wop*", "yed", "zabourah", "4r5e", "5h1t", "5hit", "a55", "anal", "anus", "ar5e", "arrse", "arse", "ass", "ass-fucker", "asses", "assfucker", "assfukka", "asshole", "assholes", "asswhole", "a_s_s", "b!tch", "b00bs", "b17ch", "b1tch", "ballbag", "balls", "ballsack", "bastard", "beastial", "beastiality", "bellend", "bestial", "bestiality", "bi+ch", "biatch", "bitch", "bitcher", "bitchers", "bitches", "bitchin", "bitching", "bloody", "blow job", "blowjob", "blowjobs", "boiolas", "bollock", "bollok", "boner", "boob", "boobs", "booobs", "boooobs", "booooobs", "booooooobs", "breasts", "buceta", "bugger", "bum", "bunny fucker", "butt", "butthole", "buttmuch", "buttplug", "c0ck", "c0cksucker", "carpet muncher", "cawk", "chink", "cipa", "cl1t", "clit", "clitoris", "clits", "cnut", "cock", "cock-sucker", "cockface", "cockhead", "cockmunch", "cockmuncher", "cocks", "cocksuck", "cocksucked", "cocksucker", "cocksucking", "cocksucks", "cocksuka", "cocksukka", "cok", "cokmuncher", "coksucka", "coon", "cox", "crap", "cum", "cummer", "cumming", "cums", "cumshot", "cunilingus", "cunillingus", "cunnilingus", "cunt", "cuntlick", "cuntlicker", "cuntlicking", "cunts", "cyalis", "cyberfuc", "cyberfuck", "cyberfucked", "cyberfucker", "cyberfuckers", "cyberfucking", "d1ck", "damn", "dick", "dickhead", "dildo", "dildos", "dink", "dinks", "dirsa", "dlck", "dog-fucker", "doggin", "dogging", "donkeyribber", "doosh", "duche", "dyke", "ejaculate", "ejaculated", "ejaculates", "ejaculating", "ejaculatings", "ejaculation", "ejakulate", "f u c k", "f u c k e r", "f4nny", "fag", "fagging", "faggitt", "faggot", "faggs", "fagot", "fagots", "fags", "fanny", "fannyflaps", "fannyfucker", "fanyy", "fatass", "fcuk", "fcuker", "fcuking", "feck", "fecker", "felching", "fellate", "fellatio", "fingerfuck", "fingerfucked", "fingerfucker", "fingerfuckers", "fingerfucking", "fingerfucks", "fistfuck", "fistfucked", "fistfucker", "fistfuckers", "fistfucking", "fistfuckings", "fistfucks", "flange", "fook", "fooker", "fuck", "fucka", "fucked", "fucker", "fuckers", "fuckhead", "fuckheads", "fuckin", "fucking", "fuckings", "fuckingshitmotherfucker", "fuckme", "fucks", "fuckwhit", "fuckwit", "fudge packer", "fudgepacker", "fuk", "fuker", "fukker", "fukkin", "fuks", "fukwhit", "fukwit", "fux", "fux0r", "f_u_c_k", "gangbang", "gangbanged", "gangbangs", "gaylord", "gaysex", "goatse", "God", "god-dam", "god-damned", "goddamn", "goddamned", "hardcoresex", "hell", "heshe", "hoar", "hoare", "hoer", "homo", "hore", "horniest", "horny", "hotsex", "jack-off", "jackoff", "jap", "jerk-off", "jism", "jiz", "jizm", "jizz", "kawk", "knob", "knobead", "knobed", "knobend", "knobhead", "knobjocky", "knobjokey", "kock", "kondum", "kondums", "kum", "kummer", "kumming", "kums", "kunilingus", "l3i+ch", "l3itch", "labia", "lust", "lusting", "m0f0", "m0fo", "m45terbate", "ma5terb8", "ma5terbate", "masochist", "master-bate", "masterb8", "masterbat*", "masterbat3", "masterbate", "masterbation", "masterbations", "masturbate", "mo-fo", "mof0", "mofo", "mothafuck", "mothafucka", "mothafuckas", "mothafuckaz", "mothafucked", "mothafucker", "mothafuckers", "mothafuckin", "mothafucking", "mothafuckings", "mothafucks", "mother fucker", "motherfuck", "motherfucked", "motherfucker", "motherfuckers", "motherfuckin", "motherfucking", "motherfuckings", "motherfuckka", "motherfucks", "muff", "mutha", "muthafecker", "muthafuckker", "muther", "mutherfucker", "n1gga", "n1gger", "nazi", "nigg3r", "nigg4h", "nigga", "niggah", "niggas", "niggaz", "nigger", "niggers", "nob", "nob jokey", "nobhead", "nobjocky", "nobjokey", "numbnuts", "nutsack", "orgasim", "orgasims", "orgasm", "orgasms", "p0rn", "pawn", "pecker", "penis", "penisfucker", "phonesex", "phuck", "phuk", "phuked", "phuking", "phukked", "phukking", "phuks", "phuq", "pigfucker", "pimpis", "piss", "pissed", "pisser", "pissers", "pisses", "pissflaps", "pissin", "pissing", "pissoff", "poop", "porn", "porno", "pornography", "pornos", "prick", "pricks", "pron", "pube", "pusse", "pussi", "pussies", "pussy", "pussys", "rectum", "retard", "rimjaw", "rimming", "s hit", "s.o.b.", "sadist", "schlong", "screwing", "scroat", "scrote", "scrotum", "semen", "sex", "sh!+", "sh!t", "sh1t", "shag", "shagger", "shaggin", "shagging", "shemale", "shi+", "shit", "shitdick", "shite", "shited", "shitey", "shitfuck", "shitfull", "shithead", "shiting", "shitings", "shits", "shitted", "shitter", "shitters", "shitting", "shittings", "shitty", "skank", "slut", "sluts", "smegma", "smut", "snatch", "son-of-a-bitch", "spac", "spunk", "s_h_i_t", "t1tt1e5", "t1tties", "teets", "teez", "testical", "testicle", "tit", "titfuck", "tits", "titt", "tittie5", "tittiefucker", "titties", "tittyfuck", "tittywank", "titwank", "tosser", "turd", "tw4t", "twat", "twathead", "twatty", "twunt", "twunter", "v14gra", "v1gra", "vagina", "viagra", "vulva", "w00se", "wang", "wank", "wanker", "wanky", "whoar", "whore", "willies", "willy", "xrated", "xxx", "jew", "black", "baby", "child", "white", "porn", "pedo", "trump", "clinton", "hitler", "nazi", "gay", "pride", "sex", "pleasure", "touch", "poo", "kids", "rape", "white power", "nigga", "nig nog", "doggy", "rapist", "boner", "nigger", "nigg", "finger", "nogger", "nagger", "nig", "fag", "gai", "pole", "stripper", "penis", "vagina", "pussy", "nazi", "hitler", "stalin", "burn", "chamber", "cock", "peen", "dick", "spick", "nieger", "die", "satan", "n|ig", "nlg", "cunt", "c0ck", "fag", "lick", "condom", "anal", "shit", "phile", "little", "kids", "free KR", "tiny", "sidney", "ass", "kill", ".io", "(dot)", "[dot]", "mini", "whiore", "whore", "faggot", "github", "1337", "666", "satan", "senpa", "discord", "d1scord", "mistik", ".io", "senpa.io", "sidney", "sid", "senpaio", "vries", "asa"],
          exclude: [],
          placeHolder: "*",
          regex: {},
          replaceRegex: {}
        };
        let v1230 = false;
        let v1231 = v1228.toLowerCase().replace(/\s/g, "").replace(/1/g, "i").replace(/0/g, "o").replace(/5/g, "s");
        for (let v1232 of v1229.list) {
          if (v1231.indexOf(v1232) != -1) {
            v1230 = true;
            break;
          }
        }
        if (v1228.length > 0 && !v1230) {
          v1227 = v1228;
        }
        return v1227;
      }
    };
  }
});
const PACKET_MAP = {
  // wont have all old packets, since they conflict with some of the new ones, add them yourself if you want to unpatch mods that are that old.
  "33": "9",
  // "7": "K",
  ch: "6",
  pp: "0",
  "13c": "c",
  // most recent packet changes
  a: "9",
  d: "F",
  G: "z",
  f: "9"
};
let originalSend = WebSocket.prototype.send;
WebSocket.prototype.send = new Proxy(originalSend, {
  apply: (target, websocket, argsList) => {
    let decoded = msgpack.decode(new Uint8Array(argsList[0]));
    if (PACKET_MAP.hasOwnProperty(decoded[0])) {
      decoded[0] = PACKET_MAP[decoded[0]];
    }
    return target.apply(websocket, [msgpack.encode(decoded)]);
  }
});
长期地址
遇到问题?请前往 GitHub 提 Issues。